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 : [email protected]
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ó
=
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);
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
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: 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
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
]
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
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 =
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)
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° ; ω
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
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$
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.
→ >0 : h$ gián on, clock lúc này s ch) s chu k+ ly m*u t trong Sample time.
2.3.2 Th vin « Sinks »
Scope Hi&n th( các tín hi$u c to ra trong mô ph,ng.
XY Graph V quan h$ gia 2 tín hi$u theo dng XY. Khi này cn phi có 2 tín hi$u
vào, tín hi$u th# nht tng #ng vi trc X, tín hi$u vào th# hai tng #ng
vi trc Y.
To Workspace Tt cc các tín hi$u ni vào khi này s c chuy&n sang không gian
tham s ca Matlab khi thc hi$n mô ph,ng. Tên ca bin chuy&n vào
Matlab do ngi s dng chn.
2.3.3 Th vin « Continuous »
Transfer Fcn Mô t hàm truyn ca mt h$ thng liên tc di dng a thc t s/a
thc mu s. Các h$ s ca a th#c t s và m*u s do ngi s dng nhp
vào, theo bc gim dn ca toán t Laplace. Ví d & nhp vào hàm truyn
có dng
1
12
2
++
+
s
s
s
, ta nhp vào nh sau :Numerator [2 1], Denominator [1
1 1].
State Space Mô t hàm truyn ca mt h$ thng liên tc di dng phng trình trng
thái. Các ma trn trng thái A, B, C, D c nhp vào theo qui c ma
trn ca Matlab.
Integrator Khâu tích phân.
sDerivative Khâu o hàm
Transport Delay Khâu to tr%
b'ng 0 nu tín hi$u vào = 0
b'ng -1 nu tín hi$u vào < 0
Sum Tín hi$u ra là t ng ca các tín hi$u vào.
2.4 Ví d
& mô ph,ng h$ thng trong ví d mc 1.4, ta to s khi trong Simulink nh hình 2.6.
Thay i h$ s khuch i K (K=1 và K=0.111), ta c các áp #ng quá ca h$ kín trên hình
2.7 và 2.8. 2.5.2 Thit lp các im vào/ra cho LTI Viewer
Dùng chut kéo rê các i&m “input point”, “output point” trên ca s hình 2.10 và t lên các v(
trí tng #ng trên s Similink.
Chú ý: Vic chn các im t “input”, “output” phi phù hp yêu cu phân tích. LTI Viewer
tính hàm truyn bng cách tuyn tính hóa h thng vi 2 im input/output ã c nh ngha.
Khi v các c tính tn s cng nh thi gian, LTI s dng các h thng ã c tuyn tính hóa
này.
2.5.3 Tuyn tính hóa mt mô hình
& tìm mô hình gia 2 i&m input/output ã (nh ngh"a, ta thc hi$n nh sau:
Chn ca s LTI Viewer (hình 2.9) → Chn memu Simulink →
→→
→ Get linearized model
Lúc này, trong phn ha ca ca s LTI Viewer s xut hi$n t tính quá ca mô hình
tuyn tính hóa tìm c.
& xem các c tính khác trên LTI Viewer, ta ch) vi$c kích chut phi vào phn ha, chn
menu Plot Type → chn loi c tính cn quan sát.
Hình 2.9 Hình 2.10
Control System Toolbox & Simulink
& có c 4 mô hình khác nhau trong LTI Viewer. Các bc thc hi$n tun t nh trong hình
2.11.
a)
b)
c)
d)