radarEmitter

Радарные сигналы и генератор интерференции

Описание

radarEmitter Система object™ создает эмиттер, чтобы симулировать радиолокационные излучения. Можно использовать radarEmitter объект в сценарии, который обнаруживает и перемещение дорожек и стационарные платформы. Создайте сценарий с помощью radarScenario.

Радарный эмиттер изменяет угол взгляда между обновлениями путем продвижения механического и электронного положения луча с шагом углового промежутка, заданного в FieldOfView свойство. Радиолокационные обзоры общая область в азимуте и вертикальном изменении, заданном радаром механические и электронные пределы скана, MechanicalScanLimits и ElectronicScanLimits, соответственно. Если пределы скана для азимута или вертикального изменения устанавливаются к [0 0], затем никакое сканирование не выполняется по тому измерению для того режима сканирования. Если максимальная механическая частота развертки для азимута или вертикального изменения обнуляется, то никакое механическое сканирование не выполняется по тому измерению.

Сгенерировать радарные обнаружения:

  1. Создайте radarEmitter объект и набор его свойства.

  2. Вызовите объект с аргументами, как будто это была функция.

Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты?

Создание

Описание

пример

emitter = radarEmitter(EmitterIndex) создает радарный объект эмиттера со значениями свойств по умолчанию.

emitter = radarEmitter(EmitterIndex,'No scanning') синтаксис удобства, который создает radarEmitter это смотрит вдоль радарного направления опорного направления антенны. Никакое механическое устройство или электронное сканирование не выполняются. Этот синтаксис устанавливает ScanMode свойство к 'No scanning'.

emitter = radarEmitter(EmitterIndex,'Raster') синтаксис удобства, который создает radarEmitter возразите, что механически сканирует растровый шаблон. Растровый промежуток составляет 90 ° в азимуте от-45 ° до +45 ° и в вертикальном изменении от горизонта до на 10 ° выше горизонта. Смотрите Синтаксисы Удобства для свойств, установленных этим синтаксисом.

emitter = radarEmitter(EmitterIndex,'Rotator') синтаксис удобства, который создает radarEmitter возразите, что механически сканирует 360 ° в азимуте путем механического вращения антенны на постоянном уровне. Когда вы устанавливаете HasElevation к true, радарная антенна механически указывает на центр поля зрения вертикального изменения. Смотрите Синтаксисы Удобства для свойств, установленных этим синтаксисом.

пример

emitter = radarEmitter(EmitterIndex,'Sector') синтаксис удобства должен создать radarEmitter возразите, что механически сканирует сектор азимута на 90 ° от-45 ° до +45 °. Установка HasElevation к true, указывает радарную антенну к центру поля зрения вертикального изменения. Можно изменить ScanMode к 'Electronic' электронно отсканировать тот же сектор азимута. В этом случае антенна механически не наклоняется в электронном скане сектора. Вместо этого лучи сложены электронно, чтобы обработать целое вертикальное изменение, заполненное пределами скана на сингле, живут. Смотрите Синтаксисы Удобства для свойств, установленных этим синтаксисом.

emitter = radarEmitter(___,Name,Value) свойства наборов с помощью одной или нескольких пар "имя-значение" после всех других входных параметров. Заключите каждое имя свойства в кавычки. Например, radarEmitter('CenterFrequency',2e6) создает радарный эмиттер, создает обнаружения в эмиттерной Декартовой системе координат и имеет максимальную область значений обнаружения 200 метров. Если вы задаете эмиттерный индекс с помощью EmitterIndex свойство, можно не использовать EmitterIndex входной параметр.

Свойства

развернуть все

Если в противном случае не обозначено, свойства являются ненастраиваемыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируют, когда вы вызываете их, и release функция разблокировала их.

Если свойство является настраиваемым, можно изменить его значение в любое время.

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты.

Уникальный эмиттерный идентификатор в виде положительного целого числа. При создании radarEmitter системный объект, необходимо или задать EmitterIndex как первый входной параметр в синтаксисе создания, или задают его как значение для EmitterIndex свойство в синтаксисе создания.

Пример 2

Типы данных: double

