radarEmitter

Генератор радиолокационных сигналов и помех

Описание

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

Радиолокационный излучатель изменяет угол обзора между обновлениями, шагая механическое и электронное положение луча с шагами от углового диапазона, заданного в 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 свойство. Этот интервал должен быть целым числом, кратным временному интервалу симуляции, заданному в trackingScenario. Любое обновление, запрошенное от эмиттера между интервалами обновления, не содержит выбросов. Модули указаны в герцах.

Пример: 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' или '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' или '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 чтобы смоделировать радиолокационный излучатель, который может оценить повышение цели и сканировать по повышению.

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

Эффективная изотропная излучаемая степень передатчика, заданная как скаляр. EIRP является корневым средним квадратным входом степени в изотропную антенну без потерь, которая дает ту же плотность степени в дальнем поле, что и фактический передатчик. EIRP равен входу степени в антенну передатчика (в дБВ) плюс коэффициент усиления изотропной антенны передатчика. Модули указаны в 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, irSignature, tsSignature}.

Текущее время симуляции, заданное как положительная скалярная величина. The trackingScenario объект вызывает радар-датчик с регулярными временными интервалами. Радиолокационный излучатель генерирует новые сигналы с интервалами, заданными 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);

Создайте 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
         Position: [0 0 0]
      Orientation: [0 0 0]
       Dimensions: [1x1 struct]
             Mesh: [1x1 extendedObjectMesh]
       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)')

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

Подробнее о

расширить все

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

.
Введенный в R2018b