Симулируйте сценарий отслеживания Используя интерактивное приложение

Этот пример содержит приложение, которое загружает записанный заранее сценарий отслеживания. Используя приложение, можно добавить, изменить или удалить платформы, датчики платформы, цели, целевые подписи и траектории всех объектов в сценарии. Можно также экспортировать сценарий как скрипт MATLAB, который можно изменить позже.

Введение

Цель объектного отслеживания состоит в том, чтобы определить местоположение объекта в присутствии нечастых или неопределенных измерений. В случае нескольких объектов неопределенность в измерении может препятствовать точности отслеживания алгоритмов. Чтобы протестировать эти алгоритмы, сценарий отслеживания может использоваться, чтобы искусственно сгенерировать реалистические обнаружения объектов на 3D арене.

Этот пример содержит радарную башню, оборудованную моностатическим радарным датчиком. На расстоянии, далеком от датчика, два самолета, которые летят очень друг близко к другу для короткой продолжительности времени. Близкий интервал траекторий объектов и их расстояний от радарной башни мешает радару правильно разрешать два объекта.

Чтобы проиллюстрировать проблему, рисунок показывает радар с 1,5 разрешениями азимута степени. В области значений 20 км радарный интервал датчика имеет ширину вышеупомянутых 540 м, что означает, что любое обнаружение, о котором сообщают из той области значений, расположено в центре интервала с неопределенностью на ±270 м по поводу этого. О любых двух целях в этом интервале сообщают как одно обнаружение.

Обнаружения, сгенерированные из этого сценария, могут использоваться, чтобы сравнить различные алгоритмы отслеживания. Для примера, который сравнивает различные средства отслеживания, которые используют эти обнаружения, смотрите Отслеживающие Близко расположенные Цели Под Неоднозначностью.

Чтобы видеть, что простое приложение содержит этот сценарий, можно запустить этот пример. Приложение может использоваться, чтобы сгенерировать скрипт MATLAB, который может быть далее изменен, чтобы добавить алгоритмы отслеживания.

Запуск приложения

Чтобы запустить пример, введите:

helperTrackingScenarioDesignerExample

Приложение состоит из панели инструментов и трех областей:

  • диалоговое окно для редактирования свойств слева

  • двумерный холст для редактирования в центре

  • 3D область для визуализации полного сценария справа.

Чтобы видеть Холст Датчика, показанный выше, кликните по вкладке Sensor Canvas в группе холста.

Нажмите Run Scenario, чтобы запустить симуляцию.

Вы будете видеть эти две плоскости (отмеченный полыми треугольниками) перемещающийся в Холст Сценария и Представление Сценария. Когда самолет обнаруживается башней, вы видите, что темно-фиолетовый маркер показывает кратко в момент обнаружения.

Чтобы лучше наблюдать сцену, можно использовать панель инструментов камеры. Например, увеличьте масштаб близости двух самолетов и вращайте представление, чтобы наблюдать самолет сверху.

Информация о высоте

Нажмите Time-Altitude, чтобы показать график вертикального изменения, в то время как симуляция запускается.

Новый набор осей появляется в Графике Сценария, который показывает график высоты по сравнению со временем. Можно также перетащить маркер к произвольному моменту времени в сценарии:

Серая область справа постепенно уменьшается, пока симуляция не закончена. Серая область показывает, как далеко вовремя симуляция достигла. Данные из моментов времени в серой области не доступны, пока симуляция не достигает тех моментов времени.

Управление воспроизведением

Чтобы наблюдать создание обнаружения как, луч сканирует цель, используйте управление воспроизведением, которое позволяет вам делать паузу, отступать, и шаг передает симуляцию.

Чтобы выйти из симуляции и позволить редактировать, нажмите Cancel Simulation.

Экспорт в MATLAB

Чтобы просмотреть и отредактировать код, используемый, чтобы спроектировать сценарий, можно экспортировать сценарий в MATLAB. Если этот сценарий находится в MATLAB, можно добавить средства отслеживания и взаимодействовать со сценарием программно.

Нажмите Export, чтобы просмотреть эквивалентный код, который создает сценарий.

После нажатия Export вы будете видеть скрипт, который может быть сохранен в имя файла по вашему выбору. Углы камеры Представления Сценария также экспортируются в скрипт.

Выполнение сгенерированного скрипта

Визуализация целей и обнаружений

Если скрипт сохранен, можно запустить его и наблюдать анимированный театральный график в MATLAB.

Добавление зон охвата

В экспортируемом скрипте некоторый дополнительный код введен как комментарий специально для этого примера. Чтобы включить плоттер покрытия, можно не прокомментировать следующие строки кода:

covp = helperCoveragePlotter(tp.Parent);

...

covp.plotCoverages(helperCoverageData(scenario));

Визуализация зон охвата

После повторного выполнения скрипта можно наблюдать зону охвата:

Добавление средства отслеживания JPDA

Можно не прокомментировать остающийся прокомментированный код, чтобы задать средство отслеживания как показано в Отслеживающих Близко расположенных Целях Под примером Неоднозначности.

Примечание: Этот код, возможно, должен быть изменен, если вы редактируете или используете различный сценарий.

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.