摘 要:在實(shí)現(xiàn)定時(shí)溫控系統(tǒng)的基礎(chǔ)上,為實(shí)現(xiàn)對(duì)溫度的精確控制,提出根據(jù)溫度傳感器DS18B20的感溫原理,利用AT89S52的定時(shí)器實(shí)現(xiàn)脈寬調(diào)制(PWM)功能,采用數(shù)字PID控制,討論了一種恒溫控制的數(shù)字PID控制算法,并通過(guò)C51程序?qū)崿F(xiàn)了單片機(jī)的控制系統(tǒng)。使用結(jié)果表明,該系統(tǒng)具有控制效果好,精度高,超調(diào)量小等優(yōu)點(diǎn),且各項(xiàng)性能指標(biāo)均符合要求。
關(guān)鍵詞:PID控制; 溫度控制; 脈寬調(diào)制; DS18B20
中圖分類號(hào):TN919-34; TP274文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1004-373X(2010)17-0157-03
Application of Digital PID Control Algorithm in Temperature Control System
WEI Ying-zhi, DING Hong-wei, ZHANG Lin, XU Bao-yu, LI Hai-yan
(Department of Mathematics and Mechanics, Heilongjiang Institute of Science and Technology, Harbin 150027, China)
Abstract: In order to control the temperature accurately, a method to realize the function of pulse width modulation (PWM) by means of the AT89S52 timer and digital PID control is proposed according to the available temperature controlling system and temperature sensing principle of DS18B20. The digital PID control algorithm for the thermostatic control is discussed. A control system of MCU was realized ultimately by means of C51 program on the basis of the temperature sensing principle of the temperature sensor DS18B20. The application results show that this system has the advantages of good control effect, high accuracy and small overshoot, and all the performance indexes can meet the requirement.
Keywords: PID control; temperature control; PWM; DS18B20
收稿日期:2010-04-08
基金項(xiàng)目:醫(yī)療智能激光無(wú)影照明系統(tǒng)研發(fā)項(xiàng)目(11541301)
溫度控制對(duì)于大型工業(yè)和日常生活等領(lǐng)域都具有廣闊的應(yīng)用前景。很多應(yīng)用領(lǐng)域,需要精度較高的恒溫控制,例如,根據(jù)外界變化,隨時(shí)調(diào)節(jié)相應(yīng)的LED亮度以達(dá)到所需色溫值,可以實(shí)現(xiàn)更好的照明和裝飾效果。在連續(xù)控制系統(tǒng)中,對(duì)象為一階和二階慣性環(huán)節(jié)或同時(shí)帶有滯后時(shí)間不大的滯后環(huán)節(jié)時(shí),PID控制是一種較好的控制方法。本文主要采用數(shù)字PID控制,通過(guò)單片機(jī)PID控制算法的程序?qū)崿F(xiàn)[1-3]。
1 數(shù)字式定時(shí)溫控系統(tǒng)
本文研制的數(shù)字式定時(shí)溫控系統(tǒng)主要完成數(shù)據(jù)采集,溫度、定時(shí)的顯示,溫度控制,溫度定時(shí)的設(shè)定以及報(bào)警等功能。核心控制器由單片機(jī)完成,采用數(shù)字PID控制算法進(jìn)行過(guò)程控制。加熱器件選用熱慣性小,溫度控制精度高,速度快的電熱膜,由單片機(jī)輸出通斷率控制信號(hào)進(jìn)行控制。硬件框圖如圖1所示[4]。
2 PWM功能的實(shí)現(xiàn)
AT89S52內(nèi)部有3個(gè)16位定時(shí)器:T0,T1,T2。用定時(shí)器T2實(shí)現(xiàn)PWM(脈寬調(diào)制)方式來(lái)對(duì)加熱器件進(jìn)行溫度控制。設(shè)置T2CON中C/#T2=0(定時(shí)方式),CP/#RL2=1且EXEN2=0時(shí),T2是16位定時(shí)器。當(dāng)計(jì)數(shù)溢出時(shí),會(huì)設(shè)置T2CON中的TF2位,進(jìn)而觸發(fā)相關(guān)中斷。用單片機(jī)系統(tǒng)實(shí)現(xiàn),必須首先完成兩個(gè)任務(wù):首先是產(chǎn)生基本的PWM周期信號(hào);其次是脈寬的調(diào)整,即單片機(jī)模擬PWM信號(hào)的輸出,并且調(diào)整占空比。具體的設(shè)計(jì)原理:若想讓它的負(fù)脈沖為2 ms,則正脈沖為20-2=18 ms,所以開(kāi)始時(shí)在控制口發(fā)送低電平,然后設(shè)置定時(shí)器在2 ms后發(fā)生中斷,中斷發(fā)生后,在中斷程序里將控制口改為高電平,并將中斷時(shí)間改為18 ms,再過(guò)18 ms進(jìn)入下一次定時(shí)中斷,再將控制口改為低電平,并將定時(shí)器初值改為2 ms,等待下次中斷到來(lái),如此往復(fù)實(shí)現(xiàn)PWM信號(hào)輸出。用修改定時(shí)器中斷初值的方法巧妙形成了脈沖信號(hào),調(diào)整時(shí)間段的寬度便可實(shí)現(xiàn)脈寬調(diào)整。實(shí)現(xiàn)其軟件流程如圖2所示。
設(shè)n為定時(shí)器T2的初值,fi為單片機(jī)的系統(tǒng)時(shí)鐘,本系統(tǒng)中fi=11059 2 MHz定時(shí)方式下TL2寄存器每個(gè)機(jī)器周期(即12個(gè)晶振周期)增加1。這時(shí)PWM脈沖信號(hào)的“低”電平寬度為:
tPWM-L=(216-n)/fi
(1)
通過(guò)改變定時(shí)器T2初值n,即可改變“低”電平的寬度tPWM-L,從而控制加熱元件的加熱時(shí)間,達(dá)到對(duì)溫度進(jìn)行控制的目的。當(dāng)n=65 536時(shí),P2.7引腳輸出電平一直保持為“高”,加熱元件一直處于斷電狀態(tài);n=0時(shí),P2.7引腳輸出電平一直保持為“低”,加熱元件一直處于通電加熱狀態(tài)。單片機(jī)根據(jù)從DS18B20讀取的溫度值來(lái)確定n值,即確定加熱元件的加熱時(shí)間。
圖1 定時(shí)溫控系統(tǒng)硬件框圖
圖2 產(chǎn)生PWM信號(hào)的軟件流程
3 恒溫控制算法
PID基本算法是這樣的:控制器的輸出與控制器的輸入(誤差)成正比,與輸入的積分成正比,與輸入的微分成正比,為三個(gè)分量之和,其連續(xù)表達(dá)為:
U=KPe+1TI∫edt+TDdedt
(2)
式中:TD為微分時(shí)間;
e為測(cè)量值與給定值之間的偏差;
TI為積分時(shí)間;
KP為調(diào)節(jié)器的放大系數(shù)。
對(duì)式(2)兩邊進(jìn)行拉氏變換,可以得到PID調(diào)節(jié)器的傳遞函數(shù)為:
G(s)=U(s)E(s)=KP1+1TIs+TDs
(3)
采用不同的方法對(duì)式(3)的D(s)離散化,就可以得到數(shù)字PID控制器的不同算法。用矩形法數(shù)值積分代替式(3)中的積分項(xiàng),對(duì)導(dǎo)數(shù)用后向差分逼近,得到:
uk=KP[ek+TTI∑ki=1ei+TDT(ek-ek-1)]+u0
(4)
式中:u0是由式(2)中的不定積分變?yōu)槭?4)中的定積分所具有的積分常數(shù);T為采樣周期。式(4)就是數(shù)字PID控制器位置式算法的表達(dá)式,其輸出控制量uk對(duì)應(yīng)于系統(tǒng)的輸出(位置)是全量輸出。
由式(4)可推算出控制量的增量為:
Δuk=uk-uk-1=
KP[ek-ek-1+
TTIek+TDT(ek-2ek-1+ek-2)]
(5)
式(5)就是數(shù)字PID控制器增量式算法的表達(dá)式,其輸出為系統(tǒng)的Δuk。
采用增量式算法,系統(tǒng)中需增加一個(gè)積分裝置,但在本恒溫系統(tǒng)中,控制對(duì)象本身就具有積分作用,因此無(wú)需加積分裝置。
與位置式算法相比,在增量式算法中,計(jì)算誤差對(duì)控制量影響小。這是因?yàn)槲恢檬剿惴刂破鬏敵龅氖侨浚看屋敵鼍c過(guò)去的所有狀態(tài)有關(guān)。計(jì)算機(jī)的位數(shù)是有限的,當(dāng)累加結(jié)果產(chǎn)生上溢出時(shí),丟失一部分控制量;當(dāng)采樣周期短,誤差很小時(shí),計(jì)算機(jī)認(rèn)為是零,不進(jìn)行累加,這兩種情況均會(huì)產(chǎn)生累加誤差。而增量式算法在計(jì)算Δuk時(shí)只用到最近的三次采樣值,以前的狀態(tài)不影響本次輸出。
為簡(jiǎn)化計(jì)算機(jī)的運(yùn)算,把式(5)改為下面的形式:
Δuk=d0ek+d1ek-1+d2ek-2
(6)
式中:
d0=KP1+TTI+TDT;
d1=-KP1+2TDT;
d2=KPTDT。
可以根據(jù)式(6)編寫程序,由計(jì)算機(jī)實(shí)現(xiàn)。KP,TD,TI,T由參數(shù)整定確定。對(duì)于簡(jiǎn)單系統(tǒng),可以采用理論計(jì)算的方法確定這些參數(shù),但是稍微復(fù)雜一些的系統(tǒng),采用理論計(jì)算的方法就困難了。因此幾乎都是用工程的方法對(duì)參數(shù)進(jìn)行整定。調(diào)節(jié)器參數(shù)的整定是一項(xiàng)繁瑣而又費(fèi)時(shí)的工作,因此,近年來(lái)國(guó)內(nèi)外在數(shù)字PID調(diào)節(jié)器參數(shù)的工程整定方面做了大量的研究工作,歸一參數(shù)的整定法是一種簡(jiǎn)易的整定法[5]。
根據(jù)大量實(shí)際經(jīng)驗(yàn)的總結(jié),人為設(shè)定約束條件,以減少獨(dú)立變量的個(gè)數(shù),例如取:
TD≈0.125TS
TI≈0.5TS(7)
T≈0.1TS
式中:TS是純比例控制式的臨界振蕩周期。
將式(7)代入式 (6)中,可得數(shù)字PID控制器的差分方程為:
Δuk=KP(2.45ek+3.5ek-1+1.25ek-2)
(8)
對(duì)比式 (6)和式 (8)可知,對(duì)4個(gè)參數(shù)的整定簡(jiǎn)化成了對(duì)一個(gè)參數(shù)KP的整定,使問(wèn)題明顯地簡(jiǎn)化了。
采樣周期T的取值,從數(shù)字PID控制器對(duì)連續(xù)PID控制器的模擬精度考慮,采樣周期越小越好,但采樣周期小,控制器占用計(jì)算機(jī)的時(shí)間就長(zhǎng),增加了系統(tǒng)的成本。因此采樣周期的選擇應(yīng)綜合考慮各方面因素,選取最優(yōu)值。
在恒溫控制系統(tǒng)中,控制輸出為定時(shí)器T2初值n(0≤n≤65 536),誤差為溫度設(shè)定值Tset與DS18B20檢測(cè)值之差Tread。因?yàn)殡娮杞z的功率是有限的,初始溫度低于溫度設(shè)定值Tset較大時(shí),可以不用數(shù)字PID控制。可以根據(jù)電阻絲的功率設(shè)定一個(gè)誤差值emax,當(dāng)e>emax時(shí),一直加熱,輸出n=0;當(dāng)e<0時(shí),停止加熱,輸出為n=65 536。只有當(dāng)0≤e≤emax時(shí),才用數(shù)字PID控制[6-8]。
為保證溫度控制的實(shí)時(shí)性,根據(jù)文獻(xiàn)[9],溫度控制程序采用定時(shí)中斷方式,定時(shí)長(zhǎng)為采樣周期T,且中斷優(yōu)先級(jí)設(shè)得比其他中斷高,用增量式算法其程序流程圖如圖3所示。
圖3 數(shù)字PID控制器增量式算法程序流程圖
4 恒溫控制結(jié)果
根據(jù)溫度控制精度和采樣時(shí)間的要求,本設(shè)計(jì)對(duì)DS18B20的溫度轉(zhuǎn)換結(jié)果選擇12位[10],采樣周期定為T=0.408 s。當(dāng)加熱元件功率選用100 W,溫度設(shè)定值Tset=30 ℃時(shí),用歸一參數(shù)法整定數(shù)字PID控制器的參數(shù),當(dāng)參數(shù)KP=150時(shí),得到數(shù)字PID控制曲線如圖4所示。
圖4 數(shù)字PID溫度控制曲線
5 結(jié) 語(yǔ)
在介紹利用AT89S52單片機(jī)實(shí)現(xiàn)PWM功能的基礎(chǔ)上,討論了數(shù)字PID控制算法對(duì)恒溫控制的應(yīng)用。從控制結(jié)果來(lái)看,這種控制方法可以得到較理想的控制效果,溫度波動(dòng)均可控制在±0125 ℃之內(nèi)。該技術(shù)已應(yīng)用于定時(shí)控溫發(fā)酵器、保健墊等產(chǎn)品中,運(yùn)行良好,獲得了良好的社會(huì)效益和經(jīng)濟(jì)效益。現(xiàn)正在嘗試用于無(wú)影照明系統(tǒng)的色溫控制,實(shí)現(xiàn)更好的無(wú)影照明效果。
參考文獻(xiàn)
[1]王福瑞.單片微機(jī)測(cè)控系統(tǒng)設(shè)計(jì)大全[M].北京:北京航空航天大學(xué)出版社,1998.
[2]POULIN Eric, POMERLEAUY Andre. Development and evaluation of an autotuning and adaptive PID controller[J]. Automation,1996, 32(1): 26-29.
[3]ATHERTON Dereck P. PID controller tuning[J]. Computing and Control Engineering Journal,1999, 10(2): 32-36.
[4]魏英智,關(guān)宇東,祿曉飛.定時(shí)控溫發(fā)酵器的單片機(jī)控制[J].傳感技術(shù)學(xué)報(bào),2005,18(1):154-156.
[5]蔣根深.便攜式智能艾滋病檢測(cè)儀的研制[D].長(zhǎng)沙:國(guó)防科學(xué)技術(shù)大學(xué),2002.
[6]薛開(kāi),呂元元,祝海濤.運(yùn)動(dòng)控制器的PID參數(shù)整定[J].哈爾濱工程大學(xué)學(xué)報(bào),2005,26(5):656-658.
[7]GUSTAF Soderlind. Automatic control and adaptive time-stepping[J]. Numerical Algorithms. 2002, 12: 281-310.
[8]WANG L, CLUETT W R. Tuning PID controllers for integrator processes[J]. IEEE Proc. Theory Control Application, 1997, 144(3): 385-391.
[9]AUSLANDER David M. A design and implementation methodology for real-time control software[J]. Mechatro-nics, 1995, 5(7): 811-832.
[10]魏英智.DS18B20在溫度控制中的應(yīng)用[M].煤礦機(jī)械,2005(3):92-93.