constaccjac

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

Описание

пример

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

пример

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

Примеры

свернуть все

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

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

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 является количеством пространственных степеней свободы движения. Для каждой пространственной степени движения вектор состояния принимает форму, показанную в этой таблице.

Пространственные размерностиСтруктура вектора состояния
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 - ось принята, чтобы быть нулем. Координаты положения исчисляются в метрах. Скоростные координаты находятся в метрах/секунда. Ускоряющие координаты находятся в meters/second2.

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

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

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

Пример: 0.5

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

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

свернуть все

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

Алгоритмы

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

[1T12T200001T0000010000001T12T200001T000001]

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

[1T12T201T001]

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

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

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

Введенный в R2018b