Your browser doesn't support the features required by impress.js, so you are presented with a simplified version of this presentation.

For the best experience please use the latest Chrome, Safari or Firefox browser.

Kalman-Filtern auf der Wanderung

Schlaue Algorithmik

»Ein Ausreißer Problem beim GPS-Navigieren«

Numerisch gelöst und animiert mit dem

Werkzeugkasten SciLab

Der Alltag

Auf weiten Wanderungen zeichnet das GPS-Gerät natürlich die Wegspur auf, man will ja wissen, wo man überall herum gelaufen ist und sich die Wan­de­rung auch noch ein­mal auf der Land­kar­te an­schau­en.

Und? Die aufgezeichneten Daten wei­sen häß­li­che Aus­reißer auf, die die Tou­ren­da­ten ver­fäl­schen – die Empfangsqualität der GPS-Sig­na­le ist halt nicht im­mer und über­all gleich gut. Ich als Wan­de­rer weiß aber, dass ich von einer Sekunde auf die andere nicht 200 Me­ter wei­ter weg sein kann. Dum­mes Ge­rät!

Die Lösung? Man könnte etwa aus der augenblicklichen Wan­der­ge­schwin­dig­keit den näch­sten Stand­ort vorausberechnen und diesen Wert mit der feh­ler­be­haf­te­ten Po­si­tion kor­re­lie­ren, die aus den GPS-Da­ten er­mit­telt wird.

Ganz einfach? 'Tracking'-Algorithmen bei Ra­dar-Sys­tem ar­bei­ten mit so­ge­nann­ten Kal­man-Fil­tern. Und die woll­te ich aus­pro­bie­ren!

Die Referenz

Ich hielt mich dabei an ei­nem skiz­zier­ten Bei­spiel (Pro­blem 5.2) in dem Buch:

Robert Grover Brown, Patrick Y. C. Hwang
Introduction to Random Signals and Applied Kalman Filtering
John Wiley & Sons, Inc, 1997

Die Bewegungsgleichung

Ausgangspunkt der Betrachtung ist die ein­di­men­sio­na­le Be­we­gungs­glei­chung, ein­di­men­sio­nal, der Ein­fach­heit hal­ber

Die Zufallsfunktion u(t) stimuliert den Be­we­gungs­abl­auf mit 'Wei­ßem Rau­schen'. Un­ter Wei­ßem Rauschen ver­steht man ei­nen sta­tio­nä­ren Zu­falls­pro­zess, der ei­ne konstante spek­tra­le Dich­te­funk­tion auf­weist. Die Au­to­kor­re­la­tions­funk­tion Ru für u(t) ist ge­ge­ben durch

mit dem Er­war­tungs­wert E und der Di­rac­schen Del­ta-Funk­tion, w ist ei­ne Kon­stan­te, die an­ge­passt wer­den muss.

Die Bewegungsgleichung

Die Autokorrelationsfunktion hängt nur von der Zeit­dif­fe­rnz τ ab, der durch u(t) be­schrie­be­ne Zu­falls­pro­zess ist da­mit sta­tio­när.

Die spektrale Dichtefunktion Su(iω) ist die Fou­rier-Trans­for­mier­te der Au­to­kor­re­la­tions­funk­tion

Das zeit-diskrete Modell

Das zeit-diskrete Mo­dell wird durch die bei­den Glei­chun­gen de­fi­niert

wobei die Größen die fol­gen­de Be­deu­tung ha­ben

xk

Zustandsvektor zur Zeit tk

Φk

Zustands-Überführungsmatrix, die tk mit tk+1 ver­knüpft

wk

Vektor, deren Komponten Zu­falls­va­ri­ab­len sind

zk

Vektor mit den Mess­größen

Hk

Verbindungsmatrix zwischen den Meß­größen und dem Zus­tands­vek­tor

vk

Vektor mit den Mess­feh­lern, de­ren Ko­va­ri­anz-Struk­tur be­kannt sei

Das zeit-diskrete Modell

Die Kovarianz-Matrizen für wk und vk sind:

Mit Worten: Die Größen wk und vk sind je­weils für sich zeit­lich un­kor­re­liert. Und es gibt kei­ne Kreuz-Kor­re­la­tio­nen zwi­schen den Größen wk und vk.

