MATLAB VÀ ĐIỀU KHIỂN T ĐỰ ỘNG

Mô hình hệ th ngố mô tả bằng hàm truy nề được xây

§1. CÁC V NẤ ĐỀ CHUNG 1. Các dạng mô hình hệ thống: Để xây d ngự mô hình của hệ thống, MATLAB cung cấp m tộ số l nh.ệ d ngự nhờ l nhệ tf(ts,ms) v iớ ts là đa thức tử số và ms là đa thức mẫu s .ố Hàm zpk(z, p, k) v iớ z là vec tơ đi mể không, p là vec tơ đi mể cực và k là hệ số khuyếch đại tạo nên mô hình đi mể không‐đi mể cực. Hàm ss(a, b, cʹ, d) v iớ a, b, c, d là các ma trận tạo nên mô hình không gian‐trạng thá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 = [1 2]; ms = [1 5 4]; sys1 = tf(ts,ms)

sys2 = zpk([‐6 1 1],[‐5 1],3)

sys3 = ss([1 2; 3 4],[1 1; 0 1],[0 1; 1 2; 3 1],0)

K tế quả là:

Transfer function:

s + 2 ‐‐‐‐‐‐‐‐‐‐‐‐‐ s^2 + 5 s + 4 Zero/pole/gain: 3 (s+6) (s‐1)^2 ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ (s+5) (s‐1) a =

x1 x2 x1 1 3 x2 2 4

b =

x1 x2 u1 1 0 u2 1 1

122

c =

y1 y2 y3 x1 0 1 3 x2 1 2 1

d =

y1 y2 y3 u1 0 0 0 u2 0 0 0

Continuous‐time model.

2. Điểm cực và điểm zero c aủ hàm truyền: Để bi nế đ iổ hệ th ngố cho b iở hàm truy nề thành hệ cho b iở đi mể cực, đi mể zero và hệ số khuếch đại dùng hàm tf2zp. Ta cũng có thể dùng hàm pole(sys) để tìm đi mể cực của hệ th ngố sys và dung hàm zero(sys) để tìm đi mể không của hệ th ngố sys Ví dụ: Cho hàm truy n:ề

s 3  11s 2  30s H(s) 

s 4  9s 3  45s 2  87s  50

Ta c nầ tìm các đi mể cực p, đi mể zero z và hệ số khuếch đại k c aủ nó. Ta dùng các l nh ệ MATLAB sau(lưu trong ct6_2.m):

