intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Chương 6: Matlab và điều khiển tự động

Chia sẻ: Nguyen Huu Hao Hao | Ngày: | Loại File: PDF | Số trang:0

124
lượt xem
40
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tài liệu tham khảo về Matlab và điều khiển tự động

Chủ đề:
Lưu

Nội dung Text: Chương 6: Matlab và điều khiển tự động

  1. CHƯƠNG 6: MATLAB VÀ ĐIỀU KHIỂN TỰ ĐỘNG    §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.  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.   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            2             x2            3            4  b =                           u1           u2             x1            1            1             x2            0            1  122
  2.     c =                           x1           x2             y1            0            1             y2            1            2             y3            3            1  d =                           u1           u2             y1            0            0             y2            0            0             y3            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) = 4   s + 9s 3 + 45s 2 + 87 s + 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
  3. s(s + 5)(s + 6) s(s + 5)(s + 6)   H(s) = =   (s + 1)(s + 2)(s + 3 + 4 j)(s + 3 − 4 j) (s + 1)(s + 2)(s 2 + 6s + 25) Khi có các điểm cực, điểm zero và hệ số  khuếch đại ta có thể tìm lại hàm  truyền bằng lệnh zp2tf. Ta dùng các lệnh MATLAB sau(lưu trong ct6_3.m):  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     Để thấy được sự phân bố điểm không và điểm cực của hệ thống trên mặt  phẳng  phức  ta  dùng  hàm  pzmap.  Trục  của  đồ  thi  được  chia  lưới  bằng  lệnh  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 ct6_4.m):    clc  sys = zpk([‐6 1 1],[‐5 1],3)  axis equal  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,  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 3 + 9s + 1     H(s) = 3   s + s 2 + 4s + 4 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
  4.  ‐2.0                      p =   ‐0.0 + 2.0i   ‐0.0 ‐ 2.0i   ‐1.0                      k =       2  Như vậy:  − 2 0.25 j − 0.25 j 2 1   H(s) = 2 + + + =2− + 2   s + 1 s + 2j s − 2j s+1 s +4 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:  dn y d n −1y dy     a n n + a n −1 n −1 + L + a1 + a 0 y = u( t )   dx dx dx Đặ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 :  s2 + 7s + 2   H(s) = 3   s + 9s 2 + 26s + 24 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
  5. 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à:  10(s 2 + 3s + 2)     G(s) = 3   s + 3s 2 + 2 s + 1   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
  6. ⎡ x& 1 ⎤ ⎡ 0 1 0 ⎤ ⎡ x1 ⎤ ⎡1⎤     ⎢x& ⎥ = ⎢ 0 0 1⎥⎥ ⎢⎢x 2 ⎥⎥ + ⎢⎢1⎥⎥ u( t )     ⎢ 2⎥ ⎢ ⎢⎣x& 3 ⎥⎦ ⎢⎣− 6 − 11 − 6 ⎥⎦ ⎢⎣x 3 ⎥⎦ ⎢⎣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:      + + 4 1 1 1  0.5 s+3   - - - s+4 s+2 1 2 3 4 5     22 6   5 7 127 8
  7.       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
  8.      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à:  C(s) 1   = 3   R(s) s + 13s 2 + 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  sys1  y1    y u     u2  sys2  y 2  sys2    a  b     v1 z1 u1  y1  u1 sys1    sys1  u y     u2  y 2  u2 sys2  sys2  z2  v2 c  d   v2    y u  sys1  y  u sys1  sys2  y1    z1  e    sys2    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):  clc  sys1 = tf(1,[1 0])  129
  9. 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
  10. 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:    sys2   sys1  u1 2 x& = Ax + Bu 2 y1    10 1 + u uc  2 y = Cx + Du 3 y2    1 s+5 - 3   4   2(s + 1) 4   s+2   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
  11. 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à:  1     G(s) = 2   s + 2ζωn s + ω2n 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:  1     c( t ) = 1 − e ζω n t sin(βωn t + θ)   β 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   132
  12. gian đạt đến định được xác định bằng cách cho đạo hàm của c(t) bằng 0.  π     tp =             (4‐1)  ω 1 − ζ2 Giá trị đỉnh (percent overshoot‐p.o)khi kích thích là bước nhảy là:  2     p.o = e ζπ 1− ζ × 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 :  ω2n     G(s) = 2   s + 2ζωn s + ω2n 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ẽ:    d   R(s)  C(s) - s(s + 1)     1+es     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
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2