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]

  • Трехмерное пространство - государство равно [<reservedrangesplaceholder6> <reservedrangesplaceholder5> <reservedrangesplaceholder4> <reservedrangesplaceholder3> 1 / <reservedrangesplaceholder2> <reservedrangesplaceholder1> / 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++ с помощью Coder™ MATLAB ®

.

См. также

Объекты

Функции

Введенный в R2018b