Giáo trình môn Matlab - Chương 6: Matlab và điều khiển tự động (Phần 1)

CHƯƠNG 6: MATLAB VÀ ĐIỀU KHIỂN TỰ ĐỘNG  
§1. CÁC VẤN ĐỀ CHUNG  
1. Các dạng mô hình hệ thống: Để xây dựng mô hình của hệ thống, MATLAB  
cung cấp một số lệnh. Mô hình hệ thống mô tả bằng hàm truyền được xây  
dựng nhờ lệnh tf(ts,ms) với ts là đa thức tử số và ms là đa thức mẫu số. Hàm  
zpk(z, p, k) với z là vec tơ điểm không, p là vec tơ điểm cực và k là hệ số  
khuyếch đại tạo nên mô hình điểm không‐điểm cực. Hàm ss(a, b, cʹ, d) với a, b,  
c, d là các ma trận tạo nên mô hình không gian‐trạng thái.  
Ví dụ: Ta tạo ra một số mô hình nhờ các lệnh MATLAB sau(lưu trong  
ct6_1.m):  
clc  
ts = [1 2];  
ms = [1 5 4];  
sys1 = tf(ts,ms)  
sys2 = zpk([‐6 1 1],[‐5 1],3)  
sys3 = ss([1 2; 3 4],[1 1; 0 1],[0 1; 1 2; 3 1],0)  
Kết quả là:  
Transfer function:  
s + 2  
‐‐‐‐‐‐‐‐‐‐‐‐‐  
s^2 + 5 s + 4  
Zero/pole/gain:  
3 (s+6) (s‐1)^2  
‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐  
(s+5) (s‐1)  
a =  
x1  
x2  
2
x1  
x2  
1
3
4
b =  
u1  
u2  
1
1
x1  
x2  
1
0
122  
c =  
d =  
x1  
x2  
1
2
y1  
y2  
y3  
0
1
3
1
u1  
u2  
0
0
y1  
y2  
y3  
0
0
0
0
Continuous‐time model.  
2. Điểm cực và điểm zero của hàm truyền: Để biến đổi hệ thống cho bởi hàm  
truyền thành hệ cho bởi điểm cực, điểm zero và hệ số khuếch đại dùng hàm  
tf2zp. Ta cũng có thể dùng hàm pole(sys) để tìm điểm cực của hệ thống sys và  
dung hàm zero(sys) để tìm điểm không của hệ thống sys  
Ví dụ: Cho hàm truyền:  
s3 +11s2 + 30s  
H(s) =  
s4 + 9s3 + 45s2 + 87s + 50  
Ta cần tìm các điểm cực p, điểm zero z và hệ số khuếch đại k của nó. Ta dùng  
các lệnh MATLAB sau(lưu trong ct6_2.m):  
ts = [1 11 30 0];  
ms = [1 9 45 87 50];  
[z,p,k] = tf2zp(ts,ms)  
z =  
0
‐6  
‐5  
p =  
‐3.0 + 4.0i  
‐3.0 ‐ 4.0i  
‐2.0  
‐1.0  
k =  
1
Như vậy:  
123  
s(s + 5)(s + 6)  
s(s + 5)(s + 6)  
H(s) =  
=
(s +1)(s + 2)(s + 3 + 4j)(s + 3 − 4j) (s +1)(s + 2)(s2 + 6s + 25)  
Khi có các điểm cực, điểm zero và hệ số khuếch đại ta có thể tìm lại hàm  
truyền bằng lệnh zp2tf. Ta dùng các lệnh MATLAB sau(lưu trong ct6_3.m):  
z = [‐6;‐5;0];  
k = 1;  
p = [‐3+4*i;‐3‐4*i;‐2;‐1];  
[ts,ms] = zp2tf(z,p,k)  
ts =  
0
1
1 11 30  
0
ms =  
9 45 87 50  
Để thấy được sự phân bố điểm không và điểm cực của hệ thống trên mặt  
phẳng phức ta dùng hàm pzmap. Trục của đồ thi được chia lưới bằng lệnh  
sgrid. Các điểm không biểu thị bằng vòng tròn và điểm cực biểu thị bằng dấu  
×. Ta xét các lệnh MATLAB sau(lưu trong ct6_4.m):  
clc  
sys = zpk([‐6 1 1],[‐5 1],3)  
axis equal  
pzmap(sys)  
sgrid  
3. Khai triển hàm truyền thành tổng các phân thức đơn giản: Cho hàm  
truyền, ta có thể khai triển nó thành tổng các phân thức đơn giản bằng lệnh  
residue. Hàm residue cho vec tơ cột các phần dư r, vec tơ cột các điểm cực p và  
phần nguyên k.  
Ví dụ: Cho hàm truyền:  
2s3 + 9s + 1  
H(s) =  
s3 + s2 + 4s + 4  
Ta khai triển hệ bằng các lệnh MATLAB sau(lưu trong ct6_5.m):  
ts = [2 0 9 1];  
ms = [1 1 4 4];  
[r,p,k] = residue(ts,ms)  
r =  
0.0 ‐ 0.25i  
0.0 + 0.25i  
124  
‐2.0  
p =  
‐0.0 + 2.0i  
‐0.0 ‐ 2.0i  
‐1.0  
k =  
2
Như vậy:  
0.25j − 0.25j  
s + 1 s + 2j s − 2j  
− 2  
2
1
H(s) = 2 +  
+
+
= 2 −  
+
s + 1 s2 + 4  
Ngược lại, có r, p, k ta có thể tìm hàm truyền bằng các lệnh MATLAB sau(lưu  
trong ct6_6.m):  
r = [0.0‐0.25*i; 0+0.25*i; ‐2];  
p = [0+2*i;0‐2*i;‐1];  
k = 2;  
[ts,ms] = residue(r,p,k)  
ts =  
2
ms =  
1
0
1
9
4
1
4
4. Biến đổi hàm truyền thành không gian‐trạng thái: Cho phương trình vi  
phân:  
dny  
dxn  
dn−1y  
dxn−1  
d y  
1 dx  
an  
+ an−1  
+L+ a  
+ a0y = u(t)  
Đặt x1 = y;x2 = y′;x3 = y′′ v.v ta có hệ phương trình trạng thái:  
x′ = Ax + Bu  
y = Cx + Du  
gọi là phương trình không gian‐trạng thái  
Nếu một hệ điều khiển tự động cho bởi hàm truyền ta có thể biến đổi về  
không gian‐trạng thái bằng lệnh tf2ss.  
Ví dụ: Cho hàm truyền :  
s2 + 7s + 2  
H(s) =  
s3 + 9s2 + 26s + 24  
Ta biến hệ về dạng không gian‐trạng thái bằng các lệnh MATLAB sau(lưu  
trong ct6_7m):  
125  
ts = [1 7 2];  
ms = [1 9 26 24];  
[a,b,c,d ] = tf2ss(ts,ms)  
a =  
‐9 ‐26 ‐24  
1
0
0
1
0
0
b =  
1
0
0
c =  
1
0
7
2
d =  
5. Biến đổi không gian‐trạng thái thành hàm truyền: Để biến đổi hệ cho dưới  
dạng không gian‐trạng thái thành hàm truyền ta dùng lệnh ss2tf. Ta xét các  
lệnh sau(lưu trong ct6_8.m)  
a = [0 1 0; 0 0 1; ‐1 ‐2 ‐3];  
b = [10; 0; 0];  
c = [1 0 0];  
d = [0];  
[ts,ms] = ss2tf(a,b,c,d,1)  
ts =  
0 10.00 30.00 20.00  
ms =  
1.00 3.00 2.00 1.00  
Như vậy hàm truyền là:  
10(s2 + 3s + 2)  
G(s) =  
s3 + 3s2 + 2s + 1  
6. Nghiệm của phương trình trạng thái: Để tìm nghiệm của phương trình  
trạng thái ta dùng lệnh lsim.  
Ví dụ: Cho phương trình trạng thái của một hệ tuyến tính  
126  
&
x
0
0
1
0
0 x  
1
⎡ ⎤ ⎡  
⎤ ⎡ ⎤ ⎡ ⎤  
1
1
⎢ ⎥ ⎢  
⎥ ⎢ ⎥ ⎢ ⎥  
1 x2 + 1 u(t)  
⎥ ⎢ ⎥ ⎢ ⎥  
&
x2 =  
⎢ ⎥ ⎢  
⎢& ⎥ ⎢  
⎥ ⎢ ⎥ ⎢ ⎥  
1
x3  
− 6 − 11 − 6 x3  
⎣ ⎦ ⎣  
⎦ ⎣ ⎦ ⎣ ⎦  
y = [1 1 0] x  
Cho điều kiện đầu x(0) = [1 0.5 ‐0.5]. Tìm x(t), y(t) với u(t) là hàm đơn vị. Ta  
dùng các lệnh MATLAB sau(lưu trong ct6_9.m):  
a = [0 1 0; 0 0 1; ‐6 ‐11 ‐6];  
b = [1; 1; 1];  
c = [1 1 0];  
d = 0;  
x0 = [1 0.5 ‐0.5];  
t = 0:0.05:4;  
u = ones(1,length(t));  
[y,x] = lsim(a,b,c,d,u,t,x0);  
plot(t,x,t,y)  
Do điều kiện đầu nên nghiệm y xuất phát từ 1.5  
Khi u(t) là sin2πt ta tính đáp ứng như sau(lưu trong ct6_10.m):  
a = [0 1 0;0 0 1;‐6 ‐11 ‐6];  
b = [1;1;1];  
c = [1 1 0];  
d = 0;  
x0 = [1 0.5 ‐0.5];  
t = 0:0.05:4;  
u = sin(2*pi*t);  
[y,x] = lsim(a,b,c,d,u,t,x0);  
plot(t,x,t,y)  
7. Biến đổi sơ đồ khối: Một sơ đồ khối điều khiển thường rất phức tạp. Vì vậy  
ta thường phải biến đổi nó về dạng đơn giản bằng lệnh connect.  
Ví dụ: Xét sơ đồ khối sau:  
1
4
1
s + 2  
+
-
+
1
1
0.5  
2
s + 3  
s + 4  
-
-
5
3
4
2
6
5
127  
7
8
Xác định phương trình trạng thái và hàm truyền của toán bộ sơ đồ:  
Gọi ni và di là tử số và mẫu số của hàm truyền của khối thứ i. Ta có các  
lệnh(lưu trong ct6_11.m):  
n1=1;d1=1;  
n2=.5;d2=1;  
n3=4;d3=[1 4];  
n4=1;d4=[1 2];  
n5=1;d5=[1 3];  
n6=2;d6=1;  
n7=5;d7=1;  
n8=1;d8=1;  
nblocks=8;  
blkbuild;  
q=[1 0 0 0 0  
2 1 ‐6 ‐7 ‐8  
3 2 0 0 0  
4 3 0 0 0  
5 4 0 0 0  
6 3 0 0 0  
7 4 0 0 0  
8 5 0 0 0];  
iu = [1];  
iy = [5];  
[A,B,C,D] = connect(a,b,c,d,q,iu,iy)  
A =  
‐8.0 ‐2.5 ‐0.5  
4.0 ‐2.0 0  
0 1.0 ‐3.0  
B =  
0.5  
0
0
C =  
128  
0
0
1
D =  
0
[ts,ms] = ss2tf(A,B,C,D,1)  
ts =  
0 0 0 2.0  
ms =  
1.0 13.0 56.0 80.0  
Hàm truyền của hệ là:  
C(s)  
1
=
R(s) s3 + 13s2 + 56s + 80  
8. Ghép nối các sơ đồ khối: Để ghép nối tạo nên một hệ thống từ nhiều hệ  
thống con ta có thể sử dụng một số khả năng như sau:  
u1  
sys1  
y1  
y2  
sys1  
y
u
u2  
sys2  
sys2  
a
b
z1  
v1  
y1  
y2  
u1  
u2  
sys1  
u1  
sys1  
y
u
u2  
sys2  
z2  
sys2  
v2  
c
d
v2  
y
u
sys1  
y
sys1  
u
y1  
sys2  
z1  
e
sys2  
f
a. Ghép theo hàng: Ghép theo hàng (hình a) có nghĩa là ghép đầu ra của  
các hệ thống con có đầu vào khác nhau. Hàm sys(sys1,sys2) thực hiện việc  
ghép này. Ta có các lệnh MATLAB sau(lưu trong ct6_12.m):  
clc  
sys1 = tf(1,[1 0])  
129  
sys2 = ss(1,2,3,4)  
sys = [sys1,sys2]  
b. Ghép theo cột: Ghép theo cột(hình b) có nghĩa là ghép đầu ra của hệ  
thống con có chung đầu vào. Ta có các lệnh MATLAB sau(lưu trong ct6_13.m):  
clc  
sys1 = tf(1,[1 0])  
sys2 = ss(1,2,3,4)  
sys = [sys1;sys2]  
c. Ghép theo đường chéo: Khi ghép theo đường chéo(hình c), ta có hệ  
thống mới bảo đảm cách ly các hệ thống con ban đầu. Để ghép ta dùng lệnh  
append. Các lệnh MATLAB(lưu trong ct6_14.m) như sau:  
clc  
sys1 = tf(1,[1 0])  
sys2 = ss(1,2,3,4)  
sys = append(sys1,sys2)  
d. Ghép song song: Ta dùng cách ghép như trên hình d. Hàm parallel  
dùng để ghép song song các hệ thống con. Các lệnh MATLAB (lưu trong  
ct6_15.m) như sau:  
clc  
sys1 = tf(1,[1 0])  
sys2 = ss(1,2,3,4)  
sys = parallel(sys1,sys2)  
e. Ghép tuần tự: Ta dùng cách ghép như trên hình e. Hàm series dùng để  
ghép tuần tự các hệ thống con. Các lệnh MATLAB(lưu trong ct6_16.m) như  
sau:  
clc  
sys1 = tf(1,[1 0])  
sys2 = ss(1,2,3,4)  
sys = series(sys1,sys2)  
f. Ghép có phản hồi: Ta dùng cách ghép như hình f. Hàm feedback dùng  
để ghép có phản hồi các hệ thống con. Các lệnh MATLAB (lưu trong ct6_17.m)  
như sau:  
clc  
sys1 = tf(1,[1 0])  
sys2 = ss(1,2,3,4)  
sys = feedback(sys1,sys2)  
130  
g. Sử dụng hàm connect: Hàm connect tạo ra mô hình không gian‐trạng  
thái từ các hệ thống con. Cú pháp của hàm:  
sysc = connect(sys,Q,inputs,outputs)  
Một hệ thống thường được cho dưới dạng các khối. Ngay cả khi sơ đồ không  
phức tạp, việc tìm được mô hình không gian‐trạng thái của hệ thống khá khó.  
Để tìm được mô hình không gian‐trạng thái, trước hết ta dùng hàm append:  
sys = append(sys1,sys2,...,sysN)  
để mô tả mỗi hệ thống con sysj hệ thống dạng đường chéo. Tiếp đến dùng  
lệnh:  
sysc = connect(sys,Q,inputs,outputs)  
để nối các hệ thống con và rút ra mô hình không gian‐trạng thái sysc của toàn  
bộ hệ thống. Ma trận Q chỉ ra cách nối các hệ thống con trên sơ đồ. Mỗi đầu  
vào của sys có một hàng, trong đó phần tử đầu tiên của mỗi hàng là số đầu  
vào. các phần tử tiếp theo của mỗi hàng mô tả đầu vào của hệ thống được lấy  
từ đâu. Ví dụ đầu vào 7 lấy từ đầu ra 2, 15 và 6 trong đó đầu vào của 15 âm thì  
hàng tương ứng của Q là [ 7 2 ‐15 6]. Hàng nào không đủ phần tử thì thêm số  
0. Ta tìm mô hình không gian trạng‐thái của sơ đồ sau:  
sys2  
sys1  
2
2
u1  
+
&
x = Ax + Bu  
y = Cx + Du  
y1  
y2  
10  
s + 5  
u2  
3
1
uc  
3
1
-
4
2(s +1)  
4
s + 2  
sys3  
Ta cần nối đầu ra 1 và 4 vào đầu vào 3 (u2) và đầu ra 3 (y2) vào đầu vào 4 nên  
ma trận Q là:  
Q = [3 1 ‐4  
4 3 0];  
Sơ đồ có 2 đầu vào từ các hệ thống khác là uc và u1 (đầu vào 1 và 2 của sys) và  
2 đầu ra đưa đến các hệ thống khác là y1 và y2 (đầu ra 2 và 3 của sys). Như vậy  
ma trân inputs và outputs là:  
inputs = [1 2];  
outputs = [2 3];  
Các lệnh MATLAB thực hiện việc biến đối sơ đồ (lưu trong ct6_18.m) như sau:  
clc  
131  
A = [ ‐9.0201 17.7791  
‐1.6943 3.2138 ];  
B = [ ‐.5112 .5362  
‐.002 ‐1.8470];  
C = [ ‐3.2897 2.4544  
‐13.5009 18.0745];  
D = [‐.5476 ‐.1410  
‐.6459 .2958 ];  
sys1 = tf(10,[1 5],ʹinputnameʹ,ʹucʹ)  
sys2 = ss(A,B,C,D,ʹinputnameʹ,{ʹu1ʹ ʹu2ʹ},...  
ʹoutputnameʹ,{ʹy1ʹ ʹy2ʹ})  
sys3 = zpk(‐1,‐2,2)  
sys = append(sys1,sys2,sys3)  
Q = [3 1 ‐4  
4 3 0];  
inputs = [1 2];  
outputs = [2 3];  
sysc = connect(sys,Q,inputs,outputs)  
§2. ĐÁP ỨNG CỦA HỆ THỐNG  
1. Đáp ứng của hệ thống bậc hai: Dạng chuẩn của hàm truyền của hệ thống  
bậc hai là:  
1
G(s) =  
s2 + 2ζωns + ω2n  
Trong đó ωn là tần số tự nhiên và ζ là hệ số tắt của hệ thống. Để tạo ra hàm  
truyền này khi biết ωn và ζ ta dùng lệnh ord2.  
Ví dụ: Tìm hàm truyền và ma trận trạng thái của hệ thống bậc hai biết ωn = 2.4  
rad/s và ζ = 0.4. Các lệnh MATLAB (lưu trong ct6_19.m) như sau:  
[ts,ms] = ord2(2.4,0.4)  
[a,b,c,d] = ord2(2.4,0.4)  
Đáp ứng thực tế của hệ là một dao động tắt dần có dạng:  
1
β
c(t) = 1− eζω t sin(βωnt + θ)  
n
Trong đó β = 1− ζ2 và θ = tan−1(β/ζ)  
Ta gọi tr là thời gian để dáp ứng đạt từ 10% giá trị cuối đến 90% giá trị cuối;  
thời gian đạt đến đỉnh là tp; độ nhanh đo bằng tr và tp; thời gian tắt là ts. Thời  
132  
gian đạt đến định được xác định bằng cách cho đạo hàm của c(t) bằng 0.  
π
tp =  
(4‐1)  
ω 1− ζ2  
Giá trị đỉnh (percent overshoot‐p.o)khi kích thích là bước nhảy là:  
2
1−ζ  
p.o = eζπ  
×100  
(4‐2)  
Đáp ứng với kích thích bước nhảy tìm được nhờ hàm step còn đáp ứng với  
kích thích xung tìm được nhờ hàm impulse  
Ví dụ: Tìm đáp ứng của khâu bậc hai có hàm truyền :  
ωn2  
G(s) =  
s2 + 2ζωns + ω2n  
khi ωn = 5 và ζ = 0.6.Các lện MATLAB (lưu trong ct6_20.m) như sau:  
clc  
ts = 25;  
ms = [1 6 25];  
sys = tf(ts,ms)  
t = 0:0.02:2;  
c = step(sys,t);  
plot(t,c)  
xlabel(ʹt(s)ʹ);  
ylabel(ʹc(t)ʹ);  
Ví dụ: Cho hệ có sơ đồ như hình vẽ:  
d
C(s)  
R(s)  
s(s +1)  
-
1+es  
Tìm d và e để p.o bằng 40% và tp = 0.8s. Các lệnh MATLAB (lưu trong  
ct6_21.m) như sau:  
clc  
po = 40;  
z = log(100/po)/sqrt(pi^2+(log(100/po))^2)%theo (4‐2)  
zn = 0.27999799333504  
tp = 0.8;  
wn = pi/(tp*sqrt(1‐z^2))% theo (4‐1)  
ts = wn^2;  
133  
pdf 12 trang myanh 20621 Free
Bạn đang xem tài liệu "Giáo trình môn Matlab - Chương 6: Matlab và điều khiển tự động (Phần 1)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfgiao_trinh_mon_matlab_chuong_6_matlab_va_dieu_khien_tu_dong.pdf