„Kalman-Filter“ – Versionsunterschied
[gesichtete Version] | [gesichtete Version] |
→Prozessrauschen: "a" ist nicht die Beschleunigung, sondern die Änderung der Beschleunigung, also Beschleunigung = a_0 + a. Markierung: 2017-Quelltext-Bearbeitung |
Änderung 225004036 von Physikinger rückgängig gemacht; a ist die Beschleunigung. Wäre a lediglich die Änderung, also besser benannt mit Delta a, dann wäre die Beschleunigung a=a_0+Delta a und dann wären jedoch die Beschleunigungen korreliert, da die Beschleunigung vom jeweils vorherigen Zeitschritt abhängt. Das ist nicht so Markierung: Zurückgesetzt |
||
Zeile 201: | Zeile 201: | ||
==== Prozessrauschen ==== |
==== Prozessrauschen ==== |
||
Eine konstante Beschleunigung, wie im obigen Beispiel, ist für viele Anwendungen eine zu starre Annahme. Abhilfe schafft ein geeignetes Modell für das Prozessrauschen, welches der Beschleunigung eine bestimmte Variation erlaubt. Ein spezielles |
Eine konstante Beschleunigung, wie im obigen Beispiel, ist für viele Anwendungen eine zu starre Annahme. Abhilfe schafft ein geeignetes Modell für das Prozessrauschen, welches der Beschleunigung eine bestimmte Variation erlaubt. Ein spezielles Modell ist das ''piecewise white noise model'', das stückweise zu Beginn jedes Zeitschritts <math>\Delta t</math> eine sich um <math>\Delta a</math> ändernde, aber dann konstante Beschleunigung annimmt. Damit ändert sich nach Verstreichen des Zeitintervalls <math>\Delta t</math> der Zustand um |
||
:<math>\vec{r}=\begin{pmatrix} \frac12(\Delta t)^2 \\ \Delta t \\ 1 \end{pmatrix} a </math>. |
:<math>\Delta \vec{r}=\begin{pmatrix} \frac12(\Delta t)^2 \\ \Delta t \\ 1 \end{pmatrix} \Delta a </math>. |
||
Diese Änderung kann durch das Prozessrauschen beschrieben werden, indem die Matrix |
Diese Änderung kann durch das Prozessrauschen beschrieben werden, indem die Matrix |
||
:<math>Q:=E[\vec{r}\vec{r}^T]=a^2 \begin{bmatrix} |
:<math>Q:=E[\Delta\vec{r}\Delta\vec{r}^T]=(\Delta a)^2 \begin{bmatrix} |
||
\frac{\Delta t^4}{4} & \frac{\Delta t^3}{2} & \frac{\Delta t^2}{2} \\ |
\frac{\Delta t^4}{4} & \frac{\Delta t^3}{2} & \frac{\Delta t^2}{2} \\ |
||
\frac{\Delta t^3}{2} & \Delta t^2 & \Delta t \\ |
\frac{\Delta t^3}{2} & \Delta t^2 & \Delta t \\ |
||
\frac{\Delta t^2}{2} & \Delta t & 1. |
\frac{\Delta t^2}{2} & \Delta t & 1. |
||
\end{bmatrix}</math> |
\end{bmatrix}</math> |
||
den Filterzustand entsprechend relaxiert, wobei <math>a^2</math> die Varianz der zufälligen Beschleunigungsänderung pro Zeitschritt vorgibt. |
den Filterzustand entsprechend relaxiert, wobei <math>(\Delta a)^2</math> die Varianz der zufälligen Beschleunigungsänderung pro Zeitschritt <math>\Delta t</math> vorgibt. |
||
=== Korrektur === |
=== Korrektur === |
Version vom 8. August 2022, 08:35 Uhr
Das Kalman-Filter (auch Kalman-Bucy-Filter, Stratonovich-Kalman-Bucy-Filter oder Kalman-Bucy-Stratonovich-Filter) ist ein mathematisches Verfahren zur iterativen Schätzung von Parametern zur Beschreibung von Systemzuständen[1] auf der Basis von fehlerbehafteten Beobachtungen. Benannt ist das Filter nach seinen Entdeckern Rudolf E. Kálmán, Richard S. Bucy und Ruslan L. Stratonovich, die das Verfahren unabhängig voneinander entdeckt bzw. wesentliche Beiträge dazu geliefert haben.
Das Kalman-Filter dient dazu, nicht direkt messbare Systemgrößen zu schätzen, während die Fehler der Messungen optimal reduziert werden. Bei dynamischen Größen kann dem Filter ein mathematisches Modell als Nebenbedingung hinzugefügt werden, um dynamische Beziehungen zwischen den Systemgrößen zu berücksichtigen. So können beispielsweise Bewegungsgleichungen helfen, veränderliche Positionen und Geschwindigkeiten gemeinsam präzise zu schätzen. Die Besonderheit des 1960 von Kálmán vorgestellten Filters[2] bildet dabei seine spezielle mathematische Struktur, die den Einsatz in Echtzeitsystemen verschiedener technischer Bereiche ermöglicht. Dazu zählen u. a. die Auswertung von Radarsignalen oder GNSS-Daten zur Positionsbestimmung sich bewegender Objekte (Tracking), aber auch der Einsatz in allgegenwärtigen elektronischen Regelkreisen in Kommunikationssystemen wie etwa Radio oder Mobilfunk oder in der Steuerung von Elektrofahrrädern.
Historisches
Obwohl zuvor nahezu identische Verfahren durch Thorvald N. Thiele[3] und Peter Swerling veröffentlicht worden waren, wurde das Filter nach Rudolf E. Kálmán benannt. Auch existierten damals bereits allgemeinere nichtlineare Filter von Ruslan L. Stratonovich,[4][5] die das Kalman-Filter und weitere lineare Filter als Spezialfälle enthalten. Ebenso erwähnenswert sind Vorarbeiten und gemeinsame Publikationen von Kálmán mit Richard S. Bucy, insbesondere für den Fall zeitkontinuierlicher dynamischer Systeme. Daher wird häufig die Bezeichnung Kalman-Bucy-Filter und gelegentlich auch Stratonovich-Kalman-Bucy-Filter in der Fachliteratur benutzt.
Der erste nennenswerte und erfolgreiche Einsatz des Filters erfolgte in Echtzeitnavigations- und Leitsystemen, die im Rahmen des Apollo-Programms der NASA unter Federführung von Stanley F. Schmidt entwickelt wurden.
Mittlerweile existiert eine große Bandbreite von Kalman-Filtern für die unterschiedlichsten Anwendungsgebiete. Neben der ursprünglichen Formulierung sind dies das Erweiterte Kalman-Filter, das Unscented Kalman-Filter,[6][7] das Informationsfilter und eine Vielzahl von numerisch stabilen Varianten wie beispielsweise die Wurzel-Implementierung[8] oder der Bierman-Thornton-UD-Algorithmus.[9] Die meistgenutzte Variante jedoch ist die der Kontrolltheorie entstammende Phasenregelungsschleife,[10] die in vielen Geräten zur Telekommunikation zum Einsatz kommt.
Anwendungen
Das Kalman-Filter ist heute ein weit verbreiteter Algorithmus zur Zustandsschätzung linearer und nichtlinearer Systeme.
- Weite Verbreitung gefunden hat das Kalman-Filter in der Inertialnavigation beispielsweise von Flugzeugen: Während des Flugs werden Beschleunigungen und Drehraten des Flugzeugs von einer inertialen Messeinheit mit hohen Frequenzen gemessen, um eine Kurzzeit-Navigation zu ermöglichen. Weitere Sensoren, insbesondere satellitengestützte Positionsbestimmung (z. B. GPS), liefern Stützdaten. Diese verschiedenen Messungen müssen verknüpft („fusioniert“) werden, um eine möglichst optimale Schätzung der aktuellen Position und Orientierung zu gewährleisten.
- Zunehmend spielen Trackingverfahren und somit das Kalman-Filter als typischer Vertreter eines Trackingfilters eine Rolle im Automobilbereich. Sicherheits- oder Komfortanwendungen, die auf umfelderkennenden Systemen basieren, sind auf verlässliche Informationen (z. B. Position, Geschwindigkeit) bezüglich der Objekte in ihrem Umfeld angewiesen. Bei autonomen Landfahrzeugen werden Kalman-Filter zur Reduzierung des Rauschens von Lidar- und Radargeräten eingesetzt.
- Eine ebenfalls oft verwendete Art eines Kalman-Filters, das PLL-Filter, hat heute weite Verbreitung gefunden in Radios, Funkgeräten, Computern und in fast allen anderen Arten von Video- und Kommunikationsgeräten.
- In der Makroökonomik werden Kalman-Filter zur Schätzung von dynamisch-stochastischen Allgemeinen Gleichgewichtsmodellen (DSGE-Modelle) eingesetzt.
- In der Meteorologie setzt man sie zur Datenassimilation bei der Bestimmung des Ausgangszustandes bei der numerischen Wettervorhersage ein.
Grundlagen
Mathematische Grundidee
Die Besonderheit, die das Kalmanfilter von einfachen Filtern wie etwa dem gleitenden Mittelwert unterscheidet und deutlich leistungsfähiger macht, ist die Beschreibung des Schätzwertes durch mehrdimensionale Normalverteilungen. Diese repräsentieren nicht nur Wahrscheinlichkeitsverteilungen möglicher Fehler um jeden Schätzwert, sondern auch Korrelationen zwischen Schätzfehlern unterschiedlicher Variablen. Mit dieser Information werden in jedem Zeitschritt die bisherigen Schätzwerte mit den neuen Messungen auf optimale Weise kombiniert, so dass verbleibende Fehler des Filterzustands schnellstmöglich minimiert werden. Der momentane Filterzustand aus Schätzwerten, Fehlerschätzungen und Korrelationen bildet dabei eine Art Gedächtnis für die gesamte bisher gewonnene Information aus vergangenen Messwerten. Nach jeder neuen Messung verbessert das Kalmanfilter die bisherigen Schätzwerte und aktualisiert die zugehörigen Fehlerschätzungen und Korrelationen.
In dynamischen Systemen, in denen neben den eigentlichen Werten z. B. auch Geschwindigkeiten oder Beschleunigungen geschätzt werden, schätzt das Kalmanfilter entsprechend auch Korrelationen zwischen den Fehlern dieser Größen und nutzt dieses Wissen in Kombination mit den bekannten dynamischen Zusammenhängen für eine optimale Fehlerunterdrückung.
Theoretische Einordnung
Im Rahmen der mathematischen Schätztheorie spricht man beim Kalman-Filter auch von einem bayesschen Minimum-Varianz-Schätzer für lineare stochastische Systeme in Zustandsraumdarstellung. In der Ingenieurstechnik wird das Kalman-Filter auch als Optimalfilter für lineare stochastische Systeme bezeichnet. Siehe auch Bayesscher Filter.
Im Gegensatz zu den klassischen FIR- und IIR-Filtern der Signal- und Zeitreihenanalyse basiert das Kalman-Filter auf einer Zustandsraummodellierung, bei der explizit zwischen der Dynamik des Systemzustands und dem Prozess seiner Messung unterschieden wird. In seinem Zeitverhalten ist er ein IIR-Filter mit einer Verzögerungsstufe.
Zustandsraummodellierung
Als Zustand eines Systems wird häufig der kleinste, das System vollständig beschreibende Satz von Bestimmungsstücken verstanden. Dieser wird im Rahmen der Modellbildung in Form eines mehrdimensionalen Vektors X mit entsprechender Bewegungsgleichung, der sogenannten Zustandsgleichung, dargestellt. Diese Gleichung ist häufig eine Differenzengleichung, da in vielen Fällen die Zustände nur zu bestimmten, durch feste Zeitintervalle Δt voneinander getrennten Zeitpunkten tk = t0 + k·Δt mit k als natürlicher Zahl von Interesse sind. Es hat sich eingebürgert, die diskreten Zeitpunkte tk einer einfachen Notation halber in Gleichungen verkürzt als Index k der betreffenden Größe zu notieren, tk-1 als Index k-1 usw. Mit dieser Schreibweise und für den von Kálmán betrachteten Sonderfall einer lediglich linearen Abhängigkeit der Zustände untereinander vereinfacht sich die Zustandsgleichung zur linearen Differenzengleichung
- .
Die Matrix Fk-1 beschreibt die Übergänge zwischen zeitlich aufeinanderfolgenden Zuständen Xk-1 und Xk. Neben der durch die Übergangsmatrix Fk-1 ausgedrückten eigentlichen Dynamik modelliert die Zustandsgleichung zudem weitere äußere Einflüsse auf das System. Dabei wird zwischen deterministischen, also vollständig bestimmbaren Einflüssen, sowie solchen zufälliger Natur unterschieden. Der deterministische Anteil wird durch die wirkende Störung uk-1 und deren Dynamik in Form einer Matrix Bk-1 dargestellt; die zufälligen, nicht erfassbaren Komponenten durch einen Rauschterm, der stochastischen Größe wk-1. Das zeitlich unkorrelierte Rauschen wk-1 folgt dabei einer mehrdimensionalen Normalverteilung mit Erwartungswertvektor 0 und Kovarianzmatrix Qk-1, in üblicher Kurznotation:
- .
Aufgrund der Unvorhersagbarkeit des Rauschterms enthält auch der Zustandsvektor einen gewissen Anteil an „Zufall“ und ist somit selbst eine stochastische Größe, also eine Zufallsvariable. Die Menge aller Zustandsvektoren bilden einen speziellen stochastischen Prozess, eine Markow-Kette bzw. ein Markow-Modell erster Ordnung, d. h. der Zustand zu einem Zeitpunkt k hängt lediglich vom unmittelbaren zeitlichen Vorgänger an k-1 ab.
Der Prozess der Beobachtung der wahren Systemzustände Xk, Xk-1, … muss die Eigenschaften des Beobachters bzw. der Messapparatur widerspiegeln. Dies umfasst modellierbare Verzerrungen und das unvorhersagbare Messrauschen. Für den Fall des Kalman-Filters wird die Verzerrung als linear und das Rauschen als zeitlich unkorreliert und normalverteilt angenommen. Die entsprechende Modellierung des Messprozesses, die Beobachtungsgleichung, lautet
mit der Beobachtungsmatrix Hk und dem weißen Messrauschen
- .
Dynamisches Rauschen w und Messrauschen v sollen zu allen Zeiten voneinander unabhängig sein.
Die Gesamtheit von Zustandsgleichung und Beobachtungsgleichung nennt man Zustandsraummodell.[A 1] Wegen des „versteckten“ bzw. durch einen zweiten stochastischen Prozess, der Messung, überdeckten Markow-Modells spricht man beim Zustandsraummodell auch häufig von einem verborgenen Markowmodell (englisch Hidden Markov Model).
Das Filterproblem
Eine in der Praxis ausgeführte Messung ergibt pro Zeitpunkt häufig lediglich eine einzelne Realisierung zk der normalverteilten Zufallsgröße Zk. Nun stellt sich das inverse Problem, nämlich anhand der Informationen einer Messreihe mit den Werten z1, z2, z3, z4, … auf die entsprechenden X1, X2, X3, X4, … rückschließen zu können. Da die gesuchten Zustände aufgrund der Linearität des Modells und der gemachten Voraussetzungen für die Rauschterme w und v für alle Zeiten normalverteilt bleiben und eine Normalverteilung durch ihren Mittelwert und Kovarianz vollständig beschrieben wird, beschränkt sich das Filterproblem auf die Schätzung dieser beiden Bestimmungsstücke. Eine mögliche exakte Lösung dieses inversen Problems ist das zeitdiskrete Kalman-Filter, ein Satz von Gleichungen also, der Schätzungen für den Mittelwert und die Kovarianz des Zustands
anhand der aus der Messreihe zk, zk-1, zk-2, …, z1 extrahierten Informationen liefert.
Häufig stellt sich die Aufgabe, das Filterproblem auch für zeitkontinuierliche Systeme zu lösen. Dabei gehen die Differenzengleichungen des Zustandsraummodells durch eine mathematische Grenzwertbildung in Differentialgleichungen über. Die Gleichungen des zeitkontinuierlichen Kalman-Filters ergeben sich entsprechend aus dem zeitdiskreten Filter durch Anwendung derselben Grenzwertbildung.[11] Aus diesem Grund und im Sinne einer verständlichen Darstellung soll im Folgenden lediglich auf die Gleichungen des zeitdiskreten Filters eingegangen werden.
Gleichungen
Die Schätzung des Zustands sollte möglichst auf der Kenntnis aller früheren Beobachtungen beruhen. Dabei ist ein minimaler Schätzfehler zu fordern, der durch die bereits gemachten Beobachtungen nicht zu verbessern sein soll. Für lange Messreihen wird das entsprechende mathematische Minimierungsproblem schnell unhandlich, da für jede Schätzung die gesamte Messreihe ausgewertet werden muss. Die Idee, die dem Kalman-Filter zugrunde liegt, ist nun, die Schätzung zum Zeitpunkt tk als lineare Kombination der vorangegangenen Schätzung mit dem neuen Messwert zk zu formulieren. Dies ist möglich, da die Schätzung zum Zeitpunkt tk-1 die Informationen der Messreihe zk-1, zk-2, …, z1 enthält. Diese rekursive Formulierung des Schätzproblems erlaubt eine effiziente numerische Umsetzung.
Iterativer und rekursiver Algorithmus
In der algorithmischen Umsetzung wird der Systemzustand zunächst mit einer A-priori-Schätzung initialisiert und die erste Korrektur mit den Beobachtungen durchgeführt. Anschließend werden in jedem weiteren Zeitschritt k>0 die Prädiktion und Korrektur durchgeführt, die abwechselnd den Systemzustand zeitlich propagieren und ihn durch neue Beobachtungen korrigieren, nach dem Schema:
(Init. ➝ Korr.)k=0 ➝ (Präd. ➝ Korr.)k=1 ➝ (Präd. ➝ Korr.)k=2 ➝ ...
Initialisierung (t0) |
---|
|
Prädiktion (tk>0) |
---|
|
Korrektur (tk≥0) |
---|
|
Variablen und Dimensionen
Neue Beobachtungen, die zum Zeitpunkt tk vorliegen. | |
Systemzustand zur Zeit tk, der vom Zustand des vorherigen Zeitpunkts tk-1 abgeleitet wurde, vor Anwendung der neuen Beobachtungen (a-priori). | |
Kovarianzmatrix der Fehler von , vor Anwendung der neuen Beobachtungen (a-priori). | |
Systemzustand nach Anwendung der neuen Beobachtungen (a-posteriori). | |
Kovarianzmatrix der Fehler von nach Anwendung der neuen Beobachtungen (a-posteriori). | |
Beobachtungsmatrix, welche die n Werte des Systemzustands auf die m Beobachtungen abbildet, so dass . | |
Übergangsmatrix, die den Systemzustand vom Zeitpunkt tk-1 gemäß auf den Zeitpunkt tk propagiert, z. B. mithilfe von Bewegungsgleichungen. | |
Deterministische Störung, wie z. B. die bekannten Stellungen der Steuerruder eines Flugzeugs. | |
Dynamik der deterministischen Störung und Projektion auf den Systemzustand. | |
Prozessrauschen, beschreibt zusätzliche Unsicherheiten aufgrund von Modellierungsfehlern oder sich ändernden Bedingungen, meist als Diagonalmatrix. | |
Kovarianzmatrix des Messrauschens. Die Matrix kann auch nicht-diagonal sein, wenn korreliertes Rauschen vorliegt. Das Rauschen darf jedoch nicht zeitkorreliert sein, da sonst zu kleine Varianzen geschätzt werden, was zu ungenauen Vorhersagen oder gar zur numerischen Destabilisierung führen kann. In solchen Fällen sollte die Störgröße dem Systemzustand als zusätzlich zu schätzender Anteil hinzugefügt werden oder die Kovarianzen müssen um geeignete Terme erweitert werden. | |
Kalman-Gain-Matrix zur Projektion der Residuen auf die Korrektur des Systemzustandes. |
ist die Anzahl der Systemzustandswerte, die Anzahl der Messwerte und die der Störgrößen. Die Dimensionen sind nicht notwendigerweise konstant, sondern können in jedem Zeitschritt unterschiedlich sein: , und .
Initialisierung
Der iterative Ansatz des Kalmanfilters verlangt eine a-prior-Schätzung als Startbedingung. Häufig verwendet man
mit der Identitätsmatrix I und einer geeigneten Varianz , wenn der Wertebereich der zu schätzenden Größe etwa im Bereich erwartet wird.[12]
Prädiktion
Beim ersten Schritt des Filtervorgangs wird die zeitlich vorangegangene Schätzung der Zustandsdynamik unterworfen, um eine Voraussage für den aktuellen Zeitpunkt zu erhalten. Für den Mittelwert ergibt sich
und für die Kovarianz[13]
- .
Die Indizierungsschreibweise k|k-1 drückt für den Zustand zum Zeitpunkt tk die Bedingtheit der Schätzung durch den vergangenen Zustand k-1 aus. Das hochgestellte T bezeichnet die transponierte Matrix.
Bewegungsgleichungen für die Prädiktion
Ein Kalman-Filter kann bekannte Bewegungsgleichungen einer zu schätzenden Größe berücksichtigen und z. B. die zeitabhängige Position in einen Zusammenhang mit seiner Geschwindigkeit und seiner Beschleunigung bringen. Als Zustandsvektor wählt man in diesem Fall entsprechend Damit soll beispielsweise eine Bewegung mit konstanter Beschleunigung geschätzt werden, die eine parabelförmige Bahn beschreibt. Die verschiedenen Zeitableitungen der Parabelfunktion können in folgenden linearen Zusammenhang mit dem Zustandsvektor gebracht werden
so dass die linke Seite dessen Zeitableitung ergibt. Die Matrix mit Einsen in der ersten oberen Nebendiagonalen ist folglich der Differentialoperator für den Zustandsvektor und beschreibt die infinitesimale Änderung des Zustandes der drei dynamisch zusammenhängenden Größen. Der geänderte Zustand nach einer endlichen Zeit wird durch das Aufsummieren einer Anzahl von kleinen und stückweise linearen Änderungen der Schrittweite gewonnen. Den Grenzwert dieser Summe bei und beschreibt im Allgemeinen das Matrixexponential, das durch eine Reihenentwicklung definiert ist. Bei einem Zustandsvektor der Länge n+1 mit Ableitungen bis zur n-ten Ordnung sind in diesem Fall nur die ersten Terme dieser Reihe bis zum Exponent n von Null verschieden. Für den Zeitpropagationsschritt der Schrittweite wird dann die Matrix als Zeitentwicklungsmatrix verwendet:
Für den Fall, dass nur für die Position Messwerte zur Korrektur der ersten Zustandsvariable vorliegen, während Geschwindigkeit und Beschleunigung im Filterzustand automatisch geschätzt und korrigiert werden sollen, ist die Beobachtungsmatrix
Falls unabhängig gemessene direkte Geschwindigkeiten oder Beschleunigungen aus Inertialsensoren vorliegen, können auch diese mit einer erweiterten H-Matrix zur Korrektur verwendet werden, um die Stabilität der Schätzung zu verbessern, z. B. für Messwerte der Position und der Beschleunigung:
Prozessrauschen
Eine konstante Beschleunigung, wie im obigen Beispiel, ist für viele Anwendungen eine zu starre Annahme. Abhilfe schafft ein geeignetes Modell für das Prozessrauschen, welches der Beschleunigung eine bestimmte Variation erlaubt. Ein spezielles Modell ist das piecewise white noise model, das stückweise zu Beginn jedes Zeitschritts eine sich um ändernde, aber dann konstante Beschleunigung annimmt. Damit ändert sich nach Verstreichen des Zeitintervalls der Zustand um
- .
Diese Änderung kann durch das Prozessrauschen beschrieben werden, indem die Matrix
den Filterzustand entsprechend relaxiert, wobei die Varianz der zufälligen Beschleunigungsänderung pro Zeitschritt vorgibt.
Korrektur
Die Vorhersagen werden schließlich mit den neuen Informationen des aktuellen Messwerts korrigiert und ergeben die gesuchten Schätzungen
sowie
mit den Hilfsgrößen Innovation
- ,
Residualkovarianz
und der zugehörigen Kalman-Matrix
- .
Die Hilfsgröße Innovation beschreibt, wie genau der vorhergesagte Mittelwert den aktuellen Messwert mittels der Beobachtungsgleichung beschreiben kann. Für eine schlechte Vorhersage wird die dazugehörige Innovation groß, für eine genaue Vorhersage dagegen klein sein. Entsprechende Korrekturen müssen dann groß bzw. nur gering ausfallen. Die durchzuführende Korrektur kann demnach als zur Größe der Innovation proportional angesehen werden. Zudem sollen Innovationen von Messwerten, die mit größerer Unsicherheit als ihre Schätzungen behaftet sind, mit weniger Gewicht in die Korrektur eingehen als solche, bei denen das Gegenteil der Fall ist. Diese zu fordernden Eigenschaften werden gerade von der Kalman-Matrix als dem gesuchten Proportionalitätsfaktor erfüllt. Dies wird aus der äquivalenten Formulierung
ersichtlich, die, im Rahmen dieses eher intuitiven Zugangs und damit stark vereinfachend gesprochen, als das geforderte Verhältnis der Unsicherheiten der Vorhersagen Pk zu den zugehörigen Messunsicherheiten Rk angesehen werden kann.[A 2] Die Elemente der Kalman-Matrix können in vielen Fällen analytisch, also vor Beginn des Schätzvorgangs berechnet oder wenigstens näherungsweise bestimmt werden. In weniger zeitkritischen Anwendungen wird die Kalman-Matrix mitgeschätzt, d. h. während des Schätzvorgangs immer wieder neu aus der aktuellen Vorhersage der Kovarianz berechnet.
Die exakte Herleitung und Begründung der Vorhersage- und Korrekturgleichungen erfolgt üblicherweise im Rahmen wahrscheinlichkeitstheoretischer Betrachtungen unter Benutzung des Bayes-Theorems.
Beispiel mit Bewegungsgleichung
Im folgenden Beispiel soll ein Kalmanfilter den Verlauf eines Polynoms 3. Grades schätzen. Als Systemzustand wählt man neben dem zeitabhängigen Wert auch dessen drei Ableitungen Dieser wird beispielsweise mit den Startwerten und einer Kovarianzmatrix von mit einem Fehler von initialisiert mit der Einheitsmatrix . Jeder Variable kann in der Diagonalen auch eine individuelle Varianz mit passender Einheit zugeornet werden. Um die Dynamik in der Startbedingung weiter einzuschränken, kann auch eine Bedingung an den Wertebereich des zu erwartenden Polynoms gestellt werden, indem die Startbedingung als mit gewählt wird, wodurch zu Beginn erwartet wird, dass sich das Polynom bei in einem homogenen Wertebereich von bewegt.[14]
Die Beobachtungsmatrix nimmt dabei nur direkte Messwerte für die erste Variable entgegen, während die drei Ableitungen indirekt im Laufe der Iteration geschätzt werden sollen.
Für die Messung der Position sei das bekannte Messrauschen durch gegeben, so dass .
Nun wird die erste Korrektur mit dem ersten Messwert durchgeführt mit dem Korrektur-Schritt. Dadurch wird sich im Zustandsvektor der erste Eintrag ändern und der Kovarianzmatrix erhält im ersten Diagonalwert eine verbesserte Unsicherheit, die etwa dem Messrauschen entspricht.
Als Propagationsmatrix des Zustandes mit drei Zeitableitungen ergibt sich:
Damit wird der Zustand bis zum nächsten Messwert propagiert und dort erneut eine Korrektur durchgeführt. Anschließend wird der Zustand einen Schritt weiter propagiert usw.
Nach bereits vier Iterationsschritten des Kalman-Filters und Messungen an vier Zeitpunkten wird der gesamte Zustandsvektor mit groben Schätzungen gefüllt sein. Bei nur sehr schwach verrauschten Messwerten sind dann Geschwindigkeit, Beschleunigung und die dritte Zeitableitung bereits gut genug geschätzt, so dass sich der weitere Verlauf des Polynoms 3. Grades nur durch Propagationsschritte ohne weitere Messungen und Korrekturen ergeben würde. Im Fall von deutlich verrauschten Messwerten nährt sich der Schätzwert im Verlauf der Zeit immer mehr an das zugrundeliegende wahre Polynom an, wie in der Beispielrechnung der folgenden Abbildung demonstriert wird:
![Kalman-Filter auf verrauschtes Polynom angewendet](http://upload.wikimedia.org/wikipedia/commons/thumb/d/d8/Kalman_Polynom_Test.svg/450px-Kalman_Polynom_Test.svg.png)
Python Quellcode der Beispielrechnung
Vergleich mit Kleinste-Quadrate-Schätzung
Bei vielen Anwendungen kann ein Kalman-Filter durch eine gleichwertige Kleinste-Quadrate-Schätzung ersetzt werden, wie im Fall einer Polynomregression. Die Kleinste-Quadrate-Schätzung benötigt im Gegensatz zum Kalman-Filter keine a-priori-Schätzung als Startbedingung und muss auch nicht iterativ durchgeführt werden, sofern alle Messdaten bereits vollständig vorliegen. Eine iterative Berechnung ist jedoch möglich, indem bei allen Matrixmultiplikationen die Summen über die Dimension der Beobachtungen bei jeder neu vorliegenden Messung um einen weiteren Summanden ergänzt werden, so dass die Summen gewissermaßen den Systemzustand repräsentieren.
Die Gleichung folgt aus der verallgemeinerten Kleinste-Quadrate-Schätzung (engl. generalized least square, kurz GLS):
Die Matrix enthält dabei die Funktionswerte der Basisfunktionen an den Stützstellen . Als Basis wird hier die Polynombasis verwendet. ist der Vektor mit allen Messwerten bis zum aktuellen Zeitpunkt . Mit der Kovarianzmatrix kann eine a-priori-Schätzung mit den Startwerten Null hinzugefügt werden (begründet durch eine Daten-Fusion), während die Matrix das Messrauschen beschreibt. ergibt schließlich die Schätzung zum aktuellen Zeitschritt . Einen direkten Vergleich dieser Rechnung mit dem Kalman-Filter zeigt die nachfolgende Abbildung.
![Kalman-Filter im Vergleich mit Kleinste-Quadrate-Schätzung](http://upload.wikimedia.org/wikipedia/commons/thumb/f/f1/Kalman_Polynom_vs_GLS.svg/550px-Kalman_Polynom_vs_GLS.svg.png)
Python Quellcode der Beispielrechnung
Wird die Kleinste-Quadrate-Methode zunächst ohne a-priori-Bedingung angewendet, ergibt sich ein etwas verrauschteres Einschwingen, wobei sich beide Kurven nach einiger Zeit treffen. Mit identischen a-priori-Bedingungen ist kein Unterschied mehr zum Kalman-Filter erkennbar. Die beiden Methoden sind also in diesem Anwendungsbeispiel trotz der sehr unterschiedlichen Gleichungen äquivalent. Das Kalman-Filter erweist sich jedoch bei komplexeren Systemen und Randbedingungen meist als intuitiver und vielfältiger anwendbar.
Anmerkungen zum zeitkontinuierlichen Kalman-Filter
Im zeitkontinuierlichen Fall spricht man nicht mehr von einer rekursiven Formulierung und auch nicht von einer Prädiktor-Korrektur-Struktur. Vielmehr hat man es mit einem Satz von Differentialgleichungen, die die Schätzungen von Mittelwert und Kovarianz beschreiben, zu tun. Um Aussagen über die Schätzung zu einem bestimmten Zeitpunkt machen zu können, müssen die genannten Differentialgleichungen gelöst werden. Aufgrund eines nichtlinearen Terms in der Kovarianzgleichung, der sogenannten Matrix-Riccati-Gleichung, ist eine exakte Lösung und damit optimale Schätzung nur in wenigen Fällen möglich.
Eigenschaften
Wie aus der Korrekturgleichung ersichtlich ist, hängt die Schätzung des Mittelwertes in linearer Weise von der Beobachtung ab, das Kalman-Filter ist demnach ein lineares Filter. Mit zunehmender Länge der Messreihe nähern sich die Schätzungen für Mittelwert und Varianz den tatsächlichen Werten beliebig genau an. Man spricht daher im statistischen Jargon von einem erwartungstreuen und konsistenten Schätzer mit minimaler Varianz. Aufgrund dieser Schätzeigenschaften, die hier einer Minimierung des mittleren quadratischen Fehlers entsprechen,[15] ist das Kalman-Filter ein optimales lineares Filter. Selbst verallgemeinerte nichtlineare Filter liefern für das hier betrachtete lineare Zustandsraummodell mit normalverteilten Variablen keine besseren Ergebnisse. Im Gegensatz zu anderen (rekursiven) linearen Schätzern, die ebenso Fehlerquadrate minimieren, erlaubt das Kalman-Filter auch die Behandlung von Problemen mit korrelierten Rauschkomponenten, wie sie in der Praxis häufig anzutreffen sind.
Herleitung
Der Kalman-Filter kann mithilfe der verallgemeinerten Kleinste-Quadrate-Schätzung auf vergangenen Daten hergeleitet werden[16].
Der Kalman-Filter ist äquivalent zum exponentiell gewichteten gleitenden Mittelwert (exponentially weighted moving average, EMWA) falls die Gewichte in EMWA Funktionen des Prozessrauschens und des Messrauschens sind[17]
Anwendbarkeit
Die bei der Herleitung des Kalman-Filters gemachten Voraussetzungen können in der Praxis oft nur näherungsweise erfüllt werden. So ist in vielen Fällen die exakte Struktur der linearen Zustands- und Beobachtungsgleichung unbekannt oder zu umfangreich, als dass sie im Rahmen des Kalman-Filters rechentechnisch handhabbar wäre. Der Anwender muss demnach eine Einschränkung der zu verwendenden Modellklassen vornehmen. Die damit verbundenen Ungenauigkeiten führen häufig zu einem vom Optimalen abweichendem, divergenten Verhalten des Filters. Daher sind vor dem Einsatz Untersuchungen zur Abhängigkeit der Schätzergebnisse von den Modellierungsfehlern (und deren Kompensation) im Rahmen einer Sensitivitätsanalyse notwendig.
Zu einer weiteren Einschränkung der Schätzgüte führen die durch den Einsatz digitaler Rechentechnik verursachten Rundungsfehler. Analog zu den Modellungenauigkeiten können diese zu einer drastischen Divergenz des Kalman-Filters führen. Abhilfe schaffen hier algebraische Umformulierungen (Faktorisierungen) der Kovarianzmatrizen, jedoch um den Preis erhöhten rechentechnischen Aufwandes. Die bekanntesten numerisch stabilen Varianten des Kalman-Filters sind die Wurzelimplementierung nach Potter et al. und deren Verfeinerung in Form des Bierman-Thornton-UD-Algorithmus (wobei eine obere Dreiecksmatrix und eine Diagonalmatrix darstellen).
Erweiterungen
Neben den oben genannten Problemen ist das Kalman-Filter in vielen Fällen nicht einsetzbar, da es auf lineare Zustandsraummodelle beschränkt ist. Selbst einfache Aufgabenstellungen der Navigationstechnik oder das wichtige Themengebiet der Parameterschätzung führen jedoch immer auf nichtlineare Zustands- oder Beobachtungsgleichungen. Abhilfe schaffen hier beispielsweise nichtlineare Erweiterungen des Kalman-Filters wie das bereits in den 60er Jahren entwickelte Erweiterte Kalman-Filter (EKF) oder auch das neuere Unscented Kalman-Filter (UKF).
Diese Kalman-Filter-Varianten nähern das nichtlineare Problem durch ein lineares, wobei beim EKF analytische, beim UKF statistische Techniken zum Einsatz kommen. Im Sinne eines unkomplizierten Sprachgebrauchs werden diese Erweiterungen häufig abkürzend ebenfalls als Kalman-Filter bezeichnet, da sie ebenso eine rekursive sowie eine Prädiktor-Korrektor-Struktur haben. Im Gegensatz zum einfachen Kalman-Filter ist die Kalman-Matrix nun eine Zufallsvariable und muss während des gesamten Filtereinsatzes mitgeschätzt werden, was wiederum die Anforderungen an die Technik erhöht.
Die Idee des Kalman-Filters lässt sich auf Systeme erweitern, in denen die Zustandsübertragungsfunktion oder die Beobachtungsfunktion nicht linear sind.
Im erweiterten Kalman-Filter (extended Kalman filter) werden und für die Berechnung der Kovarianzmatrizen linearisiert (während sie exakt in die Zustandsberechnung einfließen). Durch die Linearisierung erhält man mithilfe der entsprechenden Jacobi-Matrizen lokal gültige Übergangsmatrizen und Beobachtungsmatrizen :
Im Unscented Kalman-Filter wird der aktuelle Zustand (statt mit der Zustandsübertragungsfunktion) durch Propagation von Sigmapunkten[18] der Ausgangsnormalverteilung ermittelt. Im Partikel-Filter werden hierfür (statt Sigmapunkten im Unscented Kalman Filter) beliebige Stützstellen gewählt, wodurch keine Normalverteilung der Ausgangsverteilung angenommen werden muss.
Seit dem Aufkommen leistungsfähiger digitaler Rechentechnik ist man dazu übergegangen, die meisten anspruchsvollen nichtlinearen Filterprobleme durch Simulationen (sequentielle Monte-Carlo-Methoden) oder anderweitige Näherungsverfahren (Quadraturfilter, Gaußsummenfilter, Projektionsfilter) zu behandeln.
Siehe auch
Literatur
Neben den von Kálmán und Bucy veröffentlichten Aufsätzen existiert eine Vielzahl weiterer, hauptsächlich ergänzender und vertiefender Literatur, die sich aus mathematischer wie auch aus ingenieurstechnischer Sicht dem Thema nähern. Nachfolgend wird ein Überblick über die wichtigsten Publikationen gegeben.
Deutschsprachige Literatur
- Karl Brammer, Gerhard Siffling: Kalman-Bucy-Filter: deterministische Beobachtung und stochastische Filterung. Oldenbourg, München/Wien 1994, ISBN 3-486-22779-3.
- Phil Kim: Kalman-Filter für Einsteiger: mit Matlab Beispielen. CreateSpace Independent Publishing Platform, 2016, ISBN 978-1-5027-2378-9.
- Reiner Marchthaler, Sebastian Dingler: Kalman-Filter: Einführung in die Zustandsschätzung und ihre Anwendung für eingebettete Systeme. Springer Vieweg, Berlin 2017, ISBN 978-3-658-16727-1.
- Jan Wendel: Integrierte Navigationssysteme: Sensordatenfusion, GPS und Inertiale Navigation. Oldenbourg, 2007, ISBN 978-3-486-58160-7.
Englischsprachige Literatur
- Analytical Sciences Corp-Technical: Applied Optimal Estimation. Hrsg.: A. Gelb. 16. Auflage. M.I.T. Press, Cambridge 2001, ISBN 0-262-57048-3.
- Yaakov Bar-Shalom, X. Rong Li, Thiagalingam Kirubarajan: Estimation with Applications to Tracking and Navigation: Theory Algorithms and Software. Wiley & Sons, New York 2001, ISBN 0-471-41655-X.
- Richard S. Bucy, B. G. Williams: Lectures on Discrete Time Filtering. Signal Processing and Digital Filtering. Springer-Verlag, New York 1994, ISBN 0-387-94198-3.
- Mohinder S. Grewal, Angus P. Andrews: Kalman Filtering Theory and Practice. Prentice-Hall, Upper Saddle River 1993, ISBN 0-13-211335-X.
- Dan Simon: Optimal State Estimation: Kalman, H Infinity, and Nonlinear Approaches. Wiley-Interscience, Hoboken 2006, ISBN 0-471-70858-5.
- Robert Groover Brown, Patrick Y. C. Hwang: Introduction to Random Signals and Applied Kalman Filtering. Wiley & Sons, New York 1997, ISBN 0-471-12839-2.
Weblinks
- Greg Welch: The Kalman Filter. Umfassende Online-Sammlung zum Thema Kalman-Filter. University of North Carolina at Chapel Hill, 7. Juli 2016, abgerufen am 24. März 2017 (englisch).
- Paul Balzer: Das Kalman-Filter einfach erklärt (Teil 1). Beispiele zur Anwendung von Kalman-Filter und Extended-Kalman-Filter bei der Inertialnavigation. Hochschule für Technik und Wirtschaft Dresden, abgerufen am 24. März 2017.
Einzelnachweise
- ↑ Malintha Fernando: State Estimation with Kalman Filter. 18. Dezember 2016, abgerufen am 29. September 2020 (englisch).
- ↑ R. E. Kalman: A New Approach to Linear Filtering and Prediction Problems (= Transaction of the ASME, Journal of Basic Engineering). 1960, S. 35–45 (unc.edu [PDF; abgerufen am 24. März 2017]).
- ↑ Steffen L. Lauritzen: Thiele: Pioneer in Statistics. ( vom 13. Oktober 2008 im Internet Archive) Oxford University Press, 2002, ISBN 0-19-850972-3.
- ↑ R. L. Stratonovich: Optimum nonlinear systems which bring about a separation of a signal with constant parameters from noise. Radiofizika, 1959, 2:6, Seiten 892–901.
- ↑ R. L. Stratonovich: Application of the Markov processes theory to optimal filtering. Radio Engineering and Electronic Physics, 1960, 5:11, Seiten 1–19.
- ↑ Simon J. Julier, Jeffrey K. Uhlmann und H. F. Durant-Whyte: A new approach for filtering nonlinear systems. Proceedings of the 1995 American Control Conference, 1995, Seiten 1628–1632.
- ↑ Simon J. Julier und Jeffrey K. Uhlmann: A new extension of the Kalman filter to nonlinear systems. In: Int. Symp. Aerospace/Defense Sensing, Simul. and Controls. 1997.
- ↑ J. E. Potter und R. G. Stern: Statistical filtering of space navigation measurements. Proc. of AIAA, Guidance and Control Conf, 1963.
- ↑ G. J. Bierman und C. L. Thornton: Numerical Comparison of Kalman Filter Algorithms: Orbit Determination Case Study. Automatica 13, 23, 1977.
- ↑ A. Patapoutian: On phase-locked loops and Kalman filters. IEEE Transactions on Communications, Volume 47, Issue 5, May 1999, Seiten 670–672.
- ↑ Gelb et al.: Applied Optimal Estimation. The M.I.T. Press, 2001, S. 119 ff.
- ↑ R. H. Shumway, D. E. Olsen und L. J. Levy: Estimation and Tests of Hypotheses for the Initial Mean and Covariance in the Kalman Filter Model. Commun. Stat. Theory Meth, 1981.
- ↑ Wegen folgt
- ↑ Siehe Kovarianzmatrix der verallgemeinerten Methode der kleinsten Quadrate.
- ↑ Einen guten Überblick und ausführliche Erklärungen hierzu findet man beispielsweise in Least-Squares estimation: from Gauss to Kalman von H. W. Sorenson (IEEE Spectrum, Vol. 7, Seiten 63–68, July 1970).
- ↑ Sant, Donald T. "Generalized least squares applied to time varying parameter models." Annals of Economic and Social Measurement, Volume 6, number 3. NBER, 1977. 301–314. Online PDF
- ↑ Albert Bifet: Adaptive Stream Mining: Pattern Learning and Mining from Evolving Data Streams. IOS Press, 2010, ISBN 978-1-60750-090-2, S. 20 (google.com).
- ↑ Henrique M. T. Menegaz, Y. Ishihara João, Geovany A. Borges, Alessandro N. Vargas: A Systematization of the Unscented Kalman Filter Theory. In: IEEE Transactions on Automatic Control. 60. Jahrgang, Nr. 10, 16. Februar 2015, S. 2583–2598, doi:10.1109/TAC.2015.2404511.
Anmerkungen
- ↑ Der Sprachgebrauch für den Begriff Zustandsraummodell ist in der Literatur nicht einheitlich. In der Regelungstechnik versteht man darunter die bloße Modellierung der Zustandsdynamik, in der Zeitreihenanalyse dagegen bezeichnet man die Gesamtheit von Zustands- und Beobachtungsgleichung als Zustandsraummodell.
- ↑ Eine exakte Formulierung mittels einer expliziten Betrachtung der Matrixelemente soll aus Platz- und Übersichtlichkeitsgründen ausgelassen werden. Genaueres findet sich bei Gelb et al.: Applied Optimal Estimation.