constaccjac

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

Описание

пример

jacobian = constaccjac(state) возвращает обновленный якобиан, jacobian, для модели движения Фильтра Калмана постоянного ускорения. Время шага является одной секундой. 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 является количеством пространственных степеней свободы движения. Для каждой пространственной степени движения вектор состояния принимает форму, показанную в этой таблице.

Пространственные размерностиСтруктура вектора состояния
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

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

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

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

свернуть все

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

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

Алгоритмы

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

[1T12T200001T0000010000001T12T200001T000001]

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

[1T12T201T001]

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

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

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

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

Функции

Объекты

Введенный в R2021a