Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 23 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
23
Dung lượng
620,66 KB
Nội dung
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 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 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: 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 Trừ ma trận: >> A-B Nhân ma trận: >> A*B Chuyển vị ma trận: >> A' 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; A, B cùng kích thước Số cột ma trận A bằng số hàng ma trận B A là ma trận vuông 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” 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<a n=n+1; end n * Lệnh if: Cú pháp: 7 if relation statements end Ví dụ: if n<0 parity=0; elseif rem(n,2)==0 parity=2; else parity=1; end Các toán tử relation trong Matlab: > Lớn hơn < Nhỏ hơn >= Lớn hơn hoặc bằng <= Nhỏ hơn hoặc bằng == Bằng ~= Không bằng Chú ý: “=” được sử dụng trong câu lệnh gán còn while“==” được sử dụng trong 1 relation Các relation có thể được nối với nhau bằng các toán tử & (and), | (or), ~ (not). 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 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 u 3 4 2 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) 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 sys1 + sys2 hoÆc parallel(sys1,sys2) [...]... 10 0 0 V ỏp ng trờn Simulink V ỏp ng thi gian ca cỏc khõu c bn ó hc trong Simulink bng cỏch: - Cho u vo l hm 1 t v t - Xõy dng hm truyn t ca khõu - Quan sỏt u ra trờn scope - So sỏnh vi cỏc kt qu lý thuyt 10(s+10)(s+10) (s+1)(s+0.3-i)(s+0.3+i) Step Saturation Zero-Pole Scope 17 BI TP Bi 1 Lp trỡnh trong M-file v th ca cỏc hm sau trờn mt hỡnh: y1 sin(2pi * t) 2 y 2 exp -3t y3 t 2 2t 3... Zero-Pole Scope 19 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, . 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à. 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. đượ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 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