ts = [1 11 30 0]; ms = [1 9 45 87 50]; [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

H(s)   s(s  5)(s  6) (s  1)(s  2)(s  3  4 j)(s  3  4 j) s(s  5)(s  6) (s  1)(s  2)(s2  6s  25)

ệ ố khuếch đại ta có th tìm l ạ ề i hàm truy n

ể ct6_3.m): b ng l nh ằ ể ệ sau(l u trong ư

Khi có các đi m ể cực, đi m zero và h s zp2tf. Ta dùng các l nh MATLAB ệ z = [‐6;‐5;0]; k = 1; p = [‐3+4*i;‐3‐4*i;‐2;‐1]; [ts,ms] = zp2tf(z,p,k)

ts = 0 1 11 30 0

ms = 1 9 45 87 50

cượ sự phân bố đi mể không và đi mể c cự c aủ hệ th ngố trên m tặ

Để th yấ đ ph c ứ ta dùng hàm pzmap. Tr c ụ c a ủ đ ồ thi đ c ượ chia l i ướ b ng ằ l nhệ

ct6_4.m): ph ng ẳ sgrid. Các đi mể không bi uể thị b ngằ vòng tròn và đi mể c cự bi uể thị b ngằ d uấ . Ta xét các l nh MATLAB ệ sau(l u trong ư

clc sys = zpk([‐6 1 1],[‐5 1],3) axis equal pzmap(sys) sgrid

3

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,ề ta có thể khai tri nể nó thành t ngổ các phân th cứ đ nơ gi nả b ngằ l nhệ residue. Hàm residue cho vec tơ c tộ các ph nầ dư r, vec tơ c tộ các đi mể c cự p và ph n nguyên k. Ví dụ: Cho hàm truy n:ề

2s  9s  1 H(s) 

l nh MATLAB ct6_5.m): s3  s2  4s  4 ệ ể sau(l u trong ư

0.0 + 0.2 5i

Ta khai tri n h b ng các ệ ằ ts = [2 0 9 1]; ms = [1 1 4 4]; [r,p,k] = residue(ts,ms) r = 0.0 ‐ 0.25i

‐2.0 p = ‐0.0 + 2.0i ‐0.0 ‐ 2.0i ‐1.0 k = 2 Như v y:ậ

0.25 j  0.25 j 2 1  2 H(s)  2    2   

s  1 s  2 j s  2 j s  1 s2  4

l nh MATLAB i,ạ có r, p, k ta có th tìm hàm truy n b ng các ề ể ằ ệ sau(l u trong ư cượ l Ng 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)

0 9 1

ts = 2 ms = 1 1 4 4

ng trình vi ươ

n d y

4. Biến đổi hàm truyền thành không gian‐trạng thái: Cho ph phân:

0

n dxn

n 1 dxn 1

1 dx

d y dn 1 y a  a    a  a y  u(t)

Đặt x1 = y;x2 = y;x3 = y v.v ta có h ph ệ ươ ng trình tr ng thái: ạ

x = Ax + Bu y = Cx + Du ng trình không gian ‐tr ng thái g i là ph ọ ươ ạ

N uế m tộ hệ đi uề khi nể tự đ ngộ cho b iở hàm truy nề ta có thể bi nế đ iổ về

tf2ss. ệ ạ

2 s  7s  2

không gian‐tr ng thái b ng l nh ằ Ví dụ: Cho hàm truy n :ề

H(s) 

s3  9s2  26s  24

không gian‐tr ng ạ thái b ng ằ các l nh ệ MATLAB sau(l uư

Ta bi n ế h ệ v ề d ng ạ trong ct6_7m):

ts = [1 7 2]; ms = [1 9 26 24]; [a,b,c,d ] = tf2ss(ts,ms) a =

‐9 ‐26 ‐24 0 1 1 0 0 0

7 2

b = 1 0 0 c = 1 d = 0

i ướ d ngạ

ct6_8.m) 5. Biến đổi không gian‐trạng thái thành hàm truyền: Để bi nế đ iổ hệ cho d không gian‐tr ngạ thái thành hàm truy nề ta dùng l nhệ ss2tf. Ta xét các l nh sau(l u trong ư ệ

a = [0 1 0; 0 0 1; ‐1 ‐2 ‐3]; b = [10; 0; 0]; c = [1 0 0]; d = [0]; [ts,ms] = ss2tf(a,b,c,d,1) ts =

0 10.00 30.00 20.00

ms =

2

1.00 3.00 2.00 1.00 ề Như v y hàm truy n là: ậ

10(s  3s  2) G(s) 

s3  3s2  2s  1

ng trình ươ

ệ ạ

6. Nghiệm c aủ phương trình trạng thái: Đ ể tìm nghi m ệ c a ủ ph tr ng thái ta dùng l nh Ví dụ: Cho ph lsim. ng trình tr ng thái ạ c a m t h tuy n tính ủ ộ ệ ươ ế

1 Ø 1⎤ ⎡x 1 ⎤ ⎡ 0 0⎤ ⎡x1 ⎤

Œ 0 0 1  u(t) ⎥ Œ x 2 ⎥ ⎢  ⎢ œ ⎢ ⎥ ⎢ ⎥ x2 ⎥ ⎢ ⎥ 1 ⎥ ⎢

3

 6  11  6 x 1⎥ß x3

y = [1 1 0] x

Cho đi uề ki nệ đầu x(0) = [1 0.5 ‐0.5]. Tìm x(t), y(t) v iớ u(t) là hàm đ nơ v .ị Ta dùng các l nh MATLAB ct6_9.m): sau(l u trong ư ệ

ừ 1.5 a = [0 1 0; 0 0 1; ‐6 ‐11 ‐6]; b = [1; 1; 1]; c = [1 1 0]; d = 0; x0 = [1 0.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 u ki n đ Khi u(t) là sin2t ta tính đáp ng nh ct6_10.m): ầu nên nghi m y xu t phát t ấ ệ ư sau(l u trong ư ứ

a = [0 1 0;0 0 1;‐6 ‐11 ‐6]; b = [1;1;1]; c = [1 1 0]; d = 0; x0 = [1 0.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)

connect. đ n gi n b ng l nh ơ v ề d ng ạ ế ệ ả ằ ờ ổ

7. Biến đổi sơ đồ kh iố : M tộ sơ đồ kh iố đi uề khi nể thư ngờ r tấ ph cứ t p.ạ Vì v yậ ta thư ng ph i bi n đ i nó ả Ví dụ: Xét sơ đ kh i sau: ố ồ

1

2

3

1 4 1 + 1 0.5 s 4 + - - -

4

6

2 s  2 2 s  3 5

5

127

7

8

phương trình tr ngạ thái và hàm truyền c aủ toán bộ sơ đ :ồ

Xác đ nhị 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 uư trong ct6_11.m): n1=1;d1=1; n2=.5;d2=1; n3=4;d3=[1 4]; n4=1;d4=[1 2]; n5=1;d5=[1 3]; n6=2;d6=1; n7=5;d7=1; n8=1;d8=1; nblocks=8; blkbuild; q=[1 0 0 0 0

2 1 ‐6 ‐7 ‐8 3 2 0 0 0 4 3 0 0 0 5 4 0 0 0 6 3 0 0 0 7 4 0 0 0 8 5 0 0 0];

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.0 0 0 1.0 ‐3.0

B =

0.5 0 0 C =

128

0 1

0 D = 0

[ts,ms] = ss2tf(A,B,C,D,1) ts =

0 0 0 2.0

ms

=

1.0 13.0 56.0 80.0

Hàm truyền c aủ h ệ là:

 C(s) R(s) 1 s3  13s2  56s  80

8. Ghép nối các sơ đồ khối: Đ ể ghép n iố tạo nên m tộ h ệ th ngố từ nhiều hệ th ngố con ta có th sể ử d ngụ m tộ số khả năng như sau:

u1 sys1 y1 sys1 y u

u2 y2 sys2 sys2 b a

z1 v1

y1 u1 sys1 u1 sys1 y u y2 u2 u2 z2 sys2 v2 sys2 c

d

v2 y u sys1 y sys1 u y1 z1 sys2 sys2 e

f

a. Ghép theo hàng: Ghép theo hàng (hình a) có nghĩa là ghép đầu ra c 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ép này. Ta có các lệnh MATLAB sau(l uư trong ct6_12.m):

129

clc sys1 = tf(1,[1 0])

130

sys2 = ss(1,2,3,4) sys = [sys1,sys2] b. Ghép theo cột: Ghép theo c t(hình ộ

b) có nghĩa là ghép đầu ra c aủ hệ th ngố con có chung đầu vào. Ta có các lệnh MATLAB sau(l uư trong ct6_13.m):

clc sys1 = tf(1,[1 0]) sys2 = ss(1,2,3,4) sys = [sys1;sys2] c. Ghép theo đ nườ g chéo: Khi ghép theo đường chéo(hình c), ta có hệ

th ngố mới bảo đảm cách ly các h ệ th ngố con ban đầu. Để ghép ta dùng lệnh append. Các lệnh MATLAB(l uư trong ct6_14.m) như sau:

clc sys1 = tf(1,[1 0]) sys2 = ss(1,2,3,4) sys = append(sys1,sys2) d. Ghép song song: Ta dùng cách ghép như trên hình d. Hàm parallel 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,[1 0]) sys2 = ss(1,2,3,4) sys = parallel(sys1,sys2) e. Ghép tuần tự: Ta dùng cách ghép như trên hình e. Hàm series dùng để ghép tu nầ tự các h ệ th ngố con. Các lệnh MATLAB(l uư trong ct6_16.m) như sau:

