Kalman Filter: Berechnung von Q

Gast #4927288
Lesenswert?

Hallo,

ich würde gerne wissen wie man beim Kalman Filter die 
Prozessrauschkovarianzmatrix Q berechnet.

In vielen Quellen findet man dort einfach nur eine Varianz sigma² 
multipliziert mit der Einheitsmatrix.

Soweit ich weiß, sollten aber auch die Abhängigkeiten der Zustände 
zueinander enthalten sein, womit das keine allgemeine Lösung sein 
sollte.


Auf dieser Seite wird die Berechnung ein bisschen erklärt:

http://www.cbcity.de/das-kalman-filter-einfach-erklaert-teil-2

Allerdings ist es doch ein bisschen schwammig und auf der Seite habe ich 
auch schon einige Fehler gefunden.

Weiß jemand von euch wie man allgemein Q beim Kalman Filter berechnet?

Vielen Dank für jede Hilfe!
Gast #4928368
Lesenswert?

Modularier schrieb:
> Hallo,
>
> ich würde gerne wissen wie man beim Kalman Filter die
> Prozessrauschkovarianzmatrix Q berechnet.
>
> In vielen Quellen findet man dort einfach nur eine Varianz sigma²

> Weiß jemand von euch wie man allgemein Q beim Kalman Filter berechnet?
>
> Vielen Dank für jede Hilfe!

Man ermittelt Q iterativ durch probieren. Allerdings gibt es schon 
Ansätze wie man Q wählen sollte. Such hier auf der Seite mal nach Kalman 
Fitler.
Gast #4928708
Lesenswert?

Hallo Tom,

vielen Dank für deine Antwort. Natürlich habe ich auch schon das µC 
Forum rauf- und runtergesucht und konnte aber keine zufriedenstellende 
Antwort finden.

Was du meinst dürfte ja schlicht die Einheitsmatrix mit einem iterativ 
bestimmten sigma² multipliziert sein. Aber ich denke, dass man damit das 
Filter falsch parametriert. Siehe zum Beispiel in dem obigen Link, dort 
wird gesagt, dass man Q tatsächlich berechnen kann: Q=G*G^T*sigma_a^2

Allerdings habe ich nicht ganz verstanden, wie man auf G kommt. Die 
beiden physikalischen Abhängigkeiten, die dort  angegeben sind:

x=1/2dt²*x^{..}
x^{.}=dt*x^{..}

mögen zwar "richtig gemeint" sein, sind aber m.E. mathematisch falsch. 
Oder kann mir das jemand erklären? Z.B. die zweite Gleichung: Die 
Ableitung von x = Abtastzeit mal 2. Ableitung? Das kann doch nicht 
stimmen!?
Gast #4929463
Lesenswert?

Modularier schrieb:
> Hallo Tom,
>
> vielen Dank für deine Antwort. Natürlich habe ich auch schon das µC
> Forum rauf- und runtergesucht und konnte aber keine zufriedenstellende
> Antwort finden.
>
> Was du meinst dürfte ja schlicht die Einheitsmatrix mit einem iterativ
> bestimmten sigma² multipliziert sein. Aber ich denke, dass man damit das
> Filter falsch parametriert. Siehe zum Beispiel in dem obigen Link, dort
> wird gesagt, dass man Q tatsächlich berechnen kann: Q=G*G^T*sigma_a^2
>
> Allerdings habe ich nicht ganz verstanden, wie man auf G kommt. Die
> beiden physikalischen Abhängigkeiten, die dort  angegeben sind:
>
> x=1/2dt²*x^{..}
> x^{.}=dt*x^{..}
>
> mögen zwar "richtig gemeint" sein, sind aber m.E. mathematisch falsch.
> Oder kann mir das jemand erklären? Z.B. die zweite Gleichung: Die
> Ableitung von x = Abtastzeit mal 2. Ableitung? Das kann doch nicht
> stimmen!?

Bei welchem Kalman Filter bist du jetzt?

Weil Sigma klingt nach UKF oder SPKF...
Gast #4929901
Lesenswert?

Hallo Tom,

vielen Dank nochmal für deine Antwort! Ich bin (noch) beim Standard KF.

Also mir ist schon klar, dass G unter der Annahme bestimmt wird, dass 
für x und y jeweils die Geschwindigkeit gleich die Ableitung der 
Position ist und eine einwirkende Störung (Beschleunigung) Auswirkungen 
auf beide Zustände hat.

Die beiden dort aufgestellten Gleichungen mit denen man dann auf G kommt 
sind aber m.E. falsch.

Die Abhängigkeit zwischen z.B. Beschleunigung und Geschwindigkeit ist

Ich verstehe nicht, wie man damit auf die Gleichungen aus dem Link bzw. 
auf G kommt.
Gast #4930034
Lesenswert?

Modularier schrieb:
> Hallo Tom,
>
> vielen Dank nochmal für deine Antwort! Ich bin (noch) beim Standard KF.
>
> Also mir ist schon klar, dass G unter der Annahme bestimmt wird, dass
> für x und y jeweils die Geschwindigkeit gleich die Ableitung der
> Position ist und eine einwirkende Störung (Beschleunigung) Auswirkungen
> auf beide Zustände hat.
>
> Die beiden dort aufgestellten Gleichungen mit denen man dann auf G kommt
> sind aber m.E. falsch.
>
> Die Abhängigkeit zwischen z.B. Beschleunigung und Geschwindigkeit ist
> x˙k+1=x˙k+x¨kdt\dot{x}_{k+1} = \dot{x}_k +\ddot{x}_k dt
> Ich verstehe nicht, wie man damit auf die Gleichungen aus dem Link bzw.
> auf G kommt.

Die Schreibweise finde ich etwas unglücklich. x_k assoziert ja den 
diskreten Vektor, wo dann aber die Punkte deplatziert sind. Ich bin 
jetzt mit dem Ansatz nicht so vertraut, bin gerade selbst dabei ein EKF 
zu entwickeln.

Ich muss mir die Sache nochmal genauer ansehen...
Gast #4930972
Lesenswert?

Ich kannte es bisher nur so, dass man die Q Matrix als Diagonalmatrix 
vorgibt. Man kann glaube ich wenn man sie so vorgibt wie in dem Link 
sehr gut sehen, mit welchem Element der Matrix Q sich die Schätzung 
einer Zustandsgröße verändert und so diese Matrix bestimmen. So würde 
ich das sehen.
Gast #4931163
Lesenswert?

Hallo Tom,

danke für die Antworten! Ich komme aus Hamburg.

Ich habe mal einen groben Einheitencheck gemacht und dabei entsteht in 
diesem Beispiel zumindest schonmal kein Widerspruch, wenn man Q wie im 
Link berechnet.

Die Diagonalmatrix findet man in vielen Quellen. Auf derselben Seite 
gibt es noch einen Artikel über den EKF und dort wird Q ebenfalls mit 
einer Diagonalmatrix vorgegeben.

Das KF oder EKF scheint mit einer Diagonalmatrix als Q zwar irgendwie zu 
funktionieren, sollte aber erst durch eine richtige Parametrierung von Q 
zur optimalen Funktionsweise kommen.

Q hat Einfluss auf P und somit auch auf S und K. Ich denke, wenn Q nicht 
richtig parametriert ist, kann man sich die ganzen Rechnungen und somit 
auch das KF gleich sparen.


Falls jemand eine Lektüre Empfehlung zum Thema KF hat, wäre ich dafür 
sehr dankbar!
Gast #4937633
Lesenswert?

Eine allgemeine Lösung gibt es dafür meines Wissens nicht. Du kannst wie 
du bereits geschrieben hast die Sensorsignale in ruhelage mal messen und 
die rauschvarianz als fehlerleistung in Q angeben (zumindest als 
Startpunkt für die Diagonale). Ansonsten hilft nur rumspielen mit der 
Intuition, dass Q deine Modellierungsfehler, Unsicherheiten und 
Sensorrauschen repräsentiert.
Gast #4941978
Lesenswert?

@Modularier:

wie siehst du die Schreibweise der Matrix Q in dem Link?

Ist es als Standardabweichung des Products zweier ZF-Variablen zu 
verstehen oder als Kovarianz zwischen zwei ZFV?

Das Sigma irritiert mich, da es ja oft für die Standardabweichung 
steht... In diesem Kontext mach die Kovarianz ja mehr sinn..
Gast #4944423
Lesenswert?

Die Frage habe ich mir natürlich auch schon gestellt. Ich weiß es nicht. 
Wenn man 2 Standardabweichungen miteinander "verschmelzt" kenne ich 
bisher immer die Formel
. In dem Link ist jedoch
, die Standardabweichungen werden also miteinander multipliziert.

Ich hab mal in das Buch "Kalman Filter for beginners" von Phil Kim 
reingeschaut. Dort wird Q nur durch eine Diagonalmatrix angegeben.


Ich denke das Beispiel aus dem Link ist falsch: x und y sind voneinander 
unabhängige Zustandsvektoren. Dementsprechend, kann auch eine 
Standardabweichung von der x Seite keinen Einfluss haben auf die Fehler 
und die Standardabweichung auf der y Seite, was aber bei der Berechnung 
von Q hier offensichtlich der Fall ist.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren