CHƯƠNG6:MATLABVÀĐIỀUKHIỂNTỰĐỘNG
§1.CÁCVẤNĐỀCHUNG
1.Cácdạngmôhìnhhệthống:Đểxâydựngmôhìnhcủahệthống,MATLAB
cung cấp một số lệnh.Môhìnhhệthốngmô tảbằnghàmtruyềnđượcxây
dựngnhờ
lệnhtf(ts,ms)vớitslàđathứctửsốvàmslàđathứcmẫusố.Hàm
zpk(z, p, k) với zlà vec tơ điểm không, p là vec tơ điểm cực và k là hệsố
khuyếchđại
tạonênmôhìnhđiểmkhông‐điểmcực.Hàmss(a,b,cʹ,d)vớia,b,
c,dlàcácmatrậntạonênmôhìnhkhônggian‐trạngthái.
Ví dụ: Ta tạo ra một số mô
hình nhờ các lệnh MATLAB sau(lưu trong
ct6_1.m):
clc
ts=[12];
ms=[154];
sys1=tf(ts,ms)
sys2=zpk([‐611],[‐51],3)
sys3=ss([12;34],[11;01],[01;12;31],0)
Kếtquảlà:
Transfer
function:
s+2
‐‐‐‐‐‐‐‐‐‐‐‐‐
s^2+5s+4
Zero/pole/gain:
3(s+6)(s‐1)^2
‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
(s+5)(s‐1)
a=
x1x2
x112
x234
b=
u1u2
x111
x201
122
c=
x1x2
y101
y212
y331
d=
u1u2
y100
y200
y300
Continuous‐timemodel.
2.Điểmcựcvàđiểmzerocủahàmtruyền:Đểbiến
đổihệthốngchobởihàm
truyềnthànhhệchobởiđiểmcực,điểmzerovàhệsốkhuếchđạidùnghàm
tf2zp.Tacũngcóthểdùnghàmpole(sys)đểtìmđiểmcựccủahệthốngsys
và
dunghàmzero(sys)đểtìmđiểmkhôngcủahệthốngsys
Vídụ:Chohàmtruyền:
50s87s45s9s
s30s11s
)s(H
234
23
+
+++
++
=
Tacầntìmcácđiểmcựcp,điểmzerozvàhệsốkhuếchđạikcủanó.Ta dùng
cáclệnhMATLABsau(lưutrong
ct6_2.m):
ts=[111300];
ms=[19458750];
[z,p,k]=tf2zp(ts,ms)
z=
0
‐6
‐5
p=
‐3.0+4.0i
‐3.0‐4.0i
‐2.0
‐1.0
k=
1
Nhưvậy:
123
)25s6s)(2s)(1s(
)6s)(5s(s
)j43s)(j43s)(2s)(1s(
)6s)(5s(s
)s(H
2
++++
+
+
=
−+++++
+
+
=
Khicócácđiểmcực,điểmzerovàhệsốkhuếchđạitacóthểtìmlạihàm
truyềnbằnglệnh
zp2tf.TadùngcáclệnhMATLABsau(lưutrongct6_3.m):
z=[‐6;‐5;0];
k=1;
p=[‐3+4*i;‐3‐4*i;‐2;‐1];
[ts,ms]=zp2tf(z,p,k)
ts=
0111300
ms=
19458750
Đểthấyđượcsựphânbốđiểmkhôngvàđiểmcựccủahệthốngtrênmặt
phẳng phứctadùnghàm
pzmap.Trụccủađồthiđược chialướibằnglệnh
sgrid.Cácđiểmkhôngbiểuthịbằngvòngtrònvàđiểmcựcbiểuthịbằngdấu
×.TaxétcáclệnhMATLABsau(lưutrongct6_4.m):
clc
sys=zpk([‐611],[‐51],3)
axisequal
pzmap(sys)
sgrid
3. Khai triển hàm truyền thành tổng các phân thứcđơn giản: Cho hàm
truyền,tacóthểkhaitriểnnóthànhtổngcácphânthứcđơngiảnbằnglệnh
residue.Hàmresiduechovectơcộtcácphầndưr,vectơcộtcácđiểmcựcpvà
phầnnguyênk.
Vídụ:Chohàmtruyền:
4s4ss
1s9s2
)s(H
23
3
+++
++
=
TakhaitriểnhệbằngcáclệnhMATLABsau(lưutrong
ct6_5.m):
ts=[2091];
ms=[1144];
[r,p,k]=residue(ts,ms)
r=
0.0‐0.25i
0.0+0.25i
124
‐2.0
p=
‐0.0+2.0i
‐0.0‐2.0i
‐1.0
k=
2
Nhưvậy:
4s
1
1s
2
2
j2s
j25.0
j2s
j25.0
1s
2
2)s(H
2
+
+
+
−=
−
−
+
+
+
+
−
+=
Ngượclại,cór,p,ktacóthểtìmhàmtruyềnbằngcáclệnhMATLABsau(lưu
trong
ct6_6.m):
r=[0.0‐0.25*i;0+0.25*i;‐2];
p=[0+2*i;0‐2*i;‐1];
k=2;
[ts,ms]=residue(r,p,k)
ts=
2091
ms=
1144
4. Biếnđổi hàm truyền thành không gian‐trạng thái
: Cho phương trình vi
phân:
)t(uya
dx
yd
a
dx
yd
a
dx
yd
a
01
1n
1n
1n
n
n
n
=++++
−
−
−
L
Đặtx
1=y;x2=y′;x3=y′′v.vtacóhệphươngtrìnhtrạngthái:
x′=Ax+Bu
y=Cx+Du
gọilàphươngtrìnhkhônggian‐trạngthái
Nếumộthệđiềukhiểntựđộngchobởihàmtruyềntacóthểbiếnđổivề
khônggian‐trạngtháibằnglệnh
tf2ss.
Vídụ:Chohàmtruyền:
24s26s9s
2s7s
)s(H
23
2
+++
++
=
Ta biến hệ về dạng không gian‐trạng thái b ằng các lệnh MATLAB sau(lưu
trong
ct6_7m):
125
ts=[172];
ms=[192624];
[a,b,c,d]=tf2ss(ts,ms)
a=
‐9‐26‐24
100
010
b=
1
0
0
c=
172
d=
0
5.Biếnđổikhônggian‐trạngtháithànhhàmtruyền:Đểbiếnđổihệchodưới
dạngkhônggian‐trạngtháithànhhàmtruyềntadùnglệnh
ss2tf.Taxétcác
lệnhsau(lưutrong
ct6_8.m)
a=[010;001;‐1‐2‐3];
b=[10;0;0];
c=[100];
d=[0];
[ts,ms]=ss2tf(a,b,c,d,1)
ts=
010.0030.0020.00
ms=
1.003.002.001.00
Nhưvậyhàmtruyềnlà:
1s2s3s
)2s3s(10
)s(G
23
2
+++
++
=
6. Nghiệm của phương trình trạng thái:Đểtìm nghiệm của phương trình
trạngtháitadùnglệnh
lsim.
Vídụ:Chophươngtrìnhtrạngtháicủamộthệtuyếntính
126
)t(u
1
1
1
x
x
x
6116
100
010
x
x
x
3
2
1
3
2
1
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎣
⎡
+
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎣
⎡
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎣
⎡
−−−
=
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎣
⎡
&
&
&
y=[110]
x
Chođiềukiệnđầu
x(0)=[10.5‐0.5].Tìmx(t),y(t)vớiu(t)làhàmđơnvị.Ta
dùngcáclệnhMATLABsau(lưutrong
ct6_9.m):
a=[010;001;‐6‐11‐6];
b=[1;1;1];
c=[110];
d=0;
x0=[10.5‐0.5];
t=0:0.05:4;
u=ones(1,length(t));
[y,x]=lsim(a,b,c,d,u,t,x0);
plot(t,x,t,y)
Dođiềukiệnđầunênnghiệmyxuấtpháttừ1.5
Khiu(t)làsin2πttatínhđápứngnhưsau(lưutrong
ct6_10.m):
a=[010;001;‐6‐11‐6];
b=[1;1;1];
c=[110];
d=0;
x0=[10.5‐0.5];
t=0:0.05:4;
u=sin(2*pi*t);
[y,x]=lsim(a,b,c,d,u,t,x0);
plot(t,x,t,y)
7.Biếnđổisơđồkhối
:Mộtsơđồkhốiđiềukhiểnthườngrấtphứctạp.Vìv ậy
tathườngphảibiếnđổinóvềdạngđơngiảnbằnglệnh
connect.
Vídụ:Xétsơđồkhốisau:
127
2
4
s
4
+
1
1
0.5
2s
1
+
3s
1
+
5
8
2
-
+
+
-
-
2
7
6
5
4
3
Xácđịnhphươngtrìnhtrạngtháivàhàmtruyềncủatoánbộsơđồ:
Gọi ni và di là tử số và mẫu số của hàm truyền của khối thứ i. Ta có các
lệnh(lưutrong
ct6_11.m):
n1=1;d1=1;
n2=.5;d2=1;
n3=4;d3=[14];
n4=1;d4=[12];
n5=1;d5=[13];
n6=2;d6=1;
n7=5;d7=1;
n8=1;d8=1;
nblocks=8;
blkbuild;
q=[10000
21‐6‐7‐8
32000
43000
54000
63000
74000
85000];
iu=[1];
iy=[5];
[A,B,C,D]=connect(a,b,c,d,q,iu,iy)
A=
‐8.0‐2.5‐0.5
4.0‐2.00
01.0‐3.0
B=
0.5
0
0
C=
128
001
D=
0
[ts,ms]=ss2tf(A,B,C,D,1)
ts=
0002.0
ms=
1.013.056.080.0
Hàmtruyềncủahệlà:
80s56s13s
1
)s(R
)s(C
23
+++
=
8.Ghépnốicácsơđồkhối:Đểghépnốitạonênmộthệthốngtừnhiềuhệ
thốngcontacóthểsửdụngmộtsốkhảnăngnhưsau:
sys1
b
sys2
y1
y2
u
sys1
a
sys2
u2
u
1
y
sys1
d
sys2
y
u
1
u2
z2
z1
v2
v
1
u
u2
u1
sys1
c
sys2
y1
y2
u
e
sys2
v2
sys1
y
1
z1
f
u
y
sys1
sys2
y
a.Ghéptheohàng:Ghéptheohàng(hìnha)cónghĩalàghépđầuracủa
các hệ thống con cóđầu vào khác nhau. Hàm sys(sys1,sys2) thực hiện việc
ghépnày.TacócáclệnhMATLABsau(lưutrong
ct6_12.m):
clc
sys1=tf(1,[10])
129
sys2=ss(1,2,3,4)
sys=[sys1,sys2]
b.Ghéptheocột:Ghéptheocột(hìnhb)cónghĩalàghépđầuracủa hệ
thốngconcóchungđầuvào.TacócáclệnhMATLABsau(lưutrongct6_13.m):
clc
sys1=tf(1,[10])
sys2=ss(1,2,3,4)
sys=[sys1;sys2]
c. Ghép theo đường chéo: Khi ghép theođường chéo(hình c), ta có hệ
thốngmớibảođảmcáchlycáchệthốngconbanđầu.Đểghéptadùnglệnh
append.CáclệnhMATLAB(lưutrong
ct6_14.m)nhưsau:
clc
sys1=tf(1,[10])
sys2=ss(1,2,3,4)
sys=append(sys1,sys2)
d. Ghépsong song:Tadùngcáchghépnhưtrênhìnhd.Hàmparallel
dùngđểghép song song các hệ thống con. Các lệnh MATLAB (lưu trong
ct6_15.m)nhưsau:
clc
sys1=tf(1,[10])
sys2=ss(1,2,3,4)
sys=parallel(sys1,sys2)
e.Ghéptuầntự:Tadùngcáchghépnhưtrênhìnhe.Hàmseriesdùngđể
ghéptuầntựcáchệthốngcon.CáclệnhMATLAB(lưutrong
ct6_16.m)như
sau:
clc
sys1=tf(1,[10])
sys2=ss(1,2,3,4)
sys=series(sys1,sys2)
f.Ghépcóphảnhồi:Ta dùngcáchghépnhưhìnhf.Hàmfeedbackdùng
đểghépcóphảnhồicáchệthốngcon.CáclệnhMATLAB(lưutrongct6_17.m)
nhưsau:
clc
sys1=tf(1,[10])
sys2=ss(1,2,3,4)
sys=feedback(sys1,sys2)
130
g.Sửdụnghàmconnect:Hàmconnecttạoramôhìnhkhônggian‐trạng
tháitừcáchệthốngcon.Cúphápcủahàm:
sysc=connect(sys,Q,inputs,outputs)
Mộthệthốngth ườngđượcchodướidạngcáckhối.Ngaycảkhisơđồkhông
phứct
ạp,việctìmđượcmôhìnhkhônggian‐trạngtháicủahệthốngkhákhó.
Đểtìmđượcmôhìnhkhônggian‐trạngthái,trướchếttadùnghàm
append:
sys=append(sys1,sys2, ,sysN)
đểmôtả mỗihệthống consysjhệthốngdạngđường chéo.Tiếpđếndùng
lệnh:
sysc=connect(sys,Q,inputs,outputs)
đểnốicáchệthốngconvàrútramôhìnhkhônggian‐trạngtháisysccủatoàn
bộhệthống.MatrậnQchỉracáchnốicáchệthốngcontrênsơđồ.Mỗiđầu
vàocủasyscó
mộthàng,trongđóphầntửđầutiêncủamỗihànglàsốđầu
vào.cácphầntửtiếptheocủa mỗihàngmôtảđầu vàocủahệthốngđượclấy
từđâu.Vídụđầuvào7l
ấytừđầura 2,15và6trongđóđầuvàocủa15âmthì
hàngtươngứngcủaQlà[72‐156].Hàngnàokhôngđủphầntửthìthêmsố
0.Tatìmmôhìnhkhônggiantrạng‐tháicủ
asơđồsau:
u1
DuCxy
BuAxx
+=
+
=
&
5s
10
+
2s
)1s(2
+
+
sys1
3
3
2
1
u2
4
4
2
1
uc
-
+
sys2
y1
y2
sys3
Tacầnnốiđầura1và4vàođầuvào3(u
2)vàđầura3(y2)vàođầuvào4nên
matrậnQlà:
Q=[31‐4
430];
Sơđồcó2đầuvàotừcáchệthốngkháclàucvàu1(đầuvào1 và2củasys)và
2đầurađưađếncáchệthốngkháclày
1vày2(đầura2và3củasys).Nh ưvậy
matrâninputsvàoutputslà:
inputs=[12];
outputs=[23];
CáclệnhMATLABthựchiệnviệcbiếnđốisơđồ(lưutrongct6_18.m)nhưsau:
clc
131
A=[‐9.020117.7791
‐1.69433.2138];
B=[‐.5112.5362
‐.002‐1.8470];
C=[‐3.28972.4544
‐13.500918.0745];
D=[‐.5476‐.1410
‐.6459.2958];
sys1=tf(10,[15],ʹinputnameʹ,ʹucʹ)
sys2=ss(A,B,C,D,ʹinputnameʹ,{ʹu1ʹʹu2ʹ},
ʹoutputnameʹ,{ʹ
y1ʹʹy2ʹ})
sys3=zpk(‐1,‐2,2)
sys=append(sys1,sys2,sys3)
Q=[31‐4
430];
inputs=[12];
outputs=[23];
sysc=connect(sys,Q,inputs,outputs)
§2.ĐÁPỨNGCỦAHỆTHỐNG
1.Đápứngcủahệthốngbậchai
:Dạngchuẩncủahàmtruyềncủahệthống
bậchailà:
2
nn
2
s2s
1
)s(G
ω+ζω+
=
Trongđóω
nlàtầnsốtựnhiênvàζlàhệsốtắtcủahệthống.Đểtạorahàm
truyềnnàykhibiếtω
nvàζtadùnglệnhord2.
Vídụ:Tìmhàmtruyềnvàmatrậntrạngtháicủahệthốngbậchaibiếtωn=2.4
rad/svàζ=0.4.CáclệnhMATLAB(lưutrong
ct6_19.m)nhưsau:
[ts,ms]=ord2(2.4,0.4)
[a,b,c,d]=ord2(2.4,0.4)
Đápứngthựctếcủahệlàmộtdaođộngtắtdầncódạng:
)tsin(e
1
1)t(c
n
t
n
θ+βω
β
−=
ζω
Trongđó
2
1 ζ−=β và )
/
(tan
1
ζ
β
=θ
−
Tagọitrlàthờigianđểdápứngđạttừ10%giátrịcuốiđến90%giátrịcuối;
thờigianđạtđếnđỉnhlàtp;độnhanhđobằngtrvàtp;thờigiantắtlàts.Thời
132
gianđạtđếnđịnhđượcxácđịnhbằngcáchchođạohàmcủac(t)bằng0.
2
p
1
t
ζ−ω
π
= (4‐1)
Giátrịđỉnh(percentovershoot‐p.o)khikíchthíchlàbướcnhảylà:
100eo.p
2
1
×=
ζ−ζπ
(4‐2)
Đápứngvớikíchthíchbướcnhảytìmđượcnhờhàm
step cònđápứngvới
kíchthíchxungtìmđượcnhờhàm
impulse
Vídụ:Tìmđápứngcủakhâubậchaicóhàmtruyền:
2
nn
2
2
n
s2s
)s(G
ω+ζω+
ω
=
khiω
n=5vàζ=0.6.CáclệnMATLAB(lưutrongct6_20.m)nhưsau:
clc
ts=25;
ms=[1625];
sys=tf(ts,ms)
t=0:0.02:2;
c=step(sys,t);
plot(t,c)
xlabel(ʹt(s)ʹ);
ylabel(ʹc(t)ʹ);
Vídụ:Chohệcósơđồnhưhìnhvẽ:
R(s)
)1s(s
d
+
1+es
-
C(s)
Tìm d và eđểp.o bằng 40% và tp = 0.8s. Các lệnh MATLAB (lưu trong
ct6_21.m)nhưsau:
clc
po=40;
z=log(100/po)/sqrt(pi^2+(log(100/po))^2)%theo(4‐2)
zn=0.27999799333504
tp=0.8;
wn=pi/(tp*sqrt(1‐z^2))%theo(4‐1)
ts=wn^2;
133
ms=[12*z*wnwn^2];
sys=tf(ts,ms);
t=0:0.02:4;
c=step(sys,t);
plot(t,c)
Từsơđồkhốitacó:
ds)1de(s
d
)s(R
)s(C
2
+++
=
Phươngtrìnhđặctínhlà:
s
2
+(de+1)s+d=s
2
+2ωnζs+
2
n
ω
Với
=wn=0.28vàz=ζ=4.0906tacód=16.733vàe=0.077
2
n
ω
Khicómộthàmtruyềntacóthểxácđịnhhệsốtắt
ζvàtầnsốtựnhiênωnbằng
lệnh
damp.
Vídụ:Chohệcóhàmtruyền:
3s2s
1s5s2
)s(H
2
2
++
++
=
Tìmhệsốtắtζvàtầnsốtựnhiênω
n.CáclệnhMATLAB(lưutrongct6_22.m)
nhưsau:
h=tf([251],[123]);
damp(h)
EigenvalueDampingFreq.(rad/s)
‐1.00e+000+1.41e+000i5.77e‐0011.73e+000
‐1.00e+000‐1.41e+000i5.77e‐0011.73e+000
2.Đápứngtrongmiềnthờigiancủahệthống:
a.Đápgiátrịbanđầu
:Đápứnggiátrịbanđầumôtảphảnứngcủahệ
khikhôngcókíchthíchdầuvàonhưngtồntạicácgiátrịbanđầucủavectơ
trạngthái
x0.Phảnứngđóđượcgọilàchuyểnđộngtựdocủahệ.Đápứngnày
đượcxácđịnhbằnghàm
initial.TacócáclệnhMATLABtìmđápứngbanđầu
củamộthệthống(lưutrong
ct6_23.m)nhưsau:
clc
a=[‐0.5572‐0.7814;0.78140];
c=[1.96916.4493];
x0=[1;0]
sys=ss(a,[],c,[]);
initial(sys,x0)
134
b.ĐápứngxungDirac:Tatìmđápứngcủahệthốngvớixungnhờhàm
impulse.CáclệnhMATLAB(lưutrongct6_24.m)nhưsau:
clc
a=[‐0.5572‐0.7814;0.78140];
b=[1‐1;02];
c=[1.96916.4493];
sys=ss(a,b,c,0);
impulse(sys)
Hìnhbêntráilàđápứngcủakênhthứnhấtvàhìnhbênphảilàđápứngcủa
kênhthứ2.
c.Đápứngđốivớihàmbướcnhảy:Đểtìmđápứngcủahệthốngđốivới
hàm bước nhảy ta dùng hàm
step. Các lệnh MATLAB (lưu trong ct6_25.m)
nhưsau:
clc
a=[‐0.5572‐0.7814;0.78140];
b=[1‐1;02];
c=[1.96916.4493];
sys=ss(a,b,c,0);
step(sys)
Hìnhbêntráilàđápứngcủakênhthứnhấtvàhìnhbênphảilàđápứngcủa
kênhthứ2.
d.Đápứngvớitínhiệubấtkỳ:Đểtìmđápứngcủahệthốngđốivớihàm
bấtkìtadùnghàm
lsim.CáclệnhMATLAB(lưutrongct6_26.m)nhưsau:
clc
[u,t]=gensig(ʹsquareʹ,4,10,0.1);
H=[tf([251],[123]);tf([1‐1],[115])]
lsim(H,u,t)
Tadùnghàmgensigđểtạomộtxunghìnhvuông,trong4chukỳvàlấymẫu
sau0.1strong10chukỳ.
3.Đápứngtrongmiềntầnsốcủahệthống:Chomộthàmtruyềncủamộthệ
thống,thaysbằngjωtacó hàm truyềnđạttầnsốcủahệthốngđó.Độrộng
băngcủahệthốngω
Blàtầnsốmàtạiđóbiênđộcủaggiảmđi1/√2.Tầnsố
ứngvớigiátrịmaxcủaG(ω)gọilàω
rvàcótrịsốlà:
2
nr
21 ζ−ω=ω
Đểvẽđặctínhtầnbiên‐phacủamộthệthốngtadùnglệnh
freqs.
135
Vídụ:Chohàmtruyềncủamộthệthốnglà:
4s2s
4
)s(G
2
++
=
Tìmđặc tính tần biên‐pha của hệ thống bằng các lệnh MATLAB(lưu trong
ct6_27.m):
w=0:0.01:3;
ms=[124];
ts=[4];
freqs(ts,ms,w);
Tacũngcóthểtạođồthịnhưsau(lưutrong
ct6_28.m):
ts=[4];
ms=[124];
w=0:0.01:3;
g=freqs(ts,ms,w);
mag=abs(g);
pha=angle(g);
subplot(2,1,1);
loglog(w,mag);
gridon;
subplot(2,1,2);
semilogx(w,pha);
gridon
Ngượclạikhicóđặctínhtầnbiên‐phatacóthểtìmlạiđượchàmtruyềnbằng
lệnh
invfreqs.
Vídụ:Tìmhàmtruyềncủahệthống(lưutrongct6_29.m):
ts=[123214];
ms=[12323];
[h,w]=freqz(b,a,64);
[tsm,msm]=invfreqz(h,w,4,5)
Tacũngcóthểxâydựngđặctínhtầnthực‐ảo
Vídụ:Chohàmtruyền:
10s9s5.4s
10
)s(G
23
+++
=
Tìmđặctínhtầnthực‐ảocủahệbằngcáclệnhMATLAB(lưutrong
ct6_30.m):
ts=[10];
ms=[14.5910];
w=[1:0.01:3];
136
h=freqs(ts,ms,w);
t=real(h);
a=imag(h);
subplot(2,1,1);
plot(w,t)
subplot(2,1,2);
plot(w,a)
ĐểvẽđồthịBodecủahệthốngtadùnghàm
bode.Đồthịthứnhấtnhất
làđặctínhbiên‐tầnlogarit,đượcchiatheodB.Đồthịthứhailàđặctínhpha‐
tầnlogaritchiatheođộ.
Cácdạngcủalệnh
bodegồm:
bode(sys)
bode(sys,w)
[bien,pha,w]=bode(sys)
Để vẽ đồ thị Bode của một hệ thống ta dùng các lệnh MATLAB(lưu trong
ct6_31.m)nhưsau:
clc
g=tf([10.17.5],[10.12900]);
figure(1)
bode(g)
figure(2)
bode(g,{0.1,100})
gd=c2d(g,0.5)
figure(3)
bode(g,ʹrʹ,gd,ʹb‐‐ʹ)
Hàm
marginchobiếtdựtrữổnđịnhcủahệthống.Dựtrữbiêngmlàhệsố
khuyếchđạiF
rmànếutathêmvàohàmtruyềnđạtcủahệhởthìhệkínvừa
đạtđượcgiớih ạnổnđịnh.Dựtrữphapmđượcđịnhnghĩalàkhoảngcáchgóc
phaϕ
rtới‐180°.Hàmchobiếtgmtạitầnsốđảophawcgvàpmtạitầnsốcắt
phawcp.Hàm
allmargincótácdụngrộnghơnhàmmargin.Cáck ếtquảtrảvề
của
allmargingồm:
GMFrequency:giátrịtầnsốmàtạiđóđồthịpha cắtđườngthẳngnằm
ngang‐180°
GainMargin: dự trữ biên‐giá trị đảo của biênđộtại tần số
GMFrequency
PMFrequency:giátrịtầnsốmàtạiđóđồth
ịbiêncắtđườngthẳngnằm
ngang0dB(ứngvớihệsốkhuyếchđại1)
137
PhaseMargin:dựtrữpha‐khoảngcáchgóc(>0)từvịtrí PMFrequency
đến‐180°.
DelayMargin:dựtrữthờigiantrễ‐giátrịthờigiantrễmànếuvượtquá,
hệthốngsẽmấtổnđịnh.
DMFrequency:giátrịtầns
ốứngvớiDelayMargin.
Stable:=1khimachvòngkínổnđịnh;bằng0trongcáctrườnghợpkhác.
Cácđạilượngnàycóthểđọcđượctừđồthịtạobởi
margin.Đểxácđịnh
dựtrữổnđịnhcủamộthệthốngcụthểtadùngcáclệnhMATLAB(lưutrong
ct6_32.m)nhưsau:
clc
sys=zpk([],[‐1‐1‐1],4)
margin(sys)
allmargin(sys)
Kếtquảhệthốngổnđịnh.NócóDelayMargin=0.3s.Bâygiờtagánchosys
mộtkhoảngthờigiantrễlàstabil.DelayMargin+0.01,nghĩalàvượtquáthời
giantrễổnđịnh0.01s.Kếtquảtínhtoanmới
củaallmarginsẽthôngbáotính
khôngổnđịnhcủahệthống.CáclệnhMATLAB(lưutrong
ct6_33.m)nhưsau:
clc
sys=zpk([],[‐1‐1‐1],4)
margin(sys)
stabil=allmargin(sys)
sys.ioDelay=stabil.DelayMargin+0.01;
newstabil=allmargin(sys)
Mộtkhảnăng khácđểmôtảđặctínhtầnsốlàđồthịNyquist.Nóbiểu
diễncácgiátrịthựcvàảothuộchàmtruyềnđạtphứccủamạchvònghởF
0(jω)
trongdảitầnsốω=0÷∞trênhệtoạđộphức.Đườngcongdocácđiểmtạo
thànhđượcgọilà quỹđạobiên‐pha F
0(jω). Trêncơsở tiêuchuẩnổnđịnh
Nyquisttacóthểrútrakếtluậnvềtínhổnđịnhcủahệkín(cóphảnhồiđơnvị
âm)từđồthịNyquist.ĐểvẽđồthịNyquisttadùnghàm
Nyquist.Tacócác
lệnhMATLAB(lưutrong
ct6_34.m)nhưsau:
clc
H=tf([251],[123])
nyquist(H)
138
§3.ĐẶCTÍNHCỦAHỆTHỐNGĐIỀUKHIỂN
1.Tínhổnđịnh:Tiêuchuẩnổnđịnhnóirằnghệsẽổnđịnhnếucácnghiệm
củaphươngtrìnhđặctínhcóphầnthựcâm.Phươngtrìnhđặctínhlàđathức
mẫusốcủahàmtruyền.Dovậy
chỉcầntínhnghiệmcủađathứcđặctínhbằng
lệnh
rootslàtacóthểxácdịnhhệổnđịnhhaykhông.
Vídụ:Xéttínhổnđịnhcủahệcóphươngtrìnhđặctínhlà:
s
4
+10s
3
+35s
2
+50s+24
CáclệnhMATLABlà:
a=[110355024];
roots(a)
ans=
‐4.0000
‐3.0000
‐2.0000
‐1.0000
Nhưvậyhệổnđịnh.
2.Độnhạy:Độnhạycủahệthốngđượcđobằngtỉsốphầntrămsựthayđổi
củahàmtruyềntheosựthayđổiphầntrămcủathôngsốb.Vídụđộnhạycủa
hàmtruyềnT(s)theob
đượcxácđịnhbằng:
b
)s(T
b
)s(T
b/b
)s(T/)s(T
S
T
b
∆
∆
=
∆
∆
=
Khi∆bgầnđến0tacó:
)s(T
b
b
)s(T
S
T
b
∂
∂
=
ĐộnhạytĩnhlàgiátrịcủaSkhit→0.Độnhạyđộngđượctínhbằngcáchthays
bằngjωvàvẽđườngStheoω.BiênđộcủaS(jω)đosaisốcủahệthống.
Vídụ:Khảosáthệđiềukhiểnnhưhìnhvẽsau:
K
Thiếtb
ị
B
ộ
bù
)1s(
b
+
Sensor
h
-
R(s)
C(s)
139
Trongđóbcótrịđịnhmứclà4vàhcótrịđịnhmứclà0,5.TìmđộnhạyT(s)
theob,vẽmodulhàmđộnhạytheoωv ớihaigiátrịbùlàK=2vàK=0.5.Tìm
độnhạyT(s)
theoh,vẽmodulcủahàmđộnhạytheohvớiK=2vàK=0.5.
Hàmtruyềncủahệthốnglà:
Kbh1s
Kb
)Ts(
2
++
=
Vớib=4vàh=0.5tacóω
B=1+2K.
ĐộnhạycủaT(s)theobkhib=4vàh=0.5là:
K21s
1s
Kbh1s
1s
)s(T
b
b
)s(T
S
T
b
++
+
=
++
+
=
∂
∂
=
K21s
K2
Kbh1s
Kbh
)s(T
h
b
)s(T
S
T
h
++
−
=
++
−
=
∂
∂
=
CáclệnhMATLAB(lưutrong
ct6_35.m)nhưsau:
k1=1;
k2=0.5;
ts=[11];
ms1=[11+2*k1];
ms2=[11+2*k2];
w=0:0.01:15;
stb1=abs(freqs(ts,ms1,w));
stb2=abs(freqs(ts,ms2,w));
subplot(2,1,1);
plot(w,stb1,w,stb2);
title(ʹDonhaycuaTtheobʹ);
ts1=‐2*k1;
ts2=‐2*k2;
stb1=abs(freqs(ts1,ms1,w));
stb2=abs(freqs(ts2,ms2,w));
subplot(212);
plot(w,stb1,w,stb2);
title(ʹDonhaycuaTtheohʹ);
HìnhtrênđườngcóứngvớiK=0.5vàhìnhdướiđườngcaoứngvớiK=2.
Từ hình vẽ ta thấy rằngđộnhạy của hệ thống theo b giảm khi hệ số
khuếchđạicủavòng
hởKtăngtrong khiđộnhạytheohtăngkhiKtăng.Rõ
rànglàđộnhạytheobtăngnhanhbênngoàiω
B.
3.Saisốxáclập:Khảosáthệnhưhìnhvẽ:
140
R
(
s
)
H
(
s
)
G(s)
-
C
(
s
)
Hàmtruyềncủahệkínlà:
)s(G)s(H1
)s(G
)s(R
)s(C
+
=
Saisốcủahệkínlà:
E(s)=R(s)–H(s)C(s)=
)s(G)s(H1
)s(R
+
Sửdụngđịnhlígiátrịcuốitacó:
)s(H)s(G1
)s(sR
lime
s
ss
+
=
∞→
Đầuvàobướcnhảyđơnvị:
p
s
ss
K1
1
)s(H)s(Glim1
1
e
+
=
+
=
∞→
Đầuvàotăngtuyếntínhđơnvị:
v
s
ss
K
1
)s(H)s(sGlim1
1
e =
+
=
→∞
Đầuvàoparabolđơnvị:
a
2
s
ss
K
1
)s(H)s(Gslim1
1
e =
+
=
→∞
TacóthểdùngSymbolicMathđểtínhcácgiớihạntrên.
§4.PHÂNTÍCHVÀTHIẾTKẾQUỸĐẠONGHIỆM
Phươngphápkinhđiểnđểthamsốhoá khâuđiềukhiểncủavòngđiều
hỉnhlàphươngphápquỹđạonghiệm.Quỹđạonghiệmlàquỹđạođiểmcực,
hợpthànhbởicácđiểucựcc
ủahệthống,phụthuộcvàohệsốkhuyếchđại
phảnhồikvađượcbiểudiễtrênmặtphẳngphứcvớiphầnthưcRe(λ)=σtrên
trục hoành x và phầnảo Im(λ
) = ω trên trục tung y.Đểvẽ được quỹ đạo
nghiệmcủahệthốngtadunghàm
rlocus.Taxéthệthốngsau:
c
G
k
0
G
M
G
-
u
y
141
Cúphápcủarlocuslà
rlocus(sys[,k])
[r,k]=rlocus(sys)
r=rlocus(sys,k)
MôhìnhsystronglệnhtrênlàhàmtruyềnđạtcủahệthốnghởG
oGcGM
đượcxácđịnhbằnglệnhMATLAB:
sys=sysM*sysO*sysC
màchưacóhệsốkhuyếchđạiphảnhồik,làthamsốtuỳchọnsẽđượckhai
báoriêng.Điềuđócónghĩalàsysđượcghépnốibởicácmôhìnhriênglẻ.Khi
gọi
rlocus(sys[, k]) mà không yêu trả biến về ta nhậnđượcđồthị quỹ đạo
nghiệmcủasys.Nếutakhông khaibáocáchệsố khuyêchđại trongvectơ
thamsốtuỳchọnk,MATLABsẽtựđộngquyếtđịnhgiátrịthíchhợ
p.Saukhi
dùng
rlocusvẽquỹđạođiểmcựctatìmcácgiátrịliênquanđếnđiểmcựcbất
kìnămtênquỹđạobằngcáchnhấpchuộtvàomộtđiểmtrênquỹđạo.Lúcđó
lệnh
rlocusfind được thưc hiện. Ta dùng các lện MATLAB sau (lưu trong
ct6_36.m)đểvẽquỹđạonghiệmcủamộthệthống:
clc
sys=zpk([],[‐0.1‐1‐j‐1+j],1)
rlocus(sys)
[r,k]=rlocus(sys)
sgrid
Đểtrực quan ta có thể dùng công cụ thiết kế bằng cách nhâp lệnh
sisotoolvàocửasổlệnhMATLAB.
142