Как определить матрицу перехода состояний для фильтров Калмана? - PullRequest
0 голосов
/ 16 марта 2019

Я пытаюсь понять Фильтр Калмана , и есть некоторые термины, которые я не могу понять.

Я читал о переходной матрице модели динамики (4х4). Это говорит о том, что эта матрица отобразит приведенные ниже уравнения на компоненты состояния. Уравнения простые физические уравнения:

xt = x(t-1) + vx(dt)
yt = y(t-1) + vy(dt)
dt = 1

Код, который представляет это следующим образом:

dt = 0.1
DT = np.matrix([[1.,0.,dt,0],[0.,1.,0.,dt],[0.,0.,1.,0.],[0.,0.,0.,1.]])

Может кто-нибудь помочь мне понять это? Что именно это за представление?

Ответы [ 2 ]

1 голос
/ 16 марта 2019

Таким образом, матрица перехода описывает самопроизвольный переход из одной временной точки i в следующую i + 1 . Скажем, у вас есть маленький робот, который ездит по вашему дому. Тогда иногда он будет немного скользить по полу, потому что не всегда будет иметь хорошее сцепление с дорогой. Матрица перехода пытается смоделировать его.

Модель перехода затем используется в нескольких частях фильтра Калмана. Во-первых, чтобы описать дисперсию и положение вашего робота в момент времени i. И это является частью формулировки ошибки предсказания (коэффициента усиления Калмана) вашей модели датчика, чтобы минимизировать отклонения вашего следующего измерения.

По сути, это большая часть фильтра Калмана, но также тривиальная. Он просто пытается смоделировать спонтанный переход во времени (a.k.a скольжение, скольжение, толчок от ветра ...)

Пожалуйста, спросите больше, если это не помогло.

0 голосов
/ 16 марта 2019

Матрица переходов между состояниями описывает, как ваши состояния распространяются со временем при заданном начальном состоянии.Для линейной инвариантной по времени (LTI) системы это постоянная матрица.

Например, предполагая, что у меня есть двумерная модель LTI с дискретным временем, приведенная ниже:

x (k + 1) = x (k) ---- (1)

y (k + 1) = y (k) + 2x (k) ----- (2)

Это можно записатьв матричной форме, посмотрев на коэффициенты состояний в каждом уравнении, как показано ниже:

[x (k + 1), y (k + 1)] = [[1.0, 0.0], [2.0,1.0]] * [x (k), y (k)]

Матрица [[1.0, 0.0], [2.0, 1.0]] известна как матрица перехода состояний. Обратите внимание, это похоже на то, как вы пишете линейные системы уравнений в матричной форме, чтобы решать их одновременно, используя правило Крамера или инверсию матрицы.

Как вы можете видеть, только x (k) появляется в (1)с коэффициентом 1, следовательно, первая строка матрицы перехода равна [1,0, 0,0].Точно так же вторая строка [2.0, 1.0].

Взгляните на структуру вашей матрицы

DT = np.matrix ( [[1., 0.,дт, 0], [0, 1, 0, дт], [0, 0, 1., 0.], [0, 0, 0, 1.]] * +1026 *)

Я могу сказать, что у вас есть 4 переменные [x (t-1), y (t-1), vx, vy].Вы показали только два уравнения состояния (x (t) и y (t)), и первые 2 строки вашей матрицы хорошо соответствуют коэффициентам переменных в уравнениях.

Из вашей матрицы я могусделайте вывод, что последние два уравнения:

vx (t) = vx (t-1) и vy (t) = vy (t-1).

Я бы посоветовал вам прочитать подробнеена моделях пространства состояний (LTI должно быть достаточно).https://en.wikipedia.org/wiki/State-space_representation

Примечание. Для моделей с непрерывным временем получение матрицы перехода состояний потребует нахождения матрицы экспоненциальной.

...