mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP Sprungantwort eines Kalmanfilters


Autor: A. S. (rava)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Zitronen Falter (jetztnicht)
Datum:

Bewertung
-2 lesenswert
nicht 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.

Autor: Hinweis (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: W.A. (Gast)
Datum:

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

Sprung ist Sprung. Damit ist das Anregungsspektrum vorgegeben?

Autor: Matthias M (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: A. S. (rava)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Matthias M (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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_(Regelung... 
).

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-B...

Autor: A. S. (rava)
Datum:

Bewertung
0 lesenswert
nicht 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
Autor: Matthias M (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: A. S. (rava)
Datum:

Bewertung
0 lesenswert
nicht 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 ;)

Autor: W.A. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ;-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.