Khảo sát ứng dụng MATLAB trong điều khiển tự động
KHảO SáT Sự ổN ĐịNH CủA Hệ THốNG
Lý THUYếT:
Hệ thống ổn định ở trạng thái hở, sẽ ổn định ở trạng thái kín nếu biểu đồ
Nyquist không bao điểm (-1+i0) trên mặt phẳng phức.
Hệ thống không ổn định ở trạng thái hở, sẽ ổn định ở trạng thái kín nếu biểu đồ
Nyquist bao điểm (-1+i0)p lần ngợc chiều kim đồng hồ (p là số cực GH nằm ở
phải mặt phẳng phức).
Từ dấu nhắc của cửa sổ MATLAB, ta nhập:
ằ num = [nhập các hệ số của tử số theo chiều giảm dần của số mũ].
ằ den = [nhập các hệ số của mẩu số theo chiều giảm dần của số mũ].
ằ nyquist(num,den)
Bài tập 1:
GH(s) =
st1
k
(với k =10, t =1)
ằ num = 10;
ằ den = [-1 1];
ằ nyquist(num,den)
Kết quả:
Real Axis
Imaginary Axis
Nyquist Diagrams
0 2 4 6 8 10
-5
-4
-3
-2
-1
20
40
60
80
Kết luận:
Độ dự trữ biên (Gm = 0 dB).
Độ dự trữ pha (Pm = 0).
Warning: Closed loop is unstable (hệ vòng kín không ổn định).
Bài tập 2:
GH(s) =
( )
st1s
k
(k = 10, t = 1)
ằ num = 10;
ằ den = [-1 1 0];
ằ nyquist(num,den)
Khảo sát ứng dụng MATLAB trong điều khiển tự động
Real Axis
Imaginary Axis
Nyquist Diagrams
0 2 4 6 8 10
-1000
-800
-600
-400
-200
0
0
-80
-60
-40
-20Kết luận:
Độ dự trữ biên (Gm = 0 dB).
Độ dự trữ pha (Pm = 0).
Warning: Closed loop is unstable (hệ vòng kín không ổn định).
Bài tập 3:
GH(s) =
( )( )
1st1st
k
21
++
(k =10, t
1
= 1, t
2
= 2)
ằ num = 10;
ằ den = [2 3 1];
ằ nyquist(num,den)
Khảo sát ứng dụng MATLAB trong điều khiển tự động
Real Axis
Imaginary Axis
Nyquist Diagrams
10
0
-150
-100
-50
Kết luận: hệ thống ổn định.
Độ dự trữ biên (Gm = ).
Độ dự trữ pha (Pm = 38.94), tại tần số cắt biên 2.095 rad/sec.
Bài tập 4:
GH(s) =
( )( )
1st1sts
k
21
++
(k = 10 t
1
=1, t
2
=2)
ằ num = 10;
ằ den = [2 3 1 0];
ằ nyquist(num,den)
Khảo sát ứng dụng MATLAB trong điều khiển tự động
Real Axis
Imaginary Axis
Nyquist Diagrams
-30 -25 -20 -15 -10 -5
-1000
40
60
Gm = 0 dB, Pm = 0 (unstable closed loop)
10
-1
10
0
-250
-200
-150
-100
Kết luận: hệ thống không ổn định.
Độ dự trữ biên (Gm = 0 dB).
Độ dự trữ pha (Pm = 0)
Bài tập 5:
GH(s) =
( )( )( )
1st1st1sts
k
321
+++
( t
1
=1, t
2
= 2, t
3
= 3, k = 10)
ằ num = 10;
Khảo sát ứng dụng MATLAB trong điều khiển tự động
Frequency (rad/sec)
Phase (deg); Magnitude (dB)
Bode Diagrams
-50
0
50
Gm = 0 dB, Pm = 0 (unstable closed loop)
10
-2
10
-1
10
0
-300
-200
-100
Kết luận: hệ thống không ổn định.
Độ dự trữ biên (Gm = 0 dB).
Độ dự trữ pha (Pm = 0).
Bài tập 6: Sau đây là dạng bài tập tổng quát với tử và mẫu của một hàm truyền là các số
liệu mà ta phải nhập vào.
Chơng trình:
%%Tap tin khao sat on dinh he thong
%%PHAM QUOC TRUONG - DT: 9230774
function ondinh()
promptstr={'Nhap tu so num:','Nhap mau so den:'};
inistr={'',''};
dlgTitle='Nhap du lieu';
F(s) = ansn+an
-1
++a
0
với an
0
1. Điều kiện cần để hệ ổn định:
Các hệ số aj (j = 0, n-1) cùng dấu với an.
aj
0 (j = 0,,n)
2. Tiêu chuẩn Hurwitz:
Điều kiện cần và đủ để hệ ổn định (các nghiệm của phơng trình đặt trng nằm bên
trái mặt phẳng phức) là tất cả các định thức Hurwitz Dk đều cùng dấu (k = 0 n)
3. Tiêu chuẩn Routh:
Điều cần và đủ để hệ ổn định là tất cả các phần tử của cột 1 bảng Routh đều cùng
dấu, nếu có sự đổi dấu thì số lần đổi dấu thì số lần đổi dấu bằng số nghiệm ở phải mặt
phẳng phức.
Bài tập 7:Cho hệ thống điều khiển phản hồi:
Khảo sát ứng dụng MATLAB trong điều khiển tự động
Dùng giản đồ Bode để khảo sát ổn định của hệ thống trên.
Khảo sát hệ xem hệ có ổn định hay không.
Trớc tiên ta dùng lệnh serieskết nối 2 hệ thống:
ằ num1 = [1 1];
ằ den1 = [1 0];
ằ num2 = 2;
ằ den2 = [1 4 3];
ằ [num,den] = series(num1,den1,num2,den2)
num =
20
Gm = Inf, Pm=77.748 deg. (at 0.65148 rad/sec)
10
-1
10
0
10
1
-180
-160
-140
-120
-100
Kết luận:
Biên dự trữ: Gm =
Pha dự trữ Pm = 77.74 tại tần số cắt biên wb = 0.65
Vậy hệ thống ổn định.
Vẽ biểu đồ Nyquist:
ằ nyquist(num,den)
Real Axis
Imaginary Axis
Nyquist Diagrams
-1 -0.9 -0.8 -0.7 -0.6 -0.5 -0.4 -0.3 -0.2 -0.1
-60
-40
-20
0
20
40
Và ta sẽ có:
num =
0 20 10
den =
1 5 0
Ta nhập tiếp:
ằ numc = [20 10];
ằ denc = [1 5 0];
ằ numd = 1;
ằ dend = [1 1];
ằ [num,den] = feedback(numc,denc,numd,dend)
(nếu sau dend, có 1 tức là hồi tiếp dơng)
Khảo sát ứng dụng MATLAB trong điều khiển tự động
num =
0 20 30 10
den =
1 6 25 10
Hàm truyền của hệ thống là: G(s)H(s) =
10s25s6s
10s30s20
23
2
+++
++
Vẽ giản đồ Bode của hệ:
ằ num = [20 30 10];
ằ den = [1 6 25 10];
ằ bode(num,den)
Frequency (rad/sec)
Phase (deg); Magnitude (dB)
0
5
10
Gm = Inf, Pm=103.14 deg. (at 20.347 rad/sec)
10
0
10
1
-150
-100
-50
0
Kết luận:
Hệ ổn định.
Biên dự trữ: Gm = .
Pha dự trữ: Pm = 103.14
o
tại tần số cắt biên là 20.347 rad/sec.
Chú ý: Sau khi đã vào cửa sổ lập trình, ta lập chơng trình khảo sát hệ có phơng trình đặc
trng theo tiêu chuẩn đại số (tiêu chuẩn Hurwitz) xem hệ có ổn định hay không.
Trong cửa sổ lệnh (cửa sổ làm việc), gọi lệnh ằ hurwitz (chơng trình đã đợc soạn
thảo trong phần lập trình mang tên Hurwitz) sẽ có những hàng chữ:
cho biet so bac cao nhat cua ham: (nhập vào hệ số an)
cho biet he so a(0):
. . .
cho biet he so a(n):
Dới dây là phần đánh vào cửa sổ lập trình
%%%%%%%%%%% PHAM QUOC TRUONG - MSSV: 97102589 %%%%%%%%%%%
%%%%%%%%%%% DT: 9230774 %%%%%%%%%%%
Cac dinh thuc Hurwitz:
D[1] = 1
D[2] = 3
D[3] = 4
D[4] = -1
D[5] = -1
- HE THONG KHONG ON DINH.
Ví dụ 2: Cho phơng trình đặc trng:
F(s) = 5s
4
+ 8s
3
+ 21s
2
+ 10s + 3
ằ Hurwitz
Cho biet so bac cao nhat cua ham: 4
Cho biet he so a(0) = 5
Cho biet he so a(1) = 8
Cho biet he so a(2) = 21
Cho biet he so a(3) = 10
Cho biet he so a(4) = 3
Cac dinh thuc Hurwitz:
D[1] = 5
D[2] = 8
D[3] = 118
D[4] = 988
D[5] = 2964
- HE THONG ON DINH. -
Ví dụ 3: Cho phơng trình đặc trng:
%%%%%%%%%%%%%%%%%% Dien thoai: 9230774 %%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Chạy chơng trình các ví dụ:
Ví dụ 1: Cho phơng trình đặc trng
F(s) = s
4
+ 3s
3
+ 2s
2
+ 2s + 1
ằ routh
- CHUONG TRINH TAO HAM ROUTH -
Cho biet so bac cao nhat cua he: 4
Cho biet he so a(0) = 1
Cho biet he so a(1) = 3
Cho biet he so a(2) = 2
Cho biet he so a(3) = 2
Cho biet he so a(4) = 1
- HE THONG KHONG ON DINH. -
Ví dụ 2: Cho phơng trình đặc trng
Kh¶o s¸t øng dơng MATLAB trong ®iỊu khiĨn tù ®éng
F(s) = s
5
+ s
4
+ 4s
3
+ 4s
Cho biet he so a[4] = 1
Cho biet he so a[5] = 10
- HE THONG ON DINH.
MỘT SỐ CHƯƠNG TRÌNH KHẢO SÁT, THIẾT
KẾ HỆ THỐNG ĐIỀU KHIỂN TỰ ĐỘNG
(Nếu bạn nào quan tâm đến các chương trình thì liên hệ với PQT)
1. Chương trình 1:
Viết chương trình xác đònh hàm truyền vòng kín có khâu hồi tiếp đơn vò.
2. Chương trình 2:
Viết chương trình tìm cực và zero của hàm truyền.
3. Chương trình 3:
Viết chương trình khảo sát tính ổn đònh của hệ tuyến tính liên tục dùng giản đồ Bode.
4. Chương trình 4:
Tạo ra lệnh hurwitz để xét tính ổn đònh của hệ thống tuyến tính liên tục theo
tiêu chuẩn Hurwitz.
5. Chương trình 5:
Viết chương trình tự động vẽ giản đồ Bode, biểu đồ Nyquist, quỹ đạo nghiệm của
hệ tuyến tính liên tục.
6. Chương trình 6:
Viết chương trình để tìm các chỉ tiêu trong miền thời gian của hệ bậc 2.
7. Chương trình 7:
Kh¶o s¸t øng dơng MATLAB trong ®iỊu khiĨn tù ®éng
Viết chương trình để thực hiện bổ chính cho một hệ thống tuyến tính liên tục
bằng giản đồ Bode.
8. Chương trình 8:
Viết chương trình khảo sát ảnh hưởng của khâu PID vào hệ thống tuyến tính bậc 2.
trong các tập tin này chương trình sẽ không thực hiện được.
9. Chương trình 9:
Viết lệnh dùng để khảo sát tính ổn đònh của hệ thống tuyến tính gián đoạn
theo tiêu chuẩn Jury.
Dừng
Đ
S
z = 0
Đ
S
Kh¶o s¸t øng dông MATLAB trong ®iÒu khiÓn tù ®éng
Kh¶o s¸t øng dông MATLAB trong ®iÒu khiÓn tù ®éng
Kh¶o s¸t øng dơng MATLAB trong ®iỊu khiĨn tù ®éng
Chương trình bổ chính cho hệ thống tuyến tính liên tục