Эмиттерная частота обновления в виде положительной скалярной величины. Эмиттер генерирует новую эмиссию, с промежутками заданную обратной величиной UpdateRate свойство. Этот интервал должен быть целочисленным кратным интервал времени симуляции, заданный в radarScenario. Любое обновление, которое требуют от эмиттера между интервалами обновления, не содержит эмиссии. Модули находятся в герц.

Пример 5

Типы данных: double

Эмиттерное местоположение на платформе в виде 1 3 вектора с действительным знаком. Это свойство задает координаты эмиттера относительно источника платформы. Значение по умолчанию указывает, что эмиттерный источник в начале координат его платформы. Величины в метрах.

Пример: [.2 0.1 0]

Типы данных: double

Ориентация эмиттера относительно платформы в виде трехэлементного вектора с действительным знаком. Каждый элемент вектора соответствует внутреннему вращению Угла Эйлера, которое несет оси тела платформы к эмиттерным осям. Эти три элемента задают вращения вокруг z, y и осей x соответственно, в том порядке. Первое вращение вращает оси платформы вокруг z - ось. Второе вращение вращает несомую систему координат вокруг вращаемого y - ось. Итоговое вращение вращает несомую систему координат вокруг несомого x - ось. Модули в градусах.

Пример: [10 20 -15]

Типы данных: double

Поля зрения датчика в виде 2 1 вектора из положительных скалярных величин в степени, [azfov;elfov]. Поле зрения задает общую угловую степень, заполненную датчиком. Азимут зарегистрирован представления azfov должен лечь в интервале (0,360]. Вертикальное изменение зарегистрировано представления elfov должен лечь в интервале (0,180].

Пример: [14;7]

Типы данных: double

Режим сканирования радара в виде 'Mechanical', 'Electronic', 'Mechanical and electronic', или 'No scanning'.

Режимы сканирования

ScanModeЦель
'Mechanical'Радиолокационные обзоры механически через азимут и пределы вертикального изменения заданы MechanicalScanLimits свойство. Шаг направления скана радарным углом поля зрения между живет.
'Electronic'Радиолокационные обзоры электронно через азимут и пределы вертикального изменения заданы ElectronicScanLimits свойство. Шаг направления скана радарным углом поля зрения между живет.
'Mechanical and electronic'Радар механически сканирует опорное направление антенны через механические пределы скана и электронно сканирует лучи относительно опорного направления антенны через электронные пределы скана. Общее поле отношения, отсканированного в этом режиме, является комбинацией механических и электронных пределов скана. Шаг направления скана радарным углом поля зрения между живет.
'No scanning'Радарный луч указывает вдоль опорного направления антенны, заданного mountingAngles свойство.

Пример: 'No scanning'

Типы данных: char

Максимальная механическая частота развертки в виде неотрицательного скаляра или с действительным знаком 2 1 вектор с неотрицательными записями.

Когда HasElevation true, задайте частоту развертки как вектор столбцов 2 на 1 неотрицательных записей, [maxAzRate; maxElRate]. maxAzRate максимальная частота развертки в азимуте и maxElRate максимальная частота развертки в вертикальном изменении.

Когда HasElevation false, задайте частоту развертки как неотрицательный скаляр, представляющий максимальную механическую частоту развертки азимута.

Частоты развертки устанавливают максимальный уровень, на котором радар может механически отсканировать. Радар устанавливает свою частоту развертки продвигаться радарный угол механического устройства полем отношения. Если необходимая частота развертки превышает максимальную частоту развертки, максимальная частота развертки используется. Модули являются степенями в секунду.

Пример: [5,10]

Зависимости

Чтобы включить это свойство, установите ScanMode свойство к 'Mechanical' или 'Mechanical and electronic'.

Типы данных: double

Угловые пределы механических направлений скана радара в виде действительного вектора 1 на 2 строки или матрицы 2 на 2 с действительным знаком. Механические пределы скана задают минимальные и максимальные механические углы, которые радар может отсканировать от его смонтированной ориентации.

