Протестируйте траекторий в сравнении с эталоном для мультиобъектного отслеживания

Этот пример показывает, как сгенерировать и визуализировать траектории нескольких самолетов с помощью trackingScenario и waypointTrajectory.

Введение

Шесть траекторий самолета, смоделированных в этом примере, описаны в [1]. Муха самолета в расположении намеревалась быть принятой радаром, расположенным в начале координат.

Выбор Interpolant

Концептуально говоря, траектория является кривой через пробел, который объект перемещается как функция времени. Чтобы задать кривую, можно думать о кривой через пробел, который проходит через набор точек, названных waypoints, соединенным функцией интерполяции, вызванной interpolant. interpolant позволяет вам задавать путь между waypoints через непрерывную функцию. Общие interpolants являются базирующимся полиномом (например, кусочные линейные или кубические сплайны). Для быстро изменяющейся траектории больше waypoints требуется, чтобы сохранять интерполированную кривую максимально близко к истинной кривой; однако, мы можем сократить количество необходимых точек путем выбора interpolants тщательно.

Много моделей движения, используемых в фильтрах дорожки, состоят из "постоянной скорости", "постоянный поворот", или "постоянное ускорение" профилирует. Чтобы разместить эти модели движения, interpolant, используемый в объекте waypointTrajectory, основан на кусочном сплайне клотоиды (горизонтально) и кубическом сплайне (вертикально). Искривление сплайна клотоиды отличается линейно относительно путешествовавшего расстояния; это позволяет нам образцовые прямые и постоянные повороты легко, имея одну дополнительную степень свободы к переходу гладко между прямыми и изогнутыми сегментами. Точно так же объекты в воздухе испытывают эффекты силы тяжести, после параболического (квадратичного) пути. Наличие кубического сплайна, чтобы смоделировать вертикальное повышение позволяет нам моделировать путь с подобной дополнительной степенью свободы.

Если физический путь через пробел объекта известен (и установлен), скорость объекта, когда функция расстояния переместилась, определяется через кубическую интерполяцию Эрмита. Это полезно для моделирования траекторий объектов, которые ускоряются через повороты или прямые сегменты.

Траектории сравнительного теста, которые мы используем, состоят из прямых, постоянных-g поворотов и поворотов с ускорением.

Конструкция Waypoint

Следующий файл содержит таблицы waypoints и скоростей (в модулях метров и метров в секунду), который может использоваться, чтобы восстановить шесть траекторий самолета. Загрузите его в MATLAB и исследуйте таблицу, содержащую первую траекторию.

load('benchmarkTrajectoryTables.mat', 'trajTable');
trajTable{1}
ans =

  14x3 table

    Time             Waypoints                     Velocities          
    _____    _________________________    _____________________________

        0    72947     29474     -1258     -258.9    -129.69          0
       60    57413     21695     -1258     -258.9    -129.66          0
       62    56905     21417     -1258     -245.3    -153.89          0
     78.1    54591     17566     -1258    -20.635    -288.86          0
       80    54573     17016     -1258    -2.8042    -289.59          0
       83    54571     16147     -1258     -0.061    -289.56          0
      110    54571      8329     -1258          0    -289.56          0
    112.7    54634    7551.5     -1258     58.979    -283.56          0
      120    55718    5785.5     -1258     226.41    -180.59          0
      129    58170    5172.8     -1258     284.74      52.88          0
      132    59004    5413.9     -1258     274.26      93.05          0
    137.8    60592    5962.2     -1258     273.62      94.76          0
    147.8    63328    6909.9     -1258     273.62      94.76          0
      185    73508     10435     -1258     273.62      94.76          0

Генерация сценария

Таблица содержит набор waypoints и скоростей, через которые самолет проходит в соответствующее время.

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

scene = trackingScenario('UpdateRate',10);

for n=1:6
    plat = platform(scene);
    traj = trajTable{n};
    plat.Trajectory = waypointTrajectory(traj.Waypoints, traj.Time, 'Velocities', traj.Velocities);
end

Визуализация траектории

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

helperPlot = helperBenchmarkPlotter(numel(scene.Platforms));

while advance(scene)
    % extract the pose of each of the six aircraft
    poses = platformPoses(scene);

    % update the plot
    update(helperPlot, poses, scene.SimulationTime);
end

Траектории, построенные выше, 3D. Можно вращать график так, чтобы повышение траекторий было с готовностью видимо. Можно использовать view и команды axis, чтобы настроить график. Поскольку траектории используют NED (на северо-восток вниз) система координат, повышение над землей имеет отрицательный z компонент.

view(60,10);
axis square
grid minor
set(gca,'ZDir','reverse');

Траектория 1

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

Контрольные точки, используемые, чтобы создать путь, построены на крайнем левом графике. Только несколько waypoints необходимы, чтобы отметить изменения в искривлении, когда плоскость принимает постоянный оборот.

Графики справа показывают высоту, значение скорости (скорость) и значение ускорения, соответственно. Скорость остается почти постоянной повсюду несмотря на резкое изменение в искривлении. Это - преимущество использования клотоиды interpolant.

[time, position, velocity, acceleration] = cumulativeHistory(helperPlot);
helperTrajectoryViewer(1, time, position, velocity, acceleration, trajTable);

Траектория 2

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

helperTrajectoryViewer(2, time, position, velocity, acceleration, trajTable);

Траектория 3

Третья траектория, показанная ниже, является представительной для более высокого самолета скорости. Это состоит из двух постоянных поворотов, где самолет замедляется на полпути во втором повороте. Вы видите контрольные точки, которые использовались, чтобы отметить изменения в скорости и ускорение в графике x-y слева.

helperTrajectoryViewer(3, time, position, velocity, acceleration, trajTable);

Траектория 4

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

helperTrajectoryViewer(4, time, position, velocity, acceleration, trajTable);

Траектория 5

Пятая траектория является представительной для маневренного высокоскоростного самолета. Это состоит из трех постоянных поворотов; однако это значительно ускоряется в длительности рейса. После третьего поворота самолет возрастает к горизонтальному полету.

helperTrajectoryViewer(5, time, position, velocity, acceleration, trajTable);

Траектория 6

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

helperTrajectoryViewer(6, time, position, velocity, acceleration, trajTable);

Сводные данные

Этот пример показывает, как использовать waypointTrajectory и trackingScenario, чтобы создать сценарий отслеживания мультиобъекта. В этом примере вы изучили концепции позади interpolant, используемого в waypointTrajectory, и были показаны, как сценарий мог быть воспроизведен с небольшим количеством waypoints.

Ссылка

  1. В.Д. Блэр, Г. А. Уотсон, Т. Кирубараджэн, Y. Панель шалом, "Сравнительный тест для Радарного Выделения и Отслеживающий в ECM". Сделка IEEE космических и Электронных систем на, издание 34. № 4. 1998