clc sys1 = tf(1,[1 0]) sys2 = ss(1,2,3,4) sys = series(sys1,sys2) f. Ghép có phản h iồ : Ta dùng cách ghép như hình f. Hàm feedback dùng để ghép có ph nả h iồ các hệ th ngố con. Các lệnh MATLAB (l uư trong ct6_17.m) như sau: clc sys1 = tf(1,[1 0]) sys2 = ss(1,2,3,4) sys = feedback(sys1,sys2)

g. Sử d nụ g hàm connect: Hàm connect tạo ra mô hình không gian‐tr ng thái ạ từ

các h ệ th ngố con. Cú pháp c aủ hàm:

sysc = connect(sys,Q,inputs,outputs)

M tộ hệ th ngố thường đư cợ cho dưới d ngạ các kh i.ố Ngay cả khi sơ đồ không phức t p,ạ vi cệ tìm đư cợ mô hình không gian‐tr ngạ thái c aủ hệ th ngố khá khó. Để tìm được mô hình không gian‐tr ngạ thái, tr cướ hết ta dùng hàm append:

sys = append(sys1,sys2,...,sysN)

để mô tả m iỗ h ệ th ngố con sysj h ệ th ngố d ngạ đường chéo. Tiếp đến dùng lệnh:

sysc = connect(sys,Q,inputs,outputs)

Ma tr nậ Q chỉ ra cách n iố các hệ th ngố con trên sơ đ .ồ M iỗ đầu

2

