Obserwator z lekcji 4.2 miał jedno pokrętło bez jasnej reguły: jak szybko korygować model pomiarem. Filtr Kalmana odpowiada na to pytanie, gdy wiemy, jak bardzo szumią czujniki i jak bardzo mylą się model i zakłócenia. Wynikiem jest optymalna estymata, która nie tylko podaje wartość, ale też mówi, jak bardzo można jej ufać. Zaczniemy od jednej liczby i 50 pomiarów, a skończymy na fuzji barometru z akcelerometrem w dronie.
Czas
ok. 3 h teorii + ok. 3 h zadań
Zadania
12 zadań w treści + 5 do przemyślenia, z odpowiedziami
Źródła
G. Welch, G. Bishop, An Introduction to the Kalman Filter (UNC, wolny dostęp); A. Tewari, Modern Control Design with MATLAB and SIMULINK, rozdz. 7; S. Brunton, Control Bootcamp (filtr Kalmana)
0 Prolog: droga na Księżyc
Jesienią 1960 r. Rudolf Kálmán odwiedził NASA Ames i opowiedział o swojej nowej metodzie filtracji. Słuchał go Stanley Schmidt, który szukał sposobu na nawigację statku Apollo: komputer pokładowy miał łączyć model ruchu w polu grawitacyjnym Ziemi i Księżyca z rzadkimi, niedokładnymi pomiarami gwiazd i horyzontu. Metoda Kálmána była liniowa, a ruch statku nie. Zespół Schmidta zastosował ją więc do modelu zlinearyzowanego wokół bieżącej estymaty. Tak powstał rozszerzony filtr Kalmana (lekcja 4.5 Rozszerzony filtr Kalmana i fuzja czujników w jednej osi), który poleciał na Księżyc.
Dziś filtr Kalmana jest w każdym telefonie (GPS i czujniki ruchu), samolocie, dronie, robocie i systemie śledzenia rakiet. Ta lekcja pokazuje, że w środku nie ma magii, tylko średnia ważona niepewnościami, liczona w kółko.
Pytanie na start. Barometr drona myli się średnio o 30 cm, a akcelerometr ma mały stały błąd (0,1 m/s²), przez co po minucie całkowania pozycja ucieka o 180 m. Czy połączenie dwóch tak słabych czujników może dać estymatę wysokości lepszą niż 10 cm? Odpowiedź w części 4.
1 Łączenie dwóch niepewnych informacji
Dwa pomiary tej samej wielkości: z1 z niepewnością (odchyleniem standardowym) σ1 i z2 z σ2. Najlepsza (o najmniejszej wariancji) estymata liniowa to średnia ważona odwrotnościami wariancji (lekcja 5.2 Statystyka pomiarów i dopasowania):
Zapiszmy to inaczej: zaczynamy od z1 i korygujemy o część różnicy:
x^=z1+K(z2−z1),K=σ12+σ22σ12,σ2=(1−K)σ12.
To już jest cały filtr Kalmana. z1 to przewidywanie modelu z niepewnością P, z2 to nowy pomiar z niepewnością R, a K=P+RP to wzmocnienie Kalmana. Gdy model jest pewny (P≪R), K≈0 i pomiar prawie nic nie zmienia. Gdy pomiar jest pewny (R≪P), K≈1 i estymata przeskakuje na pomiar. Wynik jest zawsze pewniejszy od każdej informacji osobno.
Zadania · część 1
3 zadania · ok. 15 min
Dwa termometry: 21,0 °C (σ=2 °C) i 22,0 °C (σ=1 °C). Podaj estymatę i jej niepewność.
Odpowiedź
Wagi 1/4 i 1, czyli 0,2 i 0,8: x^=21,8 °C, σ=4⋅1/5≈0,89 °C.
Pokaż, że dwie postacie (średnia ważona i „przewidywanie + K⋅różnica”) są równoważne.
Ile identycznych pomiarów o σ=0,1 V trzeba połączyć, żeby niepewność spadła do 0,01 V?
Odpowiedź
Niepewność średniej σ/N: N=100. Każde zmniejszenie niepewności o połowę wymaga czterokrotnie więcej pomiarów.
2 Filtr Kalmana dla jednej liczby
Klasyczny przykład z wprowadzenia Welcha i Bishopa: mierzymy stałe napięcie (−0,377 V) woltomierzem o szumie σ=0,1 V. Model: wartość się nie zmienia, a jeśli już, to o mały losowy przyrost o wariancji Q na krok. Filtr powtarza dwa kroki:Welch–Bishop 3
Przy Q=0 wzmocnienie maleje jak 1/k i estymata to dokładnie średnia ze wszystkich dotychczasowych pomiarów (zadanie 2.2). Przy Q>0 wzmocnienie zatrzymuje się na stałym poziomie K∞: filtr pamięta mniej więcej ostatnie 1/K∞ pomiarów i może śledzić powolne zmiany.
Symulacja 1 50 pomiarów stałego napięcia z szumem σ=0,1 V (Rprawdziwe=0,01 V²). Zmieniaj R i Q przyjęte w filtrze i patrz, jak zmienia się estymata i wzmocnienie Kk. Losuj nowe serie.
gdzie w (zakłócenia, błędy modelu) ma macierz kowariancji Q, a v (szum pomiaru) macierz R. Niepewność estymaty opisuje macierz kowariancjiP: na przekątnej wariancje poszczególnych składowych, poza nią ich korelacje.
Porównaj z obserwatorem z lekcji 4.2: to ten sam schemat „model plus korekta innowacją z−Hx^”. Różnica: Kk nie jest dobierane ręcznie, tylko liczone z niepewności. W stanie ustalonym filtr Kalmana to obserwator z optymalnym L, wyznaczonym z równania Riccatiego dualnego do tego z LQR (lekcja 4.3 LQR: koszt zamiast biegunów).
Zadania · część 3
3 zadania · ok. 25 min
Pokaż, że dla jednego stanu (F=H=1) wzory macierzowe dają wzory z części 2.
Stan [z,v], mierzymy tylko z. Po korekcie zmieniła się też estymata v. Dlaczego, skoro v nie mierzymy?
Odpowiedź
K=P−HT/(…) to pierwsza kolumna P− podzielona przez liczbę. Jej druga składowa Pzv− to korelacja błędów wysokości i prędkości, która powstaje w predykcji (błąd prędkości przekłada się na błąd wysokości). Pomiar wysokości mówi więc coś o prędkości.
Co się dzieje z P, gdy przez dłuższy czas nie ma pomiarów (np. dron w tunelu bez barometru)?
Odpowiedź
Tylko predykcje: P←FPFT+Q. Niepewność rośnie: dla wysokości z akcelerometru wariancja rośnie jak t3 od szumu i jak t4 od nieznanego biasu (odchylenie standardowe jak t1,5 i t2). Po powrocie pomiaru K jest duże i estymata szybko „wskakuje” na pomiar.
4 Dron: barometr i akcelerometr
Dwa czujniki o przeciwnych wadach:
akcelerometr (100 Hz): mierzy przyspieszenie z szumem 0,2 m/s² i stałym błędem (biasem). Dwukrotne całkowanie daje wysokość dokładną na krótką metę, ale bias 0,1 m/s² po minucie to 21⋅0,1⋅602=180 m błędu;
barometr (10 Hz): mierzy wysokość bez dryfu, ale z szumem 0,3 m.
Filtr: stan [z,v], akcelerometr jako wejście predykcji (z←z+vT+21amT2, v←v+amT), barometr jako pomiar. Szum akcelerometru wchodzi do Q: Q=σa2[T4/4T3/2T3/2T2]. Bias jest wolny, a nie biały, więc dokładamy go jako trzeci stan b z b˙=0: filtr sam go oszacuje, bo bias zostawia charakterystyczny ślad w różnicy między całkowaniem a barometrem.
Odpowiedź na pytanie z prologu. Symulacja (60 s, ruch sinusoidalny): sam barometr ±0,3 m, samo całkowanie ucieka o ok. 185 m, filtr z biasem w modelu ma błąd wysokości ok. 7,5 cm (RMS), a bias szacuje z dokładnością do 0,002 m/s². Filtr bez biasu w modelu ma błąd ok. 48 cm, a twierdzi, że ok. 8 cm: błędny model daje filtr zbyt pewny siebie.
Symulacja 2 Fuzja barometru i akcelerometru przez 60 s; górny wykres to wycinek 30–40 s. Pas to ±2σ deklarowane przez filtr, dolny wykres pokazuje rzeczywisty błąd na tle tego pasa. Wyłącz estymację biasu: błąd wychodzi poza pas. Zmieniaj szum barometru.
Zadania · część 4
3 zadania · ok. 25 min
Napisz F, G, H dla stanu [z,v] z akcelerometrem jako wejściem i barometrem jako pomiarem, T=0,01 s.
Odpowiedź
F=[100,011], G=[5⋅10−50,01], H=[10]. Pomiar barometru przychodzi co 10 kroków: korekta tylko wtedy.
Jak zmienią się F, G, H po dodaniu biasu b (akcelerometr mierzy a+b)?
Odpowiedź
Prawdziwe przyspieszenie to am−b: F=100T10−T2/2−T1, G=[T2/2,T,0]T, H=[100].
Dlaczego estymowanie biasu wymaga, żeby dron w ogóle był obserwowany przez barometr? Odpowiedz przez obserwowalność.
Odpowiedź
Bez barometru H jest puste i nic nie jest obserwowalne. Z barometrem rozszerzony układ ma Wo rzędu 3 (jak zadanie z rozszerzeniem o siłę w lekcji 4.2): stały bias daje parabolę w wysokości, którą barometr widzi. Gdyby akcelerometr był jedynym czujnikiem, biasu nie dałoby się odróżnić od prawdziwego przyspieszenia.
5 Metoda i przykłady rozwiązane
Metoda: projekt filtru Kalmana
Model: stan, F, G, H (dyskretyzacja z lekcji 3.4); czujniki szybkie jako wejście, wolne i dokładne jako pomiar.
Szumy:R z karty katalogowej albo z nagrania nieruchomego czujnika; Q z szumu wejść i niepewności modelu.
Błędy niebiałe (bias, dryf) jako dodatkowe stany.
Obserwowalność rozszerzonego stanu.
Sprawdzenie spójności: rzeczywisty błąd (w symulacji) i innowacje mają być zgodne z P i HP−HT+R.
Przykład 5.1 Woltomierz: trzy wartości R
50 pomiarów napięcia −0,37727 V z szumem σ=0,1 V, Q=10−5. Porównaj filtry z R=0,01 (prawdziwe), 1 i 10−4.
R=0,01: K50=0,034, estymata zbliżona do średniej z ostatnich kilkudziesięciu pomiarów.
R=1: K50=0,020, filtr ufa sobie bardziej, ale przy stałej wartości to niewiele szkodzi.
R=10−4: K50=0,27, estymata skacze z każdym pomiarem (w serii z pliku weryfikacyjnego błąd końcowy 0,044 V, dwa razy więcej niż przy prawdziwym R).
Wynik: zaniżone R (filtr nadmiernie wierzy pomiarom) psuje estymatę bardziej niż zawyżone.
Sprawdzenie: niepewność średniej z 50 pomiarów to 0,1/50=0,014 V, a deklarowane P50=0,018 V przy prawdziwym R ✓ (dodatnie Q zmniejsza efektywną liczbę pomiarów).
Przykład 5.2 Fuzja w dronie
Akcelerometr 100 Hz (σa=0,2 m/s², bias 0,1 m/s²), barometr 10 Hz (σb=0,3 m). Porównaj sposoby estymacji wysokości po 60 s.
Sam barometr: błąd ok. 0,3 m w każdej chwili, bez dryfu.
Samo całkowanie akcelerometru: ok. 185 m po 60 s (bias), plus błąd od szumu.
Kalman bez biasu: ok. 0,48 m RMS, deklaruje 0,08 m.
Kalman z biasem: ok. 0,075 m RMS, deklaruje ok. 0,08 m; bias oszacowany z błędem ok. 0,002 m/s².
Wynik: fuzja jest 4 razy dokładniejsza niż barometr, a filtr uczciwie mówi, ile wie.
Sprawdzenie: bez biasu w akcelerometrze filtr dwustanowy osiąga 0,069 m, prawie tyle co trzystanowy z biasem ✓.
6 Błędne intuicje, których trzeba się oduczyć
„Filtr Kalmana to filtr dolnoprzepustowy.”
Jest estymatorem stanu: odtwarza też wielkości niemierzone (prędkość, bias) i zmienia wzmocnienie w czasie, gdy zmienia się niepewność.
„Większe R zawsze daje gładszą, a więc lepszą estymatę.”
Gładszą, ale spóźnioną. Optimum jest przy prawdziwych wartościach szumów.
„Mała macierz P oznacza, że estymata jest dobra.”
P jest dobre tylko tak, jak model. Filtr bez biasu w modelu deklarował 8 cm, a mylił się o 48 cm.
„Filtr Kalmana wymaga szumu gaussowskiego.”
Wśród estymatorów liniowych jest optymalny dla dowolnego szumu o znanych wariancjach; przy szumie gaussowskim jest optymalny wśród wszystkich estymatorów.
„Akcelerometr nadaje się tylko do pomiaru drgań.”
W fuzji to główne źródło informacji o szybkich zmianach; wolne czujniki tylko pilnują dryfu.
7 Zadania do przemyślenia
Te zadania wymagają więcej myślenia niż liczenia.
Zadania do przemyślenia
5 zadań · ok. 1,5 godziny
GPS i nawigacja inercjalna. Samolot ma platformę inercjalną (akcelerometry i żyroskopy, 200 Hz) i GPS (1 Hz, ±5 m). Opisz filtr podobny do drona z części 4. Co się dzieje, gdy GPS zniknie na minutę?
Rozwiązanie
Inercja jako wejście predykcji, GPS jako pomiar; w stanie pozycja, prędkość, orientacja i biasy czujników. Biasy oszacowane, dopóki GPS działa.
Bez GPS: same predykcje, P rośnie. Ponieważ biasy są już oszacowane, dryf jest dużo wolniejszy niż w surowej inercji. Po powrocie GPS filtr szybko się koryguje.
Odrzucanie dzikich pomiarów. Barometr czasem zwraca bzdurę (podmuch od śmigła na czujniku). Jak filtr może to wykryć?
Rozwiązanie
Innowacja ν=z−Hx^− ma wariancję S=HP−HT+R. Jeśli ν2/S jest bardzo duże (np. powyżej 9, czyli 3σ), pomiar jest podejrzany.
Takiego pomiaru się nie używa albo zwiększa się dla niego R. To bramkowanie innowacji (ang. innovation gating), standard w śledzeniu celów.
Śledzenie z modelem prędkości. Radar mierzy co sekundę położenie samolotu. Model „stała prędkość” z zakłóceniem przyspieszenia w Q. Co się dzieje, gdy samolot nagle skręca? Jak dobrać Q?
Rozwiązanie
Przy małym Q filtr wierzy w prosty lot i przez kilka sekund „wylatuje” na zewnątrz zakrętu. Przy dużym Q szybko nadąża, ale estymata w locie prostym jest bardziej zaszumiona.
Rozwiązania: Q z maksymalnego spodziewanego przyspieszenia albo kilka modeli naraz (prosty lot, zakręt) z przełączaniem według innowacji (filtry IMM).
Dualność z LQR. W stanie ustalonym P− spełnia równanie Riccatiego. Jakie podstawienie przekształca równanie LQR (A, B, Q, R) w równanie filtru (A, H, Qw, Rv)?
Rozwiązanie
A→AT, B→HT, Q→Qw, R→Rv. Wzmocnienie filtru to transponowane wzmocnienie „LQR dla układu dualnego”.
Intuicja: koszt stanu w LQR odpowiada niepewności modelu w filtrze, koszt sterowania odpowiada szumowi pomiaru. Drogie sterowanie to wolny regulator, szum pomiaru to wolny filtr.
LQG. Połączenie LQR z filtrem Kalmana nazywa się LQG. Co mówi o nim zasada separacji z lekcji 4.2? Czego nie mówi?
Rozwiązanie
Mówi, że oba można projektować osobno, a bieguny całości to bieguny LQR i filtru. Dla szumów gaussowskich LQG jest wręcz optymalny dla kosztu oczekiwanego.
Nie mówi nic o odporności na błędy modelu. Doyle pokazał w 1978 r., że LQG może mieć dowolnie małe zapasy stabilności, mimo że LQR miał gwarantowane 60°. Lekcja 5.2 LQG i odporność.
8 Sprawdź się
Odpowiedz w myślach, zanim rozwiniesz odpowiedź.
1 Jak połączyć dwa pomiary o różnych wariancjach?
Średnia ważona odwrotnościami wariancji; wariancja wyniku σ12σ22/(σ12+σ22).
2 Ile wynosi wzmocnienie Kalmana dla jednego stanu?
K=P−/(P−+R).
3 Jakie są dwa kroki filtru?
Predykcja (model, P rośnie o Q) i korekta (pomiar, P maleje).
4 Co oznacza Q=0?
Model idealny: K→0, filtr przestaje słuchać pomiarów.
5 Co to macierz kowariancji P?
Niepewność estymaty: wariancje składowych i ich korelacje.
6 Jak uwzględnić bias czujnika?
Jako dodatkowy stan o wolnej dynamice (b˙=0 plus mały szum).
7 Jaki jest związek filtru Kalmana z obserwatorem?
W stanie ustalonym to obserwator z optymalnym L z równania Riccatiego.
9 Karta wzorów i co dalej
Filtr Kalmana
x^−=Fx^+Gu, P−=FPFT+Q
K=P−HT(HP−HT+R)−1
x^=x^−+K(z−Hx^−), P=(I−KH)P−
1D: K=P−/(P−+R); stan ustalony (P−)2−QP−−QR=0
Dron
F=[10T1], G=[T2/2T], H=[10]
Q=σa2[T4/4T3/2T3/2T2], R=σb2
dryf od biasu: 21bt2
bramkowanie: ν2/S>9 → odrzuć
Do przeczytania
Obowiązkowo: G. Welch, G. Bishop, An Introduction to the Kalman Filter, rozdz. 1 i 3 (krótki, wolny dostęp; przykład z woltomierzem jest stamtąd).
Dla chętnych: A. Tewari, Modern Control Design with MATLAB and SIMULINK, rozdz. 7 (Kalman i LQG); S. Brunton, Control Bootcamp, wykłady o filtrze Kalmana.
Filtr Kalmana wymaga modelu liniowego. Orientacja drona już taka nie jest: akcelerometr mierzy gsinφ, a nie gφ. Następna lekcja pokazuje, jak Schmidt i jego zespół rozwiązali ten problem dla Apollo: linearyzują model wokół bieżącej estymaty. Na przykładzie jednej osi zobaczymy też prostszego kuzyna, filtr komplementarny.