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

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

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ưu trong ct6_23.m)như sau:

clc

a = [‐0.5572 ‐0.7814;0.7814 0];

c = [1.9691 6.4493];

x0 = [1 ; 0]

sys = ss(a,[],c,[]);

initial(sys,x0)

pdf9 trang | Chuyên mục: MATLAB | Chia sẻ: yen2110 | Lượt xem: 582 | 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 2), để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
[],c,[]); 
initial(sys,x0) 
134
b. Đáp ứng 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 ứng đối với hàm bước nhảy: Để tìm đáp ứng của hệ thống đối vớ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.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 ứng 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ỳ. 
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  s bằng  jω  ta  có hàm  truyền  đạt  tần  số của hệ  thống  đó. Độ  rộng 
băng của hệ  thống ωB  là  tần số mà  tại đó biên độ của g giảm đi 1/√2. Tần số 
ứng với giá trị max của G(ω) gọi là ωr và có trị số là: 
2
nr 21 ζ−ω=ω  
Để vẽ đặc tính tần biên‐pha của một hệ thống ta dùng lệnh freqs. 
135
Ví dụ: Cho hàm truyền của một hệ thống là: 
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 = [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 
Ngược lạ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 
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 : 
10s9s5.4s
10)s(G 23 +++=  
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]; 
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ị 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‐‐ʹ) 
Hàm margin cho biết dự  trữ ổn định của hệ  thống. 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 
đạt được giới hạn ổn định. Dự trữ pha pm được định nghĩa là khoảng cách góc 
pha ϕr tới ‐180°. Hàm cho biết gm tại tần số đảo pha wcg và pm 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: 
GMFrequency: giá trị tần số mà tại đó đồ thị pha cắt đường thẳng nằ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ần số mà tại đó đồ thị biên cắt đường thẳng nằm 
ngang 0 dB(ứng với hệ số khuyếch đại 1) 
137
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ất ổn định. 
DMFrequency: giá trị tần số ứng với DelayMargin.   
Stable: =1 khi mach vòng kín ổn định; bằng 0 trong các trường hợp khác. 
Các đại lượng này có thể đọc được từ đồ thị tạo bởi margin. Để xác định 
dự trữ ổn định của một hệ thống cụ thể ta dùng các lệnh MATLAB(lưu trong 
ct6_32.m) như sau: 
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 
gian trễ ổn định 0.01s. Kết quả tính toan mới của allmargin sẽ thông báo tính 
không ổn định của hệ thống. Các lệnh MATLAB (lưu trong 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ộ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 
Nyquist ta có thể rút ra kết luận về tính ổn định của hệ kín(có phản hồi đơn vị 
â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) 
138
§3. ĐẶC TÍNH CỦA HỆ THỐNG ĐIỀU KHIỂN 
1. Tính ổn định: Tiêu chuẩn ổn định nói rằng hệ sẽ ổn định nếu các nghiệm 
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 dịnh hệ ổn định hay không. 
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 
hàm truyền T(s) theo b được xác định bằng: 
b
)s(T
b
)s(T
b/b
)s(T/)s(TSTb ∆
∆=∆
∆=  
Khi ∆b gần đến 0 ta có: 
)s(T
b
b
)s(TSTb ∂
∂=  
Độ nhạy tĩnh là giá trị của S khi t→0. Độ nhạy động được tính bằng cách thay s 
bằng jω và vẽ đường S theo ω. Biên độ của S(jω) đo sai số của hệ thống. 
Ví dụ: Khảo sát hệ điều khiển như hình vẽ sau: 
K
Thiết bịBộ bù
)1s(
b
+
Sensor
h
- 
R(s) 
C(s)  
139
Trong đó b có trị định mức là 4 và h có trị định mức là 0,5. Tìm độ nhạy T(s) 
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, vẽ modul của hàm độ nhạy theo h với K = 2 và K = 0.5. 
Hàm truyền của hệ thống là: 
Kbh1s
Kb)Ts( 2 ++=  
Với b = 4 và h = 0.5 ta có ωB = 1 + 2K. 
Độ nhạy của T(s) theo b khi b = 4 và h = 0.5 là: 
K21s
1s
Kbh1s
1s
)s(T
b
b
)s(TSTb ++
+=++
+=∂
∂=  
K21s
K2
Kbh1s
Kbh
)s(T
h
b
)s(TSTh ++
−=++
−=∂
∂=  
Các lệnh MATLAB (lưu trong ct6_35.m) như sau: 
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ʹ); 
Hình trên đường có ứng với K = 0.5 và hình dưới đường cao ứng với K = 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 đạ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 b tăng nhanh bên ngoài ωB. 
3. Sai số xác lập: Khảo sát hệ như hình vẽ: 
140
 R(s)
H(s)
G(s)
-
  C(s)
Hàm truyền của hệ kín là: 
)s(G)s(H1
)s(G
)s(R
)s(C
+=  
Sai số của hệ kín là: 
    E(s) = R(s) – H(s)C(s) = 
)s(G)s(H1
)s(R
+  
Sử dụng định lí giá trị cuối ta có: 
)s(H)s(G1
)s(sRlime
sss += ∞→  
Đầu vào bước nhảy đơn vị: 
ps
ss K1
1
)s(H)s(Glim1
1e +=+=
∞→
Đầu vào tăng tuyến tính đơn vị: 
vs
ss K
1
)s(H)s(sGlim1
1e =+=
→∞
Đầu vào parabol đơn vị: 
a
2
s
ss K
1
)s(H)s(Gslim1
1e =+=
→∞
Ta có thể dùng Symbolic Math để tính các giới hạn trên. 
§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 
hỉnh là phương pháp quỹ đạo nghiệm. Quỹ đạo nghiệm là quỹ đạo điểm cực, 
hợp  thành bởi  các  điểu  cực  của hệ  thống, phụ  thuộc vào hệ  số khuyếch  đại 
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ẽ  được  quỹ  đạo 
nghiệm của hệ thống ta dung hàm rlocus. Ta xét hệ thống sau: 
cG
k
0G
MG
-
u  y
141
Cú pháp của rlocus là 
  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 
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ẻ. Khi 
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  rlocusfind  được  thưc  hiện.  Ta  dùng  các  lện MATLAB  sau  (lưu  trong 
ct6_36.m)để vẽ quỹ đạo nghiệm của một hệ 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 
sisotool vào cửa sổ lệnh MATLAB. 
142

File đính kèm:

  • pdfgiao_trinh_matlab_chuong_6_matlab_va_dieu_khien_tu_dong_phan.pdf