Этот пример показывает вам, как смоделировать различные радарные режимы сканирования с помощью monostaticRadarSensor
. В этом примере показано, как сконфигурировать monostaticRadarSensor
для нескольких обычно используемых радарных режимов сканирования. С этой моделью можно симулировать радары, которые механически сканируют, электронно сканируют, и которые используют и механическое устройство и электронное сканирование. Пределы сканирования в азимуте и вертикальном изменении конфигурируемы и для механических и для электронных режимов сканирования.
360 сканирований азимута степени
360 сканирований азимута степени являются режимом, обычно находимым и на земле и на бортовых радарах. Этот режим обеспечивает 360 наблюдений степени путем механического сканирования антенны радара в азимуте. В этом режиме радары обычно используют луч вентилятора, который имеет узкое поле зрения в азимуте, но покрывает широкий промежуток вертикального изменения. Эти радары предоставляют точный спектр и измерения азимута, но обычно не сообщают о вертикальном изменении для обнаруженных целей. Типичный пример 360 радаров сканирования азимута степени является радаром наблюдения аэропорта.
Используйте функциональный helperScanRadarModesExample
создать trackingScenario
с платформой, чтобы смонтировать радар и три цели. Эта функция также настраивает theaterPlot
отобразить местоположения целей, луча и положения опорного направления для радара и обнаружений, сгенерированных радаром.
Можно узнать больше об использовании trackingScenario
и theaterPlot
от Введения до Отслеживания Сценария и Симуляции примера Обнаружений Датчика.
% Initialize trackingScenario for simulation and theaterPlot for % visualization ts = trackingScenario; [platform,fig] = helperScanRadarModesExample('Setup tracking scenario',ts); % Set random seed for repeatable results rng(2018)
Создайте радар, который механически вращает его антенну 360 градусов в области азимута. Смонтируйте его на 15 метров выше платформы с отклонением от курса-135 градусов осей платформы. Увеличьте поле зрения азимута для лучшей видимости в отображенных фигурах.
% Create a 360 degree mechanically rotating radar radar = monostaticRadarSensor(1,'rotator'); % Locate the radar 15 meters above the platform radar.MountingLocation = [0 0 -15]; % Rotate the radar so that it is yawed -135 degrees from the platform's axes radar.MountingAngles(1) = -135; % Set the radar's azimuth field of view to 5 degrees to display larger beams radar.FieldOfView(1) = 5; % Display configured radar radar
radar = monostaticRadarSensor with properties: SensorIndex: 1 UpdateRate: 1 ScanMode: 'Mechanical' MountingLocation: [0 0 -15] MountingAngles: [-135 0 0] MaxUnambiguousRange: 100000 MaxUnambiguousRadialSpeed: 200 FieldOfView: [2x1 double] MaxMechanicalScanRate: 75 MechanicalScanLimits: [0 360] MechanicalAngle: 0 LookAngle: 0 DetectionProbability: 0.9000 FalseAlarmRate: 1.0000e-06 Use get to show all properties
Сконфигурируйте радар, чтобы механически отсканировать на уровне 2 об/мин. В этом режиме радарные лучи расписаний в каждом живут, которые расположены с интервалами азимутальным полем зрения радара. Частота обновления радара затем вычисляется из желаемой частоты развертки и ее азимутального поля зрения.
rpm = 2; fov = radar.FieldOfView; scanrate = rpm*360/60; % deg/s updaterate = scanrate/fov(1) % Hz radar.UpdateRate = updaterate;
updaterate = 2.4000
Используйте trackingScenario
симулировать движение целей в сценарии и генерировать обнаружения с помощью механически вращающейся радарной модели. helperScanRadarModesExample
используется, чтобы обновить theaterPlot
с положениями платформы радарный луч и местоположение опорного направления и обнаружения сгенерированы на каждом шаге симуляции.
% Configure trackingScenario to advance at the radar's update rate. ts.UpdateRate = radar.UpdateRate; % Run simulation figure(fig); title('360 Degree Azimuth Scan'); while advance(ts) && ishghandle(fig) % Current simulation time simTime = ts.SimulationTime; % Current target positions targets = targetPoses(platform); % Generate target detections at current scan position dets = radar(targets,simTime); % Update display helperScanRadarModesExample('Update display',ts,platform,radar,dets); % Take a snapshot of detection on inbound target takeSnapshot = simTime> 5 && any(cellfun(@(d)d.ObjectAttributes{1}.TargetIndex,dets)==2); snapped = helperScanRadarModesExample('Snapshot',fig,takeSnapshot); if snapped close(fig); end end
Предыдущие рисунки показывают обнаружение входящей цели в 3-D и 2D представлениях. Входящая цель обнаруживается радаром, когда его луч развертывается через его положение. Опорное направление радара показывается черным цветом, пунктирным. Текущий луч радара показывается синей, пунктирной линией. Историю луча и положений опорного направления показывают в шкале полутонов с более свежими положениями, показанными как черная и более старыми положениями, исчезающими белому.
360 сканирований азимута степени с наклоненным покрытием вертикального изменения
В предыдущем разделе опорное направление антенны радара (черный, пунктирный) было ограничено лечь в горизонтальной плоскости, приводящей к половине луча радара, направленного ниже горизонтальной плоскости. Если вы моделируете наземный радар, можно хотеть наклонить опорное направление радара вверх так, чтобы только область над землей была рассмотрена радаром. С другой стороны, для бортовой платформы, можно желать указать луч радара вниз, рассмотреть цели на высотах ниже платформы радара.
Наклоните опорное направление радарной антенны так, чтобы ни один из промежутка вертикального изменения луча не находился ниже земли. Для этого включите вертикальное изменение для радара и установите пределы сканирования механического устройства вертикального изменения, чтобы искать с нуля на полное поле зрения вертикального изменения. Затем установите поле зрения вертикального изменения немного быть больше вертикального изменения, заполненного механическими пределами сканирования так, чтобы никакое растровое сканирование не было выполнено радаром (растровое сканирование обращено в следующем разделе).
Как ранее упомянуто, радар планирует лучи, которые расположены с интервалами азимутом и полем зрения вертикального изменения, чтобы покрыть целые механические пределы сканирования. Устанавливая поле зрения вертикального изменения быть немного больше, чем механические пределы сканирования в вертикальном изменении, радар помещает лучи посреди механических пределов сканирования.
Эта настройка была уже настроена, когда вы создали радар с помощью настройки 'вращающего устройства'. Все, что необходимо сделать, включают вертикальное изменение.
release(radar);
radar.HasElevation = true;
% Confirm mechanical scan limits
radar.MechanicalScanLimits
ans = 0 360 -10 0
% Confirm elevation field of view is slightly larger than the elevation % spanned by the scan limits so that raster scan is not performed elSpan = diff(radar.MechanicalScanLimits(2,:)) isLarger = radar.FieldOfView(2)>elSpan
elSpan = 10 isLarger = logical 1
Используйте helperScanRadarModesExample
функционируйте, чтобы запустить симуляцию, как был сделан при помощи цикла с условием продолжения в предыдущем разделе.
helperScanRadarModesExample('Run simulation',ts,platform,radar,2);
В предыдущих фигурах вы замечаете, что антенна наклоняется вверх так, чтобы никакая радарная энергия не была направлена ниже земли. Целый радарный луч (синие, пунктирные линии) находится над землей.
360 азимутов степени с растром вертикального изменения
Иногда радар должен выполнить 360 наблюдений степени, которые покрывают область, больше, чем может быть заполнено ее полем зрения вертикального изменения. В этом случае радар механически вращается в азимуте и механически продвигается своя антенна в вертикальное изменение в конце каждых 360 сканирований степени. Это - форма растрового сканирования, где каждая растровая панель расположена с интервалами полем зрения вертикального изменения радара через пределы сканирования вертикального изменения радара.
Setup радар, чтобы отсканировать 10 областей степени над землей с помощью луча, который охватывает 5 градусов в области вертикального изменения. Это производит 3 растровых панели вертикального изменения в 0,-5, и-10 вертикальных изменений степеней.
release(radar); elFov = 5; % deg radar.FieldOfView(2) = elFov; radar.MechanicalScanLimits(2,:) = [-10 0]-elFov/2; % Increase the scan rate of the radar to show 2 complete cycles of the % raster scan pattern. rpm = 5; fov = radar.FieldOfView; scanrate = rpm*360/60; % deg/s updaterate = scanrate/fov(1); % Hz radar.UpdateRate = updaterate; % Run the simulation helperScanRadarModesExample('Run simulation',ts,platform,radar,3);
Два предыдущих рисунка показывают положения луча радара. Фигура слева показывает позиции луча шагов вниз луча сначала к второй растровой панели (заметьте шаг в вертикальном изменении посреди фигуры). Рисунок справа показывает положения луча после того, как предыдущая развертка растра завершилась. В этом случае радар подходит от третьей растровой панели до второй растровой панели. Расстояние между каждой растровой панелью является полем зрения вертикального изменения радара.
Механическое сканирование сектора азимута
Сканирование всех 360 секторов степени является трудоемким. Если цели интереса, как известно, занимают меньшую область, сканирование сектора обычно используется. Путем сканирования по меньшему сектору азимута более высокая частота обновления достигается для каждой цели в секторе, не увеличивая механическую частоту развертки радара.
Setup радар, чтобы отсканировать 90 секторов азимута степени путем установления механических пределов сканирования, чтобы охватить 45 градусов по обе стороны от смонтированной ориентации радара. Отключите вертикальное изменение, чтобы ограничить луч радара к горизонтальной плоскости.
Setup monostaticRadarSensor
с этой настройкой путем определения настройки 'Сектора' для радара.
radar = monostaticRadarSensor(1, 'Sector','MountingAngles',[-135 0 0],'MountingLocation',[0 0 -15]); % Set the radar's azimuth field of view to 5 degrees to display larger beams radar.FieldOfView(1) = 5; % Set the update rate to show multiple cycles of the sector scan rpm = 2; fov = radar.FieldOfView; scanrate = rpm*360/60; % deg/s updaterate = scanrate/fov(1); % Hz radar.UpdateRate = updaterate; % Run the simulation helperScanRadarModesExample('Run simulation',ts,platform,radar,4);
Верхняя строка фигур показывает первое сканирование сектора азимута с лучом, пересекающим сектор слева к правой стороне фигуры. Нижний ряд показывает следующее сканирование сектора азимута, где направление механического сканирования инвертировало, пересекая фигуру справа налево.
Еще раз половина луча радара находится ниже горизонтальной наземной плоскости. Можно механически наклонить луч восходящее или нисходящее использование того же метода, как вы использовали в предыдущем разделе 360 Сканирований Азимута Степени с Наклоненным Покрытием Вертикального изменения.
Механическое сканирование сектора азимута с электронным сканированием вертикального изменения
Некоторое радарное сканирование механически в азимуте и электронно складывает несколько лучей в вертикальном изменении в опорном направлении антенны. Это избегает потребности выполнить развертку растра, чтобы медленно найти необходимую область. Электронно регулирование и обработка нескольких лучей на сингле живут, положение требует более сложного оборудования антенны и алгоритмов обработки сигналов, но обеспечивает более высокие частоты обновления на каждой цели в секторе.
Сконфигурируйте радар, чтобы механически отсканировать его луч в азимуте, в то время как обработка 10 полей зрения вертикального изменения степени путем электронной укладки нескольких лучей вертикального изменения в каждом живет положение.
release(radar); % Enable mechanical and electronic scanning radar.ScanMode = 'Mechanical and electronic'; % Enable elevation scanning and measurements radar.HasElevation = true; % Elevation scanning is performed electronically. Set the electronic scan % limits in elevation to the mechanical scan limits. Set the mechanical % scan limits to zero to disable mechanical scan in elevation radar.ElectronicScanLimits(:) = 0; radar.ElectronicScanLimits(2,:) = radar.MechanicalScanLimits(2,:); radar.MechanicalScanLimits(2,:) = [0 0]; % Confirm that the elevation field of view is greater than the elevation % spanned by the scan limits elSpan = diff(radar.ElectronicScanLimits(2,:)) isLarger = radar.FieldOfView(2)>elSpan
elSpan = 10 isLarger = logical 1
% Run the simulation helperScanRadarModesExample('Run simulation',ts,platform,radar,5);
Предыдущие рисунки показывают радар, обнаруживающий входящую цель. Заметьте, что опорное направление радара (черный, пунктирный) находится в горизонтальной наземной плоскости, но что луч радара возмещен в вертикальном изменении от его опорного направления. Это смещение положения луча от опорного направления радара выполняется путем электронного регулирования лучей в вертикальном изменении.
Электронное сканирование сектора азимута
Сектор азимута может быть рассмотрен с помощью электронного сканирования также. Электронно отсканируйте тот же сектор азимута путем создания monostaticRadarSensor
использование 'Сектора' сканирует настройку со своим набором режима сканирования к 'Электронному' вместо 'Механического устройства'. Включите вертикальное изменение так, чтобы область над землей была отсканирована путем укладки лучей в вертикальном изменении, чтобы охватить целые пределы сканирования вертикального изменения.
radar = monostaticRadarSensor(1, 'Sector','ScanMode','Electronic','HasElevation',true, ... 'MountingAngles',[-135 0 0],'MountingLocation',[0 0 -15]); % Set update rate to show multiple cycles of the raster scan pattern radar.UpdateRate = updaterate; % Set the radar's azimuth field of view to 5 degrees to display larger beams radar.FieldOfView(1) = 5; % Run the simulation helperScanRadarModesExample('Run simulation',ts,platform,radar,6);
Предыдущие рисунки показывают, что электронные сканирования сектора всегда сканируют в том же направлении (в этом случае с левой стороны фигуры к правой стороне фигуры). В отличие от механического сканирования, где следующее положение луча ограничивается текущим механическим положением антенны, электронное сканирование может мгновенно переместить лучи в отсканированном секторе.
Механическая развертка растра
Радар может быть легко сконфигурирован, чтобы выполнить механический шаблон развертки растра можно следующим образом.
radar = monostaticRadarSensor(1, 'Raster','MountingAngles', [-135 0 0], 'MountingLocation', [0 0 -15]); % Set update rate to show multiple cycles of the raster scan pattern radar.UpdateRate = updaterate; % Set the radar's azimuth field of view to 5 degrees to display larger beams radar.FieldOfView(1) = 5; % Run the simulation helperScanRadarModesExample('Run simulation',ts,platform,radar,7);
Предыдущие рисунки показывают положение луча радара вдоль каждой из 3 панелей развертки растра вертикального изменения радара. В конце каждого сканирования азимута радар продвигается в вертикальное изменение своим полем зрения и инвертирует направление своего сканирования азимута. Когда предел сканирования вертикального изменения достигнут, радар начинает новую развертку растра путем инвертирования направления, в котором это продвигается лучи в вертикальное изменение.
Можно использовать эту настройку в качестве начальной точки и настроить механические пределы сканирования и поле зрения, чтобы совпадать с шаблоном сканирования для радара, который вы хотите смоделировать.
Электронная развертка растра
Можно также сконфигурировать радар, чтобы выполнить электронный шаблон развертки растра. Электронные шаблоны развертки растра сразу повторяют ту же последовательность сканирования после каждого сканирования, но механический растр инвертирует свою последовательность сканирования, чтобы возвратить механическое положение антенны назад в его источник.
Сконфигурируйте радар, чтобы выполнить электронную развертку растра путем установки ее режима сканирования на 'Электронный'.
radar = monostaticRadarSensor(1,'Raster','ScanMode','Electronic','MountingAngles',[-135 0 0],'MountingLocation',[0 0 -15]); % Set update rate to show multiple cycles of the raster scan pattern radar.UpdateRate = updaterate; % Set the radar's azimuth field of view to 5 degrees to display larger beams radar.FieldOfView(1) = 5; % Run the simulation helperScanRadarModesExample('Run simulation',ts,platform,radar,8);
Предыдущие рисунки показывают положение луча радара вдоль каждой из 3 панелей развертки растра вертикального изменения радара. В конце каждого сканирования азимута радар продвигается в вертикальное изменение своим полем зрения и продолжает сканировать в азимуте в том же направлении как предыдущее сканирование. Когда предел сканирования вертикального изменения достигнут, радар повторяет ту же последовательность положений развертки растра. С электронным сканированием радар может мгновенно возвратиться к началу шаблона сканирования и не ограничивается текущим механическим положением радара.
Можно использовать эту настройку в качестве начальной точки и настроить электронные пределы сканирования и поле зрения, чтобы совпадать с шаблоном сканирования для радара, который вы хотите смоделировать.
Этот пример показывает вам, как смоделировать много общих шаблонов сканирования с помощью monostaticRadarSensor
. Эта модель обеспечивает предварительные установки, которые позволяют вам быстро сконфигурировать радар и внести дополнительные незначительные корректировки в параметры сканирования, чтобы совпадать с радаром, который вы моделируете.