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.