exponenta event banner

constacc

Модель движения с постоянным ускорением

Описание

пример

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

пример

updatedstate = constacc(state,dt) задает временной шаг, dt.

updatedstate = constacc(state,w,dt) также определяет состояние шума, w.

Примеры

свернуть все

Определите начальное состояние для 2-D движения с постоянным ускорением.

state = [1;1;1;2;1;0];

Спрогнозировать состояние на 1 секунду позже.

state = constacc(state)
state = 6×1

    2.5000
    2.0000
    1.0000
    3.0000
    1.0000
         0

Определите начальное состояние для 2-D движения с постоянным ускорением.

state = [1;1;1;2;1;0];

Предсказать состояние на 0,5 с позже.

state = constacc(state,0.5)
state = 6×1

    1.6250
    1.5000
    1.0000
    2.5000
    1.0000
         0

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

свернуть все

Вектор состояния фильтра Калмана для движения с постоянным ускорением, заданный как действительный вектор 3N-element. 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, 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

Шум состояния, заданный как скалярная или вещественно-значимая матрица D-by-N. D - число размеров движения, а N - число векторов состояния. Если задано как скаляр, скалярное значение расширяется до матрицы D-by-N.

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

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

свернуть все

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

Алгоритмы

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

[xk+1vxk+1axk+1yk+1vyk+1ayk+1] = [1T12T200001T0000010000001T12T200001T000001] [xkvxkaxkykvykayk]

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

[1T12T201T001]

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

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

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.
Представлен в R2021a