--------------------------oOo-------------------------
ch¬ng 21
hép c«ng cô hÖ thèng ®iÒu khiÓn
21.1 Sù biÓu diÔn b»ng ®å thÞ
PhÇn lín c¸c c«ng cô trong Hép c«ng cô hÖ thèng ®iÒu khiÓn ®Òu ®îc luËn gi¶i dÔ hiÓu trªn
c¶ 2 ph¬ng diÖn hµm truyÒn vµ kh«ng gian tr¹ng th¸i. Thªm vµo ®ã hÖ thèng nhiÒu ®Çu vµo, nhiÒu
166
®Çu ra (MIMO) ®îc sinh ra tõ viÖc t¹o ra ma trËn B, C, D cã ®ßi hái sè chiÒu. Sù biÓu diÔn hµm
truyÒn MIMO ®îc h×nh thµnh do sö dông ma trËn tÕ bµo lu tr÷ trong nh÷ng ®a thøc hµm truyÒn t-
¬ng øng. VÝ dô :
>> num = { 10, [ 1 10]; -1, [3 0 ] } ; % m¶ng tÕ bµo
>> den= { [ 1 10 ], [1 6 10 ]; [ 1 0 ], [1 3 3 ] ; %m¶ng tÕ
% bµo bËc hai thay cho hÖ thèng cã 2 ®Çu vµo vµ 2 ®Çu ra.
Hµm truyÒn
Liªn tôc
H(s)= = m<=n MATLAB: :num = [ N1 N2 ...Nm+1 ], den =[ D1 D2 ... Dn+1 ]
Rêi r¹c
H(z) = = m<=n MATLAB: num [N1 N2 ... Nn+1 ], den = [ D1 D2 ..... Dn+1]
( mÉu z-1 )
H(z) == MATLAB: num = [ N1 N2 . Nn+1], den =[ D1 D2 ... D n+1 ]
Zero-pole-Gain
Liªn tôc H(s)== m<n MATLAB: K, Z = [Z1 ; Z2 ; ....Zm], P=[ P1 ; ......Pn ]
Rêi r¹c H(z)= = m<= n MATLAB: K, Z = [Z1 ; Z2 ; ....Zm], P=[ P1 ; ......Pn ]
Kh«ng gian tr¹ng th¸i
Liªn tôc
x= Ax + Bu y = Cx + Du MATLAB : A, B, C, D
Rêi r¹c
x[n+1] = Ax[n] + B u[n] y[n] = C x[n] + Du[n] MATLAB : A, B, C, D
=
Cã mét sù t¬ng quan tù nhiªn 1-1 gi÷a chØ sè m¶ng tÕ bµo vµ chØ sè ma trËn hµm truyÒn.
21.2 §èi tîng LTI
MATLAB cung cÊp mét c¸ch ®Ó tãm lîc m¶ng d÷ liÖu t¬ng quan thµnh c¸c ®èi tîng tuyÕn
tÝnh, bÊt biÕn theo thêi gian, hoÆc c¸c ®èi tîng LTI. §iÒu nµy gióp cho viÖc qu¶n lÝ chóng ®îc dÔ
dµng. VÝ dô:
>> my_sys= zpk( z, p, k )
Zero/ pole / gain from input 1 to output:
1
-
s
Zero / pole / gain from input 2 to output:
3 ( s+1 )
--------------
(s+10) (s+2)
x©y dùng mét ®èi tîng LTI zero-pole-gain cã tªn lµ my_sys cã chøa hÖ thèng 2 ®Çu vµo vµ mét ®Çu
ra. Còng nh vËy:
>> H = tf( num, den )
Transfer function from input 1 to output...
10
167
#1: .........
s+10
-1
#2: .....
s
Transfer function from input 2 to output ...
s+10
#1:..............
s^2+6 s+10
3s+1
#2: ............
s^2 + 3 s + 3
t¹o mét hµm truyÒn ®èi tîng LTI tõ m¶ng tÕ bµo num den nhËp vµo tríc ®ã. Còng nh vËy hÖ
thèng hiÖn t¹i hiÓn thÞ ë mét chÕ ®é dÔ hiÓu.
Cuèi cïng, ®èi tîng LTI kh«ng gian tr¹ng th¸i ®îc h×nh thµnh nh sau:
>> a = [ 0 1 ; -2 -4 ] ; b = [ 0 1 ]; c = [ 1 1 ] ; d =0;
% ®inh nghÜa ma trËn kh«ng gian tr¹ng th¸i
>> system2=ss( a, b, c, d)
a=
x1 x2
x1 0 1.00000
x -2.00000 -4.00000
b =
u1
x1 0
x2 1.00000
c =
x1 x2
y1 1.00000 1.00000
d=
u1
y1 0
HÖ thèng liªn tôc theo thêi gian
Trong trêng hîp nµy, hÖ thèng sÏ x¸c ®Þnh c¸c thµnh phÇn biÕn g¾n víi mçi phÇn tö vµ x¸c nhËn hÖ
thèng lµ liªn tôc theo thêi gian.
§Ó x©y dùng mét hÖ thèng gi¸n ®o¹n theo thêi gian, sö dông hµm zpk, tf, vµ hµm ss, b¹n nhÊt
thiÕt ph¶i khai b¸o chu k× lÊy mÉu kÌm theo víi hÖ thèng ®îc xem nh lµ mét ®èi sè ®Çu vµo cuèi
cïng.VÝ dô:
>> dt_sys = tf ( [ 1 0.2 ], [ 1 -1 ], 0.01 )
hµm truyÒn
z+0.
...........
z-1
thêi gian lÊy mÉu : 0.01
HÖ thèng rêi r¹c theo thêi gian nµy cã chu k× lÊy mÉu lµ : 0.01
168
21.3 Kh«i phôc d÷ liÖu
Gi¶ sö ®èi tîng LTI ®· ®îc t¹o dùng, th× d÷ liÖu trong ®ã cã thÓ t¸ch ra b»ng c¸ch sö dông
hµm
tfdata, zpkdata
,
ssdata
. VÝ dô :
>> [nz, dz ]= tfdata (dt_sys ) % t¸ch ra nh lµ m¶ng tÕ bµo
nz =
[1x2 double ]
dz =
[1x2 double ]
>> [ n z, dz ] = tfdata (dt_sys, 'v' ) % chÝch ra nh lµ vector
z =
[ -0.2 ]
p =
[ 1 ]
k =
1
>> [z, p, k ] =zpkdata ( dt_sys, 'v' ) % chÝch ra nh lµ vector
z =
-0.2
p =
1
k =
1
>> [ a, b, c, d ] = ssdata(dt_sys) % chÝch ra ma trËn kh«ng gian tr¹ng
%th¸i sè
a =
1
b =
1
c =
1.2
d =
1
NÕu nh mét ®èi tîng LTI ®· ®îc x©y dùng th× nã cã thÓ ®îc t¸ch ra theo bÊt cø mét mÉu nµo.
21.4 Sù nghÞch ®¶o ®èi tîng LTI
Bªn c¹nh viÖc t¸ch c¸c ®èi tîng LTI thµnh nhiÒu kiÓu kh¸c nhau, chóng cßn cã thÓ ®îc
chuyÓn ®æi thµnh c¸c d¹ng kh¸c nhau b»ng c¸ch sö dông c¸c hµm tù t¹o. VÝ dô :
>> t = tf ( 100, [1 6 100]) % x©y dùng mét hµm truyÒn.
Hµm truyÒn :
100
.................
s^2 + 6 s + 100
>> sst = ss(t )
a = x1 x2
x1 -6.00000 -6.25000
169
x2 16.00000 0
b = u1
x1 2.00000
x2 0
c = x1 x2
y1 0 3.12500
d = u1
y1 0
HÖ thèng liªn tôc theo thêi gian.
>> zpkt = zpkt(t)
Zero / pole / gain:
100
.................
(s^2+ 6 s + 100 )
21.5 ThuËt to¸n ®èi tîng LTI
Sö dông ®èi tîng LTI còng cho phÐp b¹n thiÕt lËp thuËt to¸n s¬ ®å khèi. VÝ dô, hµm truyÒn
lÆp cña mét hÖ thèng håi tiÕp lµ G( s ) . Th× hµm truyÒn lÆp gÇn nhÊt cña lµ : T(s ) = G(s ) ( 1 + G(s) ).
Trong MATLAB, ®iÒu nÇy b¾t ®Çu:
>> g = tf( 100, [1 6 0]) % hµm truyÒn lÆp
Hµm truyÒn:
100
............
s^2 + 6 s
>> t = g/(1+g)
hµm truyÒn:
100 s^2 + 600 s
...............................
s^4 + 12 s^3 + 136 s^2 + 600 s
>> t = minreal(t) % thiÕt lËp hµm huû pole-zero
Hµm truyÒn:
100
...................
s^2 + 6 s + 100
21.6 Ph©n tÝch hÖ thèng
Hép dông cô hÖ thèng ®iÒu khiÓn( The Control System Toolbox ) cã ®Ò cËp ®Õn viÖc ph©n
tÝch hÖ thèng sè vµ thiÕt kÕ hµm. §Ó hoµn thiÖn tµi liÖu nµy, h·y xem help trùc tuyÕn. §Ó hiÓu ®îc
mét sè ®Æc ®iÓm cña, h·y tham chiÕu ®Õn ®èi tîng LTI open-loop vµ closed-loop.
>> g = zpk ( [ ], [ 0, -5, -10 ], 100 ) % hÖ thèng open-loop
Zero/pole/gain :
100
....................
s (s+5 ) ( s+ 10 )
>>t =minreal ( g /( 1 +g ) ) HÖ thèng closed-loop
Zero / pole/ gain: