MATLAB trong điều khiển tự động (Bản đẹp)

1. Lệnh BODE

a) Công dụng:

Tìm và vẽ đáp ứng tần số giản đồ Bode.

b) Cú pháp:

[mag,phase,w] = bode(a,b,c,d)

[mag,phase,w] = bode(a,b,c,d,iu)

[mag,phase,w] = bode(a,b,c,d,iu,w)

[mag,phase,w] = bode(num,den)

[mag,phase,w] = bode(num,den,w)

c) Giải thích:

Lệnh bode tìm đáp ứng tần số biên độ và pha của hệ liên tục LTI. Giản đồ Bode dùng để

phân tích đặc điểm của hệ thống bao gồm: biên dự trữ, pha dự trữ, độ lợi DC, băng thông, khả

năng miễn nhiễu và tính ổn định.

Nếu bỏ qua các đối số ở vế trái của dòng lệnh thì lệnh bode sẽ vẽ ra giản đồ Bode trên

màn hình.

 

pdf57 trang | Chuyên mục: Điều Khiển Tự Động | Chia sẻ: yen2110 | Lượt xem: 498 | Lượt tải: 1download
Tóm tắt nội dung MATLAB trong điều khiển tự động (Bản đẹp), để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
uyền như sau: 
8.06.1
5.14.32)( 2
2
+−
+−=
zz
zzzH 
 num = [2 -3.4 1.5]; 
 den = [1 -1.6 0.8]; 
 dstep(num,den) 
 title(‘Dap ung nac he gian doan’) 
 và ta được đồ thị đáp ứng nấc của hệ như hình bên: 
 MATLAB trong điều khiển tự động Trang 203 
9. Lệnh LTITR 
a) Công dụng: 
 Tìm đáp ứng thời gian của hệ tuyến tính bất biến. 
b) Cú pháp: 
 ltitr(a,b,u) 
 ltitr(a,b,u,x0) 
c) Giải thích: 
 Lệnh ltitr dùng để mở rộng đáp ứng thời gian của hệ tuyến tính bất biến. Nó mô phỏng 
cho hệ không gian trạng thái gián đoạn: 
 x = ltitr(a,b,u) mở rộng đáp ứng của hệ gián đoạn: 
x[n + 1] = Ax[n] + Bu[n] 
 đối với ngõ vào u. Ma trận u phải có số cột bằng số ngõ vào u. Mỗi hàng của ma trận u 
tương ứng với một điểm thời gian mới. 
 ltitr tạo ra ma trận x với số cột bằng số trạng thái x và có số hàng là length(u). 
 Nếu thêm vào vế phải dòng lệnh tham số x0 thì điều kiện ban đầu sẽ được thiết lập với 
lệnh x = ltitr(a,b,u,x0) 
10. Lệnh FILTER 
a) Công dụng: 
 Lọc dữ liệu với đáp ứng xung không xác định hay đáp ứng xung xác định. 
b) Cú pháp: 
 y = filter(b,a,X) 
 [y,zf] = filter(b,a,X) 
 [y,zf] = filter(b,a,X,zi) 
 y = filter(b,a,X,zi,dim) 
 [...] = filter(b,a,X,[ ],dim) 
c) Giải thích: 
 Lệnh fiter lọc dữ liệu tuần tự sử dụng bộ lọc số cho các ngõ vào thực và phức. 
y = filter(b,a,X) lọc dữ liệu trong vector X với bộ lọc được mô tả bởi vector hệ số tử số b và 
vector hệ số mẫu số a. Nếu a(1) không bằng 1, bộ lọc sẽ chuẩn hóa hệ số lọc bởi a(1). Nếu a(1) 
bằng 0 thì sẽ báo lỗi. 
Nếu X là một ma trận, bộ lọc sẽ thực hiện trên các cột của X. Nếu X là một mảng đa chiều, 
bộ lọc sẽ thực hiện theo chiều duy nhất. 
 [y,zf] = filter(b,a,X) tạo ma trận điều kiện cuối cùng zf của bộ trễ. Ngõ ra zf là một vector 
của max(size(a),size(b)) hoặc một tập hợp các vector với mỗi vector là một cột của X. 
 [y,zf] = filter(b,a,X,zi) chấp nhận điều kiện ban đầu zi và tạo ra điều kiện cuối cùng cuối 
cùng zf của bộ lọc trễ. Ngõ vào zi là một vector có kích thước length(a),length(b)) – 1. 
 y = filter(b,a,X,zi,dim) và [...] = filter(b,a,X,[ ],dim) thực hiện lọc theo chiều dim. 
 MATLAB trong điều khiển tự động Trang 204 
CÁC BÀI TẬP VỀ ĐÁP ỨNG THỜI GIAN 
 Bài1: Lệnh pade: Tính toán sắp xỉ 
 Bài này trích từ trang 11-66 sách ‘Control System Toollbox’ 
 » pade(0.1,3) 
0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2
-1
-0.5
0
0.5
1
1.5
Time (secs)
A
m
pl
itu
de
S tep response of 3rd-order Pade approximation
10
1
10
2
10
3
-1000
-800
-600
-400
-200
0
Frequency (rad/s)
P
ha
se
 (
de
g.
)
Phase response
Bài 2: Trích từ trang 11-24 sách ‘Control System Toollbox’ 
 s -1 
 H(s) = ------------------- 
 s2 + 4s +5 
» H=tf([1 -1],[1 4 5],'inputdelay',035) 
Transfer function: 
 s - 1 
exp(-35*s) * ------------- 
 s^2 + 4 s + 5 
» Hd=c2d(H,0.1,'foh') 
Transfer function: 
 MATLAB trong điều khiển tự động Trang 205 
 0.04226 z^2 - 0.01093 z - 0.03954 
z^(-350) * --------------------------------- 
 z^2 - 1.629 z + 0.6703 
Sampling time: 0.1 
» step(H,'-',Hd,'--') 
Time (sec.)
A
m
pl
itu
de
S tep Response
0 5 10 15 20 25 30 35 40
-0.25
-0.2
-0.15
-0.1
-0.05
0
0.05
0.1
0.15
From: U(1)
To
: Y
(1
)
 2s2 + 5s + 1 
 s2 + 2s + 3 
Bài 3: Trang 11-127, H(s) = s - 1 
 s2+s+5 
» [u,t]=gensig('square',4,10,0.1); 
» H=[tf([2 5 1],[1 2 3]);tf([1 -1],[1 1 5])]; 
» lsim(H,u,t) 
Kết quả: 
Bài tập này được trích từ trang 11-127 sách ‘Control System Toolbox’ 
 MATLAB trong điều khiển tự động Trang 206 
