MATLAB Control System Toolbox & SIMULINK - ứng dụng, phân tích, thiết kế và mô phỏng các hệ thống tuyến tính
Control System Toolbox & Simulink 1 Control System Toolbox & SIMULINK ng dng phân tích, thit k và mô phng các h thng tuyn tính Trn ình Khôi Quc, BM. T ng hóa. Email : tdkquoc@dng.vnn.vn GII THIU MATLAB, tên vit tt ca t ting Anh MATrix LABoratory, là mt môi trng mnh dành cho các tính toán khoa hoc. Nó tích hp các phép tính ma trn và phân tích s da trên các hàm c bn. Hn na, cu trúc ha hng i tng ca Matlab cho phép to ra các hình v cht lng cao. Ngày nay, Matlab tr thành mt ngôn ng « chun » c s dng rng rãi trong nhiu ngành và nhiu quc gia trên th gii. V mt cu trúc, Matlab gm mt ca s chính và rt nhiu hàm vit s!n khác nhau. Các hàm trên cùng l"nh vc #ng dng c xp chung vào mt th vi$n, iu này giúp ngi s dng d% dng tìm c hàm cn quan tâm. Có th& k& ra mt s th vi$n trong Matlab nh sau : - Control System (dành cho iu khi&n t ng) - Finacial Toolbox (l"nh vc kinh t) - Fuzzy Logic (iu khi&n m) - Signal Processing (x lý tín hi$u) - Statistics (toán hc và thng kê) - Symbolic (tính toán theo bi&u th#c) - System Identification (nhn dng) - … Mt tính cht rt mnh ca Matlab là nó có th& liên kt vi các ngôn ng khác. Matlab có th& gi các hàm vit b'ng ngôn ng Fortran, C hay C++, và ngc li các hàm vit trong Matlab có th& c gi t các ngôn ng này… Các bn có th& xem phn Help trong Matlab & tham kho cách s dng và ví d ca tng l$nh, hoc download (mi%n phí) các file help dng *.pdf ti trang Web ca Matlab (a ch) http://www.mathworks.com 1 Control System Toolbox Control System Toolbox là mt th vi$n ca Matlab dùng trong l"nh vc iu khi&n t ng. Cùng vi các l$nh ca Matlab, tp l$nh ca Control System Toolbox s giúp ta thit k, phân tích và ánh giá các ch) tiêu cht lng ca mt h$ thng tuyn tính. 1.1 nh ngha mt h thng tuyn tính 1.1.1 nh ngha bng hàm truyn H thng mt tín hiu vào/ra Câu l$nh: sys=tf(num,den,T) - num: vect ch#a các h$ s ca a th#c t s, bc t cao n thp theo toán t Laplace (h$ liên tc) hoc theo toán t z (h$ gián on) - den: vect ch#a các h$ s ca a th#c m*u s, bc t cao n thp - T: chu k+ ly m*u, ch) dùng cho h$ gián on (tính b'ng s) Ví d: (nh ngh"a mt hàm truyn trong Matlab Control System Toolbox & Simulink 2 42 2 3)( 2 ++ + = pP p pF num=3*[1 2];den=[1 2 4];sys1=tf(num,den); 4,056,0 6,0 *1,2)( 2 +− − = zz z zF num=2.1*[1 -0.6];den=[1 -0.56]; T=0.5;sys2=tf(num,den,T) H thng nhiu tín hiu vào/ra Câu l$nh : G11=tf(num11,den11,T); G12=tf(num12,den12,T); .; G1n=tf(num1n,den1n,T); G21=tf(num21,den21,T); G22=tf(num22,den22,T); .; G2n=tf(num2n,den2n,T); Gp1=tf(nump1,denp1,T); G12=tf(nump2,denp2,T); .; Gpn=tf(numpn,denpn,T); sys=[G11,G12, .,G1n;G21;G22; .;G2n; .;Gp1,Gp2, .,Gpn]; 1.1.2 nh ngha bng zero và cc H thng mt tín hiu vào/ra Câu l$nh: sys=zpk(Z,P,K,T) - Z,P là các vect hàng ch#a danh sách các i&m zerô và cc ca h$ thng. - K là h$ s khuch i Chú ý: nu h$ thng không có i&m zerô (cc) thì ta t là [] Ví d: )5( 2 )( + + = pp p pF Z=-2;P=[0 -5];K=1;sys=zpk(Z,P,K); H thng nhiu tín hiu vào/ra Câu l$nh : G11=zpk(Z11,P11,T); G12=zpk(Z12,P12,T); .; G1n=zpk(Z1n,P1n,T); G21=zpk(Z21,P21,T); G22=zpk(Z22,P22,T); .; G2n=zpk(Z2n,P2n,T); Gp1=zpk(Zp1,Pp1,T); G12=zpk(Zp2,Pp2,T); .; Gpn=zpk(Zpn,Ppn,T); sys=[G11,G12, .,G1n;G21;G22; .;G2n; .;Gp1,Gp2, .,Gpn]; 1.1.3 Phng trình trng thái Câu l$nh: sys=ss(A,B,C,D,T) - A,B,C,D là các ma trn trng thái (nh ngh"a h$ thng - T là chu k+ ly m*u. G(r) U 1 U n Y 1 Y n = )()()( . )()()( )( .)()( )( 21 22221 11211 rGrGrG rGrGrG rGrGrG rG pnpp n n Control System Toolbox & Simulink 3 1.1.4 Chuyn i gia các dng biu din - Chuy&n t phng trình trng thái sang hàm truyn [num,den] = ss2tf(A,B,C,D) - Chuy&n t dng zero/cc sang hàm truyn [num,den] = zp2tf(Z,P,K) - Chuy&n t hàm truyn sang phng trình trng thái [A,B,C,D]=tf2ss(num,den) 1.1.5 Chuyn i gia h liên tc và gián on S hóa mt h thng liên tc Câu l$nh: sys_dis=c2d(sys,T,method) - sys, sys_dis h$ thng liên tc và h$ thng gián on tng #ng - Ts thi gian ly m*u - method phng pháp ly m*u: ‘zoh’ ly m*u bc 0, ‘foh’ ly m*u bc 1, ‘tustin’ phng pháp Tustin… Ví d: chuy&n mt khâu liên tc có hàm truyn 15.0 2 )( + = p pG sang khâu gián on b'ng phng pháp gi m*u bc 0, chu k+ ly m*u T=0.01s num=2 den=[0.5 1] sysc=tf(num,den) sysd=c2d(sysc,0.01,’zoh’) H liên tc tng ng ca mt h thng gián on Câu l$nh: sys=d2c(sys_dis,method) 1.2 Bin i s tng ng 1.2.1 Mc ni tip Câu l$nh: sys=series(sys1,sys2) 1.2.2 Mc song song Câu l$nh: sys=parallel(sys1,sys2) 1.2.3 Mc phn hi Câu l$nh: sys=feedback(sys1,sys2,sign) sys1 sys2 U Y Control System Toolbox & Simulink 4 sign = +1 nu phn hi dng và sign=-1 (hoc không có sign) nu phn hi âm. 1.3 Phân tích h thng 1.3.1 Trong min thi gian Hàm quá h(t) Câu l$nh: step(sys) V hàm quá ca h$ thng tuyn tính sys. Khong thi gian v và bc thi gian do Matlab t chn. Mt s trng hp khác - step(sys,t_end): v hàm quá t thi i&m t=0 n thi i&m t_end. - step(sys,T): v hàm quá trong khong thi gian T. T c (nh ngh"a nh sau T=Ti:dt:Tf. i vi h$ liên tc, dt là bc v, i vi h$ gián on, dt=Ts là chu k+ ly m*u. - step(sys1,sys2,sys3,…) : v hàm h(t) cho nhiu h$ thng ng thi. - [y,t]=step(sys): tính áp #ng h(t) và lu vào các bin y và t tng #ng Hàm trng lng ω ωω ω(t) Câu l$nh: impulse(sys) 1.3.2 Trong min tn s c tính bode Câu l$nh: bode(sys) V c tính tn s Bode ca h$ thng tuyn tính sys. Di tn s v do Matlab t chn. Mt s trng hp khác - bode(sys,{w_start,w_end}): v c tính bode t tn s w_start n tn s w_end. - bode(sys,w) v c tính bode theo vect tn s w. Vect tn s w c (nh ngh"a b'ng hàm logspace. Ví d: w=logspace(-2,2,100) (nh ngh"a vect w gm 100 i&m, t tn s 10 -2 n 10 2 . - bode(sys1,sys2,sys3,…) v c tính bode ca nhiu h$ thng ng thi. - [mag,phi,w]=bode(sys,…) lu tt c các i&m tính toán ca c tính bode vào vect mag, phi #ng vi tn s w tng #ng. Chú ý: i vi h$ thng gián on, di tn s & v phi th,a mãn (nh lý Shannon. c tính Nyquist Câu l$nh: nyquist(sys) nyquist(sys,{w_start,w_end}) sys1 sys2 U Y Control System Toolbox & Simulink 5 nyquist(sys,w) nyquist(sys1,sys2,sys3, .,w) [real,ima,w]=nyquist(sys,…) c tính Nichols Câu l$nh: nichols(sys) nichols(sys,{w_start,w_end}) nichols(sys,w) nichols(sys1, sys2, sys3, .,w) [mag,phi,w]=nichols(sys,…) Tính toán G(ω), arg[G(ω)] và v trong mt ph-ng Black. Ví d: V các c tính tn s ca h$ thng sau 2 00 2 2 0 2 )( ωξω ω ++ = pp pG vi ω 0 =1rad/s và ξ=0,5 w0=1 ;xi=0.5 ;num=w0^2 ;den=[1 2*xi*w0^2 w0^2] ;G=tf(num,den); w=logspace(-2,2,100) ; bode(G,w) ; % v c tính bode trong di tn s w nichols(G); % v c tính nichols trong di tn s t chn ca Matlab nyquist(G); % v c tính nyquist 1.3.3 Mt s hàm phân tích Hàm margin - margin(sys) v c tính Bode ca h$ thng SISO và ch) ra d tr biên , d tr pha ti các tn s tng #ng. - [delta_L,delta_phi,w_L,w_phi]=margin(sys) tính và lu d tr biên vào bin delta_L ti tn s w_L, lu d tr v pha vào bin delta_phi ti tn s w_phi. Hàm pole vec_pol=pole(sys) tính các i&m cc ca h$ thng và lu vào bin vec_pol. Hàm tzero vec_zer=tzero(sys) tính các i&m zero ca h$ thng và lu vào bin vec_zer. Hàm pzmap - [vec_pol,vec_zer]=pzmap(sys) tính các i&m cc và zero ca h$ thng và lu vào các bin tng #ng. - pzmap(sys) tính các i&m cc, zero và bi&u di%n trên mt ph-ng ph#c. Hàm dcgain G0=dcgain(sys) tính h$ s khuch i t"nh ca h$ thng và lu vào bin G0. 1.3.4 Mt s hàm c bit trong không gian trng thái Hàm ctrl Câu l$nh: C_com=ctrl(A,B) C_com=ctrl(sys) Control System Toolbox & Simulink 6 Tính ma trn “iu khin c” C ca mt h$ thng. Ma trn C c (nh ngh"a nh sau: C=[B AB A 2 B … A n-1 B] vi A∈ℜ nxn Hàm obsv Câu l$nh: O_obs=obsv(A,C) O_obs=obsv(sys) Tính ma trn “quan sát c” O ca mt h$ thng. Ma trn O c (nh ngh"a nh sau: O=[C CA CA 2 … CA n-1 ] Hàm ctrbf Câu l$nh: [Ab,Bb,Cb,T,k]=ctrbf(A,B,C) Chuy&n v dng chun (canonique) “iu khi&n c” ca mt h$ thng bi&u di%n di dng phng trình trng thái. Trong ó: A b =TAT -1 , B b =TB, C b =CT -1 , T là ma trn chuy&n i. Hàm obsvf Câu l$nh: [Ab,Bb,Cb,T,k]=obsvf(A,B,C) Chuy&n v dng chun “quan sát c“ ca mt h$ thng bi&u di%n di dng phng trình trng thái. Trong ó: A b =TAT -1 , B b =TB, C b =CT -1 , T là ma trn chuy&n i. 1.4 Ví d tng hp Cho mt h$ thng kín phn hi -1, trong ó hàm truyn ca h$ h là 2 00 2 2 0 2 * )1( )( ωξω ω τ +++ = pppp K pG vi K=1, τ=10s, ω 0 =1rad/s và ξ=0.5 1. V c tính tn s Nyquist. Ch#ng t, r'ng h$ kín không n (nh. 2. V áp #ng quá ca h$ kín. 3. & h$ thng n (nh, ngi ta hi$u ch)nh h$ s khuch i K=0.111. Xác (nh tn s ct, d tr biên và d tr v pha ca h$ thng trong trng hp này. 4. Xác (nh các thông s quá (thi gian quá ln nht T max , quá iu ch)nh ln nht σ max ) ca h$ thng ã hi$u ch)nh. TH.C HIN Câu 1 >>K=1;to=10;w0=1;xi=0.5; >>num1=K;den1=[to 1 0]; >>num2=w0^2;den2=[1 2*xi*w0 w0^2] ; >>G=tf(num1,den1)*tf(num2,den2) Transfer function: 1 ---------------------------- 10 s^4 + 11 s^3 + 11 s^2 + s >>w=logspace(-3,2,100) ; % to vect tn s & v các c tính tn s >>nyquist(G,w); c tính c bi&u di&n trên hình 1.1 Control System Toolbox & Simulink 7 & xét tính n (nh ca h$ kín dùng tiêu chun Nyquist, trc tiên ta xét tính n (nh ca h$ h. Nghi$m ca phng trình c tính ca h$ h c xác (nh : >>pole(G) ans = 0 -0.5000 + 0.8660i -0.5000 - 0.8660i -0.1000 H$ h có 1 nghi$m b'ng 0 nên biên gii n (nh. Quan sát c tính tn s Nyquist ca h$ h trên hình 1.1 (phn zoom bên phi), ta thy c tính Nyquist bao i&m (-1,j0), và do h$ h biên gii n (nh nên theo tiêu chun Nyquist, h thng kín s không n nh. Câu 2 >>G_loop=feedback(G,1,-1) ; % hàm truyn h$ kín >>step(G_loop) ; Real Axis Imaginary Axis Nyquist Diagrams -12 -10 -8 -6 -4 -2 0 2 -1500 -1000 -500 0 500 1000 1500 From: U(1) To: Y(1) Real Axis Imaginary Axis Nyquist Diagrams -1 -0.8 -0.6 -0.4 -0.2 0 -0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 From: U(1) To: Y(1) Hình 1.1 : c tính tn s Nyquist ca h$ h Time (sec.) Amplitude Step Response 0 50 100 150 200 250 300 350 400 450 500 -10 -5 0 5 10 15 From: U(1) To: Y(1) Hình 1.2 : áp #ng quá h$ kín Control System Toolbox & Simulink 8 Time (sec.) Amplitude Step Response 0 50 100 150 0 0.2 0.4 0.6 0.8 1 1.2 1.4 From: U(1) To: Y(1) Hình 1.4 áp #ng quá h$ kín ã hi$u ch)nh Câu 3 >>K=0.111 ;num1=K ; % thay i h$ s khuch i K >>GK=tf(num1,den1)*tf(num2,den2) Transfer function: 0.111 ---------------------------- 10 s^4 + 11 s^3 + 11 s^2 + s >>margin(GK) c tính tn s Bode ca h$ h ã hi$u ch)nh c bi&u di%n trên hình 1.3. T c tính này, ta có th& xác (nh c ∆L=18.34dB ; ∆ϕ = 44.78° ; ω c =0.085rad/s Câu 4 >>GK_loop=feedback(GK,1,-1) ; >>step(GK_loop); Frequency (rad/sec) Phase (deg); Magnitude (dB) Bode Diagrams -150 -100 -50 0 50 Gm=18.344 dB (at 0.30151 rad/sec), Pm=44.775 deg. (at 0.084915 rad/sec) 10 -3 10 -2 10 -1 10 0 10 1 -400 -350 -300 -250 -200 -150 -100 -50 0 Hình 1.3 : c tính tn s Bode ca h$ h ã hi$u ch)nh Control System Toolbox & Simulink 9 Hình 2.1 Ca s chính ca Simulink S dng con tr, chut và kích vào các i&m cn tìm trên c tính, ta xác (nh c σ max =23%; T max = 70.7s 2 SIMULINK Simulink c tích hp vào Matlab (vào khong u nhng n/m 1990) nh mt công c & mô ph,ng h$ thng, giúp ngi s dng phân tích và t ng hp h$ thng mt cách trc quan. Trong Simulink, h$ thng không c mô t di dng dòng l$nh theo ki&u truyn thng mà di dng s khi. Vi dng s khi này, ta có th& quan sát các áp #ng thi gian ca h$ thng vi nhiu tín hi$u vào khác nhau nh : tín hi$u bc thang, tín hi$u sinus, xung ch nht, tín hi$u ng*u nhiên… b'ng cách thc hi$n mô ph,ng. Kt qu mô ph,ng có th& c xem theo thi gian thc trên các Oscilloscope trong môi trng Simulink, hay trong môi trng Matlab. Simulink hoàn toàn tng thích vi Matlab, nhng nó là mt dao di$n ha. Vì vy tt c các hàm trong Matlab u có th& truy cp c t Simulink, ngay c các hàm do ngi s dng to ra. Ngc li, các kt qu tìm c trong Simulink u có th& c s dng và khai thác trong môi trng Matlab. Cui cùng, Simulink cho phép ngi s dng kh n/ng to ra mt th vi$n khi riêng. Ví d, nu bn mun làm vi$c trong l"nh vc iu khi&n các máy i$n, bn có th& to ra mt th vi$n riêng ch#a các mô hình máy i$n… Nh vy, vi công c Simulink, ta có th& t tin hành mô ph,ng thí nghi$m, quan sát kt qu, ki&m ch#ng vi lý thuyt trc khi tin hành thí nghi$m trên mô hình tht. 2.1 Khi ng Simulink & khi ng Simulink t môi trng Matlab, ta gõ dòng l$nh simulink. Lúc này mt ca s nh trên hình 2.1 s xut hi$n, trên ó có các th mc chính và các th vi$n con ca Simulink. & bt u làm vi$c, ta to ca s mi b'ng cách kích vào bi&u tng « New ». Có 8 th vi$n chính ca Simulink c phân loi nh sau : - Continuous : h$ thng tuyn tính và liên tc - Discrete : h$ thng tuyn tính gián on - Nonliear : mô hình hóa nhng phn t phi tuyn nh rle, phn t bão hòa… - Source : các khi ngun tín hi$u - Sinks : các khi thu nhn tín hi$u - Function & Table : các hàm bc cao ca Matlab - Math : các khi ca simulink vi các hàm toán hc tng #ng ca Matlab - Signals & System : các khi liên h$ tín hi$u, h$ thng con… 2.2 To mt s n gin & làm quen vi Simulink, ta bt u b'ng mt ví d n gin : phân tích hàm quá ca mt khâu bc hai có hàm truyn 2 00 2 2 0 2 )( ωξω ω ++ = pp pG vi ω 0 =1rad/s và ξ=0,5. Các bc thc hi$n & c s mô ph,ng nh hình 2.2 nh sau : Control System Toolbox & Simulink 10 - Khi ng Simulink t Matlab b'ng dòng l$nh simulink - Trong ca s chính ca Simulink, chn bi&u tng « New » & to ca s #ng dng. - Mun to mt khi trong ca s #ng dng, ta tìm khi ó trong các th vi$n ca Simulink, kích chn và kéo nó vào ca s #ng dng. Ví d, & to khi Step, ta vào th vi$n Simulink - > Continuous -> Sources -> Step, khi Transfer Fcn trong Simulink -> Continuous -> Transfer Fcn… - & t thông s cho tng khi, ta m khi ó ra b'ng cách double-click chut vào nó. Lúc này t các thông s theo hng d*n trên màn hình. - ng ni gia các khi c thc hi$n b'ng cách dùng chut kéo các m0i tên u (cui) m1i khi n v( trí cn ni. Sau khi to c s khi nh hình 2.2, ta có th& bt u tin hành mô ph,ng (vi các tham s mc (nh) b'ng cách chn Simulation -> Start. Xem kt qu mô ph,ng b'ng cách m khi Scope nh hình 2.3. & xem ng thi tín hi$u vào và ra trên cùng mt Scope, ta to s mô ph,ng nh hình 2.4. Kt qu mô ph,ng bi&u di%n trên hình 2.5. Hình 2.3 : Kt qu mô ph,ng Hình 2. 4 Hình 2. 5 Hình 2.2 : Mt s Simulink n gin