Đồ án Tự Động Hoá và Điều Khiển Tối Ưu

• Khi khởi động xong MATLAB trên màn hình soạn thảo xuất hiện dấu nhắc lệnh như sau: >> • Biến trong MATLAB có thể dài 19 ký tự bắt đầu bằng chữ cái. • Khi viết xong một lệnh nếu kết thúc bằng dấu chấm phẩy “ ; ” thì sau khi nhấn Enter kết quả sẽ không được hiển thị nhưng vẫn được lưu vào bộ nhớ.

doc12 trang | Chia sẻ: diunt88 | Lượt xem: 3029 | Lượt tải: 1download
Bạn đang xem nội dung tài liệu Đồ án Tự Động Hoá và Điều Khiển Tối Ưu, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Báo cáo thí nghiệm : Tự Động Hoá và Điều Khiển Tối Ưu Bài 1 Cơ Sở MATLAB I. Khởi động MATLAB 1. Khởi động ( Khi khởi động xong MATLAB trên màn hình soạn thảo xuất hiện dấu nhắc lệnh như sau: >> ( Biến trong MATLAB có thể dài 19 ký tự bắt đầu bằng chữ cái. ( Khi viết xong một lệnh nếu kết thúc bằng dấu chấm phẩy “ ; ” thì sau khi nhấn Enter kết quả sẽ không được hiển thị nhưng vẫn được lưu vào bộ nhớ. 2. Các phép toán vô hướng *Cộng: a+b *Trừ: a-b *Nhân: a*b *Chia: a/b *Luỹ thừa: a^b 3. Các phép logic *Phép hoặc: a|b *Phép và: a&b *Phép phủ định: ~a II. Ma trận và các phép toán ma trận trong MATLAB 1. Ma trận ( Cách nhập ma trận: Matrận dòng >>A=[1 2.5 3.2 4.6 5.6] hoặc >>A=[1,2.5,3.2,4.6,5.6] Nhập ma trận cột >>B=[-1,0,0;-1,1,0;1,-1,0;0,0,2] hoặc >>B=[-1 0 0 -1 1 0 1 -1 0 0 0 2] ( Có thể định nghĩa một ma trận theo cách sau: >> A=[ 0 0 1 -1 5] >>C=[ -1 -5 A] ( Các ma trận đặc biệt: Ma trận 0 (Zero) >>zeros(4,4) ans= 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Ma trận 1(ones) >>ones(4,4) ans= 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Ma trận đơn vị >>eye(4,5) ans= 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 >>eye(3) ans= 1 0 0 0 1 0 0 0 1 2. Các phép toán ma trận *Phép chuyển vị: >> A= [ 1 1 1 1; 1 2 3 4]; >>B=A’ B= 1 1 1 2 1 3 1 4 *Phép nhân ma trận >> C=A.*B; -Phép luỹ thừa: >>C=A.^k; *Phép nhân vô hướng hai ma trận cùng cỡ: >>C=A*B; *Phép lấy định thức ma trận: >>x=det(A); *Phép nghịch đảo ma trận: >>B=inv(A); hoặc >>B=A.^-1; III. Giải phương trình đại số bằng cách sử dụng MATLAB 1. Giải phương trình bậc nhất nhiều ẩn Cho hệ phương trình sau: 5x+4y-3.5z+4t+5.5u=-5 -3.2x+4y-6z+6.12t+7u=1 x+6y-z+5t-6u=7.5 4x+2y-3.2z+2t-7u=13.2 5.3x-6.1y+3z-t+u=15 Lập các ma trận sau: >>C=[ 5 4 -3.5 4 5.5 -3.2 4 -6 6.12 7 1 6 -1 5 6 4 2 -3.2 2 -7 5.3 -6.1 3 -1 1]; >>D=[-5;1;7.5;13.2;15]; >>C\D ans= -0.4938 -1.0747 3.0752 6.0454 -2.1183 2. Giải phương trình bậc cao Tìm nghiệm của đa thức sau:  + 6.32+ 5  + 4.12 + 62S +112=0 Trình tự giải >>A=[ 1 6.32 5 4.12 62 112]; >>Roots(A) ans= -5.2312 1.3313 + 1.8152i 1.3313 - 1.8152i -1.8757 + 0.8409i -1.8757 - 0.8409i 3. Giải phương trình vi phân Cho phương trình vi phân như sau: x(3)+3x’’+2.89x’+1.78x(t)=sin(0.2*t) suy ra: x(3)=-3x’’-2.89x’-1.78x(t)+sin(0.2*t) Trên MATLAB phương trình trên được giải như sau: Cách 1 Lập M-file Function dxdt=f(t,x) Dxdt=[x(2);x(3);-1.78*x(1)-2.89*x(2)-3*x(3)+sin(0.2*t)] Save file với tên: “ruou” Trên của sổ soạn thảo lệnh: >>tspan=[0 10];% thời gian tính từ 0 đến 10 giây >>x0=[-2 0 2]; % điều kiện ban đầu >>[t,x]=ode45(‘Quy’,tspan,x0); % giải phương trình bằng ode45 >>plot(t,x) %vẽ nghiệm Cách 2 Nhấn vào biểu tượng Simulink Tạo New model >>dee Tạo một mẫu như sau:  Trong Dee khai báo:  Sau đó cho chạy Simulink Kết quả nghiệm được hiển thị trong Scope như sau:  IV. Vẽ đồ thị trên MATLAB 1. Sơ lược vẽ đồ thị Vẽ đồ thị X=sin(2t) với t=0ữ10 >>t=0:0.01:10; >>x=sin(2*t); >>plot(t,x)  2. Vẽ hai đồ thị trên cùng một hệ toạ độ >>t=0:0.01:10; >>x=sin(2*t); >>y=exp(-0.5*t).*cos(2.5*t); >>plot(t,x,t,y)  3. Khi hàm số có nhiều biến Ví dụ: vẽ đồ thị y=sin(w*t) khi w=1 ữ 4 và t=0 ữ 10 Trình tự làm như sau: >>[t,w]=(0:.1:10,1:.1:4); >>y=sin(w.*t); >>plot(t,y)  Bài 2 MATLAB trong xử lý số cho các tín hiệu I. MATLAB trong xử lý số cho các tín hiệu 1.Hàm truyền Giả sử hệ thống có hàm truyền như sau: 1 W= ------------- s^2 + 2 s + 1 *Hàm truyền sẽ được vào lệnh như sau: >>W=tf(1,[1 2 1]); 2.Đáp ứng của hệ thống *Để tìm đáp ứng của hệ thống với đầu vào là tín hiệu 1(t) >>Step(W) *Để tìm đáp ứng của hệ thống với đầu vào là tín hiệu xung dirac ọ(t) >>impulse(W) *Vẽ biểu đồ biên độ và pha với trục tần số >>Bode(W) *Vẽ biểu đồ biên độ và pha với trục logarit >>nyquist(W) *Đáp ứng của hệ thống với tín hiệu đầu vào bất kỳ: u=sin(0.5*t) >>w=tf(1,[1 2 1]); >>t=0:.1:10; >>u=sin(0.5*t); >>[y,x]=lsim(w,u,t); >>plot(t,y)  II.ứng dụng phần mềm Simulink. Bài tập Nhốm số 1. Đề Bài: chọn bộ điều khiển PID cho đối tượng điều khiển có hàm truyền sau: H(s)=3.5*exp(-4*s)/(15*s+1); Tốc độ giới hạn +- 2và trị số bão hoà +-1; Bài Làm. Tìm Kgh để cho nghiệm của phương trình đặc trưng của hệ thống kín ở trạng thái biên giới ổn định. Dùng các lệnh MatLab thực hiện như sau: W=tf(3.5,[15 1] ); [num,den]=pade(4,3); c=tf(num,den); H=W*c; H Transfer function: -3.5 s^3 + 10.5 s^2 - 13.13 s + 6.563 --------------------------------------------- 15 s^4 + 46 s^3 + 59.25 s^2 + 31.88 s + 1.875 rlocus(H); >> [Kgh,p]=rlocfind(H); Select a point in the graphics window selected_point = 0.0010 + 0.4316i Kgh = 1.8796 p = -1.3150 + 1.8317i -1.3150 - 1.8317i 0.0010 + 0.4316i 0.0010 - 0.4316i t=0:0.1:200; >> step(feedback(Kgh*H,1),t) Xác định T giới hạn: >> Tgh=71.3-57.1 Tgh = 14.2000 >> Kp=0.6*Kgh Kp = 1.1278 >> Ki=Kp/0.5/Tgh Kd=Kp*0.125*Tgh Ki = 0.1588 Kd = 2.0018 Lập mô hình như sau: Đặt các thông số cho các khâu theo đề bài, tốc độ giới hạn +-2, trị số bão hoà +-1; Cho mô phỏng được kết quả như hình chụp dưới đây: Sau khi chạy NCD chúng ta được kết quả: Creating simulink model tp142588 for gradients...Done f-COUNT MAX{g} STEP Procedures 1 0.99 1 2 0.99 1 Hessian not updated 3 0.99 1 Hessian not updated Optimization Converged Successfully Như vậy các giá trị của bộ điều khiển PID tối ưu sẽ là: Kp=0.99 Kp = 0.9900 >> Ki=Kp/0.5/Tgh Ki = 0.1394 >> Kd=Kp*0.125*Tgh Kd = 1.7572