Das Kalmanfilter
(EN google-translate)
(PL google-translate)
Im Zusammenhang mit Zustandsreglern mit Beobachter hat sich das Kalman-Filter bewährt. Nach seinem Erfinder Rudolf Emil Kalman, handelt es sich um einen optimalen Schätzer, der auf Grundlage vergangener verrauschter Zustandsmessungen und einem möglichst genauen Modell, aktuelle Zustände filtern und zukünftige vorhersagen kann. Zur Erinnerung eine Darstellung eines Zustandsreglers (s. Kapitel 8), eines Zustandsreglers mit Beobachter (s. Kapitel 9) und eines Zustandsreglers mit Beobachter und Kalman Filter:
Das Kalman Filter wurde während des Apollo-Programms zum ersten mal praktisch umgesetzt, s. folgenden Artikel:


Bild 0-1: Prinzip-Blockschaltbild eines Zustandsreglers.

Bild 0-2: Zustandsregler mit Beobachtermodell: Die Differenz zwischen realem Systemzustand und simuliertem Systemzustand wird auf den Eingang der simulierten Regelstrecke rückgekoppelt.

Bild 0-3: Zustandsregler mt Beobachtermodell und Kalmanfilter (Filtermatrix L).
|
$ \dot y_s = A y_s + B R \left(-y_s\right) + L \left(y-y_s\right) $
Formel 0-1: Simuliertes System beim Zustandsregler mt Beobachtermodell und Kalmanfilter als Filtermatrix L.
$ \dot y = A y + B R \left(-y_s\right) $
Formel 0-2: Reales System beim Zustandsregler mit Beobachtermodell und Kalmanfilter als Filtermatrix L.
|
$ L = PC^TS^{-1} $
Formel 0-3: Bestimmung des Kalmanfilters.
|
$ \dot x = Ax+ Bu + r_x $
Formel 0-4: Einwirkung von Störungen auf das zu regelnde System, hier in allgemeiner Zustandsraumdarstellung, Zustandsgleichungen.
$ y = Cx + Du + r_y $
Formel 0-5: Zus \tan dsraumdarstellung & zugehörige Ausgangsgleichungen.
|
|
|
$ \dot y = Ay+ Bu + r_y $
Formel 0-6: Einwirkung von Störungen auf das zu regelnde System, vereinfacht.
|
|
|
Übungsbeispiel
|

Bild 0-4: Neue Variante zur Modellierung eines invertierenden Pendels.
Aufgabe 1 (Vorbereitungen)
|

Bild 0-5: Plot zur Simulation des linearisierten Riccati-geregelten invertierenden Pendels.
Aufgabe 2 (Vorbereitungen)
|
|
//Bestimmung der Rückführmatrix für einen Riccati-Zustandsregler //Danach Simulation des linearisierten Systems. r=0.5; d=0.05; m=1.0; J=0.25*m*((d/2)^2)+(1/12)*m*((2*r)^2); g=9.81; //Systemmatrix: AA=[????]; //Eingangsmatrix / Rückführungsmatrix BB=[????]; //Durchgangsmatrix: DD=[0;0;0;0]; //Ausgangsmatrix: CC=[1,0,0,0; 0,1,0,0; 0,0,1,0; 0,0,0,1]; GG = syslin('c',AA,BB,CC,DD); [PP,FF] = gcare(GG); //Matrix P: PP RR = BB'*PP global r,d,m,J,g, AA,BB,DD,CC,PP,RR; function f = rechteSeite(t,y) f = (????)*y endfunction t = 0:0.01:10; y0 = [0.1,0,0.1,0]'; t0 = 0; y = ode(y0,t0,t,rechteSeite); plot(t,y(1,:),'red',t,y(3,:),'blu',); a = gca(); a.x_label.text = 't/s'; a.y_label.text = 'y'; a.title.text = 'Riccati-optimierter Zustandsregler für lin. inv. Pendel'; hl=legend(['phi';'x'],a=1);
Code 0-1: Vorlage für Aufgabe 1.