Giáo trình Matlab - Chương 6: Matlab và điều khiển tự động (Phần 1)

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. Mô hình hệ thống mô tả bằng hàm truyền được xây

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.

pdf12 trang | Chuyên mục: MATLAB | Chia sẻ: yen2110 | Lượt xem: 655 | Lượt tải: 1download
Tóm tắt nội dung Giáo trình Matlab - Chương 6: Matlab và điều khiển tự động (Phần 1), để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trê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: 
4s4ss
1s9s2)s(H 23
3
+++
++=  
Ta khai triển hệ bằng các lệnh MATLAB sau(lưu trong ct6_5.m): 
ts = [2 0 9 1]; 
ms = [1 1 4 4]; 
[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
22
j2s
j25.0
j2s
j25.0
1s
22)s(H 2 +++−=−
−++++
−+=  
Ngược lại, có r, p, k ta có thể tìm hàm truyền bằng các lệnh MATLAB sau(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 = 
     2     0     9     1 
ms = 
     1     1     4     4 
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
yda
dx
yda
dx
yda 011n
1n
1nn
n
n =++++ −
−
− L  
Đặ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 
gọi là phương trình không gian‐trạng thái 
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ề 
không gian‐trạng thái bằng lệnh tf2ss. 
Ví dụ: Cho hàm truyề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 = [1 7 2]; 
ms = [1 9 26 24]; 
[a,b,c,d ] = tf2ss(ts,ms) 
a = 
    ‐9   ‐26   ‐24 
     1     0     0 
     0     1     0 
b = 
     1 
     0 
     0 
c = 
     1     7     2 
d = 
     0  
5. Biến đổi không gian‐trạng thái thành hàm truyền: Để biến đổi hệ cho dưới 
dạng 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 ct6_8.m) 
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 = 
   1.00   3.00   2.00   1.00 
Như vậy hàm truyền là: 
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ạng thái ta dùng lệnh lsim.  
Ví dụ: Cho phương trình trạng thái của một hệ tuyến tính   
126
       )t(u
1
1
1
x
x
x
6116
100
010
x
x
x
3
2
1
3
2
1
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
+
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
−−−
=
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
&
&
&
    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 sau(lưu trong ct6_9.m): 
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 đầu nên nghiệm y xuất phát từ 1.5 
Khi u(t) là sin2πt ta tính đáp ứng như sau(lưu trong ct6_10.m): 
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)  
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ạng đơn giản bằng lệnh connect. 
Ví dụ: Xét sơ đồ khối sau: 
127
2 
4s
4
+1 
1 
0.5 2s
1
+ 3s
1
+
5
8
2
- 
+ + 
- - 
7
6
5 43
Xác định phương trình trạng thái và hàm truyền của toán bộ 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ư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     0     1 
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à: 
80s56s13s
1
)s(R
)s(C
23 +++=  
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: 
sys1 
b
sys2 
y1 
 y2
u
sys1 
a 
sys2 u2 
u1 
y
sys1 
d
sys2 
y
u1
u2
z2
z1
v2
v1
u
u2 
u1  sys1 
c 
sys2 
y1 
 y2
u 
e 
sys2 
v2 
sys1 
y1 
z1 
f
u ysys1 
sys2 
y
  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): 
clc 
sys1 = tf(1,[1 0]) 
129
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  đường  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) 
130
g. Sử dụng 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) 
để 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. Ma trận Q chỉ ra cách nối các hệ thống con trên sơ đồ. Mỗi đầu 
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
DuCxy
BuAxx
+=
+=&
5s
10
+ 
2s
)1s(2
+
+
sys1 
3
3
2
1 u2
4
4
2
1 
uc 
-
+
sys2
y1  
y2  
  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 
131
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à: 
    2
nn
2 s2s
1)s(G ω+ζω+=  
Trong đó ωn  là  tần số  tự nhiên và ζ  là hệ số  tắt của hệ thống. Để  tạo ra hàm 
truyền này khi biết ωn và ζ ta dùng lệnh 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ết ωn = 2.4 
rad/s và ζ = 0.4. Các lệnh MATLAB (lưu trong ct6_19.m) như sau: 
[ts,ms] = ord2(2.4,0.4) 
 [a,b,c,d] = ord2(2.4,0.4) 
Đáp ứng thực tế của hệ là một dao động tắt dần có dạng: 
    )tsin(e11)t(c n
tn θ+βωβ−=
ζω  
Trong đó  21 ζ−=β  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  
132
gian đạt đến định được xác định bằng cách cho đạo hàm của c(t) bằng 0. 
2p 1
t ζ−ω
π=             (4‐1) 
Giá trị đỉnh (percent overshoot‐p.o)khi kích thích là bước nhảy là: 
    100eo.p
21 ×= ζ−ζπ             (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 : 
    2
nn
2
2
n
s2s
)s(G ω+ζω+
ω=  
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ẽ: 
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

File đính kèm:

  • pdfgiao_trinh_matlab_chuong_6_matlab_va_dieu_khien_tu_dong_phan.pdf