constvelmsc

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

Синтаксис

state = constvelmsc(state,vNoise)
state = constvelmsc(state,vNoise,dt)
state = constvelmsc(state,vNoise,dt,u)

Описание

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)потому что(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

Задайте вектор состояния для модели движения в 2D. Временной интервал составляет 2 секунды.

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

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

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;

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

свернуть все

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

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

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

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

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

Переменные, используемые в соглашении:

  • az – Угол азимута (рад)

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

  • azRate – Уровень азимута (rad/s)

  • elRate – Уровень повышения (rad/s)

  • \omega azRate × because(el) (rad/s)

  • 1/r – 1/область значений (1/м)

  • vr/r – range-rate/range или инверсия time-go (1/с)

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

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

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

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

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

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

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

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

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

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

свернуть все

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

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

Алгоритмы

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

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

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

Смотрите также

Объекты

Классы

Функции

Введенный в R2018b

Для просмотра документации необходимо авторизоваться на сайте