singer

Ускоряющая модель движения Зингера

Описание

пример

updatedstates = singer(states) возвращает обновленные состояния в текущий states на основе ускоряющей модели движения Зингера. Временной шаг по умолчанию составляет 1 секунду.

updatedstates = singer(states,dt) задает временной шаг, dt, в секундах.

updatedstates = singer(states,dt,tau) задает целевую постоянную времени маневра, tau, в секундах. Целевая постоянная времени маневра по умолчанию составляет 20 секунд.

Примеры

свернуть все

Задайте матрицу состояния для 2D ускоряющего движения Зингера.

states = [1 2 2.5;1 2.5 3;0 -1 2;2 3 -1;5 0 3;-2 4 2];

Предскажите состояния при помощи интервала временного шага по умолчанию dt = 1 секунда.

states = singer(states)
states = 6×3

    2.0000    4.0082    6.4835
    1.0000    1.5246    4.9508
         0   -0.9512    1.9025
    6.0165    4.9671    2.9835
    3.0492    3.9016    4.9508
   -1.9025    3.8049    1.9025

Предскажите состояние при помощи dt = 0,1 секунды.

states = singer(states,0.1)
states = 6×3

    2.1000    4.1559    6.9881
    1.0000    1.4297    5.1406
         0   -0.9465    1.8930
    6.3119    5.3762    3.4881
    2.8594    4.2812    5.1406
   -1.8930    3.7859    1.8930

Задайте вектор состояния для 2D ускоряющего движения Зингера.

state = [10;-10;3;0;10;-3];
dt = 0.2; % time step in seconds
tau = 10; % maneuver time in seconds

Используйте singer функция, чтобы создать траекторию и измерить положения с помощью singermeas функция.

positions = zeros(2,100); % Pre-allocate memory
measurements = zeros(3,100); % Pre-allocate memory
for i = 1:1:100
    state = singer(state, dt, tau);
    positions(:,i) = [state(1); state(4)];
    measurements(:,i) = singermeas(state);
end

Визуализируйте результаты.

plot(positions(1,:), positions(2,:))
hold on
plot(measurements(1,:), measurements(2,:), '.')
title('Singer Acceleration Model'); 
xlabel('X[m]'); ylabel('Y[m]');
legend('Trajectory', 'Measurements'); 

Входные параметры

свернуть все

Текущие состояния в виде 3N с действительным знаком-by-1 вектор или 3N с действительным знаком-by-M матрица. N является пространственной степенью состояния, и M является количеством состояний.

Вектор состояния в каждом столбце принимает различные формы на основе своих пространственных размерностей.

Пространственные степениСтруктура вектора состояния
1D[x;vx;ax]
2D[x;vx;ax;y;vy;ay]
3-D[x;vx;ax;y;vy;ay;z;vz;az]

Например, x представляет x - координата, vx представляет скорость в x - направление и ax представляет ускорение в x - направление. Если модель движения находится на одномерном пробеле, y - и z - оси приняты, чтобы быть нулем. Если модель движения находится в двумерном пространстве, значениях вдоль z - ось принята, чтобы быть нулем. Координаты положения исчисляются в метрах. Скоростные координаты находятся в метрах/секунда. Ускоряющие координаты находятся в m/s2.

Пример: [5;0.1;0.01;0;-0.2;-0.01;-3;0.05;0]

Временной шаг в виде положительной скалярной величины в секундах.

Пример: 0.5

Целевая постоянная времени маневра в виде положительной скалярной величины или N - вектор элемента из скаляров в секундах. N является пространственной степенью состояния. Когда задано как вектор, каждый элемент применяется к соответствующей пространственной размерности.

Пример: 30

Выходные аргументы

свернуть все

Обновленные состояния, возвращенные как 3N с действительным знаком-by-1 вектор или 3N с действительным знаком-by-M матрица. N является пространственной степенью состояния, и M является количеством состояний. updatedStates выведите имеет точно ту же форму как states входной параметр.

Алгоритмы

Ускоряющая модель Зингера принимает ускорение на временном шаге k +1, который зависит от ускорения на временном шаге k с экспоненциальным затуханием как:

a(k+1)=a(k)*exp(T/τ)

где a (k) является ускорением на временном шаге k, T является временным шагом, и τ является целевой постоянной времени маневра.

Для 1D Зингера модель утверждает p = [x, vx, ax] T, распространение состояния:

p(k)=[1T(αT1eαT)/α201(1eαT)/α00eαT]p(k)+w(k)

где α = 1/τ является обратной величиной целевой постоянной времени маневра, и w (k) является шумом процесса модели Зингера на временном шаге k. Смотрите singerProcessNoise для получения дополнительной информации о шуме процесса.

Ссылки

[1] Зингер, Роберт А. "Оценка оптимального отслеживания фильтрует эффективность для укомплектованных целей маневрирования". Транзакции IEEE на Космических и Электронных системах 4 (1970): 473-483.

[2] Блэкмен, Сэмюэль С. и Роберт Пополи. "Проект и анализ современных систем слежения". (1999).

[3] Литий, С. Жун и Весселин П. Жильков. "Обзор маневрирующего целевого отслеживания: динамические модели". Сигнал и Обработка данных Маленьких Целей 2000, издание 4048, стр 212-235. Международное общество Оптики и Фотоники, 2000.

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Введенный в R2020b