Kalman Filter - Grundlagen zum KF

rainer_r

Moderator
Kalman Filter (KF) Grundlagen

Obwohl es sehr viele Informationen zu den Eigenschaften und zur Mathematik des KF gibt, sind diese, mit wenigen Ausnahmen, entweder sehr speziell auf einen Anwendungsfall zugeschnitten oder aber sehr mit Mathematik belastet. Beides ist zwar wichtig und für gute Filterergebnisse unerläßlich - aber für den Anfang hilft es nicht besonders weiter. Ich versucht deshalb hier einige Grundlagen zu beschreiben die für ein erstes Verständnis des KF hilfreich sind. Der Mathematiker wird, die Vereinfachungen die ich vornehmen, sehr kritisch betrachten (also deshalb bitte nicht weiterlesen). Dennoch - grundsätzlich richtig ist es.

Das KF ist deshalb so gefragt und erfolgreich, weil durch den rekursiven Aufbau wenig Speicherplatz und Programmzeilen benötigt werden und damit ist der KF für Echtzeitanwendung sehr gut geeignet. Das Filter wird verwendet um Messwerte "zu glätten" und den Messwert-Verlauf, auch bei Ausfall des Messwertes, bis zu einem gewissen Grad vorauszuberechnen bzw. zu ersetzen.

Für einen Rasen-Roboter gibt es gleich mehrere KF Anwendungsfälle:
- Messwerte des GY-80 Module zur Korrektur der Fahrt
- GPS Navigation Signal gegen Ausfall und Ungenauigkeit sichern
- Kompass (GY-80) mit dem GPS zur Verbesserung der Navigationgenauigkeit

Das Filter verwendet hierzu erst einmal

1. reale Messwerte
2. eine möglichst genaue Beschreibung der Mess-Fehler
3. eine möglichst genaue Beschreibung der System-Fehler
(z.B. Rauschen, Schwankung des Wertes)

daraus errechnet das KF
einen Schätzwert der als korrigierter Messwert gesehen werden kann (der z.B. den aktuellen Messwert ersetzt)

Im KF werden wichtige Werte für die Schätzung immer aktuell ermittelt:
4. einem Verstärkungsfaktor für die Beeinflussung von Messwert und Schätzung
5. der Schätzfehler und seine Abweichungen

Das KF ist rekursiv, d.h. der alte Schätzwert , der Schätz-Fehler und der Verstärkungsfaktor werden mit dem neuen Messwert verrechnet und ergeben einen neuen Schätzwert - diese Schätzung wurde also von der Vorgängersituation beeinflußt. In wie weit der neue Messwert in die Schätzung eingeht ist von den o.g. und im KF errechneten Werten direkt abhängig. Wird z.B. die Verstärkung K = 0 , so spielt die Messung keine Rolle mehr für eine optimale Schätzung. Wenn K jedoch groß (maximal) wird, so ist der neue Messwert in der Berechnung maximal gewichtet. Dem Messwert wird mehr vertraut als der Schätzung.

Es gibt jede Menge Darstellungen zu dieser Rekursion. Hier ist eine die ich sehr übersichtlich finde :
Kalman.jpg


Nun zu der formellen Beschreibung des KF. In der Literatur werden (meistens) die folgenden Bezeichner verwendet:

Q = System Rauschen
R = Messwert Rauschen
K = Verstärung / Beeinflussung (Kalman Gain)
P = Schätzfehler
X = Messwert geschätzt
Z = Messwert real

Folgendes kann zu den Bezeichnern gesagt werden:

Q = große Werte von Q bedeutet große Ungenauigkeit
R = große Werte von R bedeuten große Ungenauigkeit
K = hohe Werte von K bedeuten eine sichere Messung und gewichtet damit den Einfluß des Messwertes
P = je kleiner P , umso genauer ist die Schätzung und der Einfluß des neuen Messwertes

Der einfachste KF ist der für den eindimensionalen Fall. Hier wird ein (fehlerhafter, verrauschter) Messwert durch einen geschätzten Messwert ersetzt. Hierbei können einfache Bezeichner/ Koeffizienten verwendet werden. Die KF-Bezeichner sind z.B:

Q = wird angenommen als Real-Zahl z.B. 0.001
R = wird angenommen als Real-Zahl z.B. 0.401
K = wird intern im KF errechnet
P = wird intern im KF errechnet
X = wird intern im KF errechnet
Z = Messwert wie gemessen (mit Fehler)

Bei diesem KF kommt man relativ schnell zu einem guten Ergebnis des Filters, da nur wenige Werte eingestellt werden müssen. Für diese 1D KF habe ich eine Simulation einer "verrauschten" Messwert-Reihe angehängt.
Dieser Sketch ist direkt im Arduino lauffähig und zeigt wie das KF arbeitet.
Kalman_Filter_1D.zip


Anschließend noch ein kurzer Abstecher welche Überlegungen zum KF nun folgen müssten.
Leider sind 1-dimensionale KF selten einsetzbar. In vielen Fällen sind mehrdim. KF notwendig. Bereits viele Messwerte sind sog. Vektoren und auch die Werte von Q, R ,P müssen in Matritzen dargestellt werden, da bei den tatsächlichen Fehler eine Abhängigkeit untereinander besteht (Kovarianz, Kovarianz-Matrizen).

Doch für einen ersten Einblick in die Arbeitsweise des KF, sollte das erst einmal genügen.
.
 
Oben