Kalman-Filter für nichtlineare Systeme
- Erweiterung der Modelle:
- 2d-Flug
- 2d-Abstandsmessungen zu vorgegebenen Bezugspunkten
- Problem: Messwertbestimmung ist nichtlinear
- Erweiterung des Kalman-Filters nötig (Extended Kalman
Filter)
- Flugmodell:
- analog zu Flight1D, aber mit 2d-Start- und Landekoordinaten
- Zustandsvektor 6-dimensional (x, y, vx, vy, ax, ay)
- Parameter
- einige Hilfsrechnungen der Einfachheit halber in der
Maske
- Aufbau
- Einfaches Testsystem:
- Modell flug2d1.mdl
- Messung der beiden Beschleinigungskomponenten
- H = [0 0 0 0 1 0; 0 0 0 0 0 1]
- System-Matrizen
- kinematisches System wie oben, mit dt = 1
- aber alle Größen jetzt selbst zweidimensional
- in Matlab
- kron([1, 1, 0.5; 0, 1, 1; 0, 0,
1], [1, 0; 0, 1])
- analog
- Ergebnis
- Abweichung ähnlich wie im 1d-Fall
- Extended Kalman Filter:
- Kalman-Filter kann für nichtlineares System erweitert
werden
- hier nur Spezialfall nichtlinearer Messung
- Systemgleichungen
- Filter-Gleichungen
- Prädiktor
- Korrektor
- als Simulink-Modell
- Block Measurement muss für spezielle Messung angepasst
werden
- Messmodell:
- zusätzlich zu Beschleunigungen werden Abstände
zu zwei vorgegebenen Punkten P1, P2 bestimmt
- leicht berechnet als
- Jacobi-Matrix der Messung
- mit
- erhält man
- liefert
- Messwerte mit Rauschen (z)
- Messwerte ohne Rauschen (h(x))
- Jacobi-Matrix H
- Koordinaten der Punkte P1, P2 als Parameter
- Aufbau
- Zusammenschieben der Teile mit Block Matrix Concatenate
- Gesamtsystem:
- Modell flug2d2.mdl
- Messungsblock 2-Point-Distance steckt auch im Extended
Kalman Filter !
- Ergebnis
- i.W. wie bei 1d
- seltsame Peaks (hohe Ungenauigkeit) bei t = 250
- Ursache
- Abstandsmessung liefert grundsätzlich zwei mögliche
Orte
- Anfangswert x0 legt pS fest
- nahe des Schnittpunkts liefern die Abstandsmessungen
keine Entscheidung
- ungenaue Beschleunigungsmessung gibt den Ausschlag
- Erweiterung des Modells:
- Simulation eines temporären Ausfalls der Beschleunigungssensoren
- Parameter für Beginn und Ende des Ausfalls
- Umschaltung zwischen entsprechenden Messungen
- Verbesserung der Bedienbarkeit
- bisher zwei identische Messmodelle (eins im Filter)
- Parameteränderungen immer bei beiden eintragen!
- stattdessen jetzt nur ein Messmodell
- liefert Ergebnisse für "reale" Messungen
und für interne Filterberechnungen
- Gesamtsystem
- Messung wurde aus dem Filter ausgelagert
- gibt seinen x-Predictor-Wert nach außen (zum
Messblock)
- Verbesserung des Messblocks
- modularer Aufbau
- verbessert deutlich die Übersichtlichkeit und
Verständlichkeit
- Unterblöcke
- Umschaltung bei Ausfall der a-Sensoren
- Berechnung der Messwerte (wird 2x verwendet)
- Berechnung der Jacobi-Matrix
- Berechnung der Kovarianz-Matrix
- Ergebnisse:
- Ausfall von 0 bis 200
- Werte fasst wie vorher, etwas schlechter mit zunehmender
Ausfallzeit
- Ausfall von 200 bis 400
- deutliche Verschlechterung
- Flugbahn und Filter-Vorhersage
- mit funtionierendem a-Sensor
- mit Ausfall des a-Sensors von 200 bis 400