Kalman-Filter-Gleichungen – Zusammenfassung
Wir haben alle fünf Kalman-Filter-Gleichungen in Matrixschreibweise hergeleitet. Lassen Sie uns diese auf einer Seite zusammenfassen.
Der Kalman-Filter arbeitet in einer „Predict–Correct“-Schleife (Vorhersage-Korrektur), wie im folgenden Diagramm dargestellt.
Nach der Initialisierung sagt der Kalman-Filter den Systemzustand im nächsten Schritt voraus (predicts). Er liefert auch die Unsicherheit der Vorhersage.
Sobald die Messung empfangen wird, aktualisiert (oder korrigiert) der Kalman-Filter die Vorhersage und die Unsicherheit des aktuellen Zustands. Ebenso sagt der Kalman-Filter die folgenden Zustände voraus, und so weiter.
Das folgende Diagramm liefert ein vollständiges Bild der Funktionsweise des Kalman-Filters (Kalman Filter operation).
Die folgende Tabelle beschreibt alle Kalman-Filter-Gleichungen.
| Gleichung | Name der Gleichung | Alternative Namen | |
|---|---|---|---|
| Predict (Vorhersage) | \( \boldsymbol{\hat{x}}_{n+1,n} = \boldsymbol{F\hat{x}}_{n,n} + \boldsymbol{Gu}_{n} \) | Zustandsextrapolation |
Prädiktor-Gleichung (Predictor Equation) Übergangsgleichung (Transition Equation) Vorhersagegleichung (Prediction Equation) Dynamisches Modell (Dynamic Model) Zustandsraummodell (State Space Model) |
| \( \boldsymbol{P}_{n+1,n} = \boldsymbol{FP}_{n,n}\boldsymbol{F}^{T} + \boldsymbol{Q} \) | Kovarianzextrapolation | Prädiktor-Kovarianzgleichung (Predictor Covariance Equation) | |
| Update (Korrektur) |
\( \boldsymbol{\hat{x}}_{n,n} = \boldsymbol{\hat{x}}_{n,n-1} + \boldsymbol{K}_{n} (\boldsymbol{z}_{n} - \boldsymbol{H\hat{x}}_{n,n-1} ) \) | Zustandsaktualisierung | Filtergleichung (Filtering Equation) |
| \( \boldsymbol{P}_{n,n} = \left(\boldsymbol{I} - \boldsymbol{K}_{n}\boldsymbol{H} \right) \boldsymbol{P}_{n,n-1} \left(\boldsymbol{I} - \boldsymbol{K}_{n}\boldsymbol{H} \right)^{T} + \boldsymbol{K}_{n}\boldsymbol{R}_{n}\boldsymbol{K}_{n}^{T} \) | Kovarianzaktualisierung | Korrekturgleichung (Corrector Equation) | |
| \( \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} \) | Kalman-Gain | Gewichtungsgleichung (Weight Equation) | |
| Hilfsgleichungen | \( \boldsymbol{z}_{n} = \boldsymbol{Hx}_{n} \) | Messgleichung | |
| \( \boldsymbol{R}_{n} = E\left( \boldsymbol{v}_{n}\boldsymbol{v}_{n}^{T} \right) \) | Messkovarianz | Messfehler | |
| \( \boldsymbol{Q}_{n} = E\left( \boldsymbol{w}_{n}\boldsymbol{w}_{n}^{T} \right) \) | Prozessrauschkovarianz | Prozessrauschfehler | |
| \( \boldsymbol{P}_{n,n} = E\left( \boldsymbol{e}_{n}\boldsymbol{e}_{n}^{T} \right) = E\left( \left( \boldsymbol{x}_{n} - \boldsymbol{\hat{x}}_{n,n} \right) \left( \boldsymbol{x}_{n} - \boldsymbol{\hat{x}}_{n,n} \right)^{T} \right) \) | Schätzkovarianz | Schätzfehler |
Die folgende Tabelle fasst die Notation (einschließlich der in der Literatur gefundenen Unterschiede) und Dimensionen zusammen.
| Begriff | Name | Alternativer Begriff | Dimensionen |
|---|---|---|---|
| \( \boldsymbol{x} \) | Zustandsvektor | \( n_{x} \times 1 \) | |
| \( \boldsymbol{z} \) | Messvektor | \( \boldsymbol{y} \) | \( n_{z} \times 1 \) |
| \( \boldsymbol{F} \) | Zustandsübergangsmatrix | \( \boldsymbol{\Phi,A} \) | \( n_{x} \times n_{x} \) |
| \( \boldsymbol{u} \) | Eingangsvariable | \( n_{u} \times 1 \) | |
| \( \boldsymbol{G} \) | Steuermatrix | \( \boldsymbol{B} \) | \( n_{x} \times n_{u} \) |
| \( \boldsymbol{P} \) | Schätzkovarianz | \( \boldsymbol{\Sigma} \) | \( n_{x} \times n_{x} \) |
| \( \boldsymbol{Q} \) | Prozessrauschkovarianz | \( n_{x} \times n_{x} \) | |
| \( \boldsymbol{R} \) | Messkovarianz | \( n_{z} \times n_{z} \) | |
| \( \boldsymbol{w} \) | Prozessrauschvektor | \( \boldsymbol{y} \) | \( n_{x} \times 1 \) |
| \( \boldsymbol{v} \) | Messrauschvektor | \( n_{z} \times 1 \) | |
| \( \boldsymbol{H} \) | Beobachtungsmatrix | \( \boldsymbol{C} \) | \( n_{z} \times n_{x} \) |
| \( \boldsymbol{K} \) | Kalman-Gain | \( n_{x} \times n_{z} \) | |
| \( \boldsymbol{n} \) | Diskreter Zeitindex | \( \boldsymbol{k} \) |
Dimensionsnotation:
- \( n_{x} \) ist die Anzahl der Zustände in einem Zustandsvektor
- \( n_{z} \) ist die Anzahl der gemessenen Zustände
- \( n_{u} \) ist die Anzahl der Elemente der Eingangsvariable