Sollte die Beschleunigung im Zustandsvektor eines Kalman-Filters enthalten sein?

Ich entwickle (tatsächlich übernehme ich eine vorhandene Lösung) einen Kalman-Filter , um die Bewegung eines Fahrzeugs (UAV oder Automobil) zu modellieren. Der Zustandsvektor enthält Position, Geschwindigkeit und möglicherweise Beschleunigung.

In dieser bestehenden Lösung ist die Beschleunigung enthalten; Zustandsübergang ist so etwas wie ( X , v , A ) ( X + Δ T v , v + Δ T A , A + ξ ) , Wo ξ ist ein Prozessrauschen.

Ich denke, dass ein solches Modell gut ist, wenn sich die Beschleunigung etwas sanft ändert, aber wenn es Beschleunigungsschübe gibt, wird es entfernt A vom Zustand und das Hinzufügen von Rauschen zur Geschwindigkeit sollte besser geeignet sein: ( X , v ) ( X + Δ T v , v + ξ ) .

Tests zeigen, dass es fast keinen Unterschied in der Genauigkeit der Lösung zwischen beiden Modellen gibt (es stellt sich heraus, dass die Beobachtungsdaten mehr Einfluss auf die Position als auf die Geschwindigkeit haben).

Die Frage ist also, wann sollte ich die Beschleunigung in den Zustand aufnehmen und wann nicht? Welche Dinge sollte ich beachten?

Meine allgemeinen Eindrücke: (1) Kalman-Filter sind schwarze Magie, und die Leute basteln nur daran herum, damit sie funktionieren. (2) Kalman-Filter haben keine besonders guten oder besonderen Eigenschaften. Sie sind nur in der Tradition verankert.
@Ben: Sicherlich schwarze Magie, aber sie haben ein oder zwei besondere Eigenschaften. Sie können die Projektion ändern (z. B. die Physik Ihres Detektors, indem Sie einer zuvor feldfreien Maschine ein Magnetfeld hinzufügen), ohne einen Teil der Anpassung ändern zu müssen, und erhalten dennoch eine optimale Antwort. Der Monteur spricht nur mit dem Verbreiter, wenn dieser fragt : "Wohin zeigt die Spur bisher?" . (Angenommen, der von Ihnen gewählte Repräsentationsraum ist allgemein genug, aber das trifft normalerweise zu). Natürlich verstehen sie relativ wenige Menschen wirklich und ich gehöre nicht dazu.

Antworten (2)

Kalman-Filter sind keine schwarze Magie, sondern die Standardmethode, um vorherzusagen, wie sich ein System verhalten wird, das nur durch Messungen bekannt ist.

Die Physik eines Autos ist in guter Näherung die eines Systems von Differentialgleichungen zweiter Ordnung, mit Ausnahme des Quellterms, der aus den Handlungen des Fahrers und aus der Neigung der Straße stammt. Die Zustände des Autos, wenn der Fahrer inaktiv ist, sind nur Position und Geschwindigkeit, die Zustände des Fahrers sind die Winkel der Räder und die Beschleunigung in Radrichtung, der Zustand der Straße ist ihre Neigung.

Das Kalman-Filter sollte wahrscheinlich die gleichen Zustände haben, es sei denn, diese sind größtenteils aus der Kenntnis der Straße vorhersagbar und werden dann eher zu einem Teil der dynamischen Gleichung als zu unabhängigen Zuständen gemacht. Der Rauschterm umfasst dann nur noch die Diskretisierungsfehler der Differentialgleichung für die Bewegung und eventuelle Fahrer- und Fahrbahnzustandsänderungen.

Andererseits zählt am Ende nur die tatsächliche Leistung, und wenn Sie genügend Daten haben, um das Modell unter realistischen Bedingungen zu testen, können Sie das Modell vereinfachen, solange die Leistung nicht abnimmt.

Ich habe das Gefühl, dass die Frage äquivalent ist zu "Wann hat die Beschleunigung ein Gedächtnis?". Denn das sind die Zustandsvariablen, das Gedächtnis des Systems von Frame zu Frame.

Die Hochlaufzeit für ein Düsentriebwerk oder die Bewegung der Luftbremse könnten also ein gutes Beispiel für die physikalische Bedeutung von Zustand/Speicher für eine axiale Beschleunigung in einem UAV sein.

In ähnlicher Weise könnte ein Modell des Hydrauliksystems und wie es die Steuerflächen bewegt, eine gute physikalische Interpretation der Zustandsvariablen für nicht-axiale/Rotationsbeschleunigungen in einem UAV sein.

Ich bin sicher, Sie können sich ähnliche Arten von Zuständen / Erinnerungen für die Beschleunigungen in einem Auto vorstellen.

Sie sagen direkt in Ihrer Beschreibung, dass Sie sie wahrscheinlich nicht brauchen. ("Tests zeigen, dass es fast keinen Unterschied in der Genauigkeit der Lösung zwischen beiden Modellen gibt")

Sie können diese Effekte nur vernünftig modellieren, wenn Ihre Zeitdeltas in der gleichen Größenordnung (oder kleiner) liegen wie die Zeitskalen, auf denen diese Effekte auftreten.

Und ihre Modellierung hilft nur, wenn die durch sie verursachten Fehler eine ähnliche Größe (oder größer) haben als die Fehler, die Sie normalerweise von anderen Quellen sehen (Rauschen/Messunsicherheit). Andernfalls sind sie schwer zu erkennen, da sich Fehlergrößen (zumindest in einfachen Fällen) wie senkrechte Vektoren addieren: E ^ 2 = e1 ^ 2 + e2 ^ 2