Bài tập dài môn lý thuyết điều khiển tự động làm với matlab

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.

 

doc16 trang | Chia sẻ: lethao | Lượt xem: 2623 | Lượt tải: 2download
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 ch­a ®¹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:

  • docBài tập dài môn lý thuyết điều khiển tự động (làm với matlap).doc