Instrukcja do zajęć nr 7
Transkrypt
Instrukcja do zajęć nr 7
STEROWANIE PROCESAMI CIĄGŁYMI - Ćwiczenia Ćwiczenie 7: Projektowanie układu regulacji z obserwatorem stanu a. Przyjmując opis serwomotoru w przestrzeni stanu A=[0 1;0 –1]; B=[0;1]; C=[1 0]; D=0; zaprojektuj układ z regulatorem stanu i obserwatorem pełnym. Bieguny obserwatora przyjmij mnożąc przez współczynnik beta (równy: (a) 2, (b) 5) pożądane bieguny układu zamkniętego, gdy obie zmienne stanu są mierzone. Te z kolei wybierz: (i) metodą lokacji biegunów układu zamkniętego w położeniach prototypowych według kryterium ITAE, zapewniających czas regulacji tr = 2 (na podstawie oceny czasu regulacji zastosuj odpowiedni mnożnik alfa skalujący bieguny prototypowe), (ii) metodą lokacji biegunów układu zamkniętego w położeniach prototypowych filtru Bessela, zapewniających czas regulacji tr = 2 (patrz poprzednia uwaga), (iii) p=[-2;-2]; Zasymuluj układ regulacji w SIMULINK-u (rys. 7.1), biorąc zerowe warunki początkowe stanu modelu oraz warunek początkowy obserwatora równy x0. Przyjmij: (a) x0=[0;0], (b) x0=[0;1.0]. Zaobserwuj rzeczywiste i estymowane przez obserwator przebiegi stanu oraz wpływ parametru beta. W bloku obiektu ustaw C=eye(2,2); D=zeros(2,1); w bloku obserwatora zaś B=eye(2,2); C=eye(2,2); D=zeros(2,2); Wyznacz transmitancje obserwatora oraz transmitancję układu zamkniętego wykorzystując załączone instrukcje MATLAB-a. Zwróć uwagę na zera i bieguny. x x1, x^1 x' = Ax+Bu y = Cx+Du K*u w N C obiekt K*u K*u y K y^ B K*u x' = Ax+Bu y = Cx+Du obserwator K*u macierz C K*u H x^ x2, x^2 Rys. 7.1 Model układu z regulatorem stanu i obserwatorem pełnym %projektowanie serwomechanizmu z obserwatorem pełnym kv=1; T=1; A=[0 1;0 -1/T]; B=[0;kv/T]; C=[1 0]; D=[0]; alfa=4; %mnożnik prototypowych biegunów %p=alfa*[-0.7071+0.7071*i;-0.7071-0.7071*i]; %ITAE %p=alfa*[-0.8660+0.5*i;-0.8660-0.5*i]; %Bessel p=[-2;-2]; K=acker(A,B,p); %lokacja biegunów L=[A B;C D]; P=[0;0;1]; n=L\P; Nx=n(1:2,:); Nu=n(3,:); N=Nu+K*Nx; %wzmocnienie wartości zadanej beta=2; %mnożnik biegunów obserwatora po=beta*p; %bieguny obserwatora pełnego H=(acker(A',C',po))'; x0=[0;1.0]; %warunek początkowy obserwatora %Transmitancje obserwatora x^(s)=Gu(s)*u(s)+Gy(s)*y(s) Ac=A-B*K; Ao=A-H*C; z=zeros(2,2); zd=zeros(2,1); [lou,mou]=ss2tf(Ao,B,eye(2,2),zd); [loy,moy]=ss2tf(Ao,H,eye(2,2),zd); %transmitancja wyjścia y(s)/w(s) Az=[Ac B*K;z Ao]; Bz=[B*N;zd]; Cz=[C zd']; [ly,my]=ss2tf(Az,Bz,Cz,D); [zy,py,ky]=tf2zp(ly,my);