Bài tập lớn môn điều khiển tự động

PHẦN 1/YấU CẦU THIẾT KẾ: phần I/ Yêu cầu thiết kế 1) Yêu cầu thiết kế hệ thống điềukhiển tự động có: - Bộ điều khiển PID có hàm truyền : WPID(s) = KơP*(1+ +TD*s) - Đối tượng điều khiển là khâu trễ và quán tính bậc nhất có hàm truyền: WDT(s) = Với các tham số: L/T = 0.9; T = 95; Hệ thống có sơ đồ như hình vẽ: 2) Tính toán các tham số Kp, Ti, Td đảm bảo tính ổn định và chất lượng của hệ thống (theo Ziegler – Nichols). 3) Xét ổn định của hệ thống. Tìm các điểm cực và điểm không. 4) Khảo sát chất lượng, chọn các tham số với các luật điều khiển P, PI, PID đảm bảo cho hệ thống có chất lượng tốt nhất (chỉnh định bằng tay). 5) Tính tham số tối ưu của bộ điều khiển PID dùng hàm least – squares (sai số bình phương nhỏ nhất) với các tham số L và T đó cho ở trên. phần II/ Tính toán với MatLab I/ Tính toán các tham số Kp, Ti, Td theo tiêu chuẩn Ziegler – Nichols áp dụng bảng công thức thực nghiệm của Ziegler – Nichols: Luật điều khiển Kp Ti Td P T/L 0 PI 0.9T/L 10L/3 0 PID 1.2T/L 2L 0.5L Với các tham số đó cho: L/T = 0.9; T = 95 L=85.5 Thay vào bảng trên ta có: Luật điều khiển Kp Ti Td P 1.111 0 PI 1 285 0 PID 1.333 171 42.75 II/ Phân tích hệ thống với các tham số chọn theo phương pháp Ziegler – Nichols và hiệu chỉnh bằng tay Để có thể phân tích hệ thống, ta cần khai triển Taylor khâu trễ e-Ls, lấy 3 số hạng đầu là đủ chính xác. Việc khai triển này đựơc thực hiện nhờ MatLab qua hàm xấp xỉ Pade: Chương trình MatLab như sau: >> [ts,ms]=pade(85.5,3) ts = -1.0000 0.1404 -0.0082 0.0002 ms = 1.0000 0.1404 0.0082 0.0002 >> wtre=tf(ts,ms) Transfer function: -s^3 + 0.1404 s^2 - 0.008208 s + 0.000192 --------------------------------------------------- s^3 + 0.1404 s^2 + 0.008208 s + 0.000192 1/ Khảo sát hệ thống với luật điều khiển tỉ lệ P: >> T=95;L=85.5;

