Этот пример показывает вам, как смоделировать различные режимы радиолокационного обзора с помощью fusionRadarSensor
. В этом примере показано, как сконфигурировать fusionRadarSensor
для нескольких обычно используемых режимов радиолокационного обзора. С этой моделью можно симулировать радары, которые механически сканируют, электронно сканируют, и которые используют и механическое устройство и электронное сканирование. Пределы скана в азимуте и вертикальном изменении конфигурируемы и для механических и для электронных режимов сканирования.
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 = fusionRadarSensor(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 = fusionRadarSensor with properties: SensorIndex: 1 UpdateRate: 1 DetectionMode: 'Monostatic' ScanMode: 'Mechanical' InterferenceInputPort: 0 EmissionsInputPort: 0 MountingLocation: [0 0 -15] MountingAngles: [-135 0 0] FieldOfView: [5 10.0000] RangeLimits: [0 100000] DetectionProbability: 0.9000 FalseAlarmRate: 1.0000e-06 ReferenceRange: 100000 TargetReportFormat: 'Clustered detections' 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.MechanicalAzimuthLimits
radar.MechanicalElevationLimits
ans = 0 360 ans = -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.MechanicalElevationLimits) 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.MechanicalElevationLimits = [-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 fusionRadarSensor
с этой настройкой путем определения настройки 'Сектора' для радара.
radar = fusionRadarSensor(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 % azimuth scan limits to zero to disable electronic azimuth scan. Set the % mechanical elevation scan limits to zero to disable mechanical elevation % scan radar.ElectronicAzimuthLimits = [0 0]; radar.MechanicalElevationLimits = [0 0]; % Confirm that the elevation field of view is greater than the elevation % spanned by the scan limits elSpan = diff(radar.ElectronicElevationLimits) isLarger = radar.FieldOfView(2)>elSpan
elSpan = 10 isLarger = logical 1
% Run the simulation helperScanRadarModesExample('Run simulation',ts,platform,radar,5);
Предыдущие рисунки показывают радар, обнаруживающий входящую цель. Заметьте, что опорное направление радара (черный, пунктирный) находится в горизонтальной наземной плоскости, но что луч радара возмещен в вертикальном изменении от его опорного направления. Это смещение положения луча от опорного направления радара выполняется путем электронного регулирования лучей в вертикальном изменении.
Электронный скан сектора азимута
Сектор азимута может быть рассмотрен с помощью электронного сканирования также. Электронно отсканируйте тот же сектор азимута путем создания fusionRadarSensor
использование 'Сектора' сканирует настройку со своим набором режима сканирования к 'Электронному' вместо 'Механического устройства'. Включите вертикальное изменение так, чтобы область над землей была отсканирована путем укладки лучей в вертикальном изменении, чтобы охватить целые пределы скана вертикального изменения.
radar = fusionRadarSensor(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 = fusionRadarSensor(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 = fusionRadarSensor(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 панелей развертки растра вертикального изменения радара. В конце каждого скана азимута радар продвигается в вертикальное изменение своим полем зрения и продолжает сканировать в азимуте в том же направлении как предыдущий скан. Когда предел скана вертикального изменения достигнут, радар повторяет ту же последовательность положений развертки растра. С электронным сканированием радар может мгновенно возвратиться к началу шаблона скана и не ограничивается текущим механическим положением радара.
Можно использовать эту настройку в качестве начальной точки и настроить электронные пределы скана и поле зрения, чтобы совпадать с шаблоном скана для радара, который вы хотите смоделировать.
Этот пример показывает вам, как смоделировать много общих шаблонов скана с помощью fusionRadarSensor
. Эта модель обеспечивает предварительные установки, которые позволяют вам быстро сконфигурировать радар и внести дополнительные незначительные корректировки в параметры скана, чтобы совпадать с радаром, который вы моделируете.