Этот пример содержит приложение, которое загружает записанный заранее сценарий отслеживания. Используя приложение, можно добавить, изменить или удалить платформы, датчики платформы, цели, целевые подписи и траектории всех объектов в сценарии. Можно также экспортировать сценарий как скрипт MATLAB, который можно изменить позже.
Цель объектного отслеживания состоит в том, чтобы определить местоположение объекта в присутствии нечастых или неопределенных измерений. В случае нескольких объектов неопределенность в измерении может препятствовать точности отслеживания алгоритмов. Чтобы протестировать эти алгоритмы, сценарий отслеживания может использоваться, чтобы искусственно сгенерировать реалистические обнаружения объектов на 3D арене.
Этот пример содержит радарную башню, оборудованную моностатическим радарным датчиком. На расстоянии, далеком от датчика, два самолета, которые летят очень друг близко к другу для короткой продолжительности времени. Близкий интервал траекторий объектов и их расстояний от радарной башни мешает радару правильно разрешать два объекта.
Чтобы проиллюстрировать проблему, рисунок показывает радар с 1,5 разрешениями азимута степени. В области значений 20 км радарный интервал датчика имеет ширину вышеупомянутых 540 м, что означает, что любое обнаружение, о котором сообщают из той области значений, расположено в центре интервала с неопределенностью на ±270 м по поводу этого. О любых двух целях в этом интервале сообщают как одно обнаружение.
Обнаружения, сгенерированные из этого сценария, могут использоваться, чтобы сравнить различные алгоритмы отслеживания. Для примера, который сравнивает различные средства отслеживания, которые используют эти обнаружения, смотрите Отслеживающие Близко расположенные Цели Под Неоднозначностью.
Чтобы видеть, что простое приложение содержит этот сценарий, можно запустить этот пример. Приложение может использоваться, чтобы сгенерировать скрипт MATLAB, который может быть далее изменен, чтобы добавить алгоритмы отслеживания.
Чтобы запустить пример, введите:
helperTrackingScenarioDesignerExample
Приложение состоит из панели инструментов и трех областей:
диалоговое окно для редактирования свойств слева
двумерный холст для редактирования в центре
3D область для визуализации полного сценария справа.
Чтобы видеть Холст Датчика, показанный выше, кликните по вкладке Sensor Canvas в группе холста.
Нажмите Run Scenario, чтобы запустить симуляцию.
Вы будете видеть эти две плоскости (отмеченный полыми треугольниками) перемещающийся в Холст Сценария и Представление Сценария. Когда самолет обнаруживается башней, вы видите, что темно-фиолетовый маркер показывает кратко в момент обнаружения.
Чтобы лучше наблюдать сцену, можно использовать панель инструментов камеры. Например, увеличьте масштаб близости двух самолетов и вращайте представление, чтобы наблюдать самолет сверху.
Нажмите Time-Altitude, чтобы показать график вертикального изменения, в то время как симуляция запускается.
Новый набор осей появляется в Графике Сценария, который показывает график высоты по сравнению со временем. Можно также перетащить маркер к произвольному моменту времени в сценарии:
Серая область справа постепенно уменьшается, пока симуляция не закончена. Серая область показывает, как далеко вовремя симуляция достигла. Данные из моментов времени в серой области не доступны, пока симуляция не достигает тех моментов времени.
Чтобы наблюдать создание обнаружения как, луч сканирует цель, используйте управление воспроизведением, которое позволяет вам делать паузу, отступать, и шаг передает симуляцию.
Чтобы выйти из симуляции и позволить редактировать, нажмите Cancel Simulation.
Чтобы просмотреть и отредактировать код, используемый, чтобы спроектировать сценарий, можно экспортировать сценарий в MATLAB. Если этот сценарий находится в MATLAB, можно добавить средства отслеживания и взаимодействовать со сценарием программно.
Нажмите Export, чтобы просмотреть эквивалентный код, который создает сценарий.
После нажатия Export вы будете видеть скрипт, который может быть сохранен в имя файла по вашему выбору. Углы камеры Представления Сценария также экспортируются в скрипт.
Если скрипт сохранен, можно запустить его и наблюдать анимированный театральный график в MATLAB.
В экспортируемом скрипте некоторый дополнительный код введен как комментарий специально для этого примера. Чтобы включить плоттер покрытия, можно не прокомментировать следующие строки кода:
covp = helperCoveragePlotter(tp.Parent);
...
covp.plotCoverages(helperCoverageData(scenario));
После повторного выполнения скрипта можно наблюдать зону охвата:
Можно не прокомментировать остающийся прокомментированный код, чтобы задать средство отслеживания как показано в Отслеживающих Близко расположенных Целях Под примером Неоднозначности.
Примечание: Этот код, возможно, должен быть изменен, если вы редактируете или используете различный сценарий.
trackp = trackPlotter(tp,'DisplayName','Tracks','ConnectHistory','on','ColorizeHistory','on'); % Define tracker numTracks = 20; gate = 45; vol = 1e9; beta = 1e-14; pd = 0.8; far = 1e-6; tracker = trackerJPDA(... 'FilterInitializationFcn',@initCVFilter,... 'MaxNumTracks', numTracks, ... 'MaxNumSensors', 1, ... 'AssignmentThreshold',gate, ... 'TrackLogic','Integrated',... 'DetectionProbability', pd, ... 'ClutterDensity', far/vol, ... 'NewTargetDensity', beta,... 'TimeTolerance',0.05); % Main simulation loop detBuffer = {};
Необходимо будет также не прокомментировать следующий код в основном цикле симуляции:
detBuffer = [detBuffer allDets]; %#ok<AGROW> if configs.IsScanDone tracks = tracker(detBuffer,scenario.SimulationTime); pos = getTrackPositions(tracks,[1 0 0 0 0 0; 0 0 1 0 0 0 ; 0 0 0 0 1 0]); labels = string([tracks.TrackID]); trackp.plotTrack(pos,labels); detBuffer = {}; end
Можно затем наблюдать анимацию отслеживания путем повторного выполнения скрипта:
В этом примере вы сгенерировали скрипт, который содержал два самолета, обнаруженные одним датчиком. Для фрагмента времени, самолет, выведенный достаточно близко вместе, чтобы мешать датчику разрешать их полностью. Вы изменили скрипт, чтобы добавить средство отслеживания JPDA.