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