Filtr Kalmana
Filtr Kalmana możemy używać do nieliniowych systemów i dyskretnego modelu stanu. Filtracja Kalmana jest skuteczna dla wyznaczenia oceny parametrów modelu, z powodu dwoistości, jest również podobny do charakterystyki problemu LQR.
model liniowego nieustalonego procesu możemy matematycznie przedstawić jako:
![]()
gdzie ω(t) oznacza zmienną losową, wartość oczekiwaną zmiennej losowej wynosi:
![]()
gdzie ε(t) jest operatorem wartości oczekiwanej:
![]()
gdzie cov jest operatorem kowariancji
gdzie operator wartości oczekiwanej możemy zdefiniować jako:

gdzie f(ω)jest funkcją gęstości prawdopodobieństwa. Kowariancja jest natomiast definiowana jako:
![]()
dla skalarnej zmiennej losowej ω, funkcja gęstości prawdopodobieństwa według rozkładu Gaussa wynosi:

gdzie: σ2 - wariancją rozkładu,
pierwiastek kwadratowy σ2 wynosi σ i jest nazywany standardowym odchyleniem, ![]()
- średnia wartością i jest wartością oczekiwana rozkładu normalnego. Wykres rozkładu normalnego jest przedstawiony poniżej

Rysunek ten przedstawia kształt rozkładu a także wartość średnią i odchylenie standardowe
Rys. Funkcja gęstości prawdopodobieństwa Gaussa.
Dla zmiennych wektorowych rozkład Gaussa wyraża się wzorem:

gdzie:
![]()
- wartość średnia określona wzorem

V - kowariancja macierzy określona wzorem
Warunki początkowe procesu są następujące:

liniowy pomiar systemu jest modelowany następujący:
![]()
gdzie υ(t) jest szumem losowym:
dla którego przyjmuje się taki rozkład normalny że


Jest kilka sposobów jak można użyć modelu probablistycznego i systemu pomiarowego. Te sposoby to: wygładzanie, filtrowanie i predykcja. Wygładzanie polega na użyciu danych przed i po czasie t1 do zapewnienia estymaty stanu dla czasu t1. Jest to proces niesekwencyjny i jest przedstawiony na rys:

Filtrowanie jest estymatą stanu dla czasu t1 wówczas gdy użyte są wszystkie dane aż do czasu t1. Jest to proces sekwencyjny przedstawiony na rys:
Predykcja jest uzyskiwaniem estymat stanu dla czasu t2 na podstawie danych do czasu t1 gdzie t1 jest mniejsze od t2.

Kalman rozważał uzyskanie optymalnej estymaty stanu procesu liniowego opisanego równaniem:
![]()
gdzie:

a warunki początkowe wynoszą:
![]()
gdzie:

Wówczas model pomiarowy określony jest następująco:
![]()
gdzie:

Chcemy znaleźć optymalną estymatę stanu, która minimalizuje funkcjonał:

używając odwrócenia macierzy kowariancji w funkcjonale uzyskujemy bardziej dokładne stany i pomiary w procesie optymalizacji. Ten problem może być także sformułowany jako problem optymalnego sterowania przez zdefiniowanie wektora sterowania jako:
![]()
po przekształceniu równanie stanu wynosi:
![]()
a funkcjonał wynosi:

Hamiltonian dla tego problemu wynosi:
![]()
a warunki konieczne dla zminimalizowania funkcjonału jakości są następujące:

gdy x(0) jest równe zero otrzymamy

po przekształceniu:
![]()
lub
![]()
stan końcowy jest także wolny, co prowadzi do:
![]()
wówczas optymalne sterowanie wynosi:

Weźmy pod uwagę zagadnienie filtracji, które określa optymalne estymaty dla czasu końcowego na podstawie znajomości danych aż do czasu końcowego. Oznaczmy optymalne estymaty dla czasu tk i dla danych y(t) do czasu tk wyznaczoną przy pomocy filtracji jako :
![]()
Wprowadzając transformację Riccatiego
![]()
chcemy określić funkcje z(t) i P(t), które są konsekwencją warunków koniecznych dla optymalizacji. Optymalna estymaty są określone przez model stanu i sterowanie optymalne jako:
![]()
Używając transformacji Riccatiego do oceny zarówno ![]()
otrzymamy:
![]()
albo korzystając z równania * otrzymamy:
![]()

Przenosząc wszystkie z na lewą stronę równania i λ na prawą stronę otrzymamy:

Zależność ta jest prawdziwa ⇔ gdy obie strony równania 10.2.28 są równe zero. Prowadzi to do następującej zależności:

na podstawie początkowych warunków transwersalności równania 10.2.19 i transformacji Riccatiego otrzymamy:

Oba warunki są dla czasu początkowego, dlatego powyższe równania są integralne w każdej następnej chwili czasu. Dla problemu filtracji próbujemy wyznaczyć
![]()
Jest to ostatni najmniejszy kwadratowa estymata dla czasu tk oparta na wszystkich danych aż do czasu tk . Końcowy warunek transwersalności jest następujący:
![]()
co oznacza że, na podstawie transformacji Riccatiego otrzymuje się:
![]()
Dlatego dla filtracji otrzymujemy:

przy warunkach początkowych:

Równania 10.2.35 10.2.36 znane są jako filtr Kalmana, i zostały sformułowane po raz pierwszy przez Kalmana i Bucy'ego w 1961 roku.
Wzmocnienie filtra definiuje się jako:
![]()
Dla stanu końcowego równanie 10.2.36 przedstawia stan ustalony, więc wzmocnienie filtra dla stanu ustalonego wynosi:
![]()
a optymalne estymaty stanu są następujące:
![]()
Filtr Kalmana posiada kilka ważnych własności:
Odchylenie estymaty stanu.
Błąd estymaty stanu definiujemy jako:
![]()
Oczekiwaną wartość błędu definiuje się jako:
![]()
kowariancję błędu definiujemy jako:
![]()
dlatego macierz P(t) jest kowariancją bieżącego błędu i jest nazywana wariacją minimalnego błędu.
Wariancja ![]()
- charakteryzuje rozrzut wartości zmiennej losowej X wokół wartości średniej E(X). Niech X = (X1, X2, ... , Xn) zmienna losowa wielowymiarowa (weźmy dla prostoty r = 2) niech także:

gdyby tak nie było możemy zmienną scentrować ![]()
czyli odjąć od niej wartość średnią.
Macierz kowariancji definiujemy:

przy założeniu scentrowania mamy:




