radarEmitter

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

Описание

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

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

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

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

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

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

Создание

Синтаксис

emitter = radarEmitter(EmitterIndex)
emitter = radarEmitter(EmitterIndex,'No scanning')
emitter = radarEmitter(EmitterIndex,'Raster')
emitter = radarEmitter(EmitterIndex,'Rotator')
emitter = radarEmitter(EmitterIndex,'Sector')
emitter = radarEmitter(___,Name,Value)

Описание

пример

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 Используя Системные объекты (MATLAB).

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

Пример 2

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

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

Пример 5

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

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

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

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

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

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

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

Поля зрения эмиттера, заданного как 2 1 вектор положительных действительных значений, [azfov;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,config] = emitter(platform,simTime)

Описание

пример

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, irSignature, tsSignature}

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

Пример: 10.5

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

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

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

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

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

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

Уникальный эмиттерный индекс

IsValidTime

Допустимое время эмиссии, возвращенное как 0 или 1. IsValidTime является 0, когда эмиттерные обновления время от времени требуют, которые являются между интервалами обновления, заданными UpdateInterval.

IsScanDone

IsScanDone является true, когда эмиттер завершил сканирование.

FieldOfView

Поле зрения эмиттера.

MeasurementParameters

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

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

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

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

release(obj)

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

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);

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

scene = trackingScenario('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
       Dimensions: [1x1 struct]
       Trajectory: [1x1 kinematicTrajectory]
    PoseEstimator: [1x1 insSensor]
         Emitters: {[1x1 radarEmitter]}
          Sensors: {}
       Signatures: {[1x1 rcsSignature]  [1x1 irSignature]  [1x1 tsSignature]}

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

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)')

Больше о

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

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

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

Классы

Функции

Системные объекты

Введенный в R2018b