Когда HasElevation true, пределы скана принимают форму [minAz maxAz; minEl maxEl]. minAz и maxAz представляйте минимальные и максимальные пределы углового скана азимута. minEl и maxEl представляйте минимальные и максимальные пределы скана угла возвышения. Когда HasElevation false, пределы скана принимают форму [minAz maxAz]. Если вы задаете пределы скана как матрицу 2 на 2, но устанавливаете HasElevation к false, вторая строка матрицы проигнорирована.

Азимутальные пределы скана не могут охватить больше чем 360 °, и пределы скана вертикального изменения должны лечь в закрытом интервале [-90 ° 90 °]. Модули в градусах.

Пример: [-90 90;0 85]

Зависимости

Чтобы включить это свойство, установите ScanMode свойство к 'Mechanical' or 'Mechanical and electronic'.

Типы данных: double

Это свойство доступно только для чтения.

Текущий механический угол сканирования радара, возвращенного как скаляр или с действительным знаком 2 1 вектор. Когда HasElevation true, угол сканирования принимает форму [Az;El]. Az и El представляйте азимут и углы сканирования вертикального изменения, соответственно, относительно смонтированного угла радара на платформе. Когда HasElevation false, угол сканирования является скаляром, представляющим угол сканирования азимута.

Зависимости

Чтобы включить это свойство, установите ScanMode свойство к 'Mechanical' или 'Mechanical and electronic'.

Типы данных: double

Угловые пределы электронных направлений скана радара в виде действительного вектора 1 на 2 строки или матрицы 2 на 2 с действительным знаком. Электронные пределы скана задают минимальные и максимальные электронные углы, которые радар может отсканировать от его текущего механического направления.

Когда HasElevation true, пределы скана принимают форму [minAz maxAz; minEl maxEl]. minAz и maxAz представляйте минимальные и максимальные пределы углового скана азимута. minEl и maxEl представляйте минимальные и максимальные пределы скана угла возвышения. Когда HasElevation false, пределы скана принимают форму [minAz maxAz]. Если вы задаете пределы скана как матрицу 2 на 2, но устанавливаете HasElevation к false, вторая строка матрицы проигнорирована.

Азимутальные пределы скана и пределы скана вертикального изменения должны лечь в закрытом интервале [-90 ° 90 °]. Модули в градусах.

Пример: [-90 90; 0 85]

Зависимости

Чтобы включить это свойство, установите ScanMode свойство к 'Electronic' или 'Mechanical and electronic'.

Типы данных: double

Это свойство доступно только для чтения.

Текущий электронный угол сканирования радара, возвращенного как скаляр или 1 2 вектор-столбец. Когда HasElevation true, угол сканирования принимает форму [Az;El]. Az и El представляйте азимут и углы сканирования вертикального изменения, соответственно. Когда HasElevation false, угол сканирования является скаляром, представляющим угол сканирования азимута.

Зависимости

Чтобы включить это свойство, установите ScanMode свойство к 'Electronic' or 'Mechanical and electronic'.

Типы данных: double

Это свойство доступно только для чтения.

Посмотрите угол эмиттера в виде скаляра или с действительным знаком 2 1 вектор. Посмотрите угол является комбинацией механического угла и электронного угла в зависимости от ScanMode свойство. Когда HasElevation true, угол взгляда принимает форму [Az;El]. Az и El представляйте азимут и углы взгляда вертикального изменения, соответственно. Когда HasElevation false, угол взгляда является скаляром, представляющим угол взгляда азимута.

ScanModeLookAngle
'Mechanical'MechnicalAngle
'Electronic'ElectronicAngle
'Mechanical and Electronic'MechnicalAngle + ElectronicAngle
'No scanning'0

Типы данных: double

Позвольте радару измерить целевые углы возвышения и отсканировать в вертикальном изменении в виде false или true. Установите это свойство на true смоделировать радарный эмиттер, который может оценить целевое вертикальное изменение и скан в вертикальном изменении.

Типы данных: логический

Эффективная изотропная излученная степень передатчика в виде скаляра. EIRP является корневой среднеквадратической входной мощностью к изотропной антенне без потерь, которая дает ту же плотность энергии в далеком поле как фактический передатчик. EIRP равен входной мощности к антенне передатчика (в dBW) плюс передатчик изотропное усиление антенны. Модули находятся в dBi.

Типы данных: double

Центральная частота радарной полосы в виде положительной скалярной величины. Модули находятся в герц.

Пример: 100e6

Типы данных: double

Радарная полоса пропускания формы волны в виде положительной скалярной величины. Модули находятся в герц.

Пример: 100e3

Типы данных: double

Типы обнаруженных форм волны в виде неотрицательного L с целочисленным знаком - вектор элемента.

Пример: [1 4 5]

Типы данных: double

Обработка усиления при демодуляции испускаемой формы волны сигнала в виде скаляра. Обработка усиления достигается путем испускания сигнала по полосе пропускания, которая больше минимальной полосы пропускания, необходимой, чтобы отправить информацию, содержавшуюся в сигнале. Величины в дБ.

Пример: 20

Типы данных: double

Использование

Описание

пример

radarsigs = emitter(platform,simTime) создает радарные сигналы, radarsigs, от эмиттера на platform в текущем времени симуляции, simTime. Эмиттерный объект может одновременно сгенерировать сигналы от нескольких эмиттеров на платформе.

[radarsigs,config] = emitter(platform,simTime) также возвращает эмиттерные настройки, config, в текущем времени симуляции.

Входные параметры

развернуть все

Эмиттерная платформа в виде объекта платформы, Platform, или структура платформы:

Поле Описание
PlatformID

Уникальный идентификатор для платформы в виде скалярного положительного целого числа. Это - обязательное поле, которое не имеет никакого значения по умолчанию.

ClassID

Пользовательское целое число раньше классифицировало тип цели в виде неотрицательного целого числа. Нуль резервируется для несекретных типов платформы и является значением по умолчанию.

Position

Положение цели в сценарии координирует в виде с действительным знаком 1 3 вектор. Это - обязательное поле. Нет никакого значения по умолчанию. Величины в метрах.

Velocity

Скорость платформы в сценарии координирует в виде с действительным знаком 1 3 вектор. Модули исчисляются в метрах в секунду. Значением по умолчанию является [0 0 0].

Speed

Скорость платформы в системе координат сценария, заданной как действительный скаляр. Когда скорость задана, скорость платформы выравнивается с ее ориентацией. Задайте или скорость платформы или скорость, но не обоих. Модули исчисляются в метрах в секунду значение по умолчанию, 0.

Acceleration

Ускорение платформы в координатах сценария, заданных как 1 3 вектор-строка в метрах на второй в квадрате. Значением по умолчанию является [0 0 0].

Orientation

Ориентация платформы относительно локального сценария NED координирует систему координат в виде скалярного кватерниона или 3х3 матрицы вращения. Ориентация задает вращение системы координат от локальной системы координат NED до текущей системы координат тела платформы. Модули являются безразмерными. Значением по умолчанию является quaternion(1,0,0,0).

AngularVelocity

Скорость вращения платформы в сценарии координирует в виде с действительным знаком 1 3 вектор. Величина вектора задает угловую скорость. Направление задает ось по часовой стрелке вращения. Модули в градусах в секунду. Значением по умолчанию является [0 0 0].

Signatures

Массив ячеек подписей, задающих видимость платформы к эмиттерам и датчикам в сценарии. Значением по умолчанию является ячейка {rcsSignature}.

Текущее время симуляции в виде положительной скалярной величины. radarScenario вызовы объектов радарный датчик в интервалах постоянного времени. Радарный эмиттер генерирует новые сигналы, с промежутками заданные UpdateInterval свойство. Значение UpdateInterval свойство должно быть целочисленным кратным интервал времени симуляции. Обновления, которые требуют от эмиттера между интервалами обновления, не содержат обнаружений. Величина в секундах.

Пример: 10.5

Типы данных: double

Выходные аргументы

развернуть все

Радиолокационные излучения, возвращенные как массив radarEmission объекты.

Текущие эмиттерные настройки, возвращенные как массив структур.

Поле Описание
SensorIndex

Уникальный индекс датчика, возвращенный как положительное целое число.

IsValidTime

Допустимое время обнаружения, возвращенное как true или false. IsValidTime false когда обновления обнаружения требуют между интервалами обновления, заданными частотой обновления.

