Эталонные траектории для мультиобъекта

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

Введение

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

Выбор интерполяции

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

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

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

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

Конструкция путевой точки

Следующий файл содержит таблицы путевых точек и скоростей (в единицах измерения и метрах в секунду), которые могут использоваться для восстановления шести траекторий самолета. Загрузите его в 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

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

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

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

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

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

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

Траектория 1

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

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

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

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

Траектория 2

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

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 для создания мультиобъекта сценария отслеживания. В этом примере вы узнали концепции, лежащие в основе интерполяции, используемой внутри waypointTrajectory и были показаны способы воспроизведения сценария с небольшим количеством путевых точек.

Ссылка

  1. W.D. Блэр, Г. А. Уотсон, Т. Кирубараджан, Я. Бар-Шалом, «Бенчмарк для распределения радаров и отслеживания в ECM». Аэрокосмические и электронные системы IEEE Trans on, vol. 34. № 4. 1998