Vielen Dank an alle, die gestern Kommentare / Antworten zu meiner Anfrage gepostet haben ( Implementierung eines Kalman-Filters für Position, Geschwindigkeit, Beschleunigung ). Ich habe mir angesehen, was empfohlen wurde, und insbesondere sowohl (a) das Wikipedia-Beispiel für eine eindimensionale Position und Geschwindigkeit als auch eine andere Website, die ähnliche Aspekte berücksichtigt .
Update 26. April 2013 : Die ursprüngliche Frage enthielt einige Fehler, die damit zusammenhängen, dass ich das Wikipedia-Beispiel für eindimensionale Position und Geschwindigkeit nicht richtig verstanden hatte . Mit meinem verbesserten Verständnis der Vorgänge habe ich die Frage jetzt neu formuliert und enger fokussiert.
Bei beiden Beispielen, auf die ich im einleitenden Abschnitt verweise, wird davon ausgegangen, dass nur die Position gemessen wird. Keines der Beispiele hat jedoch irgendeine Berechnung für die Geschwindigkeit. Das Wikipedia-Beispiel gibt beispielsweise die -Matrix als , was bedeutet, dass nur die Position eingegeben wird. Konzentration auf die Wikipedia Beispiel der Zustandsvektor des Kalman - Filters enthält Position und Geschwindigkeit , dhH H = [ 1 0 ] x k x k ≤ x k
Angenommen, die Messung der Position zum Zeitpunkt ist . Dann , wenn die Position und die Geschwindigkeit zum Zeitpunkt war und , und wenn eine konstante Beschleunigung, die in dem Zeitpunkt gilt Intervall bis , Aus der Messung von kann mit der Formel ein Wert für werdenx k k - 1 x k - 1 ˙ x k - 1 a k - 1 k x a
Dies impliziert, dass zum Zeitpunkt ein Maß der Geschwindigkeit gegeben ist durch
Alle Größen auf der rechten Seite dieser Gleichung (dh , und ) sind normalverteilte Zufallsvariablen mit bekannten Mitteln und Standardabweichungen , also die Matrix für den Messvektor
berechnet werden kann. Ist dies eine gültige Methode, um Geschwindigkeitsschätzungen in den Prozess einzufügen?
quelle
Antworten:
Wenn Sie Ihr Bundesland entsprechend auswählen, sind die Geschwindigkeitsschätzungen "kostenlos". Siehe die Ableitung des Signalmodells unten (für den einfachen 1-D-Fall, den wir uns angesehen haben).
Signalmodell, Nehmen Sie 2
Wir müssen uns also wirklich auf ein Signalmodell einigen, bevor wir dies vorantreiben können. Aus Ihrer Bearbeitung geht hervor, dass Ihr Modell der Position folgt aussieht :xk
Wenn unser Zustand wie zuvor ist: dann lautet die Zustandsaktualisierungsgleichung: wobei nun unser die normalverteilte Beschleunigung ist. xk+1=( 1 & Dgr; t 0 1 )xk+( ( & Dgr ; t ) 2
Das gibt eine andere -Matrix als die vorherige Version, aber die Matrizen und sollten gleich sein.F HG F H
Wenn ich dies einsetze
scilab
(sorry, kein Zugriff auf matlab), sieht es so aus:Dann kann ich die Kalman-Filtergleichungen auf dieses (die verrauschten Messungen) anwenden .y
Wir haben also unsere verrauschten Messungen , und wir haben den Kalman-Filter auf sie angewendet und dasselbe Signalmodell verwendet, um zu generieren, wie wir es tun, um den Kalman-Filter anzuwenden (eine ziemlich große Annahme, manchmal!).yy y
Die folgenden Darstellungen zeigen das Ergebnis.
Diagramm 1 : und gegen die Zeit.x ky xk
Diagramm 2 : Eine vergrößerte Ansicht der ersten Beispiele:
Handlung 3 : Etwas, das man im wirklichen Leben nie bekommt, die wahre Position gegen die Zustandsschätzung der Position.
Plot 4 : Etwas, das man im wirklichen Leben auch nie bekommt, die wahre Geschwindigkeit gegen die Zustandsschätzung der Geschwindigkeit.
Diagramm 5 : Die Norm der Zustands-Kovarianz-Matrix (etwas, das Sie im wirklichen Leben immer überwachen sollten!). Beachten Sie, dass es sehr schnell von seinem anfänglichen sehr großen Wert zu einem sehr kleinen Wert übergeht, sodass ich nur die ersten Beispiele gezeigt habe.
Diagramm 6 : Diagramme des Fehlers zwischen der wahren Position und Geschwindigkeit und deren Schätzungen.
Wenn Sie den Fall untersuchen, in dem die Positionsmessungen genau sind, stellen Sie fest, dass die Kalman-Udpate-Gleichungen genaue Ergebnisse für BEIDE Positionen und Geschwindigkeiten liefern. Mathematisch ist es einfach zu verstehen, warum. Unter Verwendung der gleichen Notation wie im Wikipedia-Artikel bedeuten genaue Maße, dass . Wenn Sie davon ausgehen, dass die Ausgangsposition und die Geschwindigkeit bekannt sind, sodass , dann und die Kalman-Gewinnmatrix ist gegeben durchP k =0 P - k + 1 = Q K k + 1zk + 1= xk + 1 Pk= 0 P-k +1= Q Kk + 1
Dies bedeutet, dass der Kalman-Aktualisierungsvorgang erzeugt
Wie Sie sehen, wird der Wert für die Geschwindigkeit durch genau die Formel angegeben, die Sie für die Geschwindigkeitsschätzung vorgeschlagen haben. Also, obwohl du keine Berechnung für die Geschwindigkeit sehen konntest, ist sie doch darin versteckt.( xk- xk - 1) / dt
quelle