《PID溫度控制算法》由會(huì)員分享,可在線閱讀,更多相關(guān)《PID溫度控制算法(20頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、溫度控制算法的軟件實(shí)現(xiàn) 問 題 ? 1 . 怎樣評價(jià)溫度控制系統(tǒng)控制效果的優(yōu)劣? 2 . 什么是PID控制算法?什么是數(shù)字式PID控制算法? 3 . 什么是積分飽和現(xiàn)象?怎樣避免積分飽和現(xiàn)象? 4 . 怎樣用C語言編寫PID控制程序? 5 . 怎樣在PSOC上實(shí)現(xiàn)PID控制溫度? 6 .怎樣測試PID控制器是否正常工作? 問題一:怎樣評價(jià)溫度控制系統(tǒng)控制效果的優(yōu)劣? 能夠快速穩(wěn)定準(zhǔn)確的實(shí)現(xiàn)控制 能夠?qū)囟绕钪悼刂圃谝粋€(gè)較小的范圍內(nèi) 具有較強(qiáng)抵抗干擾的能力 控制超調(diào)量不能過大 問題二:什么是PID控制算法?什么是數(shù)字 式PID控制算法?PID控制算法:PID控制器是一種線性控制器,它將給定值與
2、實(shí)際輸出值的偏差 的比例、積分和微分進(jìn)行線性組合,形成控制量 輸出,如圖下圖所示。 PID控制器方框圖)(te)(tu 問題二:什么是PID控制算法?什么是數(shù)字式PID控制算法?模擬控制算法:用于模擬控制系統(tǒng)被測參數(shù)由傳感器變化成統(tǒng)一的標(biāo)準(zhǔn)信號后輸入調(diào)節(jié)器,在調(diào)節(jié)器中與給定值進(jìn)行比較,再把比較后的差值經(jīng)運(yùn)算后送到執(zhí)行機(jī)構(gòu),改變進(jìn)給量,以達(dá)到自動(dòng)調(diào)節(jié)的目的。數(shù)字控制算法:用于數(shù)字控制系統(tǒng)先把過程參數(shù)進(jìn)行采樣,并通過模擬量輸入通道將模擬量變成數(shù)字量,這些數(shù)字量通過計(jì)算機(jī)按一定控制算法進(jìn)行運(yùn)算處理,運(yùn)算結(jié)果經(jīng)轉(zhuǎn)換成模擬量后,由模擬量輸出通道輸出,并通過執(zhí)行機(jī)構(gòu)去控制生產(chǎn),以此達(dá)到給定值。 問題三:什
3、么是積分飽和現(xiàn)象?怎樣避免積分飽和 現(xiàn)象? 在實(shí)際的控制系統(tǒng)中,控制量實(shí)際輸出值往往受到執(zhí)行機(jī)構(gòu)性能的限制,而被限制在一定的范圍內(nèi),即 , 其變化也局限在一定的范圍,即 。如果控制量在上述范圍內(nèi),那么控制可以達(dá)到預(yù)期效果;一旦超出上述范圍,則實(shí)際執(zhí)行機(jī)構(gòu)的控制量就不再是計(jì)算值。這相當(dāng)于在系統(tǒng)中串聯(lián)了一個(gè)飽和非線性環(huán)節(jié),因此,將引起不期望的效應(yīng),即飽和效應(yīng)。 問題三:什么是積分飽和現(xiàn)象?怎樣避免積分飽和 現(xiàn)象?防止調(diào)節(jié)器積分飽和的措施一:積分分離法 積分分離的基本思路是:當(dāng)被調(diào)量與設(shè)定值偏差較大時(shí),取消積分作用,以免由于積分作用使系統(tǒng)穩(wěn)定性降低,超調(diào)量增大;當(dāng)被控量接近給定值時(shí),引入積分控制,以
4、便消除靜差,提高控制精度。yr t 問題三:什么是積分飽和現(xiàn)象?怎樣避免積分飽和現(xiàn)象?防止調(diào)節(jié)器積分飽和的措施二:遇限削弱積分控制算法 當(dāng)控制進(jìn)入飽和區(qū)以后,便不再進(jìn)行積分項(xiàng)的累加,而只執(zhí)行削弱積分的運(yùn)算。因而,在計(jì)算 ()時(shí),先判斷()是否已超出限制值。若(),則只累加負(fù)偏差;若(),則累加正偏差。采用遇限削弱積分控制算法后,可以避免控制量長時(shí)間停留在飽和區(qū)。 問題三:什么是積分飽和現(xiàn)象?怎樣避免積分飽和 現(xiàn)象?防止調(diào)節(jié)器積分飽和的措施三:有效偏差法 當(dāng)根據(jù)位置算法算出的控制量超出限制范圍時(shí),控制量實(shí)際上只能取邊界值,即或,有效偏差法是將相應(yīng)的這一控制量的偏差值作為有效偏差值計(jì)入積分累計(jì)而不
5、是將實(shí)際偏差計(jì)入積分累計(jì)。因?yàn)榘磳?shí)際偏差值計(jì)算出的控制量并未實(shí)行。 問題四:怎樣用C語言編寫PID控制程序? 通過采樣將模擬信號轉(zhuǎn)變?yōu)閿?shù)字信號,并與目標(biāo)設(shè)置值進(jìn)行比較分析。同時(shí)將二者的偏差通過算法輸出,進(jìn)行反饋調(diào)節(jié)。整個(gè)過程不斷循環(huán),從而使得控制的對象保持一個(gè)較為恒定的值。 從而將模擬量轉(zhuǎn)變?yōu)橛?jì)算機(jī)可以操作的數(shù)字信號,則可采用C語言控制整個(gè)循環(huán)過程。 問題四:怎樣用C語言編寫PID控制程序? 問題四:怎樣用C語言編寫PID控制程序? 問題五:怎樣在PSOC上實(shí)現(xiàn)PID控制溫度?在中斷程序中定義的臨時(shí)變量: float de,y0 ; static float Ie=0 ,de1 =0 ; st
6、atic uint8 PID_Count=0 ; 在主程序外定義的常變量: #define Kp1 2 .1 9 /PID控制參數(shù) #define Ki0 .3 #define Kd 1 0 9 .7 #define Integral_Boundary 1 1 .0 /有限積分邊界 uint8 PWM_Output; 問題五:怎樣在PSOC上實(shí)現(xiàn)PID控制溫度? PID_Count+; if(PID_Count100) PID_Count=0; de=Target_Temp-Current_Temp;/求溫度誤差e if(de-Integral_Boundary)/如果處于有限積分邊界之內(nèi) I
7、e=Ie+Ki*de;/求誤差的積分 else Ie=0;/在邊界外時(shí)積分清零 y0=Kp*de+Ie+Kd*(de-de1)+128;/求輸出 if(y0255) y0=255; if(y099) /記錄數(shù)據(jù)的數(shù)量 RecorderPt=0; RecC=0; 問題六:怎樣測試PID控制器是否正常工作 9 7 .59 89 8 .59 99 9 .51 0 01 0 0 .51 0 11 0 1 .5 1 3 5 7 9 1 1 1 3 1 5 1 7 1 9 2 1 2 3 2 5 2 7 2 9 3 1 3 3 3 5 3 7 3 9 4 1 4 3 4 5 4 7 4 9 5 1 5 3 5 5 5 7 5 9 6 1 6 3 6 5 302 04 06 08 01 0 01 2 0 1 3 5 7 9 1 1 1 3 1 5 1 7 1 9 2 1 2 3 2 5 2 7 2 9 3 1 3 3 3 5 3 7 3 9 4 1 4 3 4 51 9 89 8 .59 99 9 .51 0 01 0 0 .51 0 11 0 1 .51 0 2 0 5 1 0 1 5 2 0 2 5 3 0 3 5 4 0 2 謝 謝 !