Metody Przetwarzania Danych 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 dyskretnego układu dynamicznego na podstawie
pomiarów wyjścia tego układu.
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.
3
Zastosowania Filtru Kalmana
1. 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.
2. 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.
5
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:
k k
k 1
k k
k F x B u w
x
F
k- jest modelem przejścia, który używany jest dla wektora stanu (k-1).
B
k– jest opcjonalnym modelem parametrów wejściowych do modelu używany dla wektora kontrolnego u
k.
w
k– opisuje szumy, zakładamy że ma postać
wielowymiarowego rozkładu normalnego z wartościami średnimi równymi zero oraz macierzą kowariancji Q
k) Q , 0 ( N
w k k
k k
k
k H x v
z
Dla chwili k obserwacje z
krzeczywistego wektora stanu x
kmożna zapisać w postaci:
gdzie H
kjest modelem który transformuje rzeczywisty wektor stanu w przestrzeni obserwacji,
V
k– jest szumem związanym z obserwacjami
) R , 0 ( N
v
k
kWiele 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.
7
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.
k
|
xˆ
k k|
P
kFiltr Kalmana
9
Predykcja
k k 1
k
| 1 k k 1
k
|
k F xˆ B u
xˆ
k T
k 1 k
| 1 k k 1
k
|
k F P F Q
P
nowy stan
kowariancja nowego
stanu
Uaktualnianie (Update)
1 k
| k k k
k
z H xˆ
y~
k T
k 1 k
| k k
k
H P H R
S
1 k T k 1 k
| k
k
P H S
K
k k 1
k
| k k
|
k
xˆ K y~
xˆ
1 k
| k k
k k
|
k
( I K H ) P
P
optymalne wzmocnienie filtru Kalmana poprawiony wektor stanu
poprawiona macierz kowariancji residuum wektora obserwacji
residuum macierzy kowariancji
Ostatni wzór jest prawdziwy tylko w przypadku gdy
wzmocnienie filtru Kalmana jest optymalne
11
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):
0
|
xˆ
0P
0|00 ]
xˆ x
[ E ]
xˆ x
[
E
k
k|k
k
k|k1
0 ]
y~
[
E
k
Ponadto zdefiniowane powyżej macierze kowariancji dokładnie odzwierciedlają macierze kowariancji błędów.
) xˆ , x cov(
P
k|k
k k|k)
xˆ , x cov(
P
k|k1
k k|k1)
y~
cov(
S
13
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 B
koraz u
k.
• Ponadto F, H, R, Q są stałymi i dlatego pomijamy indeksy czasowe
• Wektor stanu ma postać:
x x
kx
14
• Zakładamy, że pomiędzy chwilą k-1 a chwilą k
przyspieszenie pojazdu jest stałe a
k. Ma ono rozkład normalny z wartością oczekiwaną równą zero.
• Na podstawie mechaniki newtonowskiej mamy:
k 1
k
k
Fx Ga
x
0 1 t F 1
2 t G t
2
Obliczamy kowariancje
T 2
a T
2 a T
2
T
] GE [ a ] G G G GG
) Ga )(
Ga [(
E )
Ga cov(
Q
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 Hx v
15 k
k
k
Hx v
z
] 0 1 [ H
2 z T
v k
v ] v
[ E
R
Jeśli znamy wektor początkowy z zerowym błędem
0
xˆ
0|00
0 0
0 P
0|00
Jeśli zaś nie znamy dokładnego położenia inicjalizacje
filtru Kalmana wykonujemy przez zadanie dużej wartości B
B 0
0
P
0|0B
Przykład I (matlabie)
odchylenie standardowe przyspieszenia: 0.5 feet/s
2dokładności pomiaru położenia: 10 feet
17
Przykład II
• Zakładamy z góry pewną wartość rzeczywistą z=- 0.37727
• Wykonujemy (symulujemy) 50 pomiarów z
k, 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ść P
kdla kolejnej iteracji. Wartość
początkowa P
o=1.
19
Wyznaczanie macierzy kowariancji aposteriori
) xˆ x
cov(
P
k|k
k
k|k)) y~
K xˆ
( x
cov(
P
k|k
k
k|k1
k k))) x
H z
( K xˆ
( x
cov(
P
k|k
k
k|k1
k k
k k|k1))) x
H v
x H ( K xˆ
( x
cov(
P
k|k
k
k|k1
k k k
k
k k|k1podstawiając za
y~
kpodstawiając za
podstawiając za
k
|
xˆ
kz
kprzegrupowując dostajemy:
) v K )
x x
)(
H K I
cov((
P
k|k
k k k
k|k1
k kJeśli wektor obserwacji nie jest skorelowany z pozostałymi członami
) v K cov(
)) x
x )(
H K I
cov((
P
k|k
k k k
k|k1
k k21 T
k k
k T
k k 1
k
| k k
k k k
|
k
( I K H ) cov( x x )( I K H ) K cov( v ) K
P
Wykorzystując własności wektora kowariancji mamy
Uwzględniając niezmienniczości
oraz definicje macierzy R
kotrzymujemy
1 k
|
P
k T k k k T
k k 1
k
| k k k k
|
k
( I K H ) P ( I K H ) K R K
P
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:
]
| xˆ x
[|
E
k
k|k 2) R K
H P
H ( K K
H P
P H K P
P k | k k | k 1 k k k | k 1 k | k 1 T k T k k k k | k 1 T k T k k
T k k k T
k T k 1 k
| k 1
k
| k k k 1
k
| k k
|
k P K H P P H K K S K
P
k
| k k
xˆ x
k
|
P
k23 T
k 1 k
| k T
1 k
| k k k
k
S ( H P ) P H
K
1 k T k 1 k
| k
k
P H S
K
0 S
K 2 )
P H ( K 2
) P ( tr
k k T
1 k
| k k k
k
|
k
Obliczamy pochodną śladu macierzy, która powinna być zero (minimalizacja)
Obliczone wzmocnienie K
kjest 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ć
) w , u , x ( f
x
k
k1 k k)
v , x ( h
z
k
k k25
• 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
) 0 , u , xˆ
( f
xˆ k | k 1 k 1 | k 1 k
k T
k 1 k
| 1 k k 1
k
|
k F P F Q
P
1 k
|
xˆ
kk x
H h
uk , 1 k
| 1
xˆ
kk x
F f
gdzie jakobiany
mają postać
Uaktualnianie (Update) EKF
) 0 , xˆ
( h z
y~
k
k
k|k1k T
k 1 k
| k k
k
H P H R
S
1 k T k 1 k
| k
k
P H S
K
k k 1
k
| k k
|
k
xˆ K y~
xˆ
1 k
| k k
k k
|
k
( I K H ) P
P
Filtr Kalmana jest mało użyteczny dla silnie nieliniowych funkcji.
Wynika to z faktu, że tylko wartość średnia propagowana jest
przez filtr nieliniowy.
27
29
• 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.
Ensemble Kalman Filter
• 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
31