Der Kalman-Gain (Kalman Gain)

Die endgültige Gleichung ist die Kalman-Gain-Gleichung (Kalman Gain equation).

Der Kalman-Gain (Kalman Gain) in Matrixschreibweise lautet:

\[ \boldsymbol{K}_{n} = \boldsymbol{P}_{n,n-1}\boldsymbol{H}^{T}\left(\boldsymbol{HP}_{n,n-1}\boldsymbol{H}^{T} + \boldsymbol{R}_{n} \right)^{-1} \]
Wobei:
\( \boldsymbol{K}_{n} \) ist der Kalman-Gain (Kalman Gain)
\( \boldsymbol{P}_{n,n-1} \) ist die Kovarianzmatrix der a-priori-Schätzung (prior estimate) des aktuellen Zustands (im vorherigen Schritt vorhergesagt)
\( \boldsymbol{H} \) ist die Beobachtungsmatrix (observation matrix)
\( \boldsymbol{R}_{n} \) ist die Messrausch-Kovarianzmatrix (measurement noise covariance matrix)
Kalman-Filter-Buch
Beispielorientierter Leitfaden zum Kalman-Filter

Intuitive Erklärung des Kalman-Gains

Beginnen wir mit der 1D-Zustandsaktualisierungsgleichung (state update equation):

\[ \hat{x}_{n,n} = \hat{x}_{n,n-1} + {k}_{n}({z}_{n} - \hat{x}_{n,n-1}) \]

Diese Gleichung zeigt, wie die aktualisierte Zustandsschätzung \( \hat{x}_{n,n} \) entsteht: Die a-priori-Schätzung (prior estimate) \( \hat{x}_{n,n-1} \) wird mithilfe der Innovation (innovation) korrigiert (der Differenz zwischen der Messung \( {z}_{n} \) und der a-priori-Schätzung). Der Kalman-Gain \( {k}_{n} \) bestimmt, wie stark wir der Messung im Vergleich zur a-priori-Schätzung vertrauen.

Erweiterung auf den mehrdimensionalen Fall (multivariate case)

Im eindimensionalen Fall liegen der Systemzustand \( x_{n} \) und die Messung \( z_{n} \) in derselben Domäne (domain). Wenn \( x_{n} \) zum Beispiel die wahre Höhe eines Gebäudes beschreibt, dann ist \( z_{n} \) eine direkte Messung genau dieser Höhe.

Im mehrdimensionalen Fall ist das etwas anders. Der Messvektor (measurement vector) \( \boldsymbol{{z}}_{n} \) und der Zustandsvektor (state vector) \( \boldsymbol{x}_{n} \) liegen häufig in unterschiedlichen Domänen. Deshalb können wir die beiden nicht direkt voneinander abziehen, um die Innovation zu berechnen. Stattdessen projizieren wir den Systemzustand mit der Beobachtungsmatrix (observation matrix) \( \boldsymbol{H} \) in die Messdomäne (measurement domain):

\[ \text{innovation} = (\boldsymbol{{z}}_{n} - \boldsymbol{H}\boldsymbol{\hat{x}}_{n,n-1}) \]

Wie im Kapitel Messgleichung (Measurement Equation) beschrieben, bildet die Beobachtungsmatrix \( \boldsymbol{H} \) den Zustandsvektor \( \boldsymbol{{x}}_{n} \) aus der Zustandsdomäne (state domain) in die Messdomäne ab.

Betrachten wir zum Beispiel eine senkrecht gestartete Rakete, deren Zustand durch die Höhe \( h_{n} \) und die vertikale Geschwindigkeit \( v_{h_{n}} \) beschrieben wird. Der Zustandsvektor lautet:

\[ x_n = \begin{bmatrix} h_n \\ v_{h_n} \end{bmatrix} \]

Angenommen, es wird nur die Höhe gemessen. Dann hängt die Messung \( \boldsymbol{z}_{n} \) wie folgt mit dem Systemzustand zusammen:

\[ \boldsymbol{z}_{n} = \boldsymbol{H} \boldsymbol{x}_{n} + v_n = \begin{bmatrix} 1 & 0 \end{bmatrix} \begin{bmatrix} h_n \\ v_{h_n} \end{bmatrix} + v_n \]

