Chỉnh định lại các tham số của luật điều khiển P
Như vậy với Kp = T/L chưa đạt mức chỉ tiêu yêu cầu là max dưới 20%.Ta chỉnh lại giá trị của Kp bằng 0.5*(T/L) thì được quá trình quá độ của hệ thống và các điểm cực điểm không mới như sau:(Hình 2)
T=15;L=9;Kp=1.2*(T/L);n=3;Ti=2*L;Td=0.5*L;
Hình 2
Từ đồ thị trên ta có max=4.25% < 20% và thời gian quá độ là 59sec<77.7sec
(Thời gian quá độ thực nghiệm Z-N).Vậy với Kp=0.5*(T/L) là đạt yêu cầu.
16 trang |
Chia sẻ: lethao | Lượt xem: 2623 | Lượt tải: 2
Bạn đang xem nội dung tài liệu Bài tập dài môn lý thuyết điều khiển tự động làm với matlab, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Bµi tËp dµi m«n häc
Lý thuyÕt ®iÒu khiÓn tù ®éng
I.ThiÕt kÕ hÖ thèng ®iÒu khiÓn tù ®éng cã:
-Kh©u ®iÒu chØnh PID cã hµm truyÒn:
WPID(s)=Kp(1+ +Td.s)
-§èi tîng ®iÒu khiÓn lµ mét kh©u qu¸n tÝnh bËc nhÊt vµ kh©u trÔ cã hµm truyÒn :
W§T(s)= e-Ls/(Ts+1)
-C¸c tham sè L,T cña ®èi t¬ng ®iÒu khiÓn: L=9;T=15
*S¬ ®å khèi hÖ thèng ®iÒu khiÓn nh sau:
Kp
1
T.s+1
Ki/s
e-Ls
Input + + + Output
KD.s
- +
Ki=Kp/Ti;
Kd=Kp.Td;
II.TÝnh to¸n c¸c tham sè Kp,Ti,Td ®¶m b¶o tÝnh æn ®Þnh cña hÖ thèng:
-Theo Ziegler-Nichols th× ®Ó ®¶m b¶o tÝnh æn ®Þnh cña hÖ thèng trªn cÇn cã c¸c tham sè Kp,Ti,Td tho¶ m·n b¶ng sau øng víi tõng bé ®iÒu khiÓn:
C¸c bé ®iÒu khiÓn
Kp
Ti
Td
P
T/L
¥
0
PI
0.9T/L
L/0.3
0
PID
1.2T/L
2L
0.5L
III.XÐt tÝnh æn ®Þnh.T×m c¸c ®iÓm cùc vµ ®iÓm kh«ng.
Kh¶o s¸t chÊt lîng cña hÖ thèng víi tõng kh©u ®iÒu khiÓn.
1.Kh©u ®iÒu khiÓn P :
a) Ch¬ng tr×nh ch¹y trªn MATLAB:
>>L=9;T=15;Kp=T/L;n=3;
>> [n,d]=pade(L,n)
n =
-1.0000 1.3333 -0.7407 0.1646
d =
1.0000 1.3333 0.7407 0.1646
>> Wtre=tf(n,d)
Transfer function:
-s^3 + 1.333 s^2 - 0.7407 s + 0.1646
------------------------------------
s^3 + 1.333 s^2 + 0.7407 s + 0.1646
>> Wdt=tf(1,[T 1])*Wtre
Transfer function:
-s^3 + 1.333 s^2 - 0.7407 s + 0.1646
---------------------------------------------
15 s^4 + 21 s^3 + 12.44 s^2 + 3.21 s + 0.1646
>> Wpid=Kp;
>> W=feedback(Wpid*Wdt,1)
Transfer function:
-1.667 s^3 + 2.222 s^2 - 1.235 s + 0.2743
------------------------------------------------
15 s^4 + 19.33 s^3 + 14.67 s^2 + 1.975 s + 0.439
>> [p z]=pzmap(W)
p =
-0.5895 + 0.6817i
-0.5895 - 0.6817i
-0.0549 + 0.1817i
-0.0549 - 0.1817i
z =
0.4086 + 0.3899i
0.4086 - 0.3899i
0.5160
>> step(W)
MATLAB cho kÕt qu¶ sau:
H×nh 1
-NhËn thÊy r»ng víi Kp nhËn gi¸ trÞ trong b¶ng Ziegler-Nichols th× hÖ thèng æn ®Þnh víi thêi gian qu¸ ®é lµ 77.7sec
vµ chØ tiªu chÊt lîng smax= 42% >20%
b)ChØnh ®Þnh l¹i c¸c tham sè cña luËt ®iÒu khiÓn P
Nh vËy víi Kp = T/L cha ®¹t møc chØ tiªu yªu cÇu lµ s max díi 20%.Ta chØnh l¹i gi¸ trÞ cña Kp b»ng 0.5*(T/L) th× ®îc qu¸ tr×nh qu¸ ®é cña hÖ thèng vµ c¸c ®iÓm cùc ®iÓm kh«ng míi nh sau:(H×nh 2)
T=15;L=9;Kp=1.2*(T/L);n=3;Ti=2*L;Td=0.5*L;
H×nh 2
Tõ ®å thÞ trªn ta cã smax=4.25% < 20% vµ thêi gian qu¸ ®é lµ 59sec<77.7sec
(Thêi gian qu¸ ®é thùc nghiÖm Z-N).VËy víi Kp=0.5*(T/L) lµ ®¹t yªu cÇu.
-C¸c ®iÓm cùc vµ c¸c ®iÓm kh«ng míi:
>> [p z]=pzmap(W)
p =
-1.0096
-0.2899 + 0.1343i
-0.2899 - 0.1343i
-0.0771 + 0.0474i
-0.0771 - 0.0474i
z =
0.4086 + 0.3899i
0.4086 - 0.3899i
0.5160
-0.4208
-0.0792
2.Kh©u ®iÒu chØnh PI
a) Ch¬ng tr×nh ch¹y trªn Matlab:
>> L=9;T=15;Kp=0.9*(T/L);Ti=L/0.3;n=3;
>> [n,d]=pade(L,n)
n =
-1.0000 1.3333 -0.7407 0.1646
d =
1.0000 1.3333 0.7407 0.1646
>> Wtre=tf(n,d)
Transfer function:
-s^3 + 1.333 s^2 - 0.7407 s + 0.1646
------------------------------------
s^3 + 1.333 s^2 + 0.7407 s + 0.1646
>> Wdt=tf(1,[T 1])*Wtre
Transfer function:
-s^3 + 1.333 s^2 - 0.7407 s + 0.1646
---------------------------------------------
15 s^4 + 21 s^3 + 12.44 s^2 + 3.21 s + 0.1646
>> Wpid=Kp*tf([Ti 1],[Ti 0])
Transfer function:
45 s + 1.5
----------
30 s
>> W=feedback(Wpid*Wdt,1)
Transfer function:
-45 s^4 + 58.5 s^3 - 31.33 s^2 + 6.296 s + 0.2469
------------------------------------------------------------
450 s^5 + 585 s^4 + 431.8 s^3 + 64.96 s^2 + 11.23 s + 0.2469
>> [p z]=pzmap(W)
p =
-0.5801 + 0.6553i
-0.5801 - 0.6553i
-0.0574 + 0.1592i
-0.0574 - 0.1592i
-0.0250
z =
0.4086 + 0.3899i
0.4086 - 0.3899i
0.5160
-0.0333
>> step(W)
MATLAB cho qu¸ tr×nh qu¸ ®é nh sau:
H×nh 3
- HÖ thèng æn ®Þnh
- ChØ tiªu chÊt lîng: smax=8.75%
- Thêi gian qu¸ ®é:104sec
b)ChØnh ®Þnh l¹i c¸c tham sè cña luËt ®iÒu khiÓn PI
-Ta tiÕn hµnh chØnh ®Þnh l¹i c¸c tham sè nh sau: Kp=1;Ti=24:
*
>> step(W)
Qu¸ tr×nh qu¸ ®é míi nh sau:
H×nh 4
-HÖ thèng æn ®Þnh
-ChØ tiªu chÊt lîng smax=0%<20%
-Thêi gian qu¸ ®é:90.4sec<104sec(Thêi gian qu¸ ®é tÝnh theo c¸c tham sè trong b¶ng thùc nghiÖm Z-N)
*C¸c ®iÓm cùc vµ ®iÓm kh«ng míi:
>> [p z]=pzmap(W)
p =
-0.5630 + 0.5799i
-0.5630 - 0.5799i
-0.0871 + 0.1245i
-0.0871 - 0.1245i
-0.0331
z =
0.4086 + 0.3899i
0.4086 - 0.3899i
0.5160
-0.0455
3.Kh©u ®iÒu chØnh PID:
a) Ch¬ng tr×nh ch¹y trªn Matlab:
>> L=9;T=15;Kp=1.2*(T/L);Ti=2*L;Td=0.5*L;n=3;
>> [n,d]=pade(L,n)
n =
-1.0000 1.3333 -0.7407 0.1646
d =
1.0000 1.3333 0.7407 0.1646
>> Wtre=tf(n,d)
Transfer function:
-s^3 + 1.333 s^2 - 0.7407 s + 0.1646
------------------------------------
s^3 + 1.333 s^2 + 0.7407 s + 0.1646
>> Wdt=tf(1,[T 1])*Wtre
Transfer function:
-s^3 + 1.333 s^2 - 0.7407 s + 0.1646
---------------------------------------------
15 s^4 + 21 s^3 + 12.44 s^2 + 3.21 s + 0.1646
>> Wpid=Kp*tf([Ti*Td Ti 1],[Ti 0])
Transfer function:
162 s^2 + 36 s + 2
------------------
18 s
>> W=feedback(Wpid*Wdt,1)
Transfer function:
-162 s^5 + 180 s^4 - 74 s^3 + 2.667 s^2 + 4.444 s + 0.3292
----------------------------------------------------------
108 s^5 + 558 s^4 + 150 s^3 + 60.44 s^2 + 7.407 s + 0.3292
>> [p z]=pzmap(W)
p =
-4.9063
-0.0556 + 0.2906i
-0.0556 - 0.2906i
-0.0746 + 0.0391i
-0.0746 - 0.0391i
z =
0.4086 + 0.3899i
0.4086 - 0.3899i
0.5160
-0.1111 + 0.0000i
-0.1111 - 0.0000i
>> step(W)
*Qu¸ tr×nh qu¸ ®é:
H×nh 5
-HÖ thèng æn ®Þnh.
-ChØ tiªu chÊt lîng :smax=250% >20%
-Thêi gian qu¸ ®é : t=42.4sec
b)ChØnh ®Þnh l¹i c¸c tham sè cña luËt ®iÒu khiÓn PID
*Qu¸ tr×nh qu¸ ®é víi tham sè chØnh ®Þnh: Kp=0.2;Ti=8;Td=1
H×nh 6
-HÖ thèng æn ®Þnh
-ChØ tiªu chÊt lîng:smax=2.42% <20%
-Thêi gian qu¸ ®é:t=20.4sec < 42.4sec(Thêi gian qu¸ ®é tÝnh theo tham sè trong b¶ng thùc nghiÖm Z-N)
* C¸c ®iÓm cùc vµ c¸c ®iÓm kh«ng míi:
p =
-0.4453 + 0.3753i
-0.4453 - 0.3753i
-0.4644
-0.0342 + 0.0244i
-0.0342 - 0.0244i
z =
-0.8536
0.4086 + 0.3899i
0.4086 - 0.3899i
0.5160
-0.1464
IV.TÝnh tham sè tèi u cña bé ®iÒu khiÓn PID dïng hµm Least-quares.
1.Hµm Least-quares.
*Yªu cÇu cña ®Ò bµi lµ t×m c¸c tham sè Kp,Ki,Kd sao cho tæng sai sè trong suèt qu¸ tr×nh qu¸ ®é:
J= lµ nhá nhÊt (min).
*Do hÖ thèng xÐt lµ æn ®Þnh nªn ta chØ xÐt trong kho¶ng thêi gian [0 NT]
+ N ®ñ lín ®Õ cã sai sè taÞ ®ã gÇn b»ng 0.
+ T thêi gian lÊy mÉu.
ÞEi phô thuéc vµo c¸c tham sè PID
Þ J=
2.C¸c hµm ®Ó tÝnh to¸n c¸c tham sè tèi u PID.
a) Hµm asignpid:
function assignpid(pid)
assignin('base','Kp',pid(1));
assignin('base','Ki',pid(2));
assignin('base','Kd',pid(3));
*Thùc hiÖn g¸n 3 tham sè cña kh©u PID b»ng c¸c tham sè Kp,Ki,Kd.
b) Hµm yout_1:
function e=yout_1(pid,model,tspan)
opt=simset('solver','ode5');
assignpid(pid);
[t,x,y]=sim('bai_tap',tspan,opt);
e=y-1;
*Thùc hiÖn c¸c chøc n¨ng:
-TÝnh ra sai sè.
-G¸n c¸c tham sè.
-Tù ch¹y cöa sæ Simulink
c) Hµm lsqpid:
function pid=lsqpid(pid0,model,tspan)
options=foptions;
options=[1 0.01 0.01];
pid=leastsq('yout_1',pid0,options,[],'bai_tap',tspan);
3.Qu¸ tr×nh tÝnh to¸n trªn m¸y:
a)S¬ lîc qu¸ tr×nh tÝnh:
-Dïng 2 cöa sæ Command window &Simulink trong Matlab.
-Víi s¬ kiÖn ban ®Çu Simulink sÏ ch¹y vµ ®a ra kÕt qu¶ sai sè cho Command.Command tÝnh to¸n vµ ®a trë l¹i kÕt qu¶ thm sè PID cho Simulink.Simulink l¹i ch¹y vµ ®a ra tham sè...Qu¸ tr×nh sÏ kÕt thóc khi møc sai sè lµ kh«ng thay ®æi.
b)C¸c bíc tiÕn hµnh.
*Bíc 1:Copy 3 file võa t¹o vµo th môc Optim/Toolbox/Matlab.
*Bíc 2:T¹o m« h×nh 'bai_tap' trªn Simulink:
H×nh 7
>> T=15;L=9;Kp=1.39;Ti=16.5;Td=3;
>>[n,d]=pade(L,3);
>>Wtre=tf(n,d);
>>Wdt=tf(1,[T 1])*Wtre;
>>Wpid=Kp*(1+tf(1,[Ti 0])+tf([Td 0],[1])) ;
>>W=feedback(Wpid*Wdt,1);
>> step(W)
Cöa sæ scope se cho kÕt qu¶ ra mµn h×nh :
H×nh 8
-LÊy c¸c gi¸ trÞ Kp,Ki,Kd ®· chØnh ®Þnh nhËp vµo kh©u PID sÏ ®îc kÕt qu¶ trªn:(H×nh 8)
-G¸n c¸c tham sè trong kh©u PID lµ Kp,Ki,Kd.
Thêi gian trÔ lµ 9s
*Bíc 3:Trªn cöa sæ Command Window dïng 2 lÖnh sau:
>>pid0=[1.39 0.2 1.56];
>>pid=lsqpid(pid0,' bai_tap',[0 500])
Mµn h×nh sÏ hiÖn ra kÕt qu¶ :
> In C:\MATLAB6p5\toolbox\optim\leastsq.m at line 53
In C:\MATLAB6p5\work\lsqpid.m at line 4
f-COUNT RESID STEP-SIZE GRAD/SD LAMBDA
4 1542.38 1 -111
10 1522.7 0.206 -87.3 1633.72
16 1487.42 0.923 -0.00732 1634.33
25 1486.02 11.1 -0.0105 70.4185
31 1485.96 0.989 9.98e-006 70.4201
38 1485.96 2.18 -1.65e-005 22.0823
45 1485.95 2.48 7.21e-007 11.0412
52 1485.95 1.94 -9.9e-006 3.74873
59 1485.94 2.73 -1.05e-005 1.00495
66 1485.92 1.58 8.06e-005 1.00563
72 1485.9 1.11 -0.000112 1.0088
79 1485.88 1.65 -6.91e-005 1.00899
85 1485.87 1.07 8.62e-005 1.01183
92 1485.86 1.74 -8e-005 0.367525
99 1485.84 1.56 -4.61e-006 0.143634
105 1485.82 1.11 -4.2e-005 0.151586
111 1485.81 1.08 -6.12e-005 0.152571
117 1485.8 1.22 -4.21e-005 0.15354
123 1485.8 1.07 2.59e-005 0.153756
129 1485.8 1.2 -3.22e-005 0.153987
135 1485.8 1.13 1.38e-005 0.154009
141 1485.8 1.1 -1.3e-005 0.154077
147 1485.8 1.29 2.21e-006 0.0770384
153 1485.8 1 5.13e-008 0.0770649
159 1485.8 1.17 4.34e-007 0.0385324
Optimization Terminated Successfully
pid =
1.7531 0.0609 5.7370
Cöa sæ scope se cho kÕt qu¶ ra mµn h×nh :
H×nh 9
Thêi gian qu¸ ®é lµ 40,6 s
®é qu¸ ®é ®iÒu chØnh lµ 4.25%
KÕt luËn : c¸c tham sè tèi u cña hÖ thèng lµ
Kp*= 1.7531
Ki*= 0.0609
Kd*=5.7370
Các file đính kèm theo tài liệu này:
- Bài tập dài môn lý thuyết điều khiển tự động (làm với matlap).doc