Was ist das Kalman-Filter?
Das Kalman-Filter ist ein Satz von Gleichungen mit denen trotz fehlerbehafteter Messungen
und verrauschten Systemzuständen der wahre Zustand eines Systems geschätzt werden kann.
Benannt ist das Kalman-Filter nach Rudolf Emil Kálmán. Trotz der Benennung nach ihm kann
das Filter nicht Kalman alleine zugeschrieben werden. Vor der von Kalman 1960 publizierten
Arbeit gab es viele ähnliche Arbeiten die sich mit ähnlichen Filtern beschäftigten. Zu nennen
wäre zum Beispiel der Wiener-Filter der von Wiener und Kolmogorov entwickelt wurde und von
Wiener 1949 publiziert wurde.
Eine Besonderheit an der Arbeit von Kalman war jedoch die rekursive Struktur mit der sich
das Filter leicht in einem Computerprogramm implementieren ließ. Letztendlich spielt wohl die
Tatsache das das Kalman-Filter für das Apollo-Programm eingesetzt wurde eine entscheidende
Rolle für die Bekanntheit der Arbeit von Kalman und der Benennung nach ihm.
Kalman-Filter-Gleichungen
Die Gleichungen für den Kalman-Filter lauten:
Prädiktion:
\begin{eqnarray}
\underline{\hat{x}}_{k+1}&=&\underline{A}_{d} \ \underline{\tilde{x}}_{k}+\underline{B}_{d} \ \underline{u}_k \\
\underline{\hat{P}}_{k+1}&=&\underline{A}_{d} \ \underline{\tilde{P}}_{k} \ \underline{A}^{T}_{d} + \underline{G} \ \underline{Q}_k \underline{G}^{T}
\end{eqnarray}
Korrektur:
\begin{eqnarray}
\underline{\tilde{x}}_{k}&=& \underline{\hat{x}}_{k} + \underline{K}_k (\underline{y}_k - \underline{C} \ \underline{\hat{x}}_k) \\
\underline{K}_k &=& \underline{\hat{P}}_k \ \underline{C}^{T} (\underline{C} \ \underline{\hat{P}}_k \ \underline{C}^{T} + \underline{R}_k)^{-1} \\
\underline{\tilde{P}}_k&=&(\underline{I}-\underline{K}_k \ \underline{C})\underline{\hat{P}}_k
\end{eqnarray}
dabei haben die Signale und Matrizen folgende Bezeichnung und Bedeutung:
, |
Zustandsvektor des Prozesses |
|
vorhergesagter Zustandsvektor des Kalman-Filters |
|
geschätzter Zustandsvektor des Kalman-Filters |
|
Eingangsvektor |
|
Ausgangsvektor des Prozesses |
|
Ausgangsvektor des Kalman-Filters |
|
Einheitsmatrix |
|
Systemmatrix (diskret) |
|
Eingangsmatrix (diskret) |
|
Ausgangsmatrix |
|
Kalman-Verstärkung |
|
Matrix zur Gewichtung des Systemrauschens |
|
Systemrauschen |
|
Messrauschen |
|
Kovarianz des Systemrauschens $Var(\underline{w}_k)$ |
|
Kovarianz des Messrauschens $Var(\underline{v}_k)$ |
, |
Kovarianz des Schätzfehlers |
Dargestellt in einem Blockschaltbild:
Herleitung im Blockschaltbild
Es folgt nun eine Herleitung der Kalman-Filter-Gleichungen im Blockschaltbild. Weitere Besprechungen und Herleitungen können Wendel, Simon und Maybeck.1979 entnommen werden.
Das Blockschaltbild besteht aus zwei Teilen. Der obere Teil zeigt den echten Prozess, dessen Zustand geschätzt werden soll und der untere Teil zeigt den Kalman-Filter.
Für die Herleitung der Kalman-Filter-Gleichungen soll im ersten Schritt das System- und Messrauschen und der Systemblock
als nicht vorhanden betrachtet werden. Damit gilt:
\begin{align}
\underline{\tilde{x}}_{k}=\underline{\hat{x}}_{k}
\end{align}
Unter diesen Vorraussetzung gelten die Gleichungen analog zum Abschnitt der Zustandsraumdarstellung:
Für den Prozess:
\begin{align}
\underline{x}_{k+1}=\underline{A}_{d} \ \underline{x}_{k}+\underline{B}_{d} \ \underline{u}_k
\end{align}
Für das Kalman-Filter:
\begin{align}
\underline{\hat{x}}_{k+1}=\underline{A}_{d} \ \underline{\tilde{x}}_{k}+\underline{B}_{d} \ \underline{u}_k
\end{align}
Wie dem Blockschaltbild zu entnehmen ist, sind die Blöcke
,
und
im Kalman-Filter gleich den Blöcken des Prozesses. Dies ist eine wichtige Vorraussetzung, es gilt den Prozess durch Zustandsmodellierung exakt wie möglich nachzubilden. Ist dies möglich, ist der Ausgang des Prozesses gleich dem des Kalman-Filters:
\begin{align}
\underline{y}_{k}=\underline{\hat{y}}_{k}
\end{align}
Die Differenz
ist so immer null.
Im zweiten Schritt der Herleitung tritt nun das System- und Messrauschen im zu beobachtenden Prozess auf. Das Systemrauschen dient zur Berücksichtigung von Modellunsicherheiten. Jeder Praktiker weiß, dass ein Modell nur näherungsweise einen realen Prozess beschreiben kann. Die Größe
wird durch eine fehlerbehaftete Messung ermittelt. Durch das Rauschen
und
ist der Ausgang des Prozesses
ungleich des Ausganges des Kalman-Filters
.
Um zu erreichen, dass beide Ausgänge wieder gleich sind, wird durch die Matrix
die Rückführung der Zustandsgrößen im Kalman-Filter so manipuliert, dass das System- und Messrauschen im Prozess ausgeglichen wird. Für diese Korrektur gilt:
\begin{eqnarray}
\tilde{\underline{x}}_k &=& \hat{\underline{x}}_{k}+\underline{K}_k \Delta y \\
\tilde{\underline{x}}_k &=& \hat{\underline{x}}_{k}+\underline{K}_k (\underline{y}_k - \underline{C} \ \underline{\hat{x}}_k)
\end{eqnarray}
Hinter
steckt eine Menge von statistischen Berechnungen, deshalb soll an dieser Stelle auf eine Herleitung verzichtet werden. Die Berechnung von
erfolgt mit:
\begin{align}
\underline{K}_k=\hat{\underline{P}}_k \ \underline{C}^{T} (\underline{C} \ \hat{\underline{P}}_k \ \underline{C}^{T} + \underline{R}_k)^{-1}
\end{align}
Eine wesentliche Eigenschaft des Kalman-Filters ist, dass eine Güte der Schätzung in Form einer Schätzfehlerkovarianzmatrix berechnet wird. Damit errechnet sich die Güte der Prädiktion mit:
\begin{align}
\hat{\underline{P}}_{k+1}=\underline{A}_d \ \tilde{\underline{P}}_k \ \underline{A}^{T}_{d} + \underline{G} \underline{Q}_k \underline{G}^{T}
\end{align}
Für die Korrektur gilt:
\begin{align}
\tilde{\underline{P}}_k=(\underline{I}-\underline{K}_k \ \underline{C})\hat{\underline{P}}_k
\end{align}
Betrachtungen
Es folgen einige erläuternde Aspekte zur Funktionsweise des Kalman-Filters:
- Ist die Schätzung des Kalman-Filters gleich dem Zustand des echten Prozesses dann gilt
und somit ist
. Dies bedeutet, dass keine Korrektur durchgeführt werden muss. - Ist des Ausgang des Kalman-Filters ungleich dem Ausgang des Prozesses und
relativ groß, führt dies zur einer starken Korrektur. - Ist das System- und das Messrauschen konstant, dann ist auch
konstant! - Je nach Situation schwankt
zwischen 0 und 1. Bei
wird bei der nächsten Prädiktion nur dem vorhergehenden Schätzwert geglaubt, bei
nur der Messung. - Ist keine Messung erfolgt kann
einfach null gesetzt. - Ändert sich das Rauschens muss
nicht zwangsweise neu berechnet werden. Das Kalman-Filter benötigt unter Umständen nur mehr Iterationsschritte um den wahren Zustand des Prozesses zu schätzen. - Durch die Rekursivität entfällt das Abarbeiten und die Speicherung langer Datenketten, wie sie zum Beispiel bei der Regressionsmethode notwendig ist.
- Die Eingangsgröße
wird häufig durch eine Messung ermittelt. Ein vorhandenes Messrauschen kann dann dem Systemrauschen zugeschlagen werden. Dies setzt jedoch voraus, dass keine Ableitungen dieser Größen im Zustandsvektor auftreten.
Für die Praxis wichtig sind die Tatsachen:
Wesentliche Eigenschaften
- Ist das System- und Messrauschen weiß, normalverteilt, mittelwertfrei und nicht korrelierend, dann ist das Kalman-Filter die optimalste Lösung. Kein anderer Filter liefert im Mittel eine kleinere Summe der quadratischen Schätzfehler.
- Ist das System- und Messrauschen weiß, nicht normalverteilt, mittelwertfrei und nicht korrelierend, dann existieren zwar nichtlineare bessere Lösungen. Das Kalman-Filter ist aber die optimalste lineare Lösung.