Wobei:

  • \( \boldsymbol{H} = \begin{bmatrix} 1 & 0 \end{bmatrix} \)
  • \( v_{n} \) ist ein Messrauschen (measurement noise).

Schauen wir uns nun die Zustandsaktualisierungsgleichung im mehrdimensionalen Fall genauer an, wie im Kapitel Zustandsaktualisierung (State Update) beschrieben.

\[ \boldsymbol{\hat{x}}_{n,n} = \boldsymbol{\hat{x}}_{n,n-1} + \boldsymbol{K}_{n}(\boldsymbol{{z}}_{n} - \boldsymbol{H}\boldsymbol{\hat{x}}_{n,n-1}) \]

Da der Systemzustand \( \boldsymbol{\hat{x}}_{n,n-1} \) und die Messung \( \boldsymbol{z}_{n} \) in unterschiedlichen Domänen liegen können, projizieren wir die Zustandsschätzung mithilfe der Beobachtungsmatrix \( \boldsymbol{H} \) in die Messdomäne.

Betrachten wir den Kalman-Gain im eindimensionalen Fall, wie im Kapitel Kalman-Filter in einer Dimension (Kalman Filter in One Dimension) hergeleitet:

\[ k_{n} = \frac{p_{n,n-1}}{p_{n,n-1} + r_{n}} \]

Wobei:

  • \( p_{n,n-1} \) ist die Varianz (variance) der a-priori-Schätzung \( \hat{x}_{n,n-1} \)
  • \( r_{n} \) ist die Varianz des Messrauschens

Dieser Ausdruck zeigt, dass der Kalman-Gain \( k_{n} \) die Unsicherheit der a-priori-Schätzung gegen die Unsicherheit der Messung abwägt. Wenn die a-priori-Schätzung unsicherer ist (d. h. \( p_{n,n-1} \) ist groß), verschiebt der Gain mehr Gewicht auf die Messung. Umgekehrt gilt: Wenn die Messung verrauscht ist (d. h. \( r_{n} \) ist groß), bevorzugt der Gain die a-priori-Schätzung.

Damit der Filter optimal ist, wollen wir die Varianz \( p_{n,n} \) der aktuellen (a-posteriori-)Schätzung \( \hat{x}_{n,n} \) minimieren. Diese wird aus der vorhergesagten (a-priori-)Schätzung \( \hat{x}_{n,n-1} \) und der Messung \( \hat{z}_{n} \) berechnet. Der Kalman-Gain \( k_{n} \) minimiert diese a-posteriori-Varianz. Die detaillierte Herleitung finden Sie im Kapitel Kalman-Filter in einer Dimension.

Schreiben wir den eindimensionalen Kalman-Gain wie folgt um:

\[ k_{n} = p_{n,n-1}(p_{n,n-1} + r_{n})^{-1} \]

Im mehrdimensionalen Fall arbeiten wir mit der Kovarianzmatrix (covariance matrix) der a-priori-Unsicherheit \( \boldsymbol{P}_{n,n-1} \) sowie mit der Kovarianzmatrix des Messrauschens \( \boldsymbol{R}_{n} \). Bevor wir \( \boldsymbol{P}_{n,n-1} \) mit \( \boldsymbol{R}_{n} \) kombinieren können, müssen wir \( \boldsymbol{P}_{n,n-1} \) in die Messdomäne projizieren. Diese Projektion erfolgt mithilfe der Beobachtungsmatrix \( \boldsymbol{H} \).

Da \( \boldsymbol{P}_{n,n-1} \) eine Kovarianzmatrix ist und Varianz ein quadrierter Term ist, muss die Projektion mit folgender Transformation erfolgen:

\[ \boldsymbol{H}\boldsymbol{P}_{n,n-1}\boldsymbol{H}^{T} \]

(Siehe den Beweis in Kapitel 7.5 des Buches.)

Dieser Term repräsentiert die Unsicherheit der vorhergesagten Messung – analog zu \( p_{n,n-1} \) im eindimensionalen Fall.

Nach der Projektion der a-priori-Unsicherheit in die Messdomäne hat der Kalman-Gain* im mehrdimensionalen Fall die Form:

