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

基于AT89S52單片機(jī)的紅外遙控溫度報(bào)警器的設(shè)計(jì)

基于AT89S52溫度自動(dòng)控制檢測(cè)系統(tǒng)設(shè)計(jì)

使用51單片機(jī)和DS18B20溫度傳感器設(shè)計(jì)數(shù)字溫度計(jì)的論文免費(fèi)下載

使用51單片機(jī)實(shí)現(xiàn)DS18B20溫度傳感器溫度顯示的例程合集免費(fèi)下載

評(píng)論