IsScanDone

IsScanDone true когда датчик завершил скан.

FieldOfView

Поле зрения датчика, возвращенного как 2 1 вектор из положительных вещественных значений, [azfov; elfov]. azfov и elfov представляйте поле зрения в азимуте и вертикальном изменении, соответственно.

MeasurementParameters

Параметры измерения датчика, возвращенные как массив структур, содержащих координатную систему координат, преобразовывают, должен был преобразовать положения и скорости в системе координат верхнего уровня к системе координат датчика тока.

Типы данных: struct

Функции объекта

Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj, используйте этот синтаксис:

release(obj)

развернуть все

coverageConfigДатчик и эмиттерная настройка покрытия
perturbationsВозмущение задано на объекте
perturbПримените возмущения, чтобы возразить
stepЗапустите алгоритм Системного объекта
releaseВысвободите средства и позвольте изменения в значениях свойств Системного объекта и введите характеристики
resetСбросьте внутренние состояния Системного объекта

Примеры

свернуть все

Создайте эмиттер, который смотрит от передней стороны передатчика помех.

Создайте платформу, чтобы смонтировать передатчик помех на.

plat = struct( ...
    'PlatformID', 1, ...
    'Position', [0 0 0]);

Создайте эмиттер, который смотрит от передней стороны создающей затор платформы.

jammer = radarEmitter(1,'No scanning');

Испустите создающую затор форму волны.

time = 0;
sig = jammer(plat, time)
sig = 
  radarEmission with properties:

              PlatformID: 1
            EmitterIndex: 1
          OriginPosition: [0 0 0]
          OriginVelocity: [0 0 0]
             Orientation: [1x1 quaternion]
             FieldOfView: [1 5]
         CenterFrequency: 300000000
               Bandwidth: 3000000
            WaveformType: 0
          ProcessingGain: 0
        PropagationRange: 0
    PropagationRangeRate: 0
                    EIRP: 100
                     RCS: 0

Смоделируйте радарный эмиттер для башни управления воздушным движением.

Симулируйте одно полное вращение башни.

rpm = 12.5;
scanrate = rpm*360/60;
fov = [1.4;5];
updaterate = scanrate/fov(1);

Создайте radarScenario объект управлять движением платформ.

scene = radarScenario('UpdateRate', updaterate, ...
    'StopTime', 60/rpm);

Добавьте платформу в сценарий, чтобы разместить башню управления воздушным движением.

tower = platform(scene);

Создайте эмиттер, который обеспечивает 360 наблюдений степени.

radarTx = radarEmitter(1,'Rotator', ...
    'UpdateRate',updaterate, ...
    'MountingLocation',[0 0 -15], ...
    'MaxMechanicalScanRate',scanrate, ...
    'FieldOfView',fov);

Присоедините эмиттер к башне.

tower.Emitters = radarTx
tower = 
  Platform with properties:

       PlatformID: 1
          ClassID: 0
         Position: [0 0 0]
      Orientation: [0 0 0]
       Dimensions: [1x1 struct]
       Trajectory: [1x1 kinematicTrajectory]
    PoseEstimator: [1x1 insSensor]
         Emitters: {[1x1 radarEmitter]}
          Sensors: {}
       Signatures: {[1x1 rcsSignature]}

Вращайте антенну и испустите радарную форму волны.

loggedData = struct('Time', zeros(0,1), ...
    'Orientation', quaternion.zeros(0, 1));
while advance(scene)
    time = scene.SimulationTime;
    txSig = emit(tower, time); 
    loggedData.Time = [loggedData.Time; time];
    loggedData.Orientation = [loggedData.Orientation; ...
        txSig{1}.Orientation];
end

Постройте эмиттерное направление азимута.

angles = eulerd(loggedData.Orientation, 'zyx', 'frame');
plot(loggedData.Time, angles(:,1))
title('Emitted Azimuth')
xlabel('Time (s)')
ylabel('Azimuth (deg)')

Figure contains an axes object. The axes object with title Emitted Azimuth contains an object of type line.

Больше о

развернуть все

Расширенные возможности

Смотрите также

| | |

Введенный в R2021a