doc13 trang | Chia sẻ: lvcdongnoi | Lượt xem: 3130 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Bài tập lớn môn điều khiển tự động, để 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 ®iÒu khiÓn tù ®éng phÇn I/ Yªu cÇu thiÕt kÕ 1) Yªu cÇu thiÕt kÕ hÖ thèng ®iÒukhiÓn tù ®éng cã: - Bé ®iÒu khiÓn PID cã hµm truyÒn : WPID(s) = KP*(1++TD*s) - §èi t­îng ®iÒu khiÓn lµ kh©u trÔ vµ qu¸n tÝnh bËc nhÊt cã hµm truyÒn: WDT(s) = Víi c¸c tham sè: L/T = 0.9; T = 95; HÖ thèng cã s¬ ®å nh­ h×nh vÏ: 2) TÝnh to¸n c¸c tham sè Kp, Ti, Td ®¶m b¶o tÝnh æn ®Þnh vµ chÊt l­îng cña hÖ thèng (theo Ziegler – Nichols). 3) XÐt æn ®Þnh cña hÖ thèng. T×m c¸c ®iÓm cùc vµ ®iÓm kh«ng. 4) Kh¶o s¸t chÊt l­îng, chän c¸c tham sè víi c¸c luËt ®iÒu khiÓn P, PI, PID ®¶m b¶o cho hÖ thèng cã chÊt l­îng tèt nhÊt (chØnh ®Þnh b»ng tay). 5) TÝnh tham sè tèi ­u cña bé ®iÒu khiÓn PID dïng hµm least – squares (sai sè b×nh ph­¬ng nhá nhÊt) víi c¸c tham sè L vµ T ®· cho ë trªn. phÇn II/ TÝnh to¸n víi MatLab I/ TÝnh to¸n c¸c tham sè Kp, Ti, Td theo tiªu chuÈn Ziegler – Nichols ¸p dông b¶ng c«ng thøc thùc nghiÖm cña Ziegler – Nichols: LuËt ®iÒu khiÓn Kp Ti Td P T/L 0 PI 0.9T/L 10L/3 0 PID 1.2T/L 2L 0.5L Víi c¸c tham sè ®· cho: L/T = 0.9; T = 95 L=85.5 Thay vµo b¶ng trªn ta cã: LuËt ®iÒu khiÓn Kp Ti Td P 1.111 0 PI 1 285 0 PID 1.333 171 42.75 II/ Ph©n tÝch hÖ thèng víi c¸c tham sè chän theo ph­¬ng ph¸p Ziegler – Nichols vµ hiÖu chØnh b»ng tay §Ó cã thÓ ph©n tÝch hÖ thèng, ta cÇn khai triÓn Taylor kh©u trÔ e-Ls, lÊy 3 sè h¹ng ®Çu lµ ®ñ chÝnh x¸c. ViÖc khai triÓn nµy ®ù¬c thùc hiÖn nhê MatLab qua hµm xÊp xØ Pade: Ch­¬ng tr×nh MatLab nh­ sau: >> [ts,ms]=pade(85.5,3) ts = -1.0000 0.1404 -0.0082 0.0002 ms = 1.0000 0.1404 0.0082 0.0002 >> wtre=tf(ts,ms) Transfer function: -s^3 + 0.1404 s^2 - 0.008208 s + 0.000192 --------------------------------------------------- s^3 + 0.1404 s^2 + 0.008208 s + 0.000192 1/ Kh¶o s¸t hÖ thèng víi luËt ®iÒu khiÓn tØ lÖ P: >> T=95;L=85.5; >> [ts,ms]=pade(L,3) ts = -1.0000 0.1404 -0.0082 0.0002 ms = 1.0000 0.1404 0.0082 0.0002 >> wdt=tf(ts,ms)*tf(1,[T 1]) Transfer function: -s^3 + 0.1404 s^2 - 0.008208 s + 0.000192 ------------------------------------------------------ 95 s^4 + 14.33 s^3 + 0.9201 s^2 + 0.02645 s + 0.000192 >> Kp=T/L Kp = 1.1111 >> wkinp=feedback(Kp*wdt,1) Transfer function: -1.111 s^3 + 0.1559 s^2 - 0.00912 s + 0.0002133 ------------------------------------------------------ 95 s^4 + 13.22 s^3 + 1.076 s^2 + 0.01733 s + 0.0004053 >> step(wkinp) >> nyquist(wkinp) >> pzmap(wkinp) >> [p,z]=pzmap(wkinp) p = -0.0628 + 0.0722i -0.0628 - 0.0722i -0.0068 + 0.0205i -0.0068 - 0.0205i z = 0.0430 + 0.0410i 0.0430 - 0.0410i 0.0543 §Æc tÝnh qu¸ ®é §Æc tÝnh tÇn sè §å thÞ ®iÓm kh«ng, ®iÓm cùc *NhËn xÐt: - C¸c ®iÓm cùc ®Òu n»m bªn tr¸i trôc ¶o nªn hÖ thèng æn ®Þnh. - §é qu¸ ®iÓn khiÓn = 39% - Thêi gian t¨ng tèc (Rise time): 54.1s - Thêi gian qu¸ ®é (Settling time): 573s. *HiÖu chØnh ®Ó cã ®Æc tÝnh qu¸ ®é tèt h¬n: cho Kp = 0.3 >> Kp = 0.3; >> wkinp = feedback(Kp*wdt,1) Transfer function: -0.3 s^3 + 0.04211 s^2 - 0.002462 s + 5.76e-005 ------------------------------------------------------- 95 s^4 + 14.03 s^3 + 0.9622 s^2 + 0.02398 s + 0.0002496 >> step(wkinp) - Sau khi hiÖu chØnh cã: + §é qu¸ ®iÒu chØnh = 1.24% + Thêi gian qu¸ ®é: 239 (s) + Thêi gian t¨ng tèc: 112 (s) 2/ Kh¶o s¸t hÖ thèng víi luËt ®iÒu chØnh tØ lÖ – tÝch ph©n PI Ch­¬ng tr×nh Matlab: >> T=95; L=85.5 >> Kp=0.9*T/L;Ti=10*L/3; >> [ts,ms]=pade(L,3) ts = -1.0000 0.1404 -0.0082 0.0002 ms = 1.0000 0.1404 0.0082 0.0002 >> wdt=tf(ts,ms)*tf(1,[T 1]) Transfer function: -s^3 + 0.1404 s^2 - 0.008208 s + 0.000192 ------------------------------------------------------ 95 s^4 + 14.33 s^3 + 0.9201 s^2 + 0.02645 s + 0.000192 >> wpi=tf([Kp*Ti Kp],[Ti 0]) Transfer function: 285 s + 1 --------- 285 s >> wkinpi=feedback(wdt*wpi,1) Transfer function: -285 s^4 + 39 s^3 - 2.199 s^2 + 0.04651 s + 0.000192 ------------------------------------------------------------------ 27075 s^5 + 3800 s^4 + 301.2 s^3 + 5.339 s^2 + 0.1012 s + 0.000192 >> step(wkinpi) >> nyquist(wdt*wpi) >> pzmap(wkinpi) >> [p,z]=pzmap(wkinpi) p = -0.0618 + 0.0694i -0.0618 - 0.0694i -0.0073 + 0.0184i -0.0073 - 0.0184i -0.0021 z = 0.0430 + 0.0410i 0.0430 - 0.0410i 0.0543 -0.0035 §Æc tÝnh qu¸ ®é §Æc tÝnh tÇn sè §å thÞ ®iÓm kh«ng - ®iÓm cùc * NhËn xÐt: - C¸c ®iÓm cùc n»m bªn tr¸i trôc ¶o nªn hÖ thèng æn ®Þnh. - §é qu¸ ®iÒu chØnh: = 0% - Thêi gian t¨ng tèc (Rise time): 675s - Thêi gian qu¸ ®é (Settling time): 1500s * HiÖu chØnh ®Ó ®¹t chÊt l­îng tèt h¬n: cho Kp = 0.65; Ti = 110; >> Kp=0.65; Ti=110; >> wpi=tf([Kp*Ti Kp],[Ti 0]) Transfer function: 71.5 s + 0.65 ------------- 110 s >> wkinpi=feedback(wdt*wpi,1) Transfer function: -71.5 s^4 + 9.385 s^3 - 0.4956 s^2 + 0.008392 s + 0.0001248 ------------------------------------------------------------------------------------- 10450 s^5 + 1505 s^4 + 110.6 s^3 + 2.414 s^2 + 0.02951 s + 0.0001248 >> step(wkinpi) Sau khi hiÖu chØnh ta cã: - §é qu¸ ®iÒu chØnh: = 1.94% - Thêi gian qu¸ ®é: 286 (s) - Thêi gian t¨ng tèc: 148 (s) 3/ Kh¶o s¸t hÖ thèng víi luËt ®iÒu chØnh PID: Ch­¬ng tr×nh Matlab nh­ sau: >> L=85.5;T=95;Kp=1.2*T/L;Ti=2*L;Td=0.5*L; >> [ts,ms]=pade(85.5,3) ts = -1.0000 0.1404 -0.0082 0.0002 ms = 1.0000 0.1404 0.0082 0.0002 >> wdt=tf(ts,ms)*tf(1,[T 1]) Transfer function: -s^3 + 0.1404 s^2 - 0.008208 s + 0.000192 ------------------------------------------------------ 95 s^4 + 14.33 s^3 + 0.9201 s^2 + 0.02645 s + 0.000192 >> wpid=tf([Kp*Ti*Td Kp*Ti Kp],[Ti 0]) Transfer function: 9747 s^2 + 228 s + 1.333 ------------------------ 171 s >> wkin=feedback(wpid*wdt,1) Transfer function: -9747 s^5 + 1140 s^4 - 49.33 s^3 + 0.1871 s^2 + 0.03283 s + 0.000256 ------------------------------------------------------------------------------------- 6498 s^5 + 3591 s^4 + 108 s^3 + 4.71 s^2 + 0.06566 s + 0.000256 >> step(wkin) >> nyquist(wkin) >> pzmap(wkin) >> [p,z]=pzmap(wkin) p = -0.5235 -0.0060 + 0.0322i -0.0060 - 0.0322i -0.0102 -0.0069 z = 0.0430 + 0.0410i 0.0430 - 0.0410i 0.0543 -0.0117 -0.0117 §Æc tÝnh qu¸ ®é §Æc tÝnh tÇn sè §å thÞ ®iÓm kh«ng - ®iÓm cùc * NhËn xÐt: - C¸c ®iÓm cùc n»m bªn tr¸i trôc ¶o nªn hÖ thèng æn ®Þnh, tuy nhiªn do cã 2 ®iÓm cùc phøc liªn hîp n»m s¸t trôc ¶o nªn ®é dù tr÷ æn ®Þnh nhá. - §é qu¸ ®iÒu chØnh: =-250% - Thêi gian t¨ng tèc: 108 (s) - Thêi gian qu¸ ®é: 477 (s) *HiÖu chØnh ®Ó cã ®Æc tÝnh tèt h¬n: Kp=0.7; Ti=110; Td=10 Ch­¬ng tr×nh MatLab: >> Kp=0.7; Ti=110;Td=10; >> wpid=tf([Kp*Ti*Td Kp*Ti Kp],[Ti 0]) Transfer function: 770 s^2 + 77 s + 0.7 -------------------- 110 s >> wkin=feedback(wpid*wdt,1) Transfer function: -770 s^5 + 31.07 s^4 + 3.787 s^3 - 0.3859 s^2 + 0.009038 s + 0.0001344 ---------------------------------------------------------------------- 9680 s^5 + 1608 s^4 + 105 s^3 + 2.523 s^2 + 0.03016 s + 0.0001344 >> step(wkin) §Æc tÝnh qu¸ ®é sau khi hiÖu chØnh - §é qu¸ ®iÒu chØnh: =1.57% - Thêi gian t¨ng tèc: 224 (s) - Thêi gian qu¸ ®é: 284 (s) III/ M« h×nh ho¸ hÖ thèng b»ng Simulink: B­íc 1/ Vµo Simulink m« h×nh ho¸ hÖ thèng d­íi d¹ng s¬ ®å khèi nh­ sau: B­íc 2/ N¹p tham sè cho c¸c kh©u: - Bé ®iÒu khiÓn PID: C¸c tham sè Kp, Ki, Kd - Kh©u b·o hoµ Saturation: + Upper limit: 1.5 + Lower limit: -1.5 - Kh©u h¹n chÕ gia tèc Rate Limiter: + Rising slew rate: 1 + Faling slew rate: -1 - Kh©u trÔ Transport Delay: + Time Delay: 85.5 (øng víi L=85.5). - Kh©u hµm truyÒn Transfer Fcn: + Numerator: [1] + Denominator: [95 1] - Ghi ch­¬ng tr×nh m« pháng l¹i thµnh file “BaiTapDai” trong th­ môc work cña MatLab. B­íc 2/ Trong cöa sæ Command Windows cña MatLab vµo File New M-file sÏ hiÖn ra cöa sæ so¹n th¶o. Trong cöa sæ nµy ta viÕt c¸c hµm tÝnh to¸n tham sè tèi ­u cho bé ®iÒu khiÓn: * Hµm thø nhÊt: function e=yout_1(pid,model,tspan) opt=simset('solver','ode5'); assignpid(pid); [t,x,y]=sim(model,tspan,opt); e=y-1; Ghi l¹i hµm nµy thµnh file: yout_1.m * Hµm thø hai: function assignpid(pid) assignin('base','Kp',pid(1)); assignin('base','Ki',pid(2)); assignin('base','Kd',pid(3)); Ghi l¹i hµm nµy thµnh file: assignpid.m * Hµm thø ba: function pid = lsqpid(pid0,model,tspan) options=foptions; options=[1 0.01 0.01]; pid=leastsq('yout_1',pid0,options,[],model,tspan); Ghi l¹i hµm nµy thµnh file: lsqpid.m B­íc 3/ Trë vÒ cöa sæ Command Windows viÕt ch­¬ng tr×nh: >> Kp=0.7; Ti=110;Td=10;Ki=Kp/Ti;Kd=Kp*Td; >> pid0=[Kp Ki Kd]; >> pid=lsqpid(pid0,'BaiTapDai',[0 5000]) Warning: The function LEASTSQ is obsolete and has been replaced by LSQNONLIN. LEASTSQ will be removed in a future release of the Optimization Toolbox. Update your code to call LSQNONLIN to suppress this warning message. See "Converting your code to Version 2 Syntax" in the Optimization Toolbox User's Guide for more information. > In C:\ChuongTrinhUngDung\Matlab\toolbox\optim\leastsq.m at line 53 In C:\ChuongTrinhUngDung\Matlab\work\lsqpid.m at line 4 f-COUNT RESID STEP-SIZE GRAD/SD LAMBDA 4 2.02681 1 -0.0534 10 2.00227 1 0.00408 1.03732 17 2.00085 1.32 2.44e-007 0.518662 24 2.0005 1.37 -9.51e-009 0.219114 30 2.00048 1.12 -1.22e-010 0.103279 Optimization Terminated Successfully pid = 0.7757 0.0071 12.8041 * KÕt qu¶ ch­¬ng tr×nh cho ta tham sè tÝnh to¸n tèi ­u thu ®­îc: Kp = 0.7757; Ki = 0.0071; Kd = 12.8041 B­íc 4/ Quay l¹i Simulink nh¸y vµo Scope ta thu ®­îc ®Æc tÝnh qu¸ ®é cña hÖ thèng víi tham sè tÝnh to¸n tèi ­u t×m ®­îc: - §é qu¸ ®iÒu khiÓn: =1.65% - Thêi gian qu¸ ®é: 241(s) KÕt LuËn C¸c tham sè tèi ­u cña bé ®iÒu khiÓn PID øng víi ®èi t­îng ®· cho lµ: Kp = 0.7757 Ki = 0.0071 Kd = 12.8041 øng víi c¸c tham sè nµy, ®Æc tÝnh qu¸ ®é thu ®­îc cña hÖ thèng lµ tèt nhÊt.

Các file đính kèm theo tài liệu này:

  • docBài tập dài môn ĐK tự động.doc