• 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ớ.
12 trang |
Chia sẻ: diunt88 | Lượt xem: 3141 | Lượt tải: 1
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