溫度是工業(yè)控制中主要的被控參數之一.對典型的溫度控制系統進(jìn)行研究具有很廣泛的意義。根據不同場(chǎng)所、不同溫度范圍、精度等要求.所采用的測溫元件、測溫方法以及對溫度的控制方法也不同.本文以實(shí)驗室電烤箱為被控對象,以AT89S52單片機為控制核心,溫度傳感單元采用DS18B20.采用PID算法,實(shí)現智能的溫度控制系統。 1 系統組成 整個(gè)系統主控部分采用AT89S52構成單片機應用系統:溫度檢測部分采用DS18B20單總線(xiàn)數字溫度傳感器對溫度進(jìn)行檢測:控制部分由固態(tài)繼電器控制加熱管的通斷。工作時(shí).由鍵盤(pán)輸入設定溫度值,系統采用PID控制算法進(jìn)行運箅,通過(guò)單片機AT89S52的開(kāi)關(guān)量控制固態(tài)繼電器(SSR)的通斷,以調節烤箱內溫度至設定值,穩態(tài)誤差在+(-)1℃。液晶實(shí)時(shí)顯示烤箱內溫度和設定溫度值。 單片機溫度控制系統原理圖如圖1所示。 ![]() 圖1 單片機溫度控制系統原理圖 2 溫度檢測電路 溫度檢測部分采用集成溫度傳感器DS18B20,它采用獨特的單口接線(xiàn)方式傳輸,在與微處理器連接時(shí)僅需要一條口線(xiàn)即可實(shí)現微處理器與DS18B20的雙向通訊,不需要外圍器件,全部傳感元件及轉換電路集成在形如一只i極管的集成電路內,外加電源范圍是3.0~5.5V,測溫范圍從-55%到+125℃,在-1O℃~+85℃同有分辨率為0.5℃,測量結果以9位到12位數字量方式直接輸出數字溫度信號,以”一線(xiàn)總線(xiàn)”串行傳送給CPU,同時(shí)可傳送CRC校驗碼,具有極強的抗干擾糾錯能力。 DS18B20測溫原理如圖2所示。圖中低溫度系數品振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號送給計數器1。高溫度系數晶振隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號作為計數器2的脈沖輸入。計數器1和溫度寄存器被預置在-55%所對應的一個(gè)基數值。計數器1對低溫度系數晶振產(chǎn)生的脈沖信號進(jìn)行減法計數,當計數器1的預置值減到0時(shí)。溫度寄存器的值將加1,計數器1的預置將重新被裝入,計數器1重新開(kāi)始對低溫度系數晶振產(chǎn)生的脈沖信號進(jìn)行計數,如此循環(huán)直到計數器2計數到0時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數值即為所測溫度。圖2中的斜率累加器用于補償和修正測溫過(guò)程中的非線(xiàn)性,其輸出用于修正計數器1的預置值。 ![]() 圖2 DS18B20測溫原理圖 3 系統軟件設計 3.1溫度檢測子程序 DS18B20使用的關(guān)鍵在于清楚總線(xiàn)的讀寫(xiě)時(shí)序。 由于DS18B20外接電路極為簡(jiǎn)單,所以電路連接沒(méi)有問(wèn)題;但在軟件編程上,就要求嚴格按照它的時(shí)序進(jìn)行讀寫(xiě)操作。具體操作如下: 對DS18B20操作時(shí),首先要將它復位。將DQ線(xiàn)拉低480至960μs,再將數據線(xiàn)拉高15至60μs,然后,DS18B20發(fā)出60至此240μs的低電平作為應答信號,這時(shí)主機才能對它進(jìn)行其它操作。 寫(xiě)操作:將數據線(xiàn)從島電平拉至低電平,產(chǎn)生寫(xiě)起始信號。從DQ線(xiàn)的下降滑起計時(shí),在15μs到60μs這段時(shí)問(wèn)內對數據線(xiàn)進(jìn)行檢測,如數據線(xiàn)為高電平則寫(xiě)1;若為低電平,則寫(xiě)0,完成了一個(gè)寫(xiě)周期。在開(kāi)始另一個(gè)寫(xiě)周期前,必須有1μs以上的高電平恢復期。每個(gè)寫(xiě)周期必須要有60μs以上的持續期。 讀操作:主機將數據線(xiàn)從高電平拉至低電平1μs以上,再使數據線(xiàn)升為高電平,從而產(chǎn)生讀起始信號。從主機將數據線(xiàn)從高電平拉至低電平起15μs至60μs,主機讀取數據。每個(gè)讀周期最短的持續期為60μs。周期乏問(wèn)必須有1μs以上的高電平恢復期。 系統軟件采用keil c51編制。 復位子程序: sbit DQ=P3^3:定義數據線(xiàn)口地址 unsigned char reset() { unsigned char presence; DQ=O; //拉低DQ總線(xiàn)開(kāi)始復位 delay(30); //保持低電平480us DQ=1; //釋放總線(xiàn) delay(3); //等待芯片應答信號75us presence=DQ; //獲取應答信號 delay(28); //延時(shí)以完成整個(gè)時(shí)序 return(presence); //返回應答信號,有芯片應答返同0,無(wú)芯片則返回1 } 讀一位數據子程序 unsigned char read_bit() { unsigned char i,value_bit; DQ=0; //拉低DQ,開(kāi)始讀時(shí)序 DQ=1; //釋放總線(xiàn) for(i=0;i<2;i++){} //8us delay value_bit=DQ; return(value_bit); } 讀一字節數據子程序: unsigned char read__byte() { unsigned char i,value=0; for(i=0;i<8;i++) { if(read_bit()) //讀一字節數據,一個(gè)時(shí)序中讀一次,并作移位處理 value!=0x01< delay(4); //延時(shí)80us以完成此次都時(shí)序,之后再讀下一數據 } return(value); } 延時(shí)子程序void delay(unsigned char time).延時(shí)時(shí)間為25usx time 3.2 控制算法子程序 目前數字PID控制器被廣泛應用十溫度控制系統之中,本系統即以PID控制算法為核心,通過(guò)實(shí)驗測試的方法獲得控制參數范圍.然后應用試湊法進(jìn)行參數整定,最終達到較為快速,精確的控制。通過(guò)PID算法得到SSR固態(tài)繼電器“通”在總通斷時(shí)間的百分比。 PID算法的增量表達式為: ![]() 其中,k表示第k次采樣,s(k)為設定溫度,y(k)為實(shí)際溫度,u(k)為電爐功率控制,KP為比例系數,e(t)為誤差,e(k)=y(k)一s(k)。T1為積分時(shí)間常數,TD為微分時(shí)問(wèn)常數:T為采樣周期。 PID控制器的這些參數,分別對系統性能產(chǎn)生不同的影響。Kp加大,響應速度加快,可以減小穩態(tài)誤差.積分時(shí)間常數T1越小。積分作用越強,積分控制能消除系統的穩態(tài)誤差,提高控制系統的控制精度。微分時(shí)問(wèn)常數Tn越大,微分作用越強,微分控制可以改善動(dòng)態(tài)特性,如超調量減小,調節時(shí)問(wèn)縮短。采樣周期T直接影響到系統的控制性能。采樣周期太小偏差信號也會(huì )過(guò)小,計算機將會(huì )失去調節的作用,采樣周期過(guò)長(cháng),又會(huì )引起過(guò)大的誤差,因此采樣周期必須綜合考慮。 擴充響應曲線(xiàn)法是當系統在給定值處于平衡后,加一階躍輸入(如圖3a所示)。用儀表記錄下被調參數在階躍作用下的變化過(guò)程曲線(xiàn),如圖3b所示。在曲線(xiàn)最大斜率k處做切線(xiàn),求得滯后時(shí)間t,對象時(shí)問(wèn)常數Tm,以及它們的比值Tm/t。根據所求得的Tm、t和Tm/t的值,查表1即可求得控制器的T、Kp、Ti和Td。由于溫度控制過(guò)程千差萬(wàn)別,經(jīng)驗數據不一定就合適,最后可用試湊法逐步調試進(jìn)行確定。 ![]() 圖3 擴充響應曲線(xiàn)法 表1 擴充響應曲線(xiàn)法整定參數表 ![]() 為了得到最佳的控制效果,我們采用了擴允響應曲線(xiàn)法和現場(chǎng)經(jīng)驗試湊法來(lái)整定各項參數。 所謂試湊法是人們在長(cháng)期工作程實(shí)踐中,從各種控制規律對系統控制質(zhì)量的影響的定性分析總結出來(lái)的一種行之有效、并得到廣泛應用的工程整定方法。在實(shí)際現場(chǎng)整定過(guò)程中,我們首先通過(guò)擴充響應曲線(xiàn)法整定參數,設定初始的PID參數進(jìn)行控制,為了達到理想的控制目標,對PID參數進(jìn)行了不斷的調整,原則是要保持PID參數按先比例,后積分,最后微分的順序進(jìn)行反復試湊至獲得滿(mǎn)意的控制效果和PID控制參數。 4 結束語(yǔ) 該系統利用DS18B20進(jìn)行測溫,基于單片機AT89S52進(jìn)行溫度控制,具有硬件電路簡(jiǎn)單,控溫精度高(誤差在±1℃范圍內)、功能強、體積小、價(jià)格低.簡(jiǎn)單靈活等優(yōu)點(diǎn),可以應用于控制溫度在-55℃到+125℃之間的各種場(chǎng)合,可以實(shí)現溫度的實(shí)時(shí)采集、顯示與控制功能,是一種較理想的智能化控制系統。 本文作者創(chuàng )新點(diǎn):文中采用數字溫度計芯片DS18B20構成測溫單元,采用PID控制算法調節烤箱內溫度。 作者:余瑾 來(lái)源:《微計算機信息》(嵌入式與SOC)2009年第3-2期 |