Jakas reklama 

 

Filtr Kalmana to 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.

Algorytm ten został zaproponowany w pracy Rudolfa Emila Kalmana "A new approach to linear filtering and prediction problems", opublikowanej na łamach czasopisma Journal of Basic Engineering w roku 1960.

Filtr Kalmana znalazł zastosowanie w ogromnej liczbie dziedzin techniki, do których należą m.in.: automatyka, robotyka, elektronika, teoria sterowania, przetwarzanie sygnałów, inżynieria dźwięku i obrazu, i wiele innych.

Spis treści

edytuj Równania liniowego dyskretnego modelu stanowego

Model obrazujący działanie filtru Kalmana. Okręgi to wektory, prostokąty to macierze, a gwiazdki reprezentują szum z przypisaną kowariancją w kwadracie po prawej stronie

Filtr Kalmana jest optymalnym obserwatorem stanu układu (czyli układem, który estymuje jego stan), który modelowany jest z użyciem równań stanu:

\mathbf{x}(t+1)=\mathbf{Ax}(t)+\mathbf{Bu}(t)+\mathbf{v}(t)

\mathbf{y}(t)=\mathbf{C}^T\mathbf{x}(t)+\mathbf{w}(t),

gdzie

t=\dots ,-1,0,1,2,\dots oznacza dyskretną chwilę czasu,

\mathbf{x(t)} to chwilowa wartość wektora stanu,

\mathbf{A} to macierz systemowa układu (macierz przejścia),

\mathbf{B} to macierz wejściowa,

\mathbf{C} macierz wyjściowa,

\mathbf{v}(t) wektor szumu przetwarzania, a

\mathbf{w}(t) to wektor szumu pomiarowego.

\mathbf{y}(t) to wektor pomiarowy

edytuj Równania filtru

Równania filtru Kalmana dzielą się dwie kategorie: równania aktualizacji czasu i równania aktualizacji pomiarów. Te pierwsze dokonują predykcji stanu układu na chwilę t na podstawie znajomości estymaty stanu na chwilę t-1.

\hat{\mathbf{x}}(t|t-1)=\mathbf{A\hat{x}}(t-1|t-1) + \mathbf{B\hat{u}}(t-1)

\mathbf{P}(t|t-1) = \mathbf{AP}(t-1|t-1)\mathbf{A}^T+\mathbf{V}

Wektory

\hat{\mathbf{x}}(t|t-1) i \hat{\mathbf{x}}(t-1|t-1)

stanowią estymaty a priori (przed pomiarem) i a posteriori (po pomiarze) wektora stanu. Macierze

\mathbf{P}(t|t-1)=E\left[ \tilde{\mathbf{x}}(t|t-1) \tilde{\mathbf{x}}^T(t|t-1)\right] i \mathbf{P}(t-1|t-1)=E\left[ \tilde{\mathbf{x}}(t-1|t-1)\tilde{\mathbf{x}}^T(t-1|t-1)\right]

to macierze kowariancji, odpowiednio: a priori i a posteriori, wektorów

\tilde{\mathbf{x}}(t|t-1) = \mathbf{x}(t) - \mathbf{\hat{x}}(t|t-1) oraz \tilde{\mathbf{x}}(t-1|t-1) = \mathbf{x}(t-1) - \mathbf{\hat{x}}(t-1|t-1).

Wektory te stanowią różnicę pomiędzy rzeczywistą wartością wektora stanu, a jego estymatą i są miarą błędu oceny wektora stanu. Macierz

\mathbf{V} to macierz kowariancji szumu przetwarzania.

Równania z drugiej kategorii aktualizują wyliczoną wcześniej predykcję stanu, na podstawie pomiaru

\hat{\mathbf{x}}(t|t)=\mathbf{\hat{x}}(t|t-1)+\mathbf{K}(t)\mathbf{e}(t)

\mathbf{e}(t) = \mathbf{y}(t) - \mathbf{C}^T\mathbf{\hat{x}}(t|t-1)

\mathbf{K}(t) = \mathbf{P}(t|t-1)\mathbf{C}^T\mathbf{S}^{-1}(t)

\mathbf{S}(t) = \mathbf{C}^T\mathbf{P}(t|t-1)\mathbf{C}^T+\mathbf{W}

\mathbf{P}(t|t) = \mathbf{P}(t|t-1) - \mathbf{K}(t)\mathbf{S}(t)\mathbf{K}^T(t)

Macierz

\mathbf{K}(t)

nosi nazwę wzmocnienia Kalmana. Wartość wzmocnienia Kalmana decyduje o tym, czy bardziej "ufamy" naszej ocenie stanu (a priori), czy informacji zawartej w pomiarach. Zerowe wzmocnienie oznacza, że zupełnie ignorujemy pomiary - są obarczone nieskończenie wielkim błędem (wariancja szumu pomiarowego jest nieskończona). Wzmocnienie równe \left(\mathbf{C}^T\right)^{-1}(t) (jeżeli macierz \mathbf{C}^T(t) jest kwadratowa) powoduje, że estymata a posteriori wektora stanu opierać się będzie wyłącznie na pomiarze wyjścia układu. Wektor

\mathbf{e}(t)

to wektor innowacyjny. Nazwany został tak dlatego, że jego wartość niesie ze sobą nową (opartą na najnowszych pomiarach) informację o procesie. Macierz

\mathbf{W}

to macierz kowariancji szumu pomiarowego.

Równania filtru Kalmana nie zmieniają swojej postaci w przypadku, gdy układ jest niestacjonarny. Jest to jedna z jego podstawowych zalet w stosunku do wcześniejszego filtru Wienera.

edytuj Przykłady zastosowań

edytuj Zobacz też


Wierszyki walentynki pozycjonowanie slub forum hosting seriale soundtrack