Khảo sát ứng dụng MATLAB trong điều khiển tự động
NHĨM L NH V CHUY N I MƠ HÌNHỆ Ề Ể ĐỔ
(Model Conversion)
1. L nh C2D, C2DTệ
a) Cơng d ngụ :
Chuy n đ i mơ hình t liên t c sang gián đo n.ể ổ ừ ụ ạ
b) Cú pháp:
[ad,bd] = c2d(a,b,Ts)
c) Gi i thíchả :
c2d và c2dt chuy n mơ hình khơng gian tr ng thái t liên t c sang gián đo n th a nh n khâuể ạ ừ ụ ạ ừ ậ
gi b c 0 ng vào. c2dt c ng có kho ng th i gian tr ngõ vào.ữ ậ ở ỏ ũ ả ờ ễ ở
[ad, bd] = c2d(a,b,Ts) chuy n h khơng tr ng thái liên t c x = Ax + Bu thành h gián đo n:ể ệ ạ ụ ệ ạ
x[n+1] = A
d
x[n] + B
d
u[n] th a nh n ngõ vào đi u khi n là b t bi n t ng đo n bên ngồi th i gianừ ậ ề ể ấ ế ừ ạ ờ
l y m u Ts.ấ ẫ
[ad,bd,cd,dd] = c2dt(a,b,c,Ts,lambda) chuy n h khơng gian tr ng thái liên t c v i th iể ệ ạ ụ ớ ờ
gian tr thu n túy ễ ầ λ ngõ vào:ở
.
x
(t) = Ax(t) + Bu(t - λ)
y(t) = Cx(t)
thành h gián đo n:ệ ạ
x[n+1] = A
d
x[n] + B
d
u[n]
y[n] = C
Sampling time: 0.1
2. L nh C2DMệ
a) Cơng d ng:ụ
Chuy n đ i h liên t c sang gián đo n.ể ổ ệ ụ ạ
b) Cú pháp:
[ad,bd,cd,dd] = c2dm(a,b,c,d,Ts,’method’)
[numd,dend] = c2dm(num,den,Ts,’method’).
c) Gi i thíchả :
[ad,bd,cd,dd] = c2dm(a,b,c,d,Ts,’method’) chuy n đ i t h khơng gian tr ng thái liên t c ể ổ ừ ệ ạ ụ
(a,b,c,d) sang gián đo n s d ng ph ng pháp khai báo trong ‘method’. ‘method’ có th là:ạ ử ụ ươ ể
+ ‘zoh’: chuy n sang h gián đo n th a nh n m t khâu gi b c 0 ngõ vào, các ngõ vào đi uể ệ ạ ừ ậ ộ ữ ậ ở ề
khi n đ c xem nh b t bi n t ng đo n trong kho ng th i gian l y m u Ts.ể ượ ư ấ ế ừ ạ ả ờ ấ ẫ
+ ‘foh’: chuy n sang h gián đo n th a nh n m t khâu gi b c 1 ngõ vào.ể ệ ạ ừ ậ ộ ữ ậ ở
+ ‘tustin’: chuy n sang h gián đo n s d ng pháp g n đúng song tuy n tính (Tusin) đ iể ệ ạ ử ụ ầ ế ố
v i đ o hàm.ớ ạ
+ ‘prewarp’: chuy n sang h gián đo n s d ng pháp g n đúng song tuy n tính (Tusin)ể ệ ạ ử ụ ầ ế
v i t n s l ch tr c. N u thêm vào tham s Wc thì l nh s ch ra t n s t i h n.ớ ầ ố ệ ướ ế ố ệ ẽ ỉ ầ ố ớ ạ
Ví d nh c2dm(a,b,c,d,Ts,prewarp,Wc).ụ ư
+ ‘matched’: chuy n h SISO sang gián đo n s d ng ph ng pháp c c zero hàm truy nể ệ ạ ử ụ ươ ự ề
phù h p.ợ
[numd, dend] = c2dm(num,den,Ts,’method’) chuy n t hàm truy n đa th c liên t c G(s) =ể ừ ề ứ ụ
num(s)/den(s) sang gián đo n G(z) = num(z)/den(z) s d ng ph ng pháp đ c khai báo trongạ ử ụ ươ ượ
’method’.
N u b qua các đ i s bên trái thì:ế ỏ ố ố
c2dm(a,b,c,d,Ts,’method’)
c2dm(num,den,Ts,’method’)
Thực hiện: PHẠM QUỐC TRƯỜNG - 2 - GVHD: PHẠM QUANG HUY
Khảo sát ứng dụng MATLAB trong điều khiển tự động
s v ra 2 đ th c a 2 đáp ng v i đ ng li n nét là đáp ng liên t c còn đ ng đ t đo n là đápẽ ẽ ồ ị ủ ứ ớ ườ ề ứ ụ ườ ứ ạ
12
11
2
1
2
1
2
1
+
=
+
x[n+1] = Ax[n] + Bu[n]
thành h liên t cệ ụ
uBxAx
cc
+=
.
xem các ngõ vào đi u khi n là b t bi n t ng đo n trong kho ng th i gian l y m u Ts.ề ể ấ ế ừ ạ ả ờ ấ ẩ
4. L nh D2CMệ
a) Cơng d ngụ :
Chuy n đ i mơ hình khơng gian tr ng thái t gián đo n sang liên t c.ể ổ ạ ừ ạ ụ
b) Cú pháp:
[ac,bc,cc,dc] = d2cm(a,b,c,d,Ts,’method’)
[numc,denc] = d2cm(num,den,Ts,’method’).
c) Gi i thíchả :
Thực hiện: PHẠM QUỐC TRƯỜNG - 4 - GVHD: PHẠM QUANG HUY
uBxAx
cc
+=
áp ng gián đo nĐ ứ ạ
áp ng liên t cĐ ứ ụ
Khảo sát ứng dụng MATLAB trong điều khiển tự động
[ac,bc,cc,dc] = d2cm(a,b,c,d,Ts,’method’) chuy n đ i h khơng gian tr ng thái t gián đo nể ổ ệ ạ ừ ạ
sang liên t c s d ng ph ng pháp đ c khai báo trong ‘method’. ‘method’ có th là:ụ ử ụ ươ ượ ể
+ ‘zoh’: chuy n sang h liên t c th a nh n m t khâu gi b c 0 ngõ vào, các ngõ vào đi uể ệ ụ ừ ậ ộ ữ ậ ở ề
khi n đ c xem nh b t bi n t ng đo n trong kho ng th i gian l y m u Ts.ể ượ ư ấ ế ừ ạ ả ờ ấ ẫ
+ ‘tustin’: chuy n sang h liên t c s d ng ph ng pháp g n đúng song tuy n tính (Tusin)ể ệ ụ ử ụ ươ ầ ế
đ i v i đ o hàm.ố ớ ạ
+ ‘prewarp’: chuy n sang h liên t c s d ng pháp g n đúng song tuy n tính (Tusin) v iể ệ ụ ử ụ ầ ế ớ
t n s l ch tr c. N u thêm vào tham s Wc thì l nh s ch ra t n s t i h n.ầ ố ệ ướ ế ố ệ ẽ ỉ ầ ố ớ ạ
Ví d nh d2cm (a,b,c,d,Ts,prewarp,Wc).ụ ư
cc =
Thực hiện: PHẠM QUỐC TRƯỜNG - 5 - GVHD: PHẠM QUANG HUY
;
38
411
A
=
;
4
6
B
=
[ ]
;1228C =
15;D =
Khảo sát ứng dụng MATLAB trong điều khiển tự động
2 4
dc = 1
Hàm truy n c a h th ng đ c xác đ nh b ng l nh:ề ủ ệ ố ượ ị ằ ệ
[num,den] = ss2tf (a,b,c,d,1)
ta đ c:ượ
num =
Thực hiện: PHẠM QUỐC TRƯỜNG - 6 - GVHD: PHẠM QUANG HUY
áp ng gián đo nĐ ứ ạ
áp ng liên t cĐ ứ ụ
Khảo sát ứng dụng MATLAB trong điều khiển tự động
0 0 1.0000
den =
1.0000 0.4000 1.0000
6. L nh TF2SSệ
a) Cơng d ngụ :
Chuy n h th ng t d ng khơng gian hàm truy n thành d ng tr ng thái.ể ệ ố ừ ạ ề ạ ạ
b) Cú pháp:
[a,b,c,d] = tf2ss(num,den)
c) Gi i thíchả :
[a,b,c,d] = tf2ss(num,den) tìm h ph ng trình tr ng thái c a h SISO:ệ ươ ạ ủ ệ
.
x
= Ax + Bu
y = Cx + Du
đ c cho b i hàm truy n:ượ ở ề
t ngõ vào duy nh t. Vector den ch a các h s m u s hàm truy n theo chi u gi m d n sừ ấ ứ ệ ố ẫ ố ề ề ả ầ ố
m s a s. Ma tr n NUM ch a các h s c a t s v i s hàng là s ngõ ra y. Các ma tr n a, b,ũ ủ ậ ứ ệ ố ủ ử ố ớ ố ố ậ
c, c tr thành d ng chính t t.ở ạ ắ
* Ví d 1ụ :
Xét h th ng có hàm truy n:ệ ố ề
chuy n h th ng thành d ng khơng gian tr ng thái ta th c hi n các l nh:Để ể ệ ố ạ ạ ự ệ ệ
Num = [0 2 3
++
+
=
Khảo sát ứng dụng MATLAB trong điều khiển tự động
Ví d 2: Trích t sách ‘ụ ừ ng d ng MATLAB trong i u khi n t ng’ Ứ ụ đ ề ể ự độ tác gi Nguy n ả ễ
V n Giáp.ă
Cho hàm truy n: (sề
2
+7s +2) / (s
3
+9s
2
+26s+24)
» num=[1 7 2];
» den=[1 9 26 24];
» [A,B,C,D]=tf2ss(num,den)
K t qu :ế ả
A =
-9 -26 -24
1 0 0
0 1 0
B =
1
0
BuAxx +=
.
y = Cx + Du
t ngõ vào th iu. Vector c t p ch a các c c m u s hàm truy n. Các zero c a t s n mừ ứ ộ ứ ự ẫ ố ề ủ ử ố ằ
trong các c t c a ma tr n z v i s c t là s ngõ ra y. l i c a t s hàm truy n n m trong cácộ ủ ậ ớ ố ộ ố Độ ợ ủ ử ố ề ằ
c t vector k.ộ
d) Ví dụ:
Xét h th ng có hàm truy n: ệ ố ề
14.0
32
)(
2
++
+
=
ss
s
sH
num = [2 3];
den = [1 0.4 1];
Có 2 cách đ tìm các zero, c c và đ l i c a h th ng này:ể ự ộ ợ ủ ệ ố
+ Cách 1:
[z,p,k] = tf2zp(num, den)
+ Cách 2:
[a,b,c,d] = tf2ss(num, den);
[z,p,k] = ss2zp(a,b,c,d,1)
và ta đ c cùng m t k t qu nh sau:ượ ộ ế ả ư
z = -1.5000
p = -0.2000 + 0.9798i
-0.2000 – 0.9798I
==
Vector c t p ch a các c c và ma tr n z ch a các zero v i s c t là s ngõ ra. Vector k ch a cácộ ứ ự ậ ứ ớ ố ộ ố ứ
h s đ l i.Các ma tr n a,b,c,d tr v d ng chính t c. ệ ố ộ ợ ậ ở ề ạ ắ
9. L nh TF2ZP ệ
a) Cơng d ngụ :
Chuy n h th ng t d ng hàm truy n sang d ng đ l i c c-zero.ể ệ ố ừ ạ ề ạ ộ ợ ự
b) Cú pháp:
[z,p,k] = tf2zp (NUM,den)
c) Gi i thíchả :
tf2ss tìm các zero, c c và đ l i c a h th ng đ c bi u di n d i d ng hàm truy n. ự ộ ợ ủ ệ ố ượ ể ễ ướ ạ ề
[z,p,k]= tf2zp (NUM,den) tìm hàm truy n c a h SIMO d ng:ề ủ ệ ạ
))(( ))2(()1((
))(( ))2(()1((
)(
)(
)(
npspsps
mZsZsZs
k
sp
sZ
sH
−−−
−−−
==
đ c cho b i hàm truy n:ượ ở ề
)()1( )1(
)()1( )1(
)(
sH
num = [2 3];
den = [1 0.4 1];
[z,p,k] = tft2zp (num,den)
ta đ c:ượ
z = -1.5000
p = -0.2000 + 0.9798i
-0.2000 – 0.9798i
k = 2
10. L nh ZP2TFệ
a) Cơng d ngụ :
Chuy n đ i h th ng t d ng đ l i c c zero sang d ng hàm truy nể ổ ệ ố ừ ạ ộ ợ ự ạ ề
b) Cú pháp:
[num,den] = zp2tf (z,p,k)
c) Gi i thíchả :
zp2tf t o ra hàm truy n đa th c t các zero, c c và đ l i c a h th ng.ạ ề ứ ừ ự ộ ợ ủ ệ ố
[num,den] = zp2tf (z,p,k) tìm hàm truy n h u t :ề ữ ỉ
)()1( )1(
)()1( )1(
)(
)(
1
1
nddensnddensden
nnNUMsnnNUMsNUM
sden
sNUM
nd
nn
p = poly(r)
c) Gi i thíchả :
p = poly(A), trong đó A là ma tr n nxn v i các ph n t là các h s c a đa th c đ c tr ng detậ ớ ầ ử ệ ố ủ ứ ặ ư
(sI-A), t o ra vector hàng có n+1 ph n t x p theo th t gi m d n s m c a s.ạ ầ ử ế ứ ự ả ầ ố ũ ủ
p = poly(r), t o ra vector hàngv i các ph n t là các h s c a đa th c có nghi m là các ph n tạ ớ ầ ử ệ ố ủ ứ ệ ầ ử
c a vector ngõ ra.ủ
d) Ví d 1ụ :
Cho ma tr nậ
A =
1 2 3
4 5 6
7 8 0
p = poly (A)
p =
1 -6 -72 -27
Ví d 2: Trích t ụ ừ Ví d 2.5 ụ sách c a tác gi Nguy n V n Giápủ ả ễ ă
%Vídu2.m
%tim nghiem cua da thuc:
% s^6+9s^5+31.25s^4+61.25s^3+67.75s^2+14.75s+15
P=[1 9 31.25 61.25 67.75 14.75 15]
R=roots(P)
K t qu :ế ả
»
P =
1.0000 9.0000 31.2500 61.2500 67.7500 14.7500 15.0000
R =
Thực hiện: PHẠM QUỐC TRƯỜNG - 12 - GVHD: PHẠM QUANG HUY
Khảo sát ứng dụng MATLAB trong điều khiển tự động
-4.0000
-3.0000
1
2
3
1
21
1
2
3
1
21)(
)(
[b,a]= residue(r,p,k) chuy n d ng khai tri n phân s t ng ph n:ể ạ ể ố ừ ầ
)(
)(
)(
1
2
1
1
sk
ps
r
ps
r
ps
r
sa
Thực hiện: PHẠM QUỐC TRƯỜNG - 13 - GVHD: PHẠM QUANG HUY
Khảo sát ứng dụng MATLAB trong điều khiển tự động
2 0 9 1
a =
1 1 4 4
r =
0.0000 - 0.2500i
0.0000 + 0.2500i
-2.0000
p =
-0.0000 + 2.0000i
-0.0000 - 2.0000i
-1.0000
k =
2
T đó hàm truy n t i gi n là:ừ ề ố ả
2 + (-2/(s+1)) + (0,25i/(s -j2)) + (-0,25i/(s -j2)) = 2 + (-2/(s+1))+ 1/(s
2
+4)
13. L nh SS2SSệ
a) Cơng d ng:ụ
Bi n đ i t ng đ ng h khơng gian tr ng thái.ế ổ ươ ươ ệ ạ
b) Cú pháp:
Thực hiện: PHẠM QUỐC TRƯỜNG - 14 - GVHD: PHẠM QUANG HUY
Khảo sát ứng dụng MATLAB trong điều khiển tự động
[at,bt,ct,dt]= ss2ss (a,b,c,d,T)
c) Gi i thíchả :
[at,bt,ct,dt]= ss2ss (a,b,c,d,T) th c hi n bi n đ i t ng đ ng: z= Txự ệ ế ổ ươ ươ
Cu i cùng ta đ c h khơng gian tr ng thái nh sauố ượ ệ ạ ư
TBuzTATz
−
=
0
1
12
11
2
1
2
.
1
.
y = [2 4]
nhau.
[ab,bb,cb,db]= canon (a,b,c,d,'type') chuy n h khơng gian tr ng thái thành d ng 'hình thái'ể ệ ạ ạ
trong đó có giá tr riêng th c n m trên đ ng chéo c a ma tr n Avà các giá tr riêng ph c n m kh iị ự ằ ườ ủ ậ ị ứ ằ ở ố
2x2 trên đ ng chéo c a ma tr n A. Gi s h th ng có các giá tr riêng ( ), ma tr n A s là:ườ ủ ậ ả ử ệ ố ị ậ ẽ
A =
−
2
1
000
00
00
000
λ
σω
ωσ
λ
[ab,bb,cb,db]= canon (a,b,c,d,'companion') chuy n h khơng gian tr ng thái thành d ngể ệ ạ ạ
chính t c 'kèm theo' trong đó đa thh c đ c tr ng c a h th ng n m c t bên ph i ma tr n A.ắ ứ ặ ư ủ ệ ố ằ ở ộ ả ậ
−
−
−
1
2
3
10
000
001
000
a
a
a
a
n
N u thêm vào m t đ i s ngõ ra thì:ế ộ ố ố ở
[ab,bb,cb,db,T]= canon(a,b,c,d,'type') t o ra vector chuy n đ i T v i z= Txạ ể ổ ớ
Thực hiện: PHẠM QUỐC TRƯỜNG - 16 - GVHD: PHẠM QUANG HUY
Khảo sát ứng dụng MATLAB trong điều khiển tự động
CÁC BÀI T PẬ
Bài 1: c vi t d i d ng m_file Đượ ế ướ ạ
%Bai tap tinh toan tong quat cua ham truyen
tu1=input('nhap (vi du: tu1=[3]), tu1= ');
mau1=input('nhap (vi du mau1=[1 4]), mau1= ');
tu2=input('nhap (tu2=[2 4]), tu2= ');
mau2=input('nhap (mau2=[1 2 3]), mau2= ');
%ket qua tu3=[0 0 2 12]; mau2=[1 6 11 12]
printsys(num,den,'s')
pause
disp('Tinh va hien thi tan so tu nhien va he so suy giam cua HT lien tuc
la:');
damp(den)
pause
disp('He so khuyech dai cua he thong:');
k=dcgain(num,den)
pause
disp('He so khuyech dai cua he thong kin voi he so suy giam:');
k=rlocfind(num,den)
pause
disp('Bien doi HAM TRUYEN thanh MO HINH BIEN TRANG THAI');
[A,B,C,D]=tf2ss(num,den)
A
Thực hiện: PHẠM QUỐC TRƯỜNG - 17 - GVHD: PHẠM QUANG HUY
Khảo sát ứng dụng MATLAB trong điều khiển tự động
B
C
B
disp('Bien doi ham truyen lien tuc sang roi rac la;');
Ts=input('nhap thoi gian lay mau(vi du: Ts=0.1), Ts= ');
[numd,dend]=c2dm(num,den,Ts,'zoh')
pause
disp('Gia tri rieng,bien do,tan so');
disp('va he so suy giam tuong duong cua ham truyen cua he thong roi rac');
disp('thoi gian lay mau Ts la:');
ddamp(den,Ts)
Sau khi ch y ch ng trình:ạ ươ
» Bài1.m
p =
-4.0000
-1.0000 + 1.4142i
-1.0000 - 1.4142i
k =
[]
In ra ham truyen o dang ty so cua hai da thuc:
num/den =
6 s + 12
s^3 + 6 s^2 + 11 s + 12
Tinh va hien thi tan so tu nhien va he so suy giam cua HT lien tuc la:
Eigenvalue Damping Freq. (rad/s)
-1.00e+000 + 1.41e+000i 5.77e-001 1.73e+000
-1.00e+000 - 1.41e+000i 5.77e-001 1.73e+000
-4.00e+000 1.00e+000 4.00e+000
Thực hiện: PHẠM QUỐC TRƯỜNG - 19 - GVHD: PHẠM QUANG HUY
Khảo sát ứng dụng MATLAB trong điều khiển tự động
He so khuyech dai cua he thong:
k =
1
He so khuyech dai cua he thong kin voi he so suy giam:Select a point in the graphics window
selected_point =
0.1267 + 0.1842i
k =
1.0521
Bien doi HAM TRUYEN thanh MO HINH BIEN TRANG THAI
numd =
0 0.0263 0.0015 -0.0189
dend =
1.0000 -2.4619 2.0197 -0.5488
Gia tri rieng,bien do,tan so
va he so suy giam tuong duong cua ham truyen cua he thong roi rac
thoi gian lay mau Ts la:
Eigenvalue Magnitude Equiv. Damping Equiv. Freq. (rad/s)
-4.00e+000 4.00e+000 -4.04e-001 3.43e+001
-1.00e+000 + 1.41e+000i 1.73e+000 -2.44e-001 2.25e+001
Thực hiện: PHẠM QUỐC TRƯỜNG - 21 - GVHD: PHẠM QUANG HUY
Khảo sát ứng dụng MATLAB trong điều khiển tự động
-1.00e+000 - 1.41e+000i 1.73e+000 -2.44e-001 2.25e+001
Thực hiện: PHẠM QUỐC TRƯỜNG - 22 - GVHD: PHẠM QUANG HUY