Die zeit-diskrete Matrix-Gleichung

Die Dif­fe­ren­ti­al­glei­chung drit­ter Ord­nung wird überführt in drei Dif­fe­ren­ti­al­glei­chun­gen ers­ter Ord­nung

Das lässt sich wie folgt in Ma­tri­zen­form schrei­ben

Die zeit-diskrete Matrix-Gleichung

Hieraus erhält man die dis­kre­ti­sier­te Zu­stands-Über­füh­rungs­ma­trix Φk mit­tels der Glei­chung

wobei der inverse La­pla­ce-Ope­ra­tor zum Zu­ge kommt. Das Er­geb­nis sieht in zwei Schrit­ten wie folgt aus:

Die zeit-diskrete Matrix-Gleichung

Anstatt die Ko­va­ri­anz-Ma­trix Qk über ih­re De­fi­ni­tion

abzuleiten, folge ich den Ausführungen im ge­nann­ten Buch und ge­he von dem fol­gen­den Block­dia­gramm aus

'PDS' steht für 'Power Spctral Density'. Dem Dia­gramm kön­nen wir di­rekt die Trans­fer-Funk­tio­nen ent­neh­men,

Die zeit-diskrete Matrix-Gleichung

G1 ist etwa die Trans­fer-Funk­tion von u nach x1

Die zu einer Trans­fer-Funk­tio­nen G(s) kor­re­spo­ndie­ren­den Ge­wichts­funk­ti­on g(t) ist de­fi­niert durch

Man erhält dann

Mit diesen Funk­tio­nen be­rech­net man dann die Kom­po­nen­ten der Ko­va­ri­anz-Ma­trix ent­spre­chend der For­mel

Ein Matrix-Element sei ex­pli­zit be­rech­net

Die Kovarianz-Ma­trix Qk sieht dann am En­de wie folgt aus

Hiermit sind alle Größen versamment, um den 'Kal­man-Fil­ter' füt­tern zu kön­nen.

Der diskrete Kalman-Filter

Die Matrizen-Gleichungen zum Kal­man-Fi­lter ha­be ich dem ge­nan­nten Buch ent­nom­men und sie Eins zu Eins in die Skript­spra­che der Wis­sen­schafts­werk­bank Sci­Lab über­neh­men kön­nen.

Der diskrete Kalman-Filter

Die Matrizen-Gleichungen zum Kalman-Filter ha­be ich dem ge­nan­nten Buch ent­nom­men und sie Eins zu Eins in die Skript­spra­che der Wis­sen­schafts­werk­bank Sci­Lab über­neh­men kön­nen.

Den voll­stän­di­gen Sci­Lab-Co­de ha­be ich in ei­ne PDF-Da­tei ge­packt und et­was auf­ge­hübscht, Sie kön­nen ihn sich hier an­se­hen:

Der Kalman-Filter-Sci­Lab-Co­de
(PDF)

Die Simulation

Den Formalismus in allen Ehren, man möch­te na­tür­lich aber auch et­was vor Au­gen ha­ben und auch ein we­nig herum­spie­len. So ha­be ich die Mes­sun­gen simuliert und einige Aus­rei­ßer spen­diert. Ge­nau­eres kann man dem bei­ge­füg­ten Sci­Lab-Co­de ent­nehmen.

Hier nun einige Ergebnisse.

Man sieht, der 'Filter' muss sich anfänglich noch einschwingen, dann wer­den Aus­rei­ßer brav aus­ge­mit­telt.

Hier eine Messreihe mit größeren Schwan­kun­gen, der 'Fil­ter' wirkt wie­der aus­glei­chend.

Halten die Ausreißer ei­ni­ge Zeit an, folgt der 'Fil­ter'.

Beiträge

Filtertheorie R. E. Kalman, 1960
Lehrbuch R. G. Brown, P. Y. C. Hwang, 1997
Werkzeug SciLab
Webgerüst impress
Foliensatz Bernd Ragutt
Erstellt Weihnachtszeit 2011
Geändert 19. September 2014

Benutze die Leertaste oder die Pfeiltasten,
um zu navigieren ...