Time (sec.)
A
m
pl
itu
de
Linear Simulation Results
-2
-1
0
1
2
3
To
: Y
(1
)
0 1 2 3 4 5 6 7 8 9 10
-0.6
-0.4
-0.2
0
0.2
0.4
To
: Y
(2
)
Bài 4: Dùng lệnh lsim, trích từ trang 11-130 sách ‘Control Systen Toollbox’ 
 Dịch đề: Vẽ đáp ứng khâu bậc 2 của hàm truyền sau: 
 ω2 
 =)(sh
 s2 + 2s + ω2 
 ω = 62,83 
» w2=62.83^2 
w2 = 
 3.9476e+003 
» h=tf(w2,[1 2 w2]); 
» t=0:0.1:5; %vector of time sample: 
» u=(rem(t,1)>=0.5); %square ware value : 
» lsim(h,u,t) 
Kết quả: 
 MATLAB trong điều khiển tự động Trang 207 
Time (sec.)
A
m
pl
itu
de
Linear Simulation Results
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
-1
-0.5
0
0.5
1
1.5
2
To
: Y
(1
)
Bài 5: Trang 11-131 sách ‘Control Systen Toollbox’ 
Ta lấy số liệu bài 24 nhưng thời gian mẫu là 0,1. 
Chương trình: 
» w2=62.83^2; 
» hd=c2d(h,0.1); 
» t=0:0.1:5; %vector of time sample: 
» u=(rem(t,1)>=0.5); %square ware value : 
» lsim(hd,u,t) 
 MATLAB trong điều khiển tự động Trang 208 
Time (sec.)
A
m
pl
itu
de
Linear Simulation Results
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
To
: Y
(1
)
Bài 6: Trang 11-132 sách ‘Control Systen Toollbox’ 
Cũng lấy số liệu 2 bài trên. 
» w2=62.83^2; 
» h=tf(w2,[1 2 w2]); 
» t=0:0.1:5; %vector of time sample: 
» u=(rem(t,1)>=0.5); %square ware value : 
» hd=c2d(h,0.1); 
» lsim(h,'b--',hd,'r-',u,t) % 
 MATLAB trong điều khiển tự động Trang 209 
Time (sec.)
A
m
pl
itu
de
Linear Simulation Results
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
-1
-0.5
0
0.5
1
1.5
2
To
: Y
(1
)
Bài 7: Trích từ trang 46 sách ‘ứng dụng matlab trong điều khiển tự động’ 
 Phương trình biến trang thái của hệ thống tuyến tính bất biến theo thời gian là: 
 Chương trình được viết trong file.m: 
%function [yout,x] = lsim(A, B, C, D, U, t, x0) 
%Phuong trinh bien trang thai cua mot he thong tuyen tinh 
% bat bien theo thoi gian la: 
% . 
% x1 
% . 0 1 0 x1 1 
% {x2} = { 0 0 1 } { x2 } + {1} r(t) 
% . -6 -11 -6 x3 1 
% x3 
% 1 
% y=[1 1 0]x, x(0)= 0.5 
% -0.5 
% Xac dinh x(t),y(t) khi r(t) la ham bac don vi 
hold on 
grid on 
A=[0 1 0;0 0 1;-6 -13 -6]; 
B=[1;1;1];%xac dinh vi ban dau va hinh dang cua do thi x1,y,x2,x3 
C=[1 1 0]; 
D=0; 
x0=[1 .5 -.5]; %vecto hang dieu kien ban dau 
 MATLAB trong điều khiển tự động Trang 210 
t=0:.05:8; %buoc nhay 
U=ones(1,length(t));%tao vecto hang u(t) 
[x,y]=lsim(A,B,C,D,U,t,x0); 
plot(t,x,t,y) 
title('BAI GIAI BT15') 
xlabel('Thoi gian-giay') 
text(3.8,1.8,'y'),text(3.8,2.6,'x1');%Canh vi tri cua y va x1 tren do thi 
text(3.8,-0.6,'x2'),text(3.8,-1.4,'x3')%Canh vi tri cua x2 va x3 tren do thi 
Bài 
9: 
tríc
từ 
tran
48 
sách
tác 
giả 
Nguy
ễn 
h 
g 
g 
2Πt). 
Văn
Giáp. 
Cũn
với 
yêu 
cầu
như
bài 28, nhưng r(t)=sin(
0 1 2 3 4 5 6 7 8
-2
-1
0
1
2
3
4
BAI GIAI BT15
Thoi gian-giay
y
x1
x2
x3
 Chương trình soạn trong file.m: 
 %function [yout,x] = lsim(A, B, C, D, U, t, x0) 
%BT16:Ve do thi y(t),x(t) cua bai BT15 neu r(t)=sin(2pit) 
A=[0 1 0;0 0 1;-6 -11 -6]; 
B=[1;1;1];C=[1 1 0];D=0; 
x0=[1 .5 -.5]; %vecto hang dieu kien ban dau 
t=0:.05:4; %buoc nhay 
r=sin(2*pi*t); 
[y,x]=lsim(A,B,C,D,r,t,x0); 
plot(t,x,t,y) 
title('BAI GIAI BT16') 
xlabel('Thoi gian-giay') 
text(3.8, 1.8,'y'),text(3.8, 2.6,'x1') 
 MATLAB trong điều khiển tự động Trang 211 
text(3.8, -8,'x2'),text(3.8, -1.4,'x3') 
0 0.5 1 1.5 2 2.5 3 3.5 4
-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
BAI GIAI BT16
Thoi gian-giay
y
x3
ài 
Bài 10: Xét hàm truyền sau: 
25s8s
10s
)s(G
2 ++
+= 
 Để tính đáp ứng bước của hệ thống này ta dùng cấu trúc như sau: 
 [out,state,tt]=step([1 10],[1 8 25]) 
 Giả sử ta muốn phân tích một đáp ứng bước của hệ thống thay đổi, với zero của hàm truyền 
thay đổi nhưng độ lợi dc (dc gain) của hệ thống không đổi, để giữ lại cho hệ thống cùng mẫu và 
thay đổi hệ số của số hạng đầu trong đa thức của tử,tức là hệ số của s, vì vậy mà dc gain là hằng 
số và zero thay đổi. 
 Ví dụ : hệ thống như ví dụ trên nhưng số hạng ban đầu của đa thức ở tử số thay đổi thành (-4,-
2,-1,0,1,2,4) 
 Ta thưc hiện trong cửa sổ lệnh của matlab như sau: 
 » coef=[-4 -2 -1 0 1 2 4]; 
 » den=[1 8 25]; 
 » [y,x,t]=step([coef' 10*ones(length(coef),1)],den); 
 » mesh(coef,t,y) 
Kết quả như hình: 
 MATLAB trong điều khiển tự động Trang 212 
Hình 3.7: So sánh giữa các đáp ứng step 
Bài 11: đáp ứng xung (impulse) 
 Ví dụ hệ thống có hàm truyền sau: 
25s2s
10s
)s(G
2 ++
+= 
 Vẽ đáp ứng xung của hệ thống: 
 impulse([1 10],[1 2 25]) 
 Giả sử ta muốn phân tích đáp ứng xung thay đổi như thế nào khi zero của hàm truyền thay đổi, 
không thay đổi dc gain của hệ thống. giống như ví dụ ở phần trước ta có : 
 » coef=[-4 -2 -1 0 1 2 4]; 
 » den=[1 2 25]; 
 » impulse([coef' 10*ones(length(coef),1)],den); 
 MATLAB trong điều khiển tự động Trang 213 
 Kết quả như hình sau: 
Bài 12: Trích từ trang 716 sách ‘The Student Edition of MATLAB’ 
 Dịch đề: Thiết kế 1 khâu gồm 10 bộ lọc của dãi băng truyền ngang có tần số từ 100 đến 200 
Hz và vẽ đáp ứng xung của nó: 
» n=5;wn=[100 200]/500; 
» [b,a]=butter(n,wn); 
» [y,t]=impz(b,a,101); 
» stem(t,y) 
 MATLAB trong điều khiển tự động Trang 214 
0 10 20 30 40 50 60 70 80 90 100
-0.25
-0.2
-0.15
-0.1
-0.05
0
0.05
0.1
0.15
0.2
 Bài 13: Đáp ứng từng ngõ vào 
Một vấn đề tổng quát hơn là ta có thể tính được tín hiệu ngõ ra của hệ thống LTI với một 
tính hiệu ngõ vào không đồng nhất. 
Ví dụ như hệ thống bậc nhất sau: 
xy
uxx
.
=
+−=
 Hệ thống này bị tác động với một tín hiệu ngõ vào hình sin có tần số là 1Hz, tín hiệu ngõ ra thu 
được bởi cấu trúc: 
 >> freq=1; t=0:0.05:10; 
 >> u=sin(2*pi*freq*t); lsim(-1,1,1,0,u,t) 
 MATLAB trong điều khiển tự động Trang 215 
 Kết quả là hình sau: 
Hình : Đáp ứng từng ngõ vào 

File đính kèm:

  • pdfmatlab_trong_dieu_khien_tu_dong_ban_dep.pdf