Analiza informacji Meteorologicznych Wykład 7 Krzysztof Markowicz Instytut Geofizyki UW kmark@igf.fuw.edu.pl
Filtr Kalmana algorytm rekurencyjnego wyznaczania minimalno-wariancyjnej estymaty wektora stanu modelu liniowego dla dyskretnego układu dynamicznego w oparciu o pomiary. Przyjmuje się założenie, że zarówno pomiar, jak i proces przetwarzania wewnątrz układu jest obarczony błędem o rozkładzie gaussowskim.
Zastosowania Filtru Kalmana Gdy chcemy posiadać aktualizowane w czasie dokładne informacje o położeniu, prędkości obiektu na podstawie sekwencyjnych obserwacji zawierających błędy i niepewności. Gdy jesteśmy zainteresowanie śledzeniem obiektów za pośrednictwem radaru, zaś położenie, prędkość czy przyspieszanie mierzone są ze znaczną niepewnością. Filtr Kalmana wykorzystuje dynamikę obiektu do redukcji szumu i lepszej estymacji jego położenia w chwili obecnej (filtracja), przyszłej (predykcja) lub przeszłej (interpolacja lub wygładzania)
Definicja filtru Kalmana Filtr Kalmana buduje się dla systemów dynamicznych, dyskretyzowanych w domenie czasu. Związany jest on z procesami Markowa. Stan systemu reprezentowany jest przez wektor stanu. Na każdym kroku czasowym, nowy wektor stanu jest wyznaczany używając liniowego operatora. Zawiera on jednak szum związany z nieprecyzyjnymi obserwacjami oraz błędami modelu.
W modelu Kalmana zakładamy, że rzeczywisty stan układu dla czasu k jest wyznaczony na postawie wektora stanu dla chwili k-1 zgodnie ze wzorem: Fk - jest modelem przejścia, który używany jest dla wektora stanu (k-1). Bk – jest opcjonalnym modelem parametrów wejściowych do modelu używany dla wektora kontrolnego uk. wk – opisuje szumy, zakładamy że ma postać wielowymiarowego rozkładu normalnego z wartościami średnimi równymi zero oraz macierzą kowariancji Qk
Dla chwili k obserwacje zk rzeczywistego wektora stanu xk można zapisać w postaci: gdzie Hk jest modelem który transformuje rzeczywisty wektor stanu w przestrzeni obserwacji, Vk – jest szumem związanym z obserwacjami Wiele rzeczywistych systemów dynamicznych nie może być opisane przez powyższy model. Jednak mimo tego filtr Kalmana znalazł duże zastosowanie. Główną przyczyną tego stanu rzeczy jest sposób podejścia związany z operowaniem na szumach układu.
Filtr Kalmana jako operator rekurencyjny Oznacza to, że oszacowanie stanu w danym momencie czasu wymaga znajomości tylko stanu poprzedniego oraz wektora obserwacji. Stan filtru Kalmana opisują dwie zmienne: oszacowanie wektora stanu dla czasu k oszacowana macierz kowariancji błędu (zawiera informacje o błędach oszacowania rzeczywistego wektora stanu) Filtr Kalmana ma dwie fazy: predykcje (predict) oraz uaktualnianie (update). Faza predykcji używana jest do wyznaczenia aktualnego wektora stanu na podstawie wcześniejszego stanu. Faza uaktualniania używana aktualnych danych obserwacyjnych do poprawienia wyznaczonego wektora stanu.
Filtr Kalmana
Predykcja nowy stan kowariancja nowego stanu
Uaktualnianie (Update) residuum wektora obserwacji residuum macierzy kowariancji optymalne wzmocnienie filtru Kalmana poprawiony wektor stanu poprawiona macierz kowariancji Ostatni wzór jest prawdziwy tylko w przypadku gdy wzmocnienie filtru Kalmana jest optymalne
Niezmienniczość Jeśli nasz model jest dokładny, zaś wartości startowe precyzyjnie opisują wektor stanu wówczas następujące wielkości pozostają zachowane (wartości oczekiwane są równe zero): Ponadto zdefiniowane powyżej macierze kowariancji odpowiadają macierzą kowariancji błędów.
Przykład Rozpatrzmy pojazd szynowy poruszający się po nieskończenie długich, prostych i gładkich torach (bez tarcia). Początkowo spoczywa on w położeniu zerowym ale po chwili zaczyna poruszać się z losowym przyspieszeniem. Mierzymy co Δt położenie pojazdu jednak jest to pomiar obarczony błędem. Nie mamy żadnej kontroli na pojazdem więc ignorujemy wyrażenia Bk oraz uk. Ponadto F, H, R, Q są stałymi i dlatego pomijamy indeksy czasowe Wektor stanu ma postać:
Zakładamy, że pomiędzy chwilą k-1 a chwilą k przyspieszenie pojazdu jest stałe ak . Ma ono rozkład normalny z wartością oczekiwaną równą zero. Na podstawie mechaniki newtonowskiej mamy: Obliczamy kowariancje Na każdym kroku czasowym dokonujemy pomiaru położenia. Zakładamy, że błąd pomiaru jest gaussowski z wartością oczekiwaną równą zero i odchyleniem standardowym σz.
Jeśli znamy wektor początkowy z zerowym błędem Jeśli zaś nie znamy dokładnego położenia inicjalizacje filtru Kalmana wykonujemy przez zadanie dużej wartości B
Przykład I odchylenie standardowe przyspieszenia: 0.5 feet/s2 dokładności pomiaru położenia: 10 feet
Przykład II Zakładamy z góry pewną wartość rzeczywistą z=-0.37727 Wykonujemy (symulujemy) 50 pomiarów zk, których błąd ma rozkład normalny z wariancją R. Wariancja błędu obserwacji R=0.01. W metodzie filtru kalmana (filtracja, linia ciągła) używamy tej samej wartości R.
Obliczona wartość Pk dla kolejnej iteracji. Wartość początkowa Po=1.
Wyznaczanie macierzy kowariancji aposteriori podstawiając za podstawiając za podstawiając za przegrupowując dostajemy: Jeśli wektor obserwacji nie jest skorelowany z pozostałymi członami
Wykorzystując własności wektora kowariancji mamy Uwzględniając niezmienniczości oraz definicje macierzy Rk otrzymujemy
Wzmocnienie filtru Kalmana Filtr Kalmana jest estymatorem minimalnego błędu średnio-kwadratowego. Błąd oszacowania wektora stanu (a posteriori) wynosi Minimalizujemy wyrażenie Jest to równoważne do minimalizacji śladu estymatora macierzy kowariancji a posteriori Rozwijając ostatnie równanie z poprzedniej strony mamy:
Obliczamy pochodną śladu macierzy, która powinna być zero (minimalizacja) Obliczone wzmocnienie Kk jest optymalnym wzmocnieniem filtru Kalmana
Nieliniowy filtr Kalmana (Extended kalman filter) Podstawowy filtr Kalmana jest ograniczony tylko do modelu liniowego Jednak wiele systemów opisywanych jest przez modele nieliniowe. Nieliniowość może być związana zarówno z modelem opisującym system dynamiczny jak i modelem obserwacji. W takim przypadku definiujemy rozszerzony filtr Kalmana (EKF) Wówczas równanie regencyjne ma ogólną postać
Funkcje f oraz h nie mogą być bezpośrednio użyte do obliczenia macierzy kowariancji. Zamiast nich wyznacza się pochodne cząstkowe (jakobian). Na każdym kroku czasowym jakobian jest obliczany na podstawie aktualnego wektora stanu. Jest to wiec linearyzacja w sąsiedztwie wektora stanu. Predykcja gdzie jakobiany mają postać
Uaktualnianie (Update) EKF Filtr Kalmana jest mało użyteczny dla silnie nieliniowych funkcji. Wynika to z faktu, że tylko wartość średnia propagowana jest przez filtr nieliniowy.
Ensemble Kalman Filter W metodzie „ ensemble Kalman filter (Evensen 1994, Houtekamer and Mitchell 1998) wykorzystuje się przybliżenia statystyczne w celu wyznaczenia macierzy kowariancji błędów analizy oraz kowariancji błędów pierwszego przybliżenia. W tym celu generujemy zbór wektorów analizy poprzez wielokrotne asymilowanie danych jednak z różnymi macierzami kowariancji błędów pierwszego przybliżenia oraz obserwacji. Zwykle dodaje się pewien rodzaj szumu. Podobnie zaburza się pole pierwszego przybliżenia Metoda analogiczna do metody prognoz metodą wiązek.
Wykorzystujemy różnice pomiędzy wektorami analizy do wyznaczenia macierzy kowariancji błędów analizy. Nie wymaga to kosztownego odwracania macierzy jak we wcześniejszych metodach. gdzie mamy uśrednianie po zespole. Poprzez wykonanie krótko-czasowej prognozy dla zbioru analiz dostajemy zbiór pól pierwszego przybliżenia, który pozwala nam wyznaczyć macierz kowariancji błędu
Cechy Ensemble Kalman filter (EKF) Idealnie nadaje się do wektoryzacji na procesorach równoległych. W metodzie model diagnozuje aktualną macierz kowariancji błędów pierwszego przybliżenia zamiast wykorzystywać propagację przybliżonej kowariancji błędów analizy. Błędy losowe w statystycznym oszacowaniu macierzy kowariancji błędów zmniejszają się jak pierwiastek z rozmiaru zbioru.
Podsumowanie Filtr Kalmana odpowiada metodzie wariacyjnej dla układu liniowego. Dla układów z niewielką nieliniowością stosuje się rozszerzony filtr Kalmana. Jednak wymaga to użycia modelu sprzężonego (adjonts) oraz operatorów stycznych. Ensemble Kalman Filter jest metodą stosunkowo prostą do użycia gdyż nie wymaga modeli sprzężonych.