摘 要: 該溫度控制系統(tǒng)以STC89C52單片機為核心,采用DS18B20數(shù)字溫度傳感器采集溫度,并以PWM形式輸出,確保溫度輸出的穩(wěn)定,再結合PID閉環(huán)控制,使系統(tǒng)能夠更穩(wěn)定地運行。先利用Proteus軟件結合Keil軟件仿真,再用STC89C52單片機進行實測,從而進一步驗證了設計的可靠性和準確性,所控制溫度的精度能達到±1 ℃范圍之內(nèi)。該系統(tǒng)具有靈活性強、電路簡單、可靠性高、易于操作等優(yōu)點,能夠實現(xiàn)對溫度的穩(wěn)定控制。
關鍵詞: STC89C52;DS18B20;PID閉環(huán)控制;Proteus
溫度的變化影響各種系統(tǒng)的自動運作,例如冶金、機械、食品、化工等工業(yè)中,廣泛使用各種加熱爐、散熱處理、反應爐等,要求對工件的溫度進行控制。對于不同的控制系統(tǒng),其適宜的溫度總是在一個范圍,超過這個范圍,系統(tǒng)或許會停止運行或遭受破壞,因此必須能實時獲取溫度的變化,對于超過適宜范圍的溫度能夠報警。同時也希望在適宜溫度范圍內(nèi)可以由檢測人員根據(jù)實際情況加以改變。溫度控制在工業(yè)及日常生活中應用廣泛,分類較多,不同溫度控制系統(tǒng)的控制方法也不盡相同,其中以PID控制法最為常見。
1 溫度控制系統(tǒng)的組成及硬件設計
本設計采用STC89C52單片機為處理器,利用溫度傳感器DS18B20采集溫度,結合Keil軟件編程[1],實現(xiàn)用PID算法來控制PWM波形的產(chǎn)生,進而控制加熱電阻以實現(xiàn)溫度控制。該設計利用Proteus仿真為基礎,再結合單片機最小系統(tǒng)調(diào)試驗證結果。系統(tǒng)的總體結構框架圖如圖1所示。
本溫度閉環(huán)控制系統(tǒng)由溫度傳感器、控制器、PWM控制模塊、加熱電路、鍵盤和顯示模塊等部分組成。單片機選用宏晶科技推出的新一代高速、低功耗、超強抗干擾的單片機STC89C52RC[2]。溫度經(jīng)過DS18B20傳感器模塊傳給控制器,控制器根據(jù)檢測值與設定值的偏差,計算PID控制值,其結果通過PWM模塊控制加熱電路功率,實現(xiàn)對溫度的控制。系統(tǒng)硬件電路原理圖如圖2所示。
LCD1602字符型LCD通常有14條引腳線或16條引腳線的LCD,多出來的兩條線是背光電源線。該模塊用D0~D7作為8 bit雙向數(shù)據(jù)線,4 bit數(shù)據(jù)分兩次傳送,可以節(jié)省CPU的I/O口資源[4]。
VSS、VDD分別接地和5 V電源。VEE為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高。RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。R/W為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。E(或EN)端為使能(Enable)端,下降沿使能。DB0~DB7為雙向數(shù)據(jù)總線。
2 溫度控制系統(tǒng)軟件設計
系統(tǒng)程序主要包括主程序、初始化子程序、PID計算子程序、溫度比較處理子程序、延時子程序、T0中斷服務子程序和DS18B20驅動程序等。主程序流程圖如圖6所示。
2.1 加熱功率PWM控制
本設計采用的STC89C52單片機雖然不具有4路16位的可編程計數(shù)器陣列(SPA)或8位的可調(diào)制脈沖輸出(PWM)模塊,但在本設計中,利用軟件編程,通過PID控制,調(diào)整PWM占空比,通過P1.5口輸出PWM信號,去控制外圍加熱電路。PWM的輸出頻率決定于PCA定時器的時鐘源。PCA定時器的時鐘輸入源有4種可供選擇,分別是Fosc/12、Fosc/2、定時器0的溢出頻率以及P3.4/ECT的輸入頻率。由于PWM是8位的,因此PWM的輸出頻率=PCA時鐘輸入頻率/256。本設計采用的是定時器0的溢出頻率作為PCA的時鐘輸入,這樣可以通過設置定時器0的計數(shù)值改變PWM的頻率。本設計先進行溫度比較,再采用定時器0中斷來實現(xiàn)PWM輸出,從而實現(xiàn)溫度的實時控制。
2.2 PID算法設計
PID調(diào)節(jié)器是一種線性調(diào)節(jié)器,它將給定值R(t)與實際輸出值C(t)的偏差的比例(P)、積分(I)、微分(D)通過定值線性組合構成控制量,對控制對象進行控制。其模擬PID控制系統(tǒng)原理框圖如圖7所示。
void PIDInit(struct PID*pp)
{
……
{
unsigned int dError,Error;
Error=pp->SetPoint-NextPoint;//偏差
pp->SumError+=Error;//積分
dError=pp->LastError-pp->PrevError;//當前微分
pp->PrevError=pp->LastError;
pp->LastError=Error;
return(pp->Proportion*Error//比例
+pp->Integral*pp->SumError//積分項
+pp->Derivative*dError);//微分項
}
3 實驗結果
現(xiàn)利用Keil編輯程序結合Proteus所做的原理圖進行仿真處理,仿真結果可以達到設計要求。本設計制作了硬件設計實物,通過PID控制,當加熱電阻靠近溫度傳感器時,測量溫度明顯上升,并達到31℃(設置溫度)。此后加熱變緩,溫度維持在31℃,系統(tǒng)溫度誤差精度可達到±1℃之內(nèi),并且用蜂鳴器發(fā)出鳴響。當加熱電阻離開溫度傳感器,測量溫度會降低,當實測溫度低于設置溫度,蜂鳴器不響。再次設置溫度,當加熱電阻再次靠近溫度傳感器時,測量溫度又明顯上升到設置溫度。
為了更好地觀察實驗結果,證明仿真結果的可靠性,體現(xiàn)本設計對溫度控制的穩(wěn)定性和精確性,經(jīng)過多次設置不同的溫度,實驗記錄數(shù)據(jù)如表1所示。從記錄數(shù)據(jù)分析可知,本設計達到了預期的設計目標,控制溫度誤差范圍在±1℃之內(nèi)。
本系統(tǒng)以單片機為控制核心,采用PID算法進行溫度閉環(huán)控制,具有控制精度高,能夠克服容量滯后的特點,特別適用于負荷變化大、容量滯后較大、控制品質(zhì)要求高的控制系統(tǒng)[6-7]。以DS18B20溫度傳感器設計的溫度閉環(huán)控制系統(tǒng)線路簡單、硬件少、成本低廉、軟件設計簡單,尤其是其具有完善的單總線通信協(xié)議,無需復雜的布線,只需3根連線就能很容易地組成多點測溫系統(tǒng),因此在工農(nóng)業(yè)生產(chǎn)和科學研究中有著廣闊的應用前景[8]。
參考文獻
[1] 胡壽松.自動控制原理[M].北京:科學出版社,2002.
[2] 馬淑華,王鳳文,張美金,等.單片機原理與接口技術[M].北京:北京郵電大學出版社,2005.
[3] 黃建偉.基于DS18B20無線溫度測量系統(tǒng)[J].煤礦機械,2008,29(7):118-119.
[4] 潘新民,王燕芳.微型計算機控制技術實用教程[M].北京:電子工業(yè)出版社,2006.
[5] 譚浩強.C程序設計[M].北京:清華大學出版社,1991.
[6] 呂俊亞.一種基于單片機的溫度控制系統(tǒng)設計與實現(xiàn)[J].計算機仿真,2012,29(7):230-233.
[7] 葉丹,齊國生,洪強寧,等.基于單片機的自適應溫度控制系統(tǒng)[J].傳感器技術,2002,21(3):27-30.
[8] 趙娜,趙剛,于珍珠,等.基于51單片機溫度測量系統(tǒng)[J].微計算機信息,2007,(12):146-148.