để n iố các hệ th ngố con và rút ra mô hình không gian‐tr ngạ thái sysc c aủ toàn bộ hệ th ng.ố vào c aủ sys có m tộ hàng, trong đó ph nầ tử đầu tiên c aủ m iỗ hàng là số đầu vào. các ph nầ tử tiếp theo c aủ m iỗ hàng mô tả đầu vào c aủ hệ th ngố đư cợ l yấ từ đâu. Ví dụ đầu vào 7 l yấ từ đầu ra 2, 15 và 6 trong đó đầu vào c aủ 15 âm thì hàng tương ngứ c aủ Q là [ 7 2 ‐15 6]. Hàng nào không đủ ph nầ tử thì thêm số 0. Ta tìm mô hình không gian tr ngạ ‐thái c aủ sơ đồ sau:

u1

1

3

1

4

2(s  1)

4 s  2

u2 + y1 y2 sys2 x  Ax  Bu 2 y  Cx  Du 3 uc sys1 10 s  5 -

sys3

Ta c nầ n iố đầu ra 1 và 4 vào đầu vào 3 (u2) và đầu ra 3 (y2) vào đầu vào 4 nên ma tr nậ Q là:

Q = [3 1 ‐4 4 3 0];

Sơ đồ có 2 đầu vào từ các hệ th ngố khác là uc và u1 (đầu vào 1 và 2 c aủ sys) và 2 đầu ra đ aư đến các hệ th ngố khác là y1 và y2 (đầu ra 2 và 3 c aủ sys). Như v yậ ma trân inputs và outputs là: inputs = [1 2]; outputs = [2 3];

Các lệnh MATLAB thực hiện vi cệ biến đ iố sơ đồ (l uư trong ct6_18.m) như sau:

clc

A = [ ‐9.0201 17.7791 ‐1.6943 3.2138 ];

B = [ ‐.5112 .5362 ‐.002 ‐1.8470]; C = [ ‐3.2897 2.4544

‐13.5009 18.0745];

D = [‐.5476 ‐.1410 ‐.6459 .2958 ];

