Kalman-Filter - Optimale Handhabung von "abgeleiteten" Messungen?

13

Das heißt, wenn Sie als Zustandsvariablen Position ( p ) und Geschwindigkeit ( v ) haben und ich Niederfrequenzmessungen von p durchführe , gibt dies mir auch indirekt Informationen über v (da es die Ableitung von p ist ). Was ist der beste Weg, um mit einer solchen Beziehung umzugehen?

A) Soll ich beim Aktualisierungsschritt nur sagen, dass ich p gemessen habe , und mich auf den Filterprozess und meine akkumulierte Zustands-Kovarianz-Matrix ( P ) verlassen, um v zu korrigieren ?

B) Soll ich nach oder vor meinem Aktualisierungsschritt für die Messung von p einen "zusätzlichen" Vorhersageschritt erstellen , der mein gemessenes p und die (relativ große) Delta-Zeit verwendet, um eine Vorhersage von v mit hoher Varianz zu erstellen ?

C) Soll ich in meinem Aktualisierungs- / Messungsschritt sagen, dass ich sowohl p als auch v gemessen habe und dann irgendwie Informationen über ihre gegenseitige Abhängigkeit in die Messungs-Kovarianzmatrix ( R ) codiere?


Für ein wenig mehr Hintergrund ist hier die spezifische Situation, in der ich auf das Problem gestoßen bin:

Ich arbeite mit einem System, bei dem ich die Position ( p ) eines Objekts schätzen möchte , und ich mache häufige Messungen der Beschleunigung ( a ) und seltene, rauschintensive Messungen von p .

Ich arbeite derzeit mit einer Codebasis, die dies mit einem erweiterten Kalman-Filter ausführt, bei dem die Statusvariablen p und v beibehalten werden . Nach jeder Beschleunigungsmessung wird ein "Vorhersageschritt" ausgeführt, bei dem die gemessene a- und Delta-Zeit zum Integrieren und Vorhersagen neuer p und v verwendet wird . Anschließend wird für jede (seltene) p- Messung ein Schritt "Aktualisieren" / "Messen" ausgeführt .

Das Problem ist folgendes: Ich erhalte gelegentlich Messungen mit hohem Fehler von a , was zu sehr fehlerhaften v führt . Offensichtlich werden weitere Messungen von a dies niemals korrigieren, aber Messungen von p sollten dies beseitigen. Und tatsächlich scheint dies zu geschehen ... aber SEHR langsam.

Ich dachte , dass dies teilweise sein kann , weil der einzige Weg , p beeinflusst v in diesem System ist durch die Kovarianzmatrix P - dh Verfahren A) von oben - die ziemlich indirekt zu sein scheinen. Ich habe mich gefragt, ob es einen besseren Weg geben könnte, unser Wissen über diese Beziehung zwischen p und v in das Modell einzubeziehen, damit Messungen von p v schneller korrigieren .

Vielen Dank!

Paul Molodowitch
quelle
1
ein
2
pvpk+1=pk+vkΔt

Antworten:

3

Im Idealfall hätten Sie das richtige Modell und würden es verwenden.
In Ihrem Fall ist das Modell nicht perfekt.
Die Schritte, die Sie vorschlagen, basieren jedoch auf Ihren Kenntnissen über den Prozess - die Sie mithilfe Ihrer dynamischen Modellmatrix in Ihre Prozessgleichung einbeziehen sollten:

  1. Die klassische und korrekte Art, wie eine F-Matrix gegeben ist, ist nach Ihrem Wissen korrekt aufgebaut.

  2. Fichk=FichjFjkQ.R

  3. Wenn Sie V nicht messen, müssen Sie es irgendwie "schätzen". Wenn Ihr Fall jedoch per Definition unter die Annahmen von Kalman fällt, würde die Verwendung des Kalman-Filters die besten Ergebnisse liefern.

Alles in allem bleiben Sie bei der "Classic".

Royi
quelle