Problem mit Kalman-Filter

Gast #567269
Lesenswert?

Hi,

ich habe gerade versucht ein Kalman Filter einer App-Note von TI in 
Matlab zu simulieren, nur leider kommt nicht das Gleiche raus wie in dem 
beschriebenen Beispiel. Ich vermute mal es liegt an F und H. Vielleicht 
kann mir ja jemand weiterhelfen.

Danke und Gruß,
Sebastian
Angehängte Dateien:
Gast #567464
Lesenswert?

Sehe ich das richtig, daß F eigentlich die Systemmatrix A ist? Jetzt 
variieren alle Werte bis auf omega. cos(theta) und sin(theta) nähert 
sich auch ganz gut an die Kurve an. Aber mir geht es ja eigentlich um 
omega... Mal schauen ob ich den Fehler noch find.

Gruß,
Sebastian
Angehängte Dateien:
Gast #567487
Lesenswert?

>>Sehe ich das richtig, daß F eigentlich die Systemmatrix A ist?

Naja, bei nichtlinearen Systemen gibts keine Systemmatrix A. F ist die 
Systemmatrix des linearisierten Systems an der Stelle [math] 
\hat{x}[\math] .

Cheers
Detlef
Gast #567510
Lesenswert?

War etwas schwach formuliert von mir. Wegen der Linearisierung wird ja F 
auch bei jeder Abtastung neu berechnet (kalman2.m).

Wenn ich im prediction-Teil die Zeile:
x_hat(3) = sqrt(x_hat(1)^2 + x_hat(2)^2);
einfüge schaut es schon besser aus. Omega nähert sich dann "irgendeinem" 
Wert (sch....). Der Schätzfehler nähert sich aber nicht wirklich 0;

P.S.: Irgendwie werd ich aus den App-Notes von TI nie schlau!

Gruß,
Sebastian
#567566
Lesenswert?

hm. Ich würds in drei Schritten so angehen:
- lineares System gleicher Ordnung erfinden. F und H kommen dann direkt 
aus der Systembeschreibung. Dann das Kalmanfilter daran zum Laufen 
bringen.

- jetzt statt der Matrizen aus der Systembeschreibung zur Bestimmung der 
F und H die Differenzenquotienten heranziehen. Auch damit muß das Filter 
gehen.

- dann erst diesen scharf geschliffenen Code auf das eigentliche 
nichtlineare Problem anwenden.

Dann kannst Du relativ sicher sein, keine Programmierungsflaws drin zu 
haben.

Cheers
Detlef

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