Filtr Kalmana w praktyce

17

Przeczytałem opis filtra Kalmana, ale nie jestem pewien, jak to działa w praktyce. Wydaje się, że jest przede wszystkim ukierunkowany na układy mechaniczne lub elektryczne, ponieważ chce przejść w stanach liniowych i nie jest przydatny do wykrywania anomalii lub lokalizacji przejść stanu z tego samego powodu (chce przejść w stanach liniowych), czy to prawda? W praktyce, w jaki sposób zwykle można znaleźć elementy, które powinny być znane z góry, aby zastosować filtr Kalmana. Wymieniłem komponenty, proszę mnie poprawić, jeśli moje zrozumienie tego, co należy wiedzieć z wyprzedzeniem, jest nieprawidłowe.

Uważam, że nie trzeba ich znać „z góry”:

  • Hałas procesowy w
  • Hałas obserwacyjny v
  • Rzeczywisty stan (właśnie to próbuje oszacować filtr Kalmana)x

Uważam, że należy je znać „z góry”, aby użyć filtra Kalmana:

  • Model liniowego przejścia stanu, który stosujemy do (musimy o tym wiedzieć wcześniej, więc nasze stany muszą podlegać znanym prawom, tj. Filtr Kalmana jest przydatny do korekcji pomiarów, gdy przejście z jednego stanu do drugiego jest dobrze zrozumiane i deterministyczny do odrobiny hałasu - nie jest to wyszukiwarka anomalii ani narzędzie do wyszukiwania losowych zmian stanu)x
  • Wektor kontrolny u
  • Kontrolny model wejściowy stosowany do sterowania wektorem (musimy o tym wiedzieć wcześniej, więc aby zastosować filtr Kalmana, musimy również wiedzieć z wyprzedzeniem, w jaki sposób nasze wartości kontroli wpływają na model, maksymalnie co najwyżej niektóre zakłócenia gaussowskie, oraz efekt musi być liniowy)u
  • Kowariancja szumu procesowego (który wydaje się być zależny od czasu w artykule na Wikipedii, tj. Zależy od czasu k ) - wydaje się, że musimy o tym wiedzieć z wyprzedzeniem i z czasem zakładam, że w praktyce jest on uważany za stały ?Qk
  • (Obserwacyjny) model obserwacji H.
  • Kowariancja (która wydaje się być również zależna od czasu w artykule na Wikipedii) - podobne problemy do QRQ

PS I tak, wiem, że wiele z nich zależy od czasu, po prostu porzuciłem cały bałagan w indeksie dolnym. Jeśli chcesz, możesz sobie wyobrazić małą literę po prawej i dolnej stronie każdej nazwy zmiennej.k

John Robertson
źródło

Odpowiedzi:

18

W pewnym kontekście wróćmy do równań filtra Kalmana:

.x(k+1)=fa(k)x(k)+sol(k)u(k)+w(k)z(k)=H.(k)x(k)+v(k)

W skrócie, dla zwykłej waniliowej KF:

musi być w pełni zdefiniowane. Wynika to wprost z równań różniczkowych układu. Jeśli nie, maszproblemzpodwójną estymacją(tj. Oszacuj zarówno stan, jak i model systemu). Jeśli nie masz równań różniczkowych układu, to KF nie jest dla Ciebie!fa(k)

jest z definicji niepoznawalny. W końcu, gdybyś wiedział, nie byłby to problem z oszacowaniem!x(k)

Wektor kontrolny musi być w pełni zdefiniowany. Bez dodatkowego modelowania systemu jedyną niepewnością na wektorze sterującym może być AWGN , który może być włączony do szumu procesowego. Znana macierz G ( k ) wiąże dane sterujące ze stanami - na przykład, w jaki sposób ruch lotek wpływa na przechylenie samolotu. Jest to modelowane matematycznie jako część rozwoju KF.u(k)sol(k)

Systemowy szum procesowy jest również z definicji nieznany (ponieważ jest to szum losowy!). Jednak muszą być znane statystyki hałasu, które dla zwykłej waniliowej KF muszą być zerową średnią AWGN ze znaną kowariancją Q ( k ) . Czasami kowariancja szumu może się zmieniać między próbkami, ale w wielu przypadkach jest ustalona, ​​a zatem Q jest stała. W niektórych przypadkach będzie to znane, ale w wielu przypadkach zostanie „dostrojone” podczas opracowywania systemu.w(k)Q(k)Q

Obserwacje to podobna historia. Macierz odnosząca twoje pomiary do stanów musi być w pełni zdefiniowana. Twoje pomiary z ( k ) są również znane, ponieważ jest to odczyt z twoich czujników!H.(k)z(k)

v(k)R(k)

Istnieje ogromna liczba „sztuczek”, które można zrobić, aby obejść ograniczenia w zwykłej waniliowej wersji KF, ale są one daleko poza zakresem tego pytania.


Refleksja:

Podczas gdy przeglądanie „Kalmana Filter” daje milion hitów, jest kilka rzeczy, które moim zdaniem warte są przyjrzenia się. Strona Wikipedii jest zbyt zagracona, aby skutecznie się uczyć :(

Na AVR Freaks znajduje się wprowadzenie do filtru Kalmana „bez równań”, które napisałem jakiś czas temu, aby spróbować przedstawić, gdzie jest używane.

Jeśli nie boisz się matematyki, istnieje kilka książek wartych przeczytania, które są na wyższym poziomie licencjackim / wczesnym podyplomowym. Wypróbuj Brown i Hwang, który zawiera całą teorię i wiele przykładowych systemów. Drugim, który jest wysoce zalecany, ale nie czytałem, jest Gelb , który ma wyraźną zaletę, że jest tani!

Damien
źródło
1
+1 za link AVR Freaks! Bardzo ładnie wykonane. Prawdopodobnie użyje tego w klasie. :-)
Peter K.