Фільтр Кальмана на практиці


17

Я прочитав опис фільтра Калмана, але мені не ясно, як це відбувається на практиці. Це, здається, орієнтоване в першу чергу на механічні або електричні системи, оскільки воно хоче лінійних переходів, і що це не корисно для виявлення аномалії або локалізації переходів стану з тієї ж причини (вона хоче лінійних переходів), чи правильно це? На практиці, як зазвичай знайти компоненти, які, як очікується, будуть відомі заздалегідь, щоб використовувати фільтр Кальмана. Я перерахував компоненти, будь ласка, виправте мене, якщо моє розуміння того, що потрібно знати заздалегідь, є невірним.

Я вважаю, що це не потрібно знати "заздалегідь":

  • Шум процесу ш
  • Шум спостереження v
  • Фактичний стан (це те, що намагається оцінити фільтр Кальмана)х

Я вважаю, що для використання фільтра Калмана потрібно знати їх заздалегідь:

  • Лінійна модель переходу стану, яку ми застосовуємо до (ми повинні знати це заздалегідь, тому наші штати повинні керуватися відомими законами, тобто фільтр Калмана корисний для корекції вимірювань, коли перехід з одного стану в інший добре зрозумілий і детермінований до трохи шуму - це не пошук аномалій чи інструмент пошуку випадкових змін стану)х
  • Вектор управління у
  • Модель керування введенням, яка застосовується для управління вектором (ми повинні знати це заздалегідь, тому для використання фільтра Калмана ми також повинні знати заздалегідь, як наші контрольні значення впливають на модель, максимум на деякий гауссовий шум, і ефект повинен бути лінійним)у
  • Коваріація шуму процесу (який, як видається, залежить від статті у Вікіпедії, тобто це залежить від часу k ) - це, здається, нам потрібно знати це заздалегідь і з часом, я припускаю, що на практиці це вважається постійним ?Qк
  • (Лінійна) модель спостереження Н
  • Коваріація (яка, як видається, також залежить від часу у статті вікіпедії) - аналогічні питання QRQ

к


Відповіді:


18

Для деякого контексту повернемось до рівнянь фільтра Калмана:

х(к+1)=Ж(к)х(к)+Г(к)у(к)+ш(к)z(к)=Н(к)х(к)+v(к)

Коротше кажучи, для звичайної ванілі KF:

Ж(к)

х(к)

у(к)Г(к)

ш(к)Q(к)Q

Н(к)z(к)

v(к)R(к)

Існує величезна кількість "хитрощів", ​​які можна зробити для подолання обмежень у звичайній ванільній KF, але вони далеко виходять за рамки цього питання.


Задумливість:

Поки гугл для "Kalman Filter" призводить до мільйона звернень, є кілька речей, які, на мою думку, варто переглянути. Сторінка Вікіпедії занадто захаращена, щоб ефективно вчитися :(

На AVR Freaks є фільтр Kalman, який я написав певний час тому, щоб спробувати представити, де він використовується реально.

Якщо ви не боїтесь математики, є кілька книг, які варто прочитати, які є на рівні старшого бакалавра / раннього аспіранта. Спробуйте або Браун, і Хван, який включає всю теорію і безліч прикладних систем. Інше, що настійно рекомендується, але я не читав - це Gelb , який має виразну перевагу - дешевість!


1
+1 для посилання AVR Freaks! Дуже красиво зроблено. Напевно, це використовуватиме на уроці. :-)
Пітер К.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.