exponenta event banner

constvelmsc

Модель движения с постоянной скоростью (CV) в кадре MSC

Описание

state = constvelmsc(state,vNoise) вычисляет состояние на следующем временном шаге на основе текущего состояния и целевого шума ускорения, vNoise, в сценарии. Функция предполагает интервал времени, dt, одной секунды и нулевого ускорения наблюдателя во всех измерениях.

пример

state = constvelmsc(state,vNoise,dt) задает интервал времени, dt. Функция предполагает нулевое ускорение наблюдателя во всех измерениях.

пример

state = constvelmsc(state,vNoise,dt,u) определяет входной сигнал наблюдателя, u, в течение временного интервала, dt.

Примеры

свернуть все

Определите вектор состояния для 3-D состояния MSC.

mscState = [0.1;0.01;0.1;0.01;0.001;1];
dt = 0.1;

Предсказать состояние с нулевым ускорением наблюдателя.

mscState = constvelmsc(mscState,zeros(3,1),dt)
mscState = 6×1

    0.1009
    0.0083
    0.1009
    0.0083
    0.0009
    0.9091

Спрогнозировать состояние с помощью [5; 3; 1] ускорения наблюдателя в сценарии.

mscState = constvelmsc(mscState,zeros(3,1),dt,[5;3;1])
mscState = 6×1

    0.1017
    0.0067
    0.1017
    0.0069
    0.0008
    0.8329

Спрогнозировать состояние с маневром наблюдателя и единичным среднеквадратическим случайным шумом в целевом ускорении. Пусть ускорение наблюдателя в интервале времени будет [sin (t) cos (t)].

velManeuver = [1 - cos(dt);sin(dt);0];
posManeuver = [-sin(dt);cos(dt) - 1;0];
u = zeros(6,1);
u(1:2:end) = posManeuver;
u(2:2:end) = velManeuver;
mscState = constvelmsc(mscState,randn(3,1),dt,u)
mscState = 6×1

    0.1023
    0.0058
    0.1023
    0.0057
    0.0008
    0.7689

Определите вектор состояния для модели движения в 2-D. Интервал времени составляет 2 секунды.

mscState = [0.5;0.02;1/1000;-10/1000];
dt = 2; 

Поскольку измененное состояние сферических координат (MSC) является относительным, пусть состояние наблюдателя определяется моделью постоянного ускорения в 2-D.

observerState = [100;10;0.5;20;-5;0.1];

Предварительное выделение памяти. rPlot - диапазон для печати измерений подшипника.

observerPositions = zeros(2,10);
targetPositions = zeros(2,10);
azimuthMeasurement = zeros(1,10);
bearingHistory = zeros(2,30);
rPlot = 2000;

Используйте цикл для прогнозирования состояния несколько раз. Использовать constvelmsc для создания траектории с целью постоянной скорости и измерения углов с помощью функции измерения, cvmeasmsc.

for i = 1:10
    obsAcceleration = observerState(3:3:end);
    % Use zeros(2,1) as process noise to get true predictions
    mscState = constvelmsc(mscState,zeros(2,1),dt,obsAcceleration);
    
    % Update observer state using constant acceleration model
    observerState = constacc(observerState,dt);
    observerPositions(:,i) = observerState(1:3:end);
    
    % Update bearing history with current measurement.
    az = cvmeasmsc(mscState);
    bearingHistory(:,3*i-2) = observerState(1:3:end);
    bearingHistory(:,3*i-1) = observerState(1:3:end) + [rPlot*cosd(az);rPlot*sind(az)];
    bearingHistory(:,3*i) = [NaN;NaN];
    
    % Use the 'rectangular' frame to get relative positions of the
    % target using cvmeasmsc function.
    relativePosition = cvmeasmsc(mscState,'rectangular');
    relativePosition2D = relativePosition(1:2);
    targetPositions(:,i) = relativePosition2D + observerPositions(:,i);
end
plot(observerPositions(1,:),observerPositions(2,:)); hold on;
plot(targetPositions(1,:),targetPositions(2,:));
plot(bearingHistory(1,:),bearingHistory(2,:),'-.');
title('Constant velocity model in modified spherical coordinates');xlabel('X[m]'); ylabel('Y[m]')
legend('Observer Positions', 'Target Positions', 'Bearings Measurements'); hold off;

Figure contains an axes. The axes with title Constant velocity model in modified spherical coordinates contains 3 objects of type line. These objects represent Observer Positions, Target Positions, Bearings Measurements.

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

свернуть все

Состояние, определяемое относительно наблюдателя в измененных сферических координатах, указанных как вектор или 2-D матрица. Например, если имеется целевое состояние постоянной скорости xT и состояние наблюдателя постоянной скорости xO, то state определяется как xT - xO, преобразованные в измененные сферические координаты.

Двумерная версия модифицированных сферических координат (MSC) также называется модифицированными полярными координатами (MPC). В случае:

  • 2-D пробел -- состояние равно [az azRate 1/r vr/r]

  • 3-D пробел -- состояние равно [az omega el elRate 1/r vr/r ]

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

В соглашении используются следующие переменные:

  • az -- Азимутальный угол (рад)

  • el -- Угол возвышения (рад)

  • azRate -- азимутальная скорость (рад/с)

  • elRate -- Скорость подъема (рад/с)

  • omega -- azRate × cos (el) (рад/с)

  • 1/r -- 1/диапазон (1/м)

  • vr/r -- дальность/дальность или обратное время перехода (1/с)

Типы данных: single | double

Целевой шум ускорения в сценарии, заданный как вектор из 2 или 3 элементов или матрица с размерами, соответствующими state. То есть, если размеры state матрица - 6 на 10, затем допустимые размеры для vNoise 3 на 10. Если размеры state матрица - 4 на 10, затем допустимые размеры для vNoise 2 на 10. Дополнительные сведения см. в разделах Ориентация, Положение и Координаты.

Типы данных: double

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

Типы данных: single | double

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

  • Когда количество элементов в u равно количеству элементов в state, вход u принимается за маневр, выполняемый наблюдателем в течение временного интервала, dt. Маневр определяется как движение наблюдателя выше первого порядка (или постоянная скорость).

  • Когда количество элементов в u равно половине числа элементов в state, вход u принимается постоянным ускорением наблюдателя, указанным в кадре сценария в течение временного интервала, dt.

Типы данных: double

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

свернуть все

Состояние на следующем шаге времени, возвращаемое как вектор и матрица двух или трех измерений. Состояние на следующем временном шаге вычисляется на основе текущего состояния и целевого шума ускорения, vNoise.

Типы данных: double

Алгоритмы

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

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

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.

См. также

Объекты

Функции

Представлен в R2018b