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
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
* 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
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
~= 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
>> 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
>> 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)
,
0
b 0
1
,
c 1 1 0
a. Giả sử
A * x b
. Tìm
x
b. Giả sử
y* A c
. Tìm
y
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 .
sys2
sys4
sys6
sys1
sys3
+
+
sys5
12trong đó:
p1p
3p
1sys
u2x21y
u
2
1
x
41
32
23
11
x
2
p 1
sys3
p 3p 5
u2x31y
u
1
1
x
41
32
x
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ụ:
i43pi43p3p2p
5p4pp
pW
Xác định hàm truyền đạt của hệ thống?
14
>> 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ố
0
50
10
-1
10
0
10
1
10
2
-90
0
90
Step Response
Time (sec)
Amplitude
0 5 10
0
0.5
1
1.5
Pole-Zero Map
Real Axis
Imag Axis
-2 -1.5 -1 -0.5 0
-4
-2
0
2
4
Linear Simulation Results
Time (sec)
Amplitude
0 2 4 6 8 10 12 14 16 18 20
-0.5
0
0.5
1
1.5
2
Linear Simulation Results
Time (sec)
Amplitude
0 2 4 6 8 10 12 14 16 18 20
-10
-5
0
5
10
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;
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)
Zero-Pole
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:
apap2p
1ap3pp
W
35
34
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:
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)
Zero-Pole
Step
Scope
Saturation
20
5. Khảo sát tính ổn định
để 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:
21
>> A=[0 1 0 0;0 0 1 0; 0 0 0 1; -15 -150 -50 -15];
>> B=[0;0;0;1];
>> C=[15 150 0 0];
>> D=0;
>> t=[0: 0.01:10];
>> [y1,x,t]=step(A,B,C,D,1,t);
>> [y2,x,t]=impulse(A,B,C,D,1,t);
>> subplot(211),plot(t,y1,'r-'),grid on
>> xlabel('Time[sec]'), ylabel ('Dap ung qua do')
>> subplot(212),plot(t,y2,'r-'),grid on
>> xlabel('Time[sec]'), ylabel ('Ham trong luong')
Ví dụ 2: Khảo sát đáp ứng đầu ra của hệ thống có mô tả toán học nh sau:
>> A=[0 -2;1 -3];
>> B=[2;0];
>> C=[1 0];
>> D=0;
>> x0=[1 1];
>> t=[0:0.01:10];
>> u=0*t;
>> [y,x]=lsim(A,B,C,D,u,t,x0);
>> subplot(211),plot(t,x(:,1),'r-'), grid on
>> xlabel('Time[sec]'), ylabel('x1'),
p p 1
2
sys
được biểu diễn dưới dạng không gian trạng thái:
sys3
p 3p 5
2
3 2
p p 2
sys4
p p p 2
p
1p
5sys
6
sys
được biểu diễn dưới dạng không gian trạng thái:
32
x
a. Hệ thống có điều khiển được, quan sát được không?
b. Vẽ đáp ứng Step, Bode, Nyquist, điểm cực - không của hệ thống
Bài 2.
Xây dựng hệ thống như phần 4 với hàm truyền đạt được thay bằng
2
G s s 1 / s 5s 6
, khâu phi tuyến bão hòa được thay bằng khâu tích phân
và chèn thêm một khâu khuếch đại cho hệ số khuếch đại bằng 10 vào sau khâu
tích phân.
Bài 3.
Một hệ thống được mô tả bởi hàm truyền đạt:
4 3 2
53 10 10 4
p a
W p
p p p p
a. Xác định phương trình đặc trưng của hệ thống?
b. Tìm miền giá trị của
K
để hệ thống ổn định?
c. Với một giá trị
K
cụ thể trong miền tìm được của phần b, hãy xác định các
nghiệm của phương trình đặc trưng?
Bài 5.
Xây dựng chương trình trong Matlab để tìm hàm truyền đạt của hệ thống tuyến
tính có mô tả toán học như sau:
1 1 0 0
0 2 0 ; 0 ; 1 1 1 ; 0
0 0 3 1
A B C D
Bài 6.
Xây dựng một sơ đồ hệ thống điều khiển tuyến tính trên trong Simulink rồi dùng
công cụ của Matlab tính ra hàm truyền đạt của hệ thống đó. So sánh kết quả