\[ \color{green}{\boldsymbol{H}\boldsymbol{P}_{n,n-1}\boldsymbol{H}^{T}}(\color{green}{\boldsymbol{H}\boldsymbol{P}_{n,n-1}\boldsymbol{H}^{T}} + \color{blue}{\boldsymbol{R}_{n}})^{-1} \]

(* Dies ist nicht die endgültige Form des Kalman-Gains)

Kalman-Gain* multipliziert mit der Innovation ergibt:

\[ \color{green}{\boldsymbol{H}\boldsymbol{P}_{n,n-1}\boldsymbol{H}^{T}}(\color{green}{\boldsymbol{H}\boldsymbol{P}_{n,n-1}\boldsymbol{H}^{T}} + \color{blue}{\boldsymbol{R}_{n}})^{-1}(\boldsymbol{{z}}_{n} - \boldsymbol{H}\boldsymbol{\hat{x}}_{n,n-1}) \]

Der obige Ausdruck liegt in der Messdomäne, aber in der Zustandsaktualisierungsgleichung müssen wir die Systemzustandsschätzung \( \boldsymbol{\hat{x}}_{n,n-1} \) aktualisieren, die in der Zustandsdomäne liegt:

\[ \boldsymbol{\hat{x}}_{n,n} = \boldsymbol{\hat{x}}_{n,n-1} + \boldsymbol{K}_{n}(\boldsymbol{{z}}_{n} - \boldsymbol{H}\boldsymbol{\hat{x}}_{n,n-1}) \]

Indem wir das führende \( \boldsymbol{H} \) aus dem Ausdruck für den Kalman-Gain* entfernen, verschieben wir das Ergebnis zurück in die Zustandsdomäne. Der aktualisierte Ausdruck für den Kalman-Gain multipliziert mit der Innovation lautet dann:

\[ \color{green}{\boldsymbol{P}_{n,n-1}\boldsymbol{H}^{T}}(\color{green}{\boldsymbol{H}\boldsymbol{P}_{n,n-1}\boldsymbol{H}^{T}} + \color{blue}{\boldsymbol{R}_{n}})^{-1}(\boldsymbol{{z}}_{n} - \boldsymbol{H}\boldsymbol{\hat{x}}_{n,n-1}) \]

Nun können wir die Zustandsaktualisierungsgleichung in ihrer vollständigen mehrdimensionalen Form schreiben:

\[ \boldsymbol{\hat{x}}_{n,n} = \boldsymbol{\hat{x}}_{n,n-1} + \color{red}{\boldsymbol{P}_{n,n-1}\boldsymbol{H}^{T}(\boldsymbol{H}\boldsymbol{P}_{n,n-1}\boldsymbol{H}^{T} + \boldsymbol{R}_{n})^{-1}}(\boldsymbol{{z}}_{n} - \boldsymbol{H}\boldsymbol{\hat{x}}_{n,n-1}) \]

Die entsprechende endgültige Form des Kalman-Gains ist:

\[ \color{red}{\boldsymbol{K}_{n} = \boldsymbol{P}_{n,n-1}\boldsymbol{H}^{T}(\boldsymbol{H}\boldsymbol{P}_{n,n-1}\boldsymbol{H}^{T} + \boldsymbol{R}_{n})^{-1}} \]

Diese Form stellt sicher, dass der Innovationsterm korrekt aus der Messdomäne zurück in die Zustandsdomäne abgebildet wird – und ermöglicht damit eine konsistente und optimale Aktualisierung der Systemzustandsschätzung.

Dieser Abschnitt vermittelt ein intuitives Verständnis des mehrdimensionalen Kalman-Gains. Im folgenden Abschnitt wird die formale Herleitung gezeigt.

Herleitung der Kalman-Gain-Gleichung

Dieses Kapitel enthält die Herleitung der Kalman-Gain-Gleichung. Wenn Sie sich nicht für die Herleitung interessieren, können Sie direkt zum nächsten Thema springen.

Zuerst formen wir die Kovarianzaktualisierungsgleichung (Covariance Update Equation) um:

Hinweise
\( \boldsymbol{P}_{n,n} = \left(\boldsymbol{I} - \boldsymbol{K}_{n}\boldsymbol{H} \right) \boldsymbol{P}_{n,n-1} \color{blue}{\left(\boldsymbol{I} - \boldsymbol{K}_{n}\boldsymbol{H} \right)^{T}} + \boldsymbol{K}_{n} \boldsymbol{R}_{n}\boldsymbol{K}_{n}^{T} \) Kovarianzaktualisierungsgleichung
\( \boldsymbol{P}_{n,n} = \left(\boldsymbol{I} - \boldsymbol{K}_{n}\boldsymbol{H} \right) \boldsymbol{P}_{n,n-1} \color{blue}{\left(\boldsymbol{I} - \left(\boldsymbol{K}_{n}\boldsymbol{H}\right)^{T}\right)} + \boldsymbol{K}_{n} \boldsymbol{R}_{n} \boldsymbol{K}_{n}^{T} \) \( \boldsymbol{I}^{T} = \boldsymbol{I} \)
\( \boldsymbol{P}_{n,n} = \color{green}{\left(\boldsymbol{I} - \boldsymbol{K}_{n}\boldsymbol{H} \right) \boldsymbol{P}_{n,n-1}} \color{blue}{\left(\boldsymbol{I} - \boldsymbol{H}^{T}\boldsymbol{K}_{n}^{T}\right)} + \boldsymbol{K}_{n} \boldsymbol{R}_{n} \boldsymbol{K}_{n}^{T} \) Transpositionsregel anwenden: \( (\boldsymbol{AB})^{T} = \boldsymbol{B}^{T}\boldsymbol{A}^{T} \)
\( \boldsymbol{P}_{n,n} = \color{green}{\left(\boldsymbol{P}_{n,n-1} - \boldsymbol{K}_{n}\boldsymbol{H}\boldsymbol{P}_{n,n-1} \right)} \left(\boldsymbol{I} - \boldsymbol{H}^{T}\boldsymbol{K}_{n}^{T}\right) + \boldsymbol{K}_{n} \boldsymbol{R}_{n} \boldsymbol{K}_{n}^{T} \)
\( \boldsymbol{P}_{n,n} = \boldsymbol{P}_{n,n-1} - \boldsymbol{P}_{n,n-1}\boldsymbol{H}^{T}\boldsymbol{K}_{n}^{T} - \boldsymbol{K}_{n}\boldsymbol{H}\boldsymbol{P}_{n,n-1} + \\ + \color{#7030A0}{\boldsymbol{K}_{n}\boldsymbol{H}\boldsymbol{P}_{n,n-1}\boldsymbol{H}^{T}\boldsymbol{K}_{n}^{T} + \boldsymbol{K}_{n} \boldsymbol{R}_{n} \boldsymbol{K}_{n}^{T} } \) Ausmultiplizieren
\( \boldsymbol{P}_{n,n} = \boldsymbol{P}_{n,n-1} - \boldsymbol{P}_{n,n-1}\boldsymbol{H}^{T}\boldsymbol{K}_{n}^{T} - \boldsymbol{K}_{n}\boldsymbol{H}\boldsymbol{P}_{n,n-1} + \\ + \color{#7030A0}{\boldsymbol{K}_{n} \left( \boldsymbol{H} \boldsymbol{P}_{n,n-1}\boldsymbol{H}^{T} + \boldsymbol{R}_{n} \right) \boldsymbol{K}_{n}^{T} } \) Die letzten beiden Terme zusammenfassen

Der Kalman-Filter ist ein optimaler Filter (optimal filter). Deshalb suchen wir einen Kalman-Gain, der die Schätzvarianz (estimate variance) minimiert.

Um die Schätzvarianz zu minimieren, müssen wir die Hauptdiagonale (von links oben nach rechts unten) der Kovarianzmatrix \( \boldsymbol{P}_{n,n} \) minimieren.

Die Summe der Hauptdiagonale einer quadratischen Matrix ist die Spur (trace) der Matrix. Wir müssen also \( tr(\boldsymbol{P}_{n,n}) \) minimieren. Um die Bedingungen für ein Minimum zu finden, differenzieren wir die Spur von \( \boldsymbol{P}_{n,n} \) nach \( \boldsymbol{K}_{n} \) und setzen das Ergebnis gleich Null.

Zurück Weiter