Khảo sát ứng dụng MATLAB trong điều khiển tự động - Nhóm lệnh về quỹ đạo nghiệm (Roots Locus)
a) Công dụng:
Vẽ biểu đồ cực-zero của hệ thống.
b) Cú pháp:
[p,z]= pzmap(num,den)
[p,z]= pzmap(a,b,c,d)
[p,z]= pzmap(a,b,c,d)
c) Giải thích:
Lệnh pzmap vẽ biểu đồ cực-zero của hệ LTI. Đối với hệ SISO thì các cực và zero của
hàmtruyền được vẽ.
Nếu bỏ qua các đối số ngõ ra thì lệnh pzmap sẽ vẽ ra biều đồ cực-zero trên màn hình.
pzmap là phương tiện tìm ra các cực và zero tuyền đạt của hệ MIMO.
pzmap(a,b,c,d) vẽ các cực và zero của hệ không gian trạng thái trong mặt phẳng phức. Đối
với các hệ thống MIMO, lệnh sẽ vẽ tất cả các zero truyền đạt từ tất cả các ngõ vào tới tất cả các
ngõ ra. Trong mặt phẳng phức, các cực được biểu diễn bằng dấu ×còn các zero được biểu diễn
bằng dấu o.
pzmap(num,den) vẽ các cực và zero của hàm truyền trong mặt phẳng phức. Vector num và
den chứa các hệ số tử số và mẫu số theo chiều giảm dần số mũ của s.
pzmap(p,z) vẽ các cực và zero trong mặt phẳng phức. Vector cột p chứa tọa độ các cực và
vector cột z chứa tọa độ các zero trong mặt phẳng phức. Lệnh này vẽ các cực và zero đã được
tính sẵn trong mặt phẳng phức.
tắt dần được chỉ định trong vector z và vẽ đường tần số tự nhiên được chỉ định trong vector wn. sgrid(z,wn,‘new’) xóa màn hình đồ họa trước khi vẽ các đường tỉ số tắt dần và tần số tự nhiên được chỉ định trong vector z và wn. Trạng thái hold on được thiết lập. d) Ví dụ: Trích từ trang 11-200 sách ‘Control System Toolbox’ Vẽ lưới trong mặt phẳng s trên quỹ đạo nghiệm của hệ thống có hàm truyền : num = [2 5 1]; % ta có thể thay đổi 2 dòng num=…, den=… thành dòng lệnh sau: Khảo sát ứng dụng MATLAB trong điều khiển tự động den = [1 2 3]; % H(s)=tf([2 5 1],[1 2 3]); rlocus(num,den) title(‘Quy dao nghiem’) sgrid 5. Lệnh ZGRID a) Công dụng: Vẽ lưới tỉ lệ tắt dần và tần số tự nhiên cho quỹ đạo nghiệm gián đoạn. b) Cú pháp: zgrid zgrid(‘new’) zgrid(z,wn) zgrid(z,wn,‘new’) c) Giải thích: Lệnh zgrid tạo lưới quỹ đạo cho nghiệm hoặc biểu đồ cực-zero trong mặt phẳng z. Các đường hằng số tỉ lệ tắt dần (ζ) và tần số tự nhiên chuẩn hóa sẽ được vẽ. ζ được thay đổi từ 0 tới 1 theo từng nấc thay đổi là 0.1 và tần số tự nhiên được vẽ từ 0 tới pi với từng nấc thay đổi là pi/ω. zgrid(‘new’) xóa màn hình đồ họa trước khi vẽ lưới và thiết lập trạng thái hold on để quỹ đạo nghiệm hoặc biểu đồ cực-zero được vẽ lên lưới sử dụng các lệnh : zgrid('new') rlocus(num,den) hoặc pzmap(num,den) Khảo sát ứng dụng MATLAB trong điều khiển tự động zgrid(z,wn) vẽ hằng số tắt dần được chỉ định trong vector z và vẽ hằng số tần số tự nhiên cho các tần số chuẩn hóa được chỉ định trong vector wn. Các tần số chuẩn hóa có thể được vẽ bằng lệnh zgrid(z,wn/Ts) với tần số là thời gian lấy mẫu. zgrid(z,wn,‘new’) xóa màn hình đồ họa trước khi vẽ tỉ số tắt dần và tần số tự nhiên được chỉ định trong vector z và wn. Trạng thái hold on được thiết lập. zgrid([ ],[ ]) sẽ vẽ ra vòng tròn đơn vị. d) Ví dụ: Trích từ 11-236 sách ‘Control System Toolbox’ Vẽ lưới trong mặt phẳng cho quỹ đạo nghiệm của hệ thống có hàm truyền : 8.06.1 5.14.32)( 2 2 +− +− = sz zzzH num = [2 -3.4 1.5]; den = [1 -1.6 0.8]; axis(‘square’) zgrid(‘new’) rlocus(num,den) title(‘Ve luoi cho quy dao nghiem’) Khảo sát ứng dụng MATLAB trong điều khiển tự động CÁC BÀI TẬPVỀ QUỸ ĐẠO NGHIỆM Bài 1: KGH = )5s)(4s(s k ++ với k = 2 » num = 2; » den = [1 9 20 0]; » rlocus(num,den) - 7 - 6 - 5 - 4 - 3 - 2 - 1 0 1 2 - 1 0 - 8 - 6 - 4 - 2 0 2 4 6 8 1 0 R e a l A x i s Im a g Ax is Khảo sát ứng dụng MATLAB trong điều khiển tự động Từ đồ thị cho ta: 1. Điểm cực: 0 ,-4,-5. 2. Quỹ đạo nghiệm có 3 nhánh. 3. Điểm zero ở vô cùng (∞ ). 4. Điểm tách được xác định bằng cách từ cửa sổ MATLAB ta nhập: » num = 2; » den = [1 9 20 0]; » rlocus(num,den); » rlocfind(num,den) Sau khi nhập lệnh thì trên cửa sổ lệnh sẽ xuất hiện hàng chữ: Select a point in the graphics window (hãy chọn 1 điểm trên đồ thị minh họa). Trên đồ thị sẽ có thước cho ta chọn điểm – kéo rê chuột để chọn điểm cần chọn. selected_point = -1.4516 Điểm tách có giá trị: -1.4516 Giao điểm của quỹ đạo nghiệm với trục ảo (tương tự như tìm điểm tách): +4.472j, -4.472j. Từ giá trị tại giao điểm của quỹ đạo nghiệm với trục ảo ta thế vào phương trình đặc trưng: F(s) = s3+9s2+20s+k = 0 F(jw) = -jw3-9w2+20jw+k = 0 ⇒ kgh = 180 Kết luận: hệ thống sẽ ổn định khi 0 < k < 180 Bài 2: KGH = )20s4s)(4s(s k 2 +++ (k = 2) » num = 2; » den = [1 8 36 80 0]; » rlocus(num,den) Khảo sát ứng dụng MATLAB trong điều khiển tự động - 6 - 5 - 4 - 3 - 2 - 1 0 1 2 - 5 - 4 - 3 - 2 - 1 0 1 2 3 4 5 R e a l A x i s Im a g Ax is Từ đồ thị cho ta: 1. Điểm cực: 0,-4,-2+4j,-2-4j; 2. Quỹ đạo nghiệm có 4 nhánh 3. Điểm zero ở vô hạn (∞ ) 4. Điểm tách được xác định bằng cách từ cửa sổ MATLAB ta nhập: » num = 2; » den = [1 8 36 80 0]; » rlocus(num,den); » rlocfind(num,den); Sau khi nhập lệnh thì trên cửa sổ lệnh sẽ xuất hiện hàng chữ: Select a point in the graphics window (hãy chọn 1 điểm trên đồ thị minh họa). Trên đồ thị sẽ có thước cho ta chọn điểm – kéo rê chuột để chọn điểm cần chọn. selected_point = -2, -2.0184 + 2.4561j, -2.0184 - 2.4561j Điểm tách có giá trị: -2, -2.0184 + 2.4561j, -2.0184 - 2.4561j Giao điểm của quỹ đạo nghiệm với trục ảo (tương tự như tìm điểm tách): +3.16j, -3.16j Từ giá trị tại giao điểm của quỹ đạo nghiệm với trục hoành ta thế vào phương trình đặc trưng: F(jw) = w4-8jw3-36w2+80jw+k ⇒ kgh = 260 Kết luận : hệ thống sẽ ổn định khi 0 < k < 260 Bài 3: KGH = 2s k (k = 2) » num = 2; » den =[1 0 0 ]; » rlocus(num,den) Khảo sát ứng dụng MATLAB trong điều khiển tự động - 1 - 0 . 8 - 0 . 6 - 0 . 4 - 0 . 2 0 0 . 2 0 . 4 0 . 6 0 . 8 1 - 1 . 5 - 1 - 0 . 5 0 0 . 5 1 1 . 5 R e a l A x i s Im a g Ax is Từ đồ thị ta có: 1. Điểm cực : 0 2. Quỹ đạo nghiệm có 2 nhánh 3. Điểm zero ở vô hạn (∞ ) Điểm tách có giá trị: 0 Kết luận: hệ thống không ổn định. Bài 4: KGH = 3s k » num = 2; » den =[1 0 0 0]; » rlocus(num,den) Khảo sát ứng dụng MATLAB trong điều khiển tự động - 1 - 0 . 8 - 0 . 6 - 0 . 4 - 0 . 2 0 0 . 2 0 . 4 0 . 6 0 . 8 1 - 1 - 0 . 8 - 0 . 6 - 0 . 4 - 0 . 2 0 0 . 2 0 . 4 0 . 6 0 . 8 1 R e a l A x i s Im a g Ax is Từ đồ thị ta có: 1. Điểm cực: 0. 2. Quỹ đạo nghiệm có 3 nhánh. 3. Điểm zero ở vô hạn (∞). 4. Điểm tách có giá trị: 0 Kết luận: hệ thống không ổn định (vì hai nhánh của quỹ đạo nghiệm số luôn nằm nửa phải mặt phẳng phức). Bài 5: KGH = )1ts(s k + (k = 1, t = 2) » num = 1; » den = [2 1 0]; » rlocus(num,den) Khảo sát ứng dụng MATLAB trong điều khiển tự động - 1 - 0 . 8 - 0 . 6 - 0 . 4 - 0 . 2 0 0 . 2 0 . 4 0 . 6 0 . 8 1 - 2 - 1 . 5 - 1 - 0 . 5 0 0 . 5 1 1 . 5 2 R e a l A x i s Im a g Ax is 1. Điểm cực : 0,-0.5 2. Quỹ đạo nghiệm có 2 nhánh 3. Điểm zero ở vô hạn (∞ ) 4. Điểm tách được được xác định bằng cách từ cửa sổ MATLAB ta nhập: » num = 1; » den = [2 1 0 ]; » rlocus(num,den); » rlocfind(num,den) Sau khi nhập lệnh thì trên cửa sổ lệnh sẽ xuất hiện hàng chữ: Select a point in the graphics window (hãy chọn 1 điểm trên đồ thị minh họa). Trên đồ thị sẽ có thước cho ta chọn điểm – kéo rê chuột để chọn điểm cần chọn. selected_point = -0.253 Điểm tách có giá trị: -0.253- Kết luận: hệ thống luôn ổn định (vì quỹ đạo nghiệm luôn nằm ở nửa trái mặt phẳng phức). Bài 6: KGH = 2s )1ts(k + (k = 1, t = 1) » num = [1 1]; » den = [1 0 0]; » rlocus(num,den) Khảo sát ứng dụng MATLAB trong điều khiển tự động - 3 - 2 . 5 - 2 - 1 . 5 - 1 - 0 . 5 0 0 . 5 1 - 1 - 0 . 8 - 0 . 6 - 0 . 4 - 0 . 2 0 0 . 2 0 . 4 0 . 6 0 . 8 1 R e a l A x i s Im a g Ax is 1. Điểm cực: 0 2. Quỹ đạo nghiệm có 2 nhánh 3. Điểm zero ở ∞, -1 4. Điểm tách được được xác định bằng cách từ cửa sổ MATLAB ta nhập: » num = [1 1]; » den = [1 0 0]; » rlocus(num,den); » rlocfind(num,den) Sau khi nhập lệnh thì trên cửa sổ lệnh sẽ xuất hiện hàng chữ: Select a point in the graphics window (hãy chọn 1 điểm trên đồ thị minh họa). Trên đồ thị sẽ có thước cho ta chọn điểm – kéo rê chuột để chọn điểm cần chọn. selected_point = -2 Điểm tách có giá trị: -2. Kết luận: hệ thống ở biên ổn định. Bài 7: KGH = )1st)(1st( k 21 ++ (k = 1, t1 = 2, t2 = 1) » num = 1; » den = [2 3 1]; » rlocus(num,den) Khảo sát ứng dụng MATLAB trong điều khiển tự động - 2 - 1 . 5 - 1 - 0 . 5 0 0 . 5 1 - 2 - 1 . 5 - 1 - 0 . 5 0 0 . 5 1 1 . 5 2 R e a l A x i s Im a g Ax is 1. Điểm cực: -0.5, -1. 2. Quỹ đạo nghiệm có 2 nhánh 3. Điểm zero ở vô hạn (∞ ) 4. Điểm tách được được xác định bằng cách từ cửa sổ MATLAB ta nhập: » num = 1; » den = [2 3 1]; » rlocus(num,den); » rlocfind(num,den) Sau khi nhập lệnh thì trên cửa sổ lệnh sẽ xuất hiện hàng chữ: Select a point in the graphics window (hãy chọn 1 điểm trên đồ thị minh họa). Trên đồ thị sẽ có thước cho ta chọn điểm – kéo rê chuột để chọn điểm cần chọn. selected_point = -0.75. Điểm tách có giá trị: -0.75 Kết luận: hệ thống luôn ổn định. Bài 8: KGH = ( ) ( ) ( ) 24s1s1s k +−+ (k = 10) » num =10; » den = [ 1 8 15 -8 -16]; » rlocus(num,den) Khảo sát ứng dụng MATLAB trong điều khiển tự động - 6 - 5 - 4 - 3 - 2 - 1 0 1 2 3 - 5 - 4 - 3 - 2 - 1 0 1 2 3 4 5 R e a l A x i s Im a g Ax is 1. Điểm cực : 1, -1 và 1 cực kép -4. 2. Quỹ đạo nghiệm có 4 nhánh. 3. Điểm zero: có 4 zero ở vô cùng (∞ ). 4. Điểm tách được được xác định bằng cách từ cửa sổ MATLAB ta nhập: » num =10; » den = [ 1 8 15 -8 -16]; » rlocus(num,den); » rlocfind(num,den) Sau khi nhập lệnh thì trên cửa sổ lệnh sẽ xuất hiện hàng chữ: Select a point in the graphics window (hãy chọn 1 điểm trên đồ thị minh họa). Trên đồ thị sẽ có thước cho ta chọn điểm – kéo rê chuột để chọn điểm cần chọn. selected_point = 0.2308, -4 Điểm tách có giá trị: 0.2308, -4 Kết luận: Hệ thống luôn không ổn định vì tồn tại 1 nghiệm của phương trình đặc trưng nằm bên phải mặt phẳng phức. Bài 9: Trích từ trang 5-19 sách ‘Control System Toolbox’ Bài này tổng hợp các lệnh: » h=tf([4 8.4 30.8 60],[1 4.12 17.4 30.8 60]); » subplot(221) » bode(h) » subplot(222) » step(h) » subplot(223) » pzmap(h) » subplot(224) Khảo sát ứng dụng MATLAB trong điều khiển tự động » plot(rand(1,100) » plot(rand(1,100)) F r e q u e n c y ( r a d / s e c ) P ha s e (d e g) ; M a gn itu de (d B ) B o d e D i a g r a m s - 2 0 0 2 0 F r o m : U ( 1 ) 1 0 - 1 1 0 0 1 0 1 - 1 0 0 0 1 0 0 To : Y (1 ) T i m e ( s e c . ) A m pl itu de S t e p R e s p o n s e 0 2 4 6 8 1 0 1 2 0 0 . 5 1 1 . 5 F r o m : U ( 1 ) To : Y (1 ) R e a l A x i s Im a g A x is P o l e - z e r o m a p - 3 - 2 - 1 0 1 - 4 - 2 0 2 4 0 5 0 1 0 0 0 0 . 2 0 . 4 0 . 6 0 . 8 1 b a i t o n g h o p Bài 10: Cho hàm truyền như sau: ( )( )2s1s 4s)s(G ++ + = Viết theo cấu trúc sau ta có được đồ thị biểu diễn quỹ đạo nghiệm: » num=[1 4]; » den=conv([1 1],[1 2]) » rlocus(num,den) Kết quả như hình sau: Khảo sát ứng dụng MATLAB trong điều khiển tự động
File đính kèm:
- Khảo sát ứng dụng MATLAB trong điều khiển tự động - Nhóm lệnh về quỹ đạo nghiệm (Roots Locus).pdf