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

Bài thí nghiệm môn lý thuyết điều khiển tự động

Chia sẻ: Le Xuan Tuyen | Ngày: | Loại File: PDF | Số trang:23

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

Matlab là chữ viết tắt của Matrix Laboratory. Đây là một thư viện các công cụ làm toán trên ma trận. Matlab được tích hợp sẵn một họ các lời giải cho các ứng dụng chuyên dụng và được gọi là các Toolbox, đó chính là thư viện cho các hàm để hỗ trợ Matlab giải quyết các cụm công việc trong các lĩnh vực chuyên môn khác nhau.

Chủ đề:
Lưu

Nội dung Text: Bài thí nghiệm môn lý thuyết điều khiển tự động

  1. BÀI THÍ NGHIỆM Môn: Lý thuyết điều khiển tự động Mục đích: Matlab là chữ viết tắt của Matrix Laboratory. Đây là một thư viện các công cụ làm toán trên ma trận. Matlab đ ược tích hợp sẵn một họ các lời giải cho các ứng dụng chuyên dụng và được gọi là các Toolbox, đó chính là thư viện cho các hàm để hỗ trợ Matlab giải quyết các cụm công việc trong các lĩnh vực chuyên môn khác nhau. Các bài thí nghiệm này sẽ đề cập chủ yếu đ ến các vấn đ ề trong “Control System Toolbox”. Qua các buổi thí nghiệm, sinh viên có thể sử dụng thành thạo phần mềm Matlab về các vấn đề thuộc môn học “Lý thuyết điều khiển tự động” và qua đó, củng cố các kiến thức liên quan đến môn học đã được giáo viên truyền đ ạt trên lớp. Cuối mỗi bài sẽ có bài tập giúp cho sinh viên nắm được bài đã học. Yêu cầu: - Sinh viên nắm vững các kiến thức đã được học trên lớp - Đã học qua môn học "Lý thuyết mạch" Bài 1: - Giới thiệu phần mềm Matlab, các lệnh cơ bản và cách tạo hàm trong Matlab. - Giới thiệu “Control System Toolbox”, bộ công cụ của Matlab dành cho điều khiển hệ thống. - Bài tập - Tạo hàm truyền đạt - Biến đổi hàm truyền đạt thành các dạng khác nhau (liên tục, rời rạc, đ iểm cực – không, mô hình không gian trạng thái). - Các lệnh đồ họa Simulink Toolbox và cách xây dựng hệ thống trên Simulink. - Bài tập Bài 2: - Tính đ iểm cực, điểm không 1
  2. - Tạo hàm truyền đạt từ các đ iểm cực – không từ hàm truyền đạt - Tính và vẽ đáp ứng thời gian từ các điểm cực – không - Vẽ đáp ứng thời gian của hệ phi tuyến trên Simulink - Bài tập Bài 3: - Vẽ đáp ứng của hệ thống trong miền thời gian và miền tần số (đồ thị Bode, đáp ứng xung đơn vị, đặc tính tần số biên – pha…) - Tính đ iều khiển được, tính quan sát được của hệ thống - Bài tập - Khảo sát hệ thống trong không gian trạng thái - Bài tập 2
  3. BÀI 1. Matlab với môn học Lý thuyết điều khiển tự động Mục đích: Giúp cho sinh viên làm quen với phần mềm Matlab – một công cụ tính toán mạch được sử dụng rộng rãi trong nhiều ngành kỹ thuật, trong đó có lĩnh vực điều khiển hệ thống. Nội dung trình bày bao gồm các tập lệnh cơ b ản, cách tạo hàm và bộ công cụ Control System. Yêu cầu: - Sinh viên nắm vững các kiến thức toán học cơ bản liên quan đến các phép toán ma trận, vector, đa thức… - Có kỹ năng sử dụng máy vi tính. Nội dung: 1 Cửa sổ lệnh Khi dùng Matlab trên cửa sổ lệnh thì trang màn hình sẽ giống như tờ giấy nháp để người sử dụng có thể giải toán và thử các vấn đề liên quan đ ến hệ thống được khảo sát. Có thể thực hiện các phép toán thông thường, vào các đa thức, các hàm truyền đạt… Trong cửa sổ lệnh đã được mặc đ ịnh biến ans để trả về giá trị: >> 2 ans = 2 2 Cách biểu diễn ma trận trong Matlab: * Cách tạo ma trận: Ví d ụ: Muốn tạo ma trận 1 3 4 5 7 2 -1 3 5 0 0 3 >> A=[1 3 4; 5 7 2;-1 3 5; 0 0 3] * Có thể tạo ma trận với các biến phức: 3
  4. >>B=[2+6i 1-3i;3+8i 2-2i] Chú ý: không có dấu cách khi viết số phức. Matlab có thể chấp nhận biến i hoặc j khi viết số phức và để tránh nhầm lẫn, có thể đ ịnh nghĩa ii=sqrt(-1) * Tạo ma trận có kích thước n*n gồm các số 0 và 1 ngẫu nhiên: >>rand(n) * Tạo ma trận có kích thước n*m gồm các số 0 và 1 ngẫu nhiên: >>rand(n,m) * Tìm hiểu các câu lệnh: magic, hilb, ones, zeros, eye, diag, triu, tril, sqrtm, det, rank *Có thể tạo ma trận 5*5 theo cách sau: >>[A, zeros(3,2);zeros(2,3) eye(2)] * K ích thước ma trận: >> sizeA=size(A) sizeA = 3 3 * Thực hiện các phép toán về ma trận: Cộng ma trận: >> A+B A, B cùng kích thước Trừ ma trận: >> A-B Nhân ma trận: >> A*B Số cột ma trận A bằng số hàng ma trận B Chuyển vị ma trận: >> A' A là ma trận vuông Nghịch đảo ma trận: >> inv(A) Chia trái >>A\B Chia phải >>A/B Câu hỏi: Tìm sự khác nhau giữa phép chia trái và phép chia phải? * Tính giá trị riêng >>[X,D]=eig(A) A phải là ma trận vuông. Các phần tử đường chéo của D chính là các giá trị riêng: A.X=X.D 3 Vector >> v=[sin(pi) 0.4 -0.3] Các phép toán về vector cũng tương tự như các phép toán về ma trận. * Các tạo các vector khi biết điểm đầu, đ iểm cuối và số phần tử >> v=1:1:10; 4
  5. * Tìm hiểu các lệnh: max, min, sort, sum, prod, mean, any, all 4 Đa thức Trong Matlab, đa thức được biểu diễn dưới dạng vector có các phần tử bằng các hệ số của đa thức theo thứ tự số mũ giảm dần. >> a= [1 5 6] >> b=[2 3 8] Cộng: >> a+b Nhân: >> conv(a,b) Chia: >>[q,r]=deconv(a,b) Trong đó: q là đa thức chia r là đ a thức dư * Muốn tìm giá trị của đa thức tại một giá trị xác định (n) của biến: >> polyval(a,n) * Tính nghiệm của đa thức: >> r=roots(a) * Xác định đa thức khi biết nghiệm của nó:. >> a=poly(r) 5 Các lệnh for, while và if * Lập trình trên Matlab thực chất là tạo ra các hàm mới của riêng người sử dụng và đưa vào thư viện chung của Matlab. Thủ tục để tạo ra một hàm mới để Matlab hiểu và đưa vào thư viện của nó như sau: Dùng từ khóa function Khai báo biến đầu ra, tên hàm và các biến đầu vào của hàm đó. Chú ý: Đặt dấu ";" ở cuối mỗi câu lệnh Tên hàm phải trùng với tên file. * Mở script file bằng cách vào “File”, chọn “New”, chọn “M file” 5
  6. * Lệnh for: So sánh hai đoạn lệnh sau với n cho trước: x=[]; for i=1:n x=[x,i^2]; end hay x=[]; for i=1:n, x=[x,i^2], end và x=[]; for i=n:-1:1 x=[x,i^2]; end - Giải thích kết quả của đo ạn lệnh sau for i=1:n for j=1:m H(i,j)=1/(i+j-1); end end H - Giải thích kết quả của đo ạn lệnh sau s=0; for c=A s=s+sum(s); end So sánh với sum(sum(A)) * Lệnh while: Cú pháp: while relation statements end Ví d ụ: Với a đ ã cho n=0; while 2^n
  7. if relation statements end Ví d ụ: if n Lớn hơn < Nhỏ hơn >= Lớn hơn ho ặc bằng
  8. 6 Công cụ Control System Toolbox Tên hàm Chức năng Các mô hình LTI ss Tạo mô hình không gian trạng thái tf Tạo hàm truyền đạt zpk Tạo mô hình điểm cực - không Các đặc tính của mô hình size Biểu diễn kích thước của đầu vào/đầu ra/ma trận Chuyển đổi mô hình c2d Chuyển từ mô hình liên tục sang dạng rời rạc theo thời gian d2c Chuyển từ mô hình rời rạc theo thời gian sang dạng liên tục d2d Tạo mô hình rời rạc theo thời gian với thời gian lấy mẫu mới Các phép toán trong không gian trạng thái ctrb Tạo ma trận điều khiển được obsv Tạo ma trận quan sát được Các chức năng của mô hình pzmap Vẽ toạ độ điểm cực - không của mô hình LTI Kết nối mô hình feedback Nối phản hồi hai mô hình parallel Mắc song song các mô hình series Mắc nối tiếp các mô hình Đáp ứng thời gian impulse Tính và vẽ đáp ứng xung Lsim Mô phỏng đáp ứng của mô hình LTI với các đầu vào bất kỳ Step Tính đáp ứng xung đơn vị Đáp ứng tần số Bode Tính và vẽ đáp ứng Bode bodemag Tính và vẽ biên độ của đáp ứng Bode nichols Vẽ đáp ứng Nichols nyquist Vẽ đáp ứng Nyquist 8
  9. 7 Các xây dựng hàm truyền đ ạt Ví d ụ: Biểu diễn hàm truyền đạt sau: Y s 5  s  20   G s   U s  s  15  s  25  s  0.4  >> s=tf('s'); >> sys_tf=5*(s+20)/((s+15)*(s+25)*(s-0.4)) hoặc có thể tạo một M_file trong Matlab để mô tả hàm truyền đạt của hệ thống này. %G(s)=5(s+20)/(s+15)(s+25)(s-0.4) num=5*[1 20]; den=conv(conv([1 15],[1 25]),[1 -0.4]); printsys(num,den,'s') 8 Cách xây d ựng mô hình không gian trạng thái   x  Ax  Bu   y  Cx  Du Ví d ụ: Biểu diễn phương trình không gian trạng thái sau:  1 2  1  x    x  2 u 3 4     y   1 3 x  >> A=[1 2;3 4]; >> B=[1;2]; >> C=[-1 3]; >> D=0; >> sys_ss=ss(A,B,C,D) hoặc có thể tạo một M_file trong Matlab để mô tả phương trình không gian trạng thái này. A=[1 2;3 4]; B=[1;2]; C=[-1 3];D=0; printsys(A,B,C,D) 9
  10. 9 Chuyển từ hàm truyền đạt về không gian trạng thái. Câu lệnh: >>[A,B,C,D]=tf2ss(num,den) Trong đó: A, B, C, D l à các ma trận trạng thái num, den là tử số và mẫu số của hàm truyền đạt Ví d ụ: >> num=[1.5]; >> den=[1 14 40.02]; >> [A,B,C,D]=tf2ss(num,den) 10 Chuyển từ không gian trạng thái về hàm truyền đạt >>[num,den]=ss2tf(A,B,C,D,1) 11 Chuyển từ hàm liên tục sang hàm rời rạc theo thời gian và ngược lại sysd = c2d(sysc,Ts) % Chuyển từ hàm liên tục sang dạng rời rạc với thời gian lấy mẫu Ts sysc = d2c(sysd) % Chuyển từ hàm rời rạc sang dạng liên tục sysd1= d2d(sysd,Ts) % Thay đổi thời gian lấy mẫu của hàm rời rạc >> sysc=tf(num,den) >> Ts=0.05; >> sysd=c2d(sysc,0.05) 12 Xây dựng mô hình điểm cực - không Ví d ụ: Xây dựng mô hình điểm cực - không sau: 1.5 G s   s  9.996   s  4.004  sys_zpk = zpk([],[-9.996 -4.004], 1.5) This is the resulting zero/pole/gain representation. 13 Mắc song song hai khâu hoÆc sys1 + sys2 parallel(sys1,sys2) 10
  11. 14 Mắc nối tiếp hai khâu hoÆc sys1 * sys2 series(sys2,sys1) 15 Mắc hồi tiếp feedback(sys1,sys2,sign) 16 Mắc hồi tiếp feedback(sys1,sys2,sign) BÀI TẬP Bài 1. Cho:  5 1 0   0  0 2 1  , b   0  , c  1 1 0   A    0 0 1 1     a. Giả sử A * x  b . Tìm x b. Giả sử y * A  c . Tìm y 1 c. G  s   c  sI  A  b . Tìm G  0  và G 1 d. Định nghĩa CM   b Ab A 2 b  . Tìm hạng của C M .   Bài 2. Lập trình tính giai thừa của một số bất kỳ theo các cách sử dụng câu lệnh while, for và if Bài 3. Biểu diễn hệ thống sau dưới dạng hàm truyền đạt và không gian trạng thái . sys4 sys2 sys1 + + sys3 sys5 sys6 11
  12. trong đó: p3 sys1  p  1p sys 2 được biểu diễn dưới dạng không gian trạng thái:   1  1 2  3   1   x     x   u     3 2  1 4   2    y   1 2 x  2 u  p 1 sys3  2 p  3p  5 p2  p  2 sys4  p3  1 p 1 sys5  p sys6 được biểu diễn dưới dạng không gian trạng thái:   2  3  1   x    x   u   1 4    1   y  1  3x  2u  12
  13. BÀI 2. Vẽ hàm truyền đạt, xây dựng đáp ứng thời gian của các khâu cơ bản trên Simulink. Khảo sát tính ổn định của hệ thống Mục đích: - Giúp cho sinh viên cách tính các điểm cực - không. - Vẽ đáp ứng thời gian của hệ thống trên Simulink - Khảo sát tính ổn định của hệ thống Yêu cầu: Sinh viên nắm vững các kiến thức liên quan đến hàm truyền đạt và đáp ứng thời gian của hệ thống Nội dung: 1 Xác định điểm cực và điểm không của hàm truyền đạt >> [z,p,k]=tf2zp(num,den) Ví d ụ: Cho p 3  2p 2  6 W p   p 4  3p 3  2p 2  6 p  3 Xác định các điểm cực, điểm không của hệ thống? >> num=[1 2 0 6]; >> den=[1 3 2 6 3]; >> [z,p,k]=tf2zp(num,den) 2 Xác định hàm truyyền đạt khi biết điểm cực và đ iểm không của hệ thống >>[num,den]=zp2tf(z,p,k) Ví d ụ: pp  4 p  5  W p   p  2p  3p  3  4i p  3  4i  Xác định hàm truyền đ ạt của hệ thống? 13
  14. >> k=1; >> z=[0;-4;-5]; >> i=sqrt(-1); >> p=[2;-3;-3+4*i;-3-4*i]; >> [num,den]=zp2tf(z,p,k) 3 Khai triển hàm truyền đạt về dạng phân thức tối giản >>[r,p,k]=residue(num,den) Cho hàm truyền đạt: 2p 3  3p 2  9p  1 C1 C2 C3 W p      p 3  3p 2  4p  5 p  a1 p  a 2 p  a 3 >> num=[2 3 9 1]; >> den=[1 3 4 5]; >> [r,p,k]=residue(num,den) Trong đó: k là phần thương chia hết của phân thức p là nghiệm của phân thức r là hệ số mở rộng phân thức từng phần Ngược lại: >> [num,den]=residue(r,p,k) 4 Cách vẽ đồ thị * Chế độ đồ họa trong Matlab Vẽ đồ thị hàm số y  sin x ,  2  x  2 >> x=-2*pi:0.05:2*pi; >> y=sin(x); >> plot(x,y) >> axis([-2*pi 2*pi -1 1]); >> xlabel('Radial'); >> ylabel('Amplitude'); >> title('y=sin(x)'); >> grid; 14
  15. * V ẽ trong không gian hai chiều * V ẽ nhiều đồ thị khác nhau trên một hì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) plot(rand(1, 100)) % Any data can go here title('Some noise') Magnitude (dB) Bode Diagram Step Response 50 1.5 0 1 Amplitude -50 90 Phase (deg) 0.5 0 -90 0 -1 0 1 2 0 5 10 10 10 10 10 Time (sec) Frequency (rad/sec) Some noise 1 Pole-Zero Map 4 0.8 2 0.6 Imag Axis 0 0.4 -2 0.2 0 -4 -2 -1.5 -1 -0.5 0 0 50 100 Real Axis * V í dụ vẽ đáp ứng thời gian từ điểm cực và điểm không: clf [num,den]=zp2tf([-2],[-1 -0.2+10*i -0.2-10*i],100); t=[0:.1:20]; u=exp(-t); subplot(2,1,1) lsim(num,den,u,t) hold on 15
  16. plot(t,u,'m--') title('Dap ung voi dau vao exp(-t)') hold off unew=exp(-0.2*t).*sin(10*t); subplot(2,1,2) lsim(num,den,unew,t) hold on plot(t,unew,'m--') title('Dap ung voi dau vao exp(-0.2*t)sin(10t)') hold off Linear Simulation Results 2 1.5 Amplitude 1 0.5 0 -0.5 0 2 4 6 8 10 12 14 16 18 20 Time (sec) Linear Simulation Results 10 5 Amplitude 0 -5 -10 0 2 4 6 8 10 12 14 16 18 20 Time (sec) b. Vẽ trong không gian ba chiều Matlab có thể biểu diễn trong không gian 3 chiều theo 3 cách: vẽ đường viền, vẽ lưới và vẽ các đ ường trong không gian 3 chiều. Ví dụ: Vẽ đường viền của một hàm b ậc bốn đơn giản ở bên trái màn hình và vẽ lưới 3D của hàm đó ở b ên phải màn hình. clf >> x=[-1:0.1:1]; >> y=[-2:0.1:2]; >> [X,Y]=meshgrid(x,y); >> z=X.^4+(Y/2).^4; >> subplot(1,2,1), contour(z) >> subplot(1,2,2), mesh(z) 16
  17. 40 35 2 30 1.5 25 1 20 0.5 15 0 10 60 30 40 5 20 20 10 5 10 15 20 00 5 Vẽ đáp ứng trên Simulink Vẽ đáp ứng thời gian của các khâu cơ bản đã học trong Simulink bằng cách: - Cho đầu vào là hàm 1 t  và   t  . - Xây dựng hàm truyền đ ạt của khâu - Quan sát đầu ra trên scope - So sánh với các kết quả lý thuyết 10(s+10)(s+10) (s+1)(s+0.3-i)(s+0.3+i) Step Saturation Scope Zero-Pole 17
  18. BÀI TẬP Bài 1. Lập trình trong M-file để vẽ đồ thị của các hàm sau trên một hình: y1  sin(2pi * t)  2 y 2  exp  -3t  y3  t 2  2t  3 y 4  cos  2t   sin  t  Bài 2. Xây dựng chương trình xét tính ổn định của hệ thống theo tiêu chuẩn Routh. Bài 3. Cho hệ thống có hàm truyền đạt: p 4  p 3  3ap  1 W p 5  2ap 3  p  a Với giá trị nào của a thì hệ thống quan sát được và điều khiển được hoàn toàn. Bài 4. Xây dựng trên Simulink để khảo sát hệ thống được mô tả bằng phương trình vi phân sau:  x  2x  u Bài 5. Xây dựng trên Simulink để giải phương trình phi tuyến Val der Pol:    x 2  1 x  x  0  x 18
  19. BÀI 3. Xét tính điều khiển được, quan sát được. Xây dựng hệ thống trên Simulink Mục đích: - Giúp cho sinh viên biểu diễn được các loại đáp ứng tần số của hệ thống. - Cách xét tính điều khiển được, quan sát được của hệ thống. - Cách xây dựng hệ thống trên Simulink Yêu cầu: Sinh viên nắm vững các kiến thức liên quan đến đáp ứng của hệ thống, tính điều khiển đ ược và quan sát được của nó. Nội dung: 1. Biểu diễn các dạng đáp ứng của hệ thống Step, xung, Bode (biên độ và pha), Nichols, Nyquist, điểm cực-không 2. Lập ma trận điều khiển được >>ctrb(A,B) Hệ thống điều khiển đ ược nếu hạng của ctrb(A,B) bằng n. 3. Lập ma trận quan sát được >>obsv(A,C) Hệ thống quan sát được nếu hạng của obsv(A,C)) bằng n. 4. X â y d ựng hệ thống trên Simulink 10(s+10)(s+10) (s+1)(s+0.3-i)(s+0.3+i) Step Saturation Scope Zero-Pole 19
  20. 5. Kh¶o s¸t tÝnh æn ®Þnh >> A=[-8 -16 -6; 1 0 0;0 1 0] A= -8 -16 -6 1 0 0 0 1 0 >> P=poly(A) P= 1.0000 8.0000 16.0000 6.0000 >> roots(P) ans = -5.0861 -2.4280 -0.4859 KÕt luËn: Mäi nghiÖm cña ph­¬ng tr×nh ®Æc tr­ng ®Òu cã phÇn thùc ©m nªn hÖ thèng ®· cho æn ®Þnh. C©u hái: P ë ®©y ®­îc tÝnh theo c«ng thøc nµo? 6. Kh¶o s¸t ®Æc tÝnh thêi gian: Khi ®· biÕt ma trËn A, B, C, D cña hÖ thèng, ta cã thÓ kh¶o s¸t ®Æc tÝnh qu¸ ®é h(t) cña hÖ thèng b»ng hµm step vµ kh¶o s¸t hµm träng l­îng cña hÖ thèng b»ng hµm impulse. NÕu tÝn hiÖu vµo u(t) cã d¹ng bÊt kú th× ta dïng hµm lsim ®Ó kh¶o s¸t ®Çu ra cña hÖ thèng. VÝ dô 1: Kh¶o s¸t ®Æc tÝnh qu¸ ®é vµ hµm träng l­îng cña hÖ thèng cã m« t¶ to¸n häc trong kh«ng gian tr¹ng th¸i nh­ sau: 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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