Uploaded by Szabó Balázs

UT - J - XI - SB - 2021

advertisement
Irányítástechnika
Órák témái: Aktív megfigyelő Kálmán szűrővel
Simulinkes ábrája:
Jegyzet – 11.
Irányítástechnika
Jegyzet – 11.
Az e ábrához tartozó MATLAB parancsok:
>> m1 = 2500;
m2 = 320;
k1 = 80000;
k2 = 500000;
b1 = 350;
b2 = 15020;
A=[0
1 0
0
-(b1*b2)/(m1*m2) 0 ((b1/m1)*((b1/m1)+(b1/m2)+(b2/m2)))-(k1/m1) -(b1/m1)
b2/m2
0 -((b1/m1)+(b1/m2)+(b2/m2))
1
k2/m2
0 -((k1/m1)+(k1/m2)+(k2/m2))
0];
B=[0
0
1/m1
0
(b1*b2)/(m1*m2)
-(b2/m2)
(1/m1)+(1/m2)
-(k2/m2)];
C=[1 0 0 0;0 0 1 0];
D=[0 0;0 0];
Bus=ss(A,B,C,D);
Ba=B(:,1) ;
R=5e-6;
Q=[10000000,0,0,0;0 1000 0 0;0 0 1 0; 0 0 0 1];
K=lqr(A,Ba,Q,R);
AA=A-Ba*K;
po=10*eig(AA);
Co=[1,0,0,0;0,1,0,0;0,0,1,0];
G=place(A',Co',po)';
F=A-G*Co;
H=Ba;
Ts=1e-4;
cBus=ss(A,Ba,C,[0]);
dcBus=c2d(cBus,Ts);
dA=dcBus.A;
Irányítástechnika
dB=dcBus.B;
dK=dlqr(dA,dB,Q,R);
dK=dlqr(dA,dB,Q,R)
dPo=eig(dA-dB*dK)/10;
dG=place(dA',dA'*Co',dPo)';
kQ=10^2;
kR=eye(3);
kR(1,1)=2e-9;
kR(2,2)=2e-7;
kR(2,2)=2e-6;
kR(2,2)=2e-7;
kR(3,3)=2e-6;
dkQ=10.001^2;
dkR=eye(3);
dkR(1,1)=kR(1,1);
dkR(2,2)=kR(2,2);
dkR(3,3)=kR(3,3);
Majd a bemeneti és kimeneti scope-ok:
Bemeneti scope:
Jegyzet – 11.
Irányítástechnika
Jegyzet – 11.
A valós busz kimeneti scope-jai:
Ahogy láthatjuk, e scope-ok 1 az egyben ugyan azok, mint az előző jegyzetben lévő aktuális
megfigyelő scope-jai.
Viszont a lényegbeli különbség ott rejlik ez ill. az előző jegyzetben szereplő aktuális megfigyelő
között az, hogy mint ahogy azt láthatjuk, itt vittünk az adott rendszerbe be különböző
zavarokat. E zavarok kiküszöbölésére fogjuk használni a Kálmán szűrőt, de mint ahogy
láthatjuk, ez sem lesz ideális, tehát nem kapjuk vissza az eredeti kimeneteket(amelyeket az
előző jegyzetben is láthattunk), hanem egy ahhoz nagyon approximáló megoldást láthatunk.
Ezt itt úgy értem, hogy a zavarok lekövetik a kimeneteket, mint az itt láthatjuk is majd.
Irányítástechnika
Íme a Kálmán szűrő kimenetei:
Jegyzet – 11.
Irányítástechnika
Jegyzet – 11.
A folytatásban megvalósítottuk a Kálmán szűrőt egy kicsit másképp, magyarán mi építettük fel
Simulinkben a Kálmán szűrőt, amelyet itt láthatunk:
Irányítástechnika
Az előző MATLAB kód kiegészítése:
dkQ=10.001^2;
Jegyzet – 11.
Irányítástechnika
dkR=eye(3);
dkr(1,1)=kR(1,1)/Ts;
dkr(2,2)=kR(2,2)/Ts;
dkr(3,3)=kR(3,3)/Ts;
kQ = eye(4);
kQ = kQ+eye(4);
kQ(4,4) = 1e3;
kR = eye(3);
kCo=Co;
Majd a kimenetei (Kálmán szűrő, a többi ugyan az, mint az előzőnél):
Jegyzet – 11.
Irányítástechnika
Jegyzet – 11.
Download