Как обновляется ковариационная матрица (P) в фильтре Калмана в отношении измерений и оценки состояния? - PullRequest
0 голосов
/ 28 апреля 2020

Я нахожусь в процессе внедрения AHRS на основе фильтра Калмана в C ++. В уравнениях фильтра есть что-то довольно странное для меня.

enter image description here

Я не могу найти ту часть, где матрица P (ковариация) на самом деле обновлен для представления неопределенности прогнозов. На этапе «прогнозирования» оценка P вычисляется из ее предыдущих значений, A и Q. Из того, что я понимаю, A (системная матрица) и Q (ковариация шума) являются постоянными. Затем во время «Правильного» P вычисляется из K, H и прогнозируется P. H (матрица наблюдения) является постоянной величиной, поэтому единственной переменной, которая влияет на P, является K (коэффициент усиления Калмана). Но K вычисляется из предсказанных P, H и R (шум наблюдения), которые являются либо константами, либо самим P. Так, где часть уравнений, которая делает P, связана с x? Мне кажется, что P здесь рекурсивно зацикливается в зависимости только от констант и начального значения P. Это не имеет никакого смысла. Чего мне не хватает?

1 Ответ

0 голосов
/ 29 апреля 2020

Вы ничего не упускаете.

Может быть сюрпризом осознать, что действительно ковариационная матрица ошибок состояния (P) в линейном фильтре Калмана не зависит от данных (z) , Один из способов уменьшить сюрприз - заметить, что говорит ковариация: насколько неопределенным вы должны быть в оценочном состоянии, учитывая, что модели, которые вы используете (фактически A, Q и H, R), точны. Это не говорит: это неопределенность. Разумно настраивая Q и R, вы можете изменить P произвольно. В частности, вы не должны интерпретировать P как «качественную» фигуру, а скорее смотреть на остатки наблюдений. Например, можно уменьшить P, уменьшив R. Однако тогда остатки будут больше по сравнению с их вычисленными значениями sds.

Когда наблюдения приходят с постоянной скоростью и всегда с одним и тем же набором наблюдений, P будет стремиться к установившемуся состоянию, которое, в принципе, может быть вычислено заранее.

Однако нет никаких трудностей в применении фильтра Калмана, когда у вас есть разное время между наблюдениями и разными наборами наблюдений в каждый момент времени. Например, если у вас разные сенсорные системы с разными периодами отбора проб. В этом случае вы увидите больше вариаций в P, хотя опять же, в принципе, это может быть вычислено заранее.

Далее фильтр Калмана может быть расширен (различными способами, например, расширенный фильтр Калмана и без запаха Кальман фильтр) для обработки нелинейной динамики и нелинейных наблюдений. В этом случае, поскольку матрица перехода (A) и матрица модели наблюдения (H) имеют зависимость от состояния, то же самое произойдет с P.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...