constaccjac

Якобиан для движения с постоянным ускорением

Описание

пример

jacobian = constaccjac(state) возвращает обновленный якобиан, jacobian, для модели движения фильтра Калмана с постоянным ускорением. Время шага составляет одну секунду. The state аргумент задает текущее состояние фильтра.

пример

jacobian = constaccjac(state,dt) также задает временной шаг, dt.

[jacobian,noisejacobian] = constaccjac(state,w,dt) задает шум состояния, w, и возвращает якобиан, noisejacobian, состояния относительно шума.

Примеры

свернуть все

Вычислите состояние Якобяна для двумерного движения с постоянным ускорением.

Задайте начальное состояние и вычислите состояние Якобяна в течение одной секунды обновления.

state = [1,1,1,2,1,0];
jacobian = constaccjac(state)
jacobian = 6×6

    1.0000    1.0000    0.5000         0         0         0
         0    1.0000    1.0000         0         0         0
         0         0    1.0000         0         0         0
         0         0         0    1.0000    1.0000    0.5000
         0         0         0         0    1.0000    1.0000
         0         0         0         0         0    1.0000

Вычислите состояние Якобяна для двумерного движения с постоянным ускорением. Установите значение шага 0,5 секунды.

state = [1,1,1,2,1,0].';
jacobian = constaccjac(state,0.5)
jacobian = 6×6

    1.0000    0.5000    0.1250         0         0         0
         0    1.0000    0.5000         0         0         0
         0         0    1.0000         0         0         0
         0         0         0    1.0000    0.5000    0.1250
         0         0         0         0    1.0000    0.5000
         0         0         0         0         0    1.0000

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

свернуть все

Вектор состояния фильтра Калмана для движения с постоянным ускорением, заданный как действительный вектор 3N -элемент. N - количество пространственных степеней свободы движения. Для каждой пространственной степени движения вектор состояния принимает форму, показанную в этой таблице.

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

Для примера, x представляет x -cordinate, vx представляет скорость в x -направлении, и ax представляет ускорение в x -направлении. Если модель движения находится в одномерном пространстве, y - и z - оси приняты равными нулю. Если модель движения находится в двумерном пространстве, значения вдоль оси z приняты равными нулю. Координаты положения указаны в метрах. Координаты скорости указаны в метрах/секунду. Координаты ускорения указаны в метрах/секундах2.

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

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

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

Пример: 0.5

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

Шум состояния, заданный как скалярный или реальный действительный N вектора -by-1. N - количество размерностей движения. Для примера N = 2 для 2-D движения. Если задано в виде скаляра, скалярное значение расширяется до вектора N -by-1.

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

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

свернуть все

Движение Якобиана с ускорением константы, возвращается как матрица 3N -by 3N с реальным значением.

Постоянный шум движения ускорения якобиан, возвращенный как действительная 3N -by- N матрица. N - количество пространственных степеней движения. Для примера N = 2 для 2-D движения. Якобиан строится из частных производных состояния на обновленном временном шаге относительно шумовых компонентов.

Алгоритмы

Для двумерного процесса постоянного ускорения, матрица Якобия после временного шага, T, является блоком диагонали:

[1T12T200001T0000010000001T12T200001T000001]

Блок для каждой пространственной размерности имеет следующую форму:

[1T12T201T001]

Для каждой дополнительной пространственной размерности добавьте идентичный блок.

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

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

.
Введенный в R2021a