radarEmitter

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

Описание

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

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

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

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

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

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

Создание

Описание

пример

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, от эмиттера на 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