Forum: Digitale Signalverarbeitung / DSP / Machine Learning Sprungantwort eines Kalmanfilters


von A. S. (rava)


Lesenswert?

hi,

ich bin am Überlegen, ob sich bei konstanten Matrizen (A, Q, H, R, B=0) 
und gegebener Initialisierung irgendwelche Aussagen über die 
Sprungantwort eines Kalmanfilters treffen lassen.

Lineare mathematische Verfahren (Laplace Trafo / z-Trafo) lassen sich 
nicht ohne Weiteres anwenden. Größtes Problem ist hierbei die 
Invertierung der S-Matrix und auch insgesamt drei Multiplikationen von 
Signalen machen Probleme.

Irgendwie stört es mich, dass das Kalmanfilter aus Regelungstechnischer 
Sicht ein so fies nichtlinearer Block sein soll. Lassen sich denn 
überhaupt keine Aussagen treffen, was die Dynamik angeht?
Ich kann doch ganz klar mit Q und R die Sprungantwort formen.

Wenn das Verhalten wirklich nichtlinear ist, wie äußert sich diese 
Nichtlinearität denn?
Kann ich ein 1D-Filter zum Beispiel charakterisieren, indem ich 
verschieden starke "Sprünge" draufgebe und die Antworten messe? Wie 
berechne ich den interessanten Bereich von Amplituden, die ich 
draufgeben muss?
Ist die Antwort nicht nur Amplituden- sondern auch Frequenzabhängig? 
Also muss ich andere Anregungen hineingeben als Sprünge?

Und wenn mir die Sprungantworten nicht gefallen, wie muss ich die 
Design-Matrizen ändern, um in bestimmten Frequenz- und 
Amplitudenbereichen gezielt Änderungen vorzunehmen.


Mir ist klar, dass nichtlineare dynamische Systeme schwierig zu 
charakterisieren sind. Aber bei einem Kalman Filer müsste das doch mal 
jemand versucht haben.

Quellen? Suchbegriffe? Links?

von Pandur S. (jetztnicht)


Lesenswert?

> Irgendwie stört es mich, dass das Kalmanfilter aus Regelungstechnischer
Sicht ein so fies nichtlinearer Block sein soll.

Ein Kalmanfilter ist ja eine generalisiert Matrix. Eine Matrix ist immer 
linear. Bezueglich den Vektoren.

von Hinweis (Gast)


Lesenswert?

Das Kalman Filter beruht auf der diskreten Form.

Schau dir die Gleichungen/ die Herleitung des KF an. Stichwort 
Kovarianzmatrix. Beim Kalmanfilter musst du stochastisch denken. Laplace 
und co. nutzen dir wenig.

von W.A. (Gast)


Lesenswert?

A. S. schrieb:
> Ist die Antwort nicht nur Amplituden- sondern auch Frequenzabhängig?

Sprung ist Sprung. Damit ist das Anregungsspektrum vorgegeben?

von Matthias M (Gast)


Lesenswert?

Kommt drauf an wie die Kovarianzmatrizen aussehen: Wenn man zum Beispiel 
perfekte Messwerte hat und die "System Matrix" auf bekanntes System 
stellt dann hat man einen Luenberger Beobachter. Wenn es keine Fehler 
gibt, dann merkt man den Beobachter gar nicht und die Antwort des 
Gesamtsystem ist gleich dem eigentlichen System.

Wie sich das dann verändert, wenn es eben Abweichungen gibt, hängt von 
den Kovarianzmatrizen ab.

von A. S. (rava)


Lesenswert?

Matthias M schrieb:
> Kommt drauf an wie die Kovarianzmatrizen aussehen: Wenn man zum
> Beispiel
> perfekte Messwerte hat und die "System Matrix" auf bekanntes System
> stellt dann hat man einen Luenberger Beobachter. Wenn es keine Fehler
> gibt, dann merkt man den Beobachter gar nicht und die Antwort des
> Gesamtsystem ist gleich dem eigentlichen System.
>
> Wie sich das dann verändert, wenn es eben Abweichungen gibt, hängt von
> den Kovarianzmatrizen ab.

Super, nur wie rechne ich das?
Immerhin habe ich bei der Sprunganregung "perfekte Messwerte", ich nehme 
das aber natürlich in meinem realen Kalmanfilter nicht an. Die R-matrix 
ist also nicht null.

Die Parallele zum Luenberger-Beobachter hat man mir auch erzählt. Der 
Unterschied ist, dass der Beobachter so einfach ist, dass man ihn mit 
einem linearen Framework berechnen kann ;)
Das hilft mir also bei meinem konkreten Problem nicht.

von Matthias M (Gast)


Lesenswert?

A. S. schrieb:
> Die Parallele zum Luenberger-Beobachter hat man mir auch erzählt. Der
> Unterschied ist, dass der Beobachter so einfach ist, dass man ihn mit
> einem linearen Framework berechnen kann ;)

Eigentlich berechnet der Kalmanfilter nur die Fehlerrückführ-Matrix L 
anders (Namen gemäß 
https://de.wikipedia.org/wiki/Beobachter_(Regelungstechnik)#/media/File:Luenberger_Observer.svg 
).

Wenn das Systemrauschen und Messrauschen konstant ist, das System ein 
LTI ist, ergibt sich eine konstante Kalman-Verstärkung.
Das habe ich auf die schnelle gefunden :

http://floba.info/Files/Kalman-Filter/Luenberger-Beobachter_und_Extended_Kalman-Filter_Ein_Vergleich.pdf

von A. S. (rava)


Lesenswert?

Matthias M schrieb:
> Eigentlich berechnet der Kalmanfilter nur die Fehlerrückführ-Matrix L
> anders

Sehe ich anders. Ein Kalman Filter schätzt x und P, also die 
Konvarianzmatrix der Zustandshypothese. Im kontinuierlichen Fall scheint 
das bei konstantem Q und R tatsächlich zu einem konstanten P 
zusammenzufallen.

Mein oben beschriebener Kalman Filter ist aber zeitdiskret formuliert
https://en.wikipedia.org/wiki/Kalman_filter#Details

Mir ist nicht sofort mathematisch einleuchtend, ob P konvergieren soll.



(Im übrigen habe ich es später mit einem Problem zu tun, das keine 
konstanten Zeitrschritte hat. Damit ist Q und A veränderlich. H und R 
ändern sich leider auch...)

: Bearbeitet durch User
von Matthias M (Gast)


Lesenswert?

Im ersten Post redest du aber von konstanten Matrizen...

Ich such jetzt nicht nachdem Beweis, daß Luenberger Gain und Kalman Gain 
auf dasselbe kommen...

Aber das dürfte bei LTI stimmen. Es ist also nicht ein "fieser NL 
Block".

Vergleich doch mal und poste bitte!

von A. S. (rava)


Lesenswert?

ich schrieb im letzten Post "später". Also dürfen die Matrizen gerne für 
den Moment konstant sein.

Trotzdem rechnet ein zeitdiskreter Kalmanfilter etwas anderes als ein 
zeitkontinuierlicher, da es sich um eine Stufenweise Berechnung handelt.

Also suche ich auch für den meine Antworten ;)

von W.A. (Gast)


Lesenswert?

A. S. schrieb:
> Mein oben beschriebener Kalman Filter ist aber zeitdiskret formuliert
> https://en.wikipedia.org/wiki/Kalman_filter#Details

Ein Kalman Filter ist immer zeitdiskret.

Die zeitkintinuierlichen Geschwister heißen "Kalman–Bucy Filter", nur um 
Sprachverwirrungen vorzubeugen ;-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.