Matlab được phát triển bởi công ty Math Works Inc, là một chương trình phân tích ma trận, thiết kế điều khiển, nhận dạng hệ thống và đồ thị kỹ thuật. Gõ đường dẫn : MATLAB khi đó sẽ xuất hiện dấu nhắc “>>” hoặc doubleclick vào biểu tượng Matlab trên màn hình nền. Matlab cũng có khả năng thi hành một dãy lệnh chứa trong một tập tin, tập tin file.M. Một chương trình có thể được viết và ghi lại ở dạng ASCII với tên tập tin có phần mở rộng ra trong thư mục mà Matlab đang chạy. Tên tập tin phải ở dạng chữ thường. Dạng tập tin file.M này được coi như là tập tin hay tập lệnh nguyên bản. Để chạy chương trình tại dấu nhắc “>>”đánh tên tập tin không có phần mở rộng .m Lệnh có dạng ở hình sau. Matlab dùng phép gán để dấu « = » chỉ ra rằng gán biểu thức vào một biến. >>biến= biểu thức Dạng lệnh Matlab >>: dấu nhắc lệnh Biểu thức nhập vào mà không có tên biến thì Matlab tính toán và kết quả được nhớ và hiển thị sau từ ans. Kết quả một biểu thức gán vào một tên biến để tiện cho việc sử dụng khác. Tên biến có thể đến 19 ký tự (bao gồm chữ và số), tuy nhiên ký tự đầu tiên của một tên biến phải bắt đầu bằng một chữ. Chuỗi ký tự: Một chuỗi ký tự nối tiếp nhau trong các câu sau được gôi là một chuỗi ký tự hoặc biến câu. >>C=’Good’ Kết quả sẽ là : C=Good
Trang 1M ỤC LỤC
Bài 1: Kh ảo sát hệ thống điều khiển tự động dùng MATLAB
1.2.4 Miền tần số của hệ thống điều khiển
1.2.5 Quỹ đạo nghiệm số
1.3 Thí nghiệm
1.3.1.Hàm truyền đạt, và phương trình trạng thái
1.3.2.Đáp ứng và phân tích chất lượng hệ thống
1.3.3.Khảo sát hệ thống tự động dùng giản đồ Bode và Nyquist
1 3.4 Khảo sát hệ thống bằng phương pháp quỹ đạo nghiệm số
1.4 Kiểm tra đánh giá
2.3.1 Thiết kế bộ hiệu chỉnh sớm pha
2.3.2 Thiết kế bộ hiệu chỉnh trễ pha
2.3.3.Thiết kế bộ hiệu chỉnh sớm trễ pha
2.3.4 Thiết kế bộ điều khiển PID dung sisotool trong Matlab
2.4 Kiểm tra đánh giá
Bài 3: Kh ảo sát và mô phỏng hệ thống điều khiển tự động dùng Simulink 97
3.1 Mục tiêu
3.2 Nội dung
3.2.1 Giới thiệu về Simulink
Trang 22
Các bước tiến hành mô phỏng
3.2.2 Hàm truyền lò nhiệt và đáp ứng hệ hở của Ziegler-Nichol
3.2.3 Điều khiển on/off
3.2.4 Điều khiển tuyến tính (tỉ lệ)
3.2.5.Hàm truyền động cơ DC
3.2.6 Điều khiển PID
3.2.7 Phương trình động học của của hệ con lắc ngược
3.2.8 Hệ thống điều khiển robotic
3.3 Thí nghiệm
3.3.1 Khảo sát hệ thống ổn định nhiệt độ
3.3.2.Khảo sát mô hình hệ thống điều khiển tốc độ và vị trí động cơ DC
3.3.3 Mô phỏng hệ thống điều khiển hệ con lắc ngược
3.3.4 Hệ thống điều khiển ronotic
3.4 Kiểm tra đánh giá
Bài 4: Hi ện thực hệ thống điều khiển nhiệt độ
4.1.Mục tiêu
4 2.Nội dung
4.2.1.Sơ đồ khối, nguyên lí hoạt động của hệ thống điều khiển nhiệt độ
4.2.2.Hàm truyền đạt lò điện và mô hình của Ziegler-Nichols
4.2.3.Nguyên lý điều khiển ON-FF (dùng khâu rơle có trễ)
4 2 4.Nguyên lý điều khiển tuyến tính
4.2.5 Điều khiển PID : PI và PD
4.3 Thí nghiệm
4.3.1 Nhận dạng hàm truyền lò nhiệt
4.3.2 Điều khiển PID số
4.3.3 Mô phỏng hệ thống điều khiển số lò nhiệt dùng Matlab
Bài 5: Hi ện thực hệ thống điều khiển tốc độ động cơ một chiều
5.3 1 Tìm hàm truyền động cơ DC dựa vào đáp ứng hệ hở
5.3.2 Điều khiển PID vòng kín hệ thống điều khiển tốc độ động
cơ 5.3.3 Mô phỏng hệ thống điều khiển số tốc độ động cơ DC dùng Matlab
5.5.Nhận xét đánh giá
Bài 7 : H ệ thống điều khiển mức nước
Trang 3ĐỘNG DÙNG MATLAB
-Căn bản Matlab: giới thiệu,mô tả toán học hệ thống dùng hàm truyền đạt, phương pháp biến trạng thái, đặc tính động học, khảo sát tính ổn định hệ, đánh giá chất lượng (sai số xác lập)
- Phân tích ở miền tần số: Biểu đồ Bode, Nyquist
-Khảo sát hệ dùng phương pháp quỹ đạo nghiệm số
1.2 Nội dung
1.2.1.1.Giới thiệu về Matlab
Matlab được phát triển bởi công ty Math Works Inc, là một chương trình phân tích ma trận, thiết kế điều khiển, nhận dạng hệ thống và đồ thị kỹ thuật
Gõ đường dẫn : MATLAB khi đó sẽ xuất hiện dấu nhắc “>>” hoặc double-click vào biểu tượng Matlab trên màn hình nền
Matlab cũng có khả năng thi hành một dãy lệnh chứa trong một tập tin, tập tin file.M Một chương trình có thể được viết và ghi lại ở dạng ASCII với tên tập tin có phần mở rộng ra trong thư mục mà Matlab đang chạy Tên tập tin phải ở dạng chữ thường Dạng tập tin file.M này được coi như là tập tin hay tập lệnh nguyên bản Để chạy chương trình tại dấu nhắc “>>”đánh tên tập tin không có phần mở rộng m
Trang 4Các vector có cùng kích thước có thể cộng hoặc trừ Ví dụ :
>>P=5*R sẽ cho ra kết quả sau :
P=
5.0000 15.0000 -25.0000
Trang 7Hai ký hiệu được sử dụng để chia ma trận A\B tương ứng A-1*B và A/B
tương ứng với A*B-1 Ví dụ: Ví dụ 1.1: AX=B
Trang 8Ngoài ra còn rất nhiều hàm toán học khác trong file.m
Ví dụ 1.2: Nên sử dụng chức năng inv để xác định nghịch đảo của ma trận A rồi sau đó xác định ma trận X » A=[4 -2 -10;2 10 -12;-4 -6 16]
Trang 9Nếu ma trận A là một ma trận có (nxn) phần tử, thì có n số λ thỏamãn Ax=λx
là giá trị riêng của A Chúng tìm được bằng cách sử dụng lệnh eig(A)
Giá trị riêng và vector riêng của A cũng có thể tìm được bằng lệnh [X,D]=eig(A) Các phần tử trên đường chéo chính của ma trận chéo D là các λ, còn các cột của
Trang 11semilogy, polar(‘text’), xlabel(‘text’), ylabel(‘text’), title(‘text’) và text(‘text’) có thể được sử dụng để đặt tên và thêm các chú thích trên đồ thị
Cú pháp của các câu lệnh trên bao gồm các ký hiệu (.,+,*,0,x) và màu sắc (r,b,g,w) Ví dụ: dòng lệnh sau
Trang 12Ví dụ 1 6: Để cĩ đồ thị Đề các của hàm Bessel jo x^2 + y^2 trong khoảng – 12<x<12, -12<y<12
Ta có các dòng lệnh sau:
Trang 1313
*Đồ họa 3 chiều :
Để biểu diễn,minh họa các quan hệ nhiều chiều ta thường sử dụng đồ họa ba chiều (3-D) Lệnh plot3 sẽ có tác dụng như lệnh plot ; điểm khác duy nhất là plot3 có thêm vectơ số liệu thứ ba dành cho trục z
Trang 1414
Hình 1.3 Thí dụ : vẽ hình 3-D sau :
Trang 15là một chuỗi các lệnh thông thường và hàm được dùng ờ dấu nhắc lệnh
Hộp công cụ hệ thống điều khiển (Control systems Toolbox) là tập hợp các hàm để mô hình hóa, phân tích và thiết kế hệ thống điều khiển Nó cung cấp các công cụ cổ điển như là vẽ Bode, biểu đồ Nichols, quỹ đạo nghiệm số, cũng như các kỹ thuật hiện đại như không gian trạng thái LQG và thiết kế đặt cực
Thí dụ 1.7: Vẽ hàm sin(alpha*t) với alpha=50 Trước
tiên ta tạo tập tin plotdata.m như sau :
Trên cửa sổ lệnh Matlab, gõ lệnh sau :
>>figure
>>alpha=50;
>>plotdata plotdata.m
%Day la script ve ham y=sin(alpha*t)
%Gia tri alpha phai ton tai trong workspace truoc de kich hoat script
t=[0:0.01:1]; y=sin(alpha*t);
Plot(t,y)
Trang 16If term command [elseif term command…] [else command] end
Switch term case term command[…] [otherwise command] end
Trong đó term là điều kiện, command là lệnh
Trang 1717
Trong cả hai trường hợp trên , các lệnh co được ngăn cách bởi dấu ( ;) và dấu (,) Trong các Scripts, thường ta hay viết mỗi lệnh con trong một dòng riêng Thí dụ : >> if test<=2, a=2; elseif test<=5,
Bằng vòng lặp ta có thể thực hiện lặp lại nhiều lần một số lệnh nhất định Cú pháp:
For variable=term command end
While term command end
Trong cả hai trường hợp lệnh break đều có tác dụng kết thúc vòng lặp
Trang 18Xác định giá trị x,y, và z để tập phương trình đại số thỏa mãn
3.Viết một Matlab Script (Tập tin m) để vẽ hàm sau :
y(x) = cosϖx + cos3ϖx
trong đó ω là ngõ vào biến ở dòng lệnh Đặt nhãn trục x là time(sec) và trục y
là y(x)
-Sử dụng lệnh tf(num, den) : Nhập đa thức tử số num và đa thức mẫu số den dưới dạng vector tham số của s theo trình tự số mũ của s bé dần
Trang 19Nếu P là một vector hàng chứa các hệ số của đa thức, thì hàm roots(P) sẽ cho
ta một vector cột các phần tử của nó là nghiệm của đa thức
Ví dụ 1.8: Tìm nghiệm của đa thức sau:
Lệnh conv(p1,p2) tính tích của hai đa thức p1 và p2 lệnh
deconv(p1,p2) tính thương số của p1 chia cho p2
Thí dụ: Cho p2=2x4-x3+2x2-x+3
>>p2[2 -1 2 -1 3]
Trang 20Lệnh đơn giản hàm truyền : minreal
Tính hàm truyền của hệ thống nối tiếp: lệnh series Tính
hàm truyền của hệ song song: lệnh parallel
Cho hệ thống hồi tiếp âm như sau:
Hình 1.6
Hồi tiếp âm : Gk=G/(1+G.H)
Hồi tiếp dương : Gk=G/(1-G.H)
Gk=feedback(G,H) tính hàm truyền hệ thống hồi tiếp âm
Gk=feedback(G,H,+1) tính hàm truyền hệ thống hồi tiếp dương Thí
Trang 21mở rộng để khảo sát hệ phi tuyến Ta lập các phuơng trình biến trạng thái từ một phương trình vi phân bậc n bằng cách chỉ định các biến trạng thái thích hợp
Bi ểu diễn hệ bằng phương trình trạng thái: lệnh ss
Hàm [A,B,C]=tf2ss(num,den) sẽ biến đổi hàm truyền thành mô hình biến trạng thái
Trang 241.2.3.1 Đáp ứng miền thời gian : Cho
hệ hồi tiếp âm đơn vị:
Trang 252 Thời gian trễ td : là thời gian c(t) đạt 50% giá trị xác lập
3.tr : thời gian lên là thời gian để c(t) tăng từ 10% đến 90% giá trị xác lập
4 ts : thời gian xác lập là thời gian c(t) đạt 95% giá trị cuối hay sai số 5% 5.tp : thời gian lên đỉnh là thời gian đáp ứng ra đạt giá trị cực đại
Ta có thể dùng hàm step(num,den), step(num,den,t) để tính đáp ứng của
hệ Đối với hệ được định nghĩa ở dạng không gian trạng thái với các ma trận A,
B, C, D lệnh step(A,B,C,D) sẽ tạo ra đáp ứng nấc đơn vị Các hàm
được sử dụng để khảo sát đáp ứng chuyển tiếp hệ thống
Chú ý là lệnh step(sys) có thể dùng vẽ đáp ứng nấc thang của hệ Trước tiên ta định nghĩa là bởi lệnh
[y,x,t]=step(A,B,C,D,iu) [y,x,t]=step(A,B,C,D,iu,t) thì không có đồ thị được
vẽ ra Ma trận y và x chứa ngõ ra và đáp ứng trạng thái của hệ tương ứng, tính tại thời điểm t
Ví dụ 1.15 : Xác định đáp ứng bậc thang của hệ thống với ξ=0.6 và ωn=5 G(s)=( ωn )/(s2 + 2ξωns +ωn )
Trang 2727
Tính thời gian lên Tr, thời gian đỉnh Tp, phần trăm vọt lố và thời gian xác lập dùng Ts Matlab
Tập tin vidu1231_2.m của ví dụ 1.15
%Chuong trinh Matlab tinh thoi gian len tr, thoi gian dinh tp, do vot lo
%cuc dai POT, va thoi gian xac lap cua he bac hai va bac cao hon
%trong thi du nay he so suy giam zeta=0.6 va tan so tu nhien wn=5
Trang 2929
Hình 1.11 Đáp ứng xung: Lệnh Matlab: >> num=[1] num
Trang 3030
Hình 1.12
-Đáp ứng với tín hiệu bất kỳ: hàm lsim(sys,u,t[,x0]) -Tạo tín hiệu thử : hàm
[u,t]=gensig(typ,tau[,Tf,Ts]) typ: dạng tín hiệu ‘sin’, ‘square’, ‘pulse’ Chu kỳ tín hiệu được khai báo nhờ tham số tau
Giản đồ Nichols: giản đồ nichols có thể đạt đuợc bằng lệnh:
>>.nichols(num,den)
>>grid
Trang 3232
Vì nghiệm cực của phương trình đặc trưng có phần thực âm nên hệ ổn định
1.2.3.3 Đánh giá chất lượng hệ thống Sai
Trang 3330 )
+ +
=
s s s
G
Trang 36với hệ số đa thức ở tử số và mẫu số trong B và A Đáp ứng tần số được tính tại
các điểm trong vectơ w(rad/s) Biên độ và pha được vẽ ra bằng lệnh gọi
freqs(B,A,w) không có đối số
[H,w]=freqs(B,A) tự động lấy tập hợp 200 tần số w tại đó đáp ứng tần số được
Lệnh Matlab để tính tần số cộng hưởng, biên độ cộng hưởng và băng thông:
[mag,phase,w]=bode(num,den,w); hay [mag,phase,w]=bode(sys,w)
Trang 38Cú pháp: bode(num,den), bode(sys), bode(A,B,C,D)
Ví dụ 1.19: Vẽ biểu đồ Bode cho hệ thống điều khiển hồi tiếp đơn vị với hàm truyền hở
s(s + 2)(s + 50) s + 52s +100s
Trang 39Lệnh bode dùng để vẽ biểu đồ bode Cú pháp: bode(num,den), bode(g)
Thí dụ: Vẽ biểu đồ Bode của G(s)=1/(s+2)
Trang 4040
Hàm [Re, Im]=Nyquist(num,den,ω) của MATLAB cho biết phần thực và phần ảo của hàm truyền khi tần số thay đổi trong khoảng được chỉ định
Trang 41Độ lợi và pha tới hạn
Hàm [Gm, Pm, ωpc, ωgc]=margin (mag,phase,w) có thể được sử dụng với hàm Bode để ước lượng độ dự trữ biên Gm, độ dự trữ pha Pm và tần số cắt pha
fprintf('Do loi toi han=%7.3g',Gm),fprintf('Do loi cat w=%7.3g\n',wgc)
fprintf('Pha toi han=%7.3g',Pm),fprintf('Pha cat w=%7.3g\n\n',wpc) Kết
quả thực hiện :
>> doloi_pha
Do loi toi han= 4Do loi cat w= 4.89
Pha toi han= 16.6Pha cat w= 10
Trang 4343
H ình 1.19
Xem tài liệu [1] về 11 quy tắc vẽ quỹ đạo nghiệm số
Hàm rlocus : vẽ quỹ đạo nghiệm
Dạng lệnh : rlocus(num,den) hay rlocus(num,den,K)
Thí dụ 1.23: Tìm quỹ đạo nghiệm số (K>0) cho hệ thống đơn giản
Trang 44*Lệnh rlocus(num,den) hay rlocus(g) : vẽ quỹ đạo nghiệm số
Thí dụ: Vẽ quỹ đạo nghiệm số của hệ thống khi K=0 ∞
Hình 1.21
Trang 45M ục đích: biểu diễn hệ bằng hàm truyền , tính hàm truyền tương đương Biễu
diễn hệ dùng biến trạng thái
Trang 485.Tính toán khâu nối tiếp và song song:
Cho hai khâu G1(s)=1/(s+2) và G2(s)=(2s+1)/(s2+3s+3)
Tính hàm truyền tương đương của khâu nối tiếp G1(s).G2(s) và khâu song song G1(s)+G2(s) Lệnh Matlab:
Trang 49>>
6 Cho hàm truyền sau:
Trang 50d)Tính hàm truyền vòng kín dung lệnh feedback
e) Rút gọn hàm truyền dung lệnh mineral
7 Cho hệ phương trình trạng thái có ma trận sau:
1.3.2.1 Kh ảo sát đáp ứng nấc, đáp ứng xung của hệ thống điều khiển Mục
đích: khảo sát đápứng nấc và đáp ứng xung của hệ thống
Trang 5353
R(s) là ngõ vào, Y(s) là ngõ ra trường
hợp a)G1(s) nối tiếp G2(s) trường
hợp b)G1(s) song song G2(s)
trường hợp c)Hệ hồi tiếp âm : G(s) ở nhánh thẳng, H(s) ở nhánh hồi tiếp
Cho G1 (s) = 1 ;G2 (s) = 1 ;G(s) = 1 ;H
=10s +1 s + 2 s(s +1)
Tìm hàm truyền Y(s)/R(s) trong mỗi trường hợp
3 Xét bài 2c): biểu diễn hệ G(s) ở dạng phương trình trạng thái Xét ổn định của hệ kín Gk(s) dung tiêu chuẩn Routh hoặc Hurwitz
4.Cho hệ với phương trình đặc tính:
%he on dinh khi c31, c41, c51 (tuc la cot 1 cua bang Routh) lon hon
0 %ham tren chi dung voi he bac <=4 L ệnh Matlab:
Trang 541.3.2.2 Xét ổn định của hệ thống điều khiển:
M ục đích: dung lệnh roots hay allmargin của Matlab để xét ổn định của hệ Kiểm chứng
lý thuyết dùng tiêu chuẩn Routh hay Hurwitz Thí nghiệm:
1.Xét ổn định các hệ thống cho 3 hàm truyền được khảo sát trong thí nghiệm Kiểm chứng dùng tiêu chuẩn Routh-Hurwitz
20 a)Hệ thống 1: G(s) =
s(1+ 0,1s)(1+ 0,5s)
Trang 55a) Biểu diễn G(s) dung lệnh tf của matlab
b)Xét ổn định hệ dùng lệnh roots Kiểm chứng bằng tiêu chuẩn Routh
1.3.2.3 Đánh giá chất lượng hệ thống:
M ục đích: đánh giá chất lượng của hệ thống điều khiển dung đáp ứng nấc sử dụng lệnh
step Kiểm chứng lý thuyết
Thí nghi ệm:
1 Cho hệ sau:
a)Tìm hàm truyền hệ kín
b) Tìm sai số xác lập với ngõ vào hàm nấc r(t)=1(t)
c)Tính độ vọt lố POT (%) và thời gian xác lập txl
2 Cho hệ sau:
a)Tìm hàm truyền hệ kín
b) Tìm sai số xác lập với ngõ vào hàm nấc r(t)=1(t)
c)Tính độ vọt lố POT (%) và thời gian xác lập txl
5) 2)(
1)(
(
4) ( 10 )
(
+ + +
+
=
s s s s
s s
G
50 14
10 )
+ +
=
s s s
G
Trang 5656
M ục đích: Vẽ biểu đồ biên độ và pha theo tần số hàm truyền hệ hở của hệ
thống phản hồi âm đơn vị Trên đồ thị đo độ dự trữ pha, biên độ suy ra sự
2.Cho hệ cĩ hàm truyền là :
G(s)=(10s2 + 20s –10)/(s3 +2s2 –s +1) _Vẽ
gần đúng dung các đường tiệm cận
-Dùng Matlab
Trang 5959
M ục đích: tương tự như biểu đồ Bode, từ bản in biểu đồ Nyquist của hàm
truyền hệ hở của hệ thống phản hồi âm đơn vị, ta cũng có thể đo độ dự trữ
về pha, biên độ suy ra sự ổn định chất lượng của hệ thống kín
-Cũng trong phần này, Ta tính chọn K để hệ thống có cặp nghiệm số khống chế(các cực của hàm truyền hệ kín ảnh hưởng chủ yếu đến đặc tính quá độ)
có thông số cho trước
Với mỗi hệ thống, ta đều vẽ đặc tính quá độ hệ thống kín với đầu vào hàm nấc để kiểm tra
Trang 6363
Hình 1.30 Qu ỹ đạo nghiệm số bài 3
1.4.Kiểm tra đánh giá
Để thực hiện các yêu cầu trong bài thí nghiệm này, sinh viên cần chuẩn
bị kỹ và hiểu rõ trình tự các thao tác tiến hành thiết kế một bộ điều khiển trong Sisotool
Trang 64Để kích hoạt công cụ Sisotool, từ cửa sổ Command Window gõ lệnh sisotool Tiến hành thao tác từ bước 1 đến bước 3 , cửa sổ SISO Design Tool xuất hiện như sau: Trình tự thiết kế như sau:
Bước 1: Khai báo đối tượng điều
Bước 2: Kích hoạt SiSotool
Cửa sổ SISO Design Tool xuất hiện
Bước 3: Nhập đối tượng điều khiển v ào sisotool
Trong cửa sổ SISO Design Tool chọn [File] [Import…] Cửa sổ Import Data xuất hiện
Đặt tên hệ thống tùy ý , như là thidu64 Ban đ ầu tất cả các khối trong
hệ thống điều khiển đều có hàm truy ền bằng 1, ta thay đổi đối tượng điều khiển (plant) là G, cảm biến (sensor) là H, bộ lọc F(prefilter) bằng 1, khâu hiệu chỉnh (compensator) C chưa thiết kế nên cũng bằng 1 Sau khi thực hiện xong nhấp chuột vào nút Ok
Bước 4: Khảo sát hệ thống trước khi hiệu chỉnh
Bước 5: Thiết kế khâu hiệu chỉnh
Bước 6: Kiểm tra lại đáp ứng của hệ thống