sys1 = tf(10,[1 5],ʹ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 = [3 1 ‐4 4 3 0]; inputs = [1 2]; outputs = [2 3]; sysc = connect(sys,Q,inputs,outputs)

§2. ĐÁP NGỨ C AỦ HỆ TH NGỐ 1. Đáp ứng c aủ hệ thống bậc hai: D ngạ chu nẩ c aủ hàm truy nề c aủ hệ th ngố b cậ hai là:

n

n

1 G(s)  s  2 s2  2

tắ c aủ hệ th ng.ố Để t oạ ra hàm truy nề

t ế n và  ta dùng l nh ệ

tế n = 2.4

Trong đó n là t nầ số tự nhiên và  là hệ số t này khi bi ord2. Ví dụ: Tìm hàm truy nề và ma tr nậ tr ngạ thái c aủ hệ th ngố b cậ hai bi rad/s và  = 0.4. Các l nh ệ MATLAB (lưu trong ct6_19.m) như sau:

t [ts,ms] = ord2(2.4,0.4) [a,b,c,d] = ord2(2.4,0.4) ộ ế c a h là m t dao Đáp ứng thực t đ ng t ộ ắ d n ầ có d ng:ạ

ủ ệ 1 t  ) n c(t)  1  e n t sin( 

Trong đó   1   2 và   tan 1 ( / )

Ta g iọ tr là th iờ gian để dáp ngứ đạt từ 10% giá trị cu iố đến 90% giá trị cu i;ố th iờ gian đạt đến đ nhỉ là tp; độ nhanh đo bằng tr và tp; th iờ gian tắt là ts. Th iờ

gian đạt đến đ nhị được xác đ nhị bằng cách cho đạo hàm của c(t) bằng 0.

p

t  (4‐1)   1   2

1  2

ả Giá trị đỉnh (percent overshoot‐p.o)khi kích thích là bư cớ nh y là:

p.o  e  100 (4‐2)

Đáp ứng với kích thích bư cớ nh yả tìm đư cợ nhờ hàm step còn đáp ứng với kích thích xung tìm đư cợ nhờ hàm impulse Ví dụ: Tìm đáp ng ứ c a khâu b c ậ hai có hàm truy n :ề ủ

n

2 s2  2 s  2 G(s)  n n

khi n = 5 và  = 0.6.Các l n ệ MATLAB (l u trong ư ct6_20.m) như sau:

clc ts = 25; ms = [1 6 25]; sys = tf(ts,ms) t = 0:0.02:2; c = step(sys,t); plot(t,c) xlabel(ʹt(s)ʹ); ylabel(ʹc(t)ʹ);

Ví dụ: Cho h ệ có sơ đ nhồ ư hình v :ẽ

-

C(s) R(s) d s(s  1)

1+es

b ng 40% ể ằ và tp = 0.8s. Các l nh ệ MATLAB (l u ư trong

Tìm d và e đ p.o 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; ms = [1 2*z*wn wn^2]; sys = tf(ts,ms); t = 0:0.02:4; c = step(sys,t); plot(t,c) Từ sơ đồ kh iố ta có:

 C(s) R(s) d s2  (de  1)s  d

Ph ng trình đ ươ ặc tính là:

2 n

w s2 + (de + 1)s + d = s2 + 2ns +

n

V iớ 2 = wn = 0.28 và z =  = 4.0906 ta có d = 16.733 và e = 0.077

2

hệ số t ệ tắ  và t nầ số tự nhiên n b ng l nh ằ

2s Khi có m tộ hàm truy nề ta có thể xác đ nhị damp. Ví dụ: Cho h ệ có hàm truy n:ề  5s  1 H(s) 

s2  2s  3

tắ  và t nầ số tự nhiên n. Các l nhệ MATLAB (lưu trong ct6_22.m)

Tìm hệ số t như sau:

h = tf([2 5 1],[1 2 3]); damp(h)

Eigenvalue Damping

‐1.00e+000 + 1.41e+000i 5.77e‐001 ‐1.00e+000 ‐ 1.41e+000i 5.77e‐001

Freq. (rad/s) 1.73e+00 0 1.73e+00 0

2. Đáp ứng trong miền th iờ gian c aủ hệ thống:

ưu trong ct6_23.m)như sau:

a. Đáp giá trị ban đ uầ : Đáp ứng giá trị ban đầu mô tả ph nả ứng c aủ hệ khi không có kích thích d uầ vào nhưng t nồ t iạ các giá trị ban đầu c aủ vec tơ tr ngạ thái x0. Ph nả ngứ đó đư cợ g iọ là chuy nể đ ngộ tự do c aủ h .ệ Đáp ứng này đư cợ xác đ nhị b ngằ hàm initial. Ta có các l nhệ MATLAB tìm đáp ứng ban đầu c a m t h th ng (l ộ ệ ố ủ clc a = [‐0.5572 ‐0.7814;0.7814 0];

c = [1.9691 6.4493]; x0 = [1 ; 0] sys = ss(a,[],c,[]); initial(sys,x0)

b. Đáp nứ g xung Dirac: Ta tìm đáp ngứ c aủ hệ th ngố với xung nhờ hàm

impulse. Các l nh ệ MATLAB (lưu trong ct6_24.m)như sau:

clc a = [‐0.5572 ‐0.7814;0.7814 0]; b = [1 ‐1;0 2]; c = [1.9691 6.4493]; sys = ss(a,b,c,0); impulse(sys)

Hình bên trái là đáp ngứ c aủ kênh thứ nh tấ và hình bên ph iả là đáp ứng c aủ kênh thứ 2.

c. Đáp nứ g đối với hàm bước nhảy: Để tìm đáp ứng c aủ hệ th ngố đ iố với MATLAB (lưu trong ct6_25.m)

hàm bư c ớ nh y ả ta dùng hàm step. Các l nh ệ như sau: clc a = [‐0.5572 ‐0.7814;0.7814 0]; b = [1 ‐1;0 2]; c = [1.9691 6.4493]; sys = ss(a,b,c,0); step(sys)

Hình bên trái là đáp ngứ c aủ kênh thứ nh tấ và hình bên ph iả là đáp ứng c aủ kênh thứ 2.

d. Đáp nứ g với tín hi uệ bất kỳ: Để tìm đáp ứng c aủ hệ th ngố đ iố với hàm

b t kì ta dùng hàm ấ lsim. Các l nh ệ MATLAB (lưu trong ct6_26.m) như sau:

clc [u,t] = gensig(ʹsquareʹ,4,10,0.1); H = [tf([2 5 1],[1 2 3]) ; tf([1 ‐1],[1 1 5])] lsim(H,u,t)

Ta dùng hàm gensig để t oạ m tộ xung hình vuông, trong 4 chu kỳ và l yấ m uẫ sau 0.1s trong 10 chu kỳ.

ố s b ng ằ j ta có hàm truy n ề đạt t n ầ s ố c a ủ h ệ th ng ố iạ đó biên độ c aủ g gi mả đi 1/2. T nầ số

2

r và có tr s là: ) g i là ọ ị ố ủ

c a G( 1  2 3. Đáp ứng trong miền tần số c aủ hệ thống: Cho m tộ hàm truy nề c aủ m tộ hệ th ng,thay đó. Đ ộ r ngộ băng c aủ hệ th ngố B là t nầ số mà t ứng với giá tr max ị r  n

Để vẽ đặc tính tần biên‐pha của m tộ hệ th ngố ta dùng l nhệ freqs.

Ví dụ: Cho hàm truy nề của m tộ hệ th ngố là:

G(s) 

4 s2  2s  4

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 = [1 2 4]; ts = [4]; freqs(ts,ms,w);

Ta cũng có th ể tạo đồ thị như sau(l uư trong ct6_28.m):

ts = [4]; ms = [1 2 4]; w = 0:0.01:3; g = freqs(ts,ms,w); mag = abs(g); pha = angle(g); subplot(2,1,1); loglog(w,mag); grid on; subplot(2,1,2); semilogx(w,pha); grid on

iạ khi có đặc tính t nầ biên ‐ pha ta có thể tìm l iạ đư cợ hàm truyền b ngằ cượ l

Ng lệnh invfreqs. Ví dụ: Tìm hàm truyền c aủ h ệ th ng(l u ố ư trong ct6_29.m):

ts = [1 2 3 2 1 4]; ms = [1 2 3 2 3]; [h,w] = freqz(b,a,64); [tsm,msm] = invfreqz(h,w,4,5)

Ta cũng có th ể xây d ngự đặc tính t nầ thực‐ảo Ví dụ: Cho hàm truyền :

G(s) 

10 s3  4.5s2  9s  10

Tìm đặc tính t nầ thực ‐ ảo c aủ h ệ b ngằ các lệnh MATLAB (l uư trong ct6_30.m):

ts = [10]; ms = [1 4.5 9 10]; w = [1:0.01:3];

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ị Bode c aủ hệ th ngố ta dùng hàm bode. Đồ thị thứ nh tấ nh tấ là đặc tính biên‐t nầ logarit, đư cợ chia theo dB. Đồ thị thứ hai là đặc tính pha‐ t nầ logarit chia theo đ .ộ

Các d ngạ c aủ lệnh bode gồ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([1 0.1 7.5],[1 0.12 9 0 0]); figure(1) bode(g) figure(2) bode(g,{0.1 , 100}) gd = c2d(g,0.5) figure(3) bode(g,ʹrʹ,gd,ʹb‐‐ʹ)

c aủ hệ th ng.ố

iạ t nầ số đảo pha wcg và pm t

Hàm margin cho biết dự trữ nổ đ nhị Dự trữ biên gm là hệ số khuyếch đại Fr mà nếu ta thêm vào hàm truyền đạt c aủ hệ hở thì hệ kín v aừ nghĩa là kho ngả cách góc Dự trữ pha pm được đ nhị đạt đư cợ giới h nạ nổ đ nh. pha r tới ‐180. Hàm cho biết gm t iạ t nầ số c tắ pha wcp. Hàm allmargin có tác d ngụ r ngộ hơn hàm margin. Các kết quả trả về c aủ allmargin gồm:

iạ đó đồ thị pha c tắ đường th ngẳ nằm

dự trữ biên ‐ giá trị đảo c aủ biên độ t iạ t nầ số

iạ đó đồ thị biên c tắ đường th ngẳ nằm

GMFrequency: giá trị t nầ số mà t ngang ‐180 GainMargin: GMFrequency PMFrequency: giá trị t nầ số mà t ngang 0 dB( ngứ với h sệ ố khuyếch đại 1)

tấ nổ đ nh. ị

b ngằ 0 trong các trường hợp khác. ị

PhaseMargin: dự trữ pha ‐ kho ngả cách góc (> 0) từ vị trí PMFrequency đến ‐180. DelayMargin: dự trữ thời gian trễ ‐ giá trị thời gian trễ mà nếu vượt quá, h ệ th ngố s mẽ DMFrequency: giá trị t nầ số ngứ với DelayMargin. Stable: =1 khi mach vòng kín nổ đ nh; Các đại lượng này có thể đọc đư cợ từ đồ thị tạo bởi margin. Để xác đ nhị

c aủ m tộ hệ th ngố cụ thể ta dùng các lệnh MATLAB(l uư trong

dự trữ nổ đ nhị ct6_32.m) như sau:

c aủ h ệ th ng.ố

clc sys = zpk([],[‐1 ‐1 ‐1],4) margin(sys) allmargin(sys) Kết quả hệ th ngố nổ đ nh. Nó có DelayMargin = 0.3s. Bây giờ ta gán cho sys m tộ kho ngả thời gian trễ là stabil.DelayMargin + 0.01, nghĩa là vượt quá thời 0.01s. Kết quả tính toan mới c aủ allmargin sẽ thông báo tính gian trễ nổ đ nhị Các lệnh MATLAB (l uư trong ct6_33.m) như sau: không nổ đ nhị clc sys = zpk([],[‐1 ‐1 ‐1],4) margin(sys) stabil = allmargin(sys) sys.ioDelay = stabil.DelayMargin + 0.01; newstabil = allmargin(sys) M tộ khả năng khác để mô tả đặc tính t nầ số là đồ thị Nyquist. Nó biểu diễn các giá trị thực và ảo thuộc hàm truyền đạt phức c aủ mạch vòng hở F0(j) trong d iả t nầ số  = 0   trên hệ toạ độ phức. Đường cong do các đi mể tạo thành đư c ợ g iọ là quỹ đạo biên ‐ pha F0(j). Trên c ơ s ở tiêu chu nẩ nổ đ nhị c aủ hệ kín(có ph nả h iồ đơn vị Nyquist ta có thể rút ra kết lu nậ về tính nổ đ nhị âm) từ đồ thị Nyquist. Để vẽ đồ thị Nyquist ta dùng hàm Nyquist. Ta có các lệnh MATLAB(l uư trong ct6_34.m) như sau:

clc H = tf([2 5 1],[1 2 3]) nyquist(H)

§3. Đ CẶ TÍNH C AỦ HỆ TH NGỐ ĐI UỀ KHI NỂ

nói r ngằ hệ sẽ nổ đ nhị nếu các nghi mệ

hay không. h ệ nổ đ nhị d nhị

1. Tính ổn định: Tiêu chu nẩ nổ đ nhị c aủ phương trình đặc tính có ph nầ thực âm. Phương trình đặc tính là đa thức m uẫ số c aủ hàm truyền. Do v yậ chỉ c nầ tính nghi mệ c aủ đa thức đặc tính b ngằ lệnh roots là ta có th xácể Ví dụ: Xét tính nổ đ nhị c aủ h ệ có phương trình đặc tính là:

s4 + 10 s3 + 35s2 + 50s + 24

Các lệnh MATLAB là:

a = [1 10 35 50 24]; roots(a)

ans =

‐4.0000 ‐3.0000 ‐2.0000 ‐1.0000

Như v yậ h ệ nổ đ nh. ị

2. Độ nh yạ : Độ nh yạ c aủ hệ th ngố đư cợ đo b ngằ tỉ số ph nầ trăm sự thay đ iổ c aủ hàm truyền theo sự thay đ iổ ph nầ trăm c aủ thông số b. Ví dụ độ nh yạ c aủ b ng:ằ hàm truyền T(s) theo b được xác đ nhị

b

ST   T(s) / T(s) b / b T(s) T(s) b b

b

Khi b g n ầ đến 0 ta có: T(s) b ST  b T(s)

c tính b ng cách thay s b ng j và ượ ằ ằ

ng S đ ủ ệ ố

Độ nh yạ tĩnh là giá trị c aủ S khi t0. Độ nh yạ đ ng ộ v đ theo . Biên đ ộ c a S(ủ ẽ ườ Ví dụ: Kh oả sát h đi u khi n nh j) đo sai s ố c a h th ng. ư hình v sau: ệ ề ẽ ể

Thi

-

B bùộ K R(s) C(s) t bế ị b (s  1)

h

Sensor

m cứ là 4 và h có trị đ nhị

= 2 và K = 0.5. h, v modul c a hàm đ nh y theo ộ ủ h v i Kớ ạ ạ

m cứ là 0,5. Tìm độ nh yạ T(s) Trong đó b có trị đ nhị theo b, vẽ modul hàm độ nh yạ theo  v iớ hai giá trị bù là K = 2 và K = 0.5. Tìm đ nh y T(s) theo ẽ ộ Hàm truy n ề c a h th ng là: ủ ệ ố (Ts) 

Kb s2  1  Kbh

có B = 1 + 2K. b khi b = 4 và h = 0.5 là: ớ ộ

b

s  1 V i b = 4 và h = 0.5 ta ạ c a T(s) theo Đ nh y ủ T(s) b s  1 ST   

b T(s) s  1  Kbh s  1  2K

h

T(s) h  Kbh  2K  ST  

b T(s) s  1  Kbh s  1  2K

Các l nh ệ MATLAB (l u trong ư ct6_35.m) như sau:

có ng v i K ớ Hình trên đư ng ờ ờ ớ

k1 = 1; k2 = 0.5; ts = [1 1]; ms1 = [1 1+2*k1]; ms2 = [1 1+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(ʹDo nhay cua T theo b );ʹ 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(ʹDo nhay cua T theo h );ʹ ứ T ừ hình v ẽ ta th y ấ r ng ằ = 0.5 và hình dư i ớ đư ng cao đ ộ nh y ạ c a ủ h ệ th ng ố = 2. ng v i K ứ theo b gi m ả khi h ệ số

b tăng nhanh bên ngoài B. khuếch đại c aủ vòng hở K tăng trong khi độ nh yạ theo h tăng khi K tăng. Rõ ràng là đ nh y theo ộ ạ

3. Sai số xác lập: Kh oả sát h nhệ ư hình v :ẽ

R(s) G(s) C(s)

-

H(s)

Hàm truy n ề c a h kín là:

 ủ ệ C(s) R(s) G(s) 1  H(s)G(s)

Sai s ố c a h kín là: ủ ệ

E(s) = R(s) – H(s)C(s) = R(s) 1  H(s)G(s)

có: Sử d ng ụ đ nh lí giá tr ị ị cu i ta ố

ss

s 1  G(s)H(s)

sR(s) e  lim

ơ

s  

 Đầu vào bư cớ nh y ả đ n v : ị 1 ess  1  lim G(s)H(s) 1 1  K p

Đầu vào tăng tuy n tính ế

s Đầu vào parabol đ n v : ị

đ n v : ơ ị 1 ess   1 1  lim sG(s)H(s) K v

ơ

a

s

1 ess  1  1  lim s2 G(s)H(s) K

Ta có th dùng Symbolic i h n trên. ể Math để tính các gi ớ ạ

§4. PHÂN TÍCH VÀ THIẾT KẾ QUỸ Đ OẠ NGHI MỆ

Phư ngơ pháp kinh đi nể để tham số hoá khâu đi uề khi nể c aủ vòng đi uề là phư ngơ pháp quỹ đạo nghi m.ệ Quỹ đạo nghi mệ là quỹ đạo đi mể cực, ố ph ụ thu c ộ vào h ệ s ố khuyếch đại

c ượ qu ỹ đạo

rlocus. Ta xét h th ng sau: h nhỉ h p ợ thành b i ở các đi u ể c c ự c a ủ h ệ th ng, ph nả h iồ k va đư cợ bi uể diễ trên m tặ ph ngẳ ph cứ v iớ ph nầ th cư Re() =  trên tr c ụ hoành x và ph n ầ o ả Im() =  trên tr c ụ tung y. Đ ể v ẽ đ nghi m ệ c a h th ng ta dung hàm ủ ệ ố ệ ố

u y G c G 0 -

G M k

là Cú pháp c a rlocus ủ

rlocus(sys[,k]) [r, k] = rlocus(sys) r = rlocus(sys, k) Mô hình sys trong l nhệ trên là hàm truy nề đ tạ c aủ hệ th ngố hở GoGcGM

đư cợ xác đ nh b ng l nh ị ệ MATLAB:

ằ sys = sysM*sysO*sysC

.ẻ Khi

rlocusfind đư c ợ thưc hi n. ệ Ta dùng các l n ệ MATLAB sau (lưu trong

ể ẽ quỹ đạo nghi mệ c a m t h th ng: ộ ệ ố ủ

mà chưa có hệ số khuyếch đ iạ ph nả h iồ k, là tham số tuỳ ch nọ sẽ được khai báo riêng. Đi uề đó có nghĩa là sys đư cợ ghép n iố bởi các mô hình riêng l g i ọ rlocus(sys[, k]) mà không yêu tr ả bi n ế v ề ta nh n ậ đư c ợ đ ồ th ị qu ỹ đạo nghi m ệ c a ủ sys. N u ế ta không khai báo các h ệ s ố khuyêch đ i ạ trong vec tơ tham số tuỳ ch nọ k, MATLAB sẽ tự đ ngộ quy tế đ nhị giá trị thích h pợ . Sau khi dùng rlocus vẽ quỹ đạo đi mể cực ta tìm các giá trị liên quan đ nế đi mể cực b tấ kì năm tên quỹ đạo b ngằ cách nh pấ chu tộ vào m tộ đi mể trên quỹ đạo. Lúc đó l nh ệ ct6_36.m)đ v 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ách nhâp l nhệ t k b ng ế ằ c thi ụ ế ể

sisotool vào cửa sổ l nh ệ MATLAB.