【摘要】此水溫控制系統(tǒng)以單片機AT89S52為核心控制器,溫度由DS18B20數(shù)字溫度傳感器進行采集。為了更精確的測溫,本系統(tǒng)采用三點測溫,并采用PID算法進行水溫控制,使溫度能夠自行調(diào)節(jié)。
【關(guān)鍵詞】AT89S52單片機;DS18B20;可控硅;PID算法控制;LCD1602
1.引言
溫度控制在生產(chǎn)生活中應用都十分廣泛,但其控制過程中存在著很大的時滯性和極強的干擾性,因此,如何很好地控制溫度是評價一個溫度控制系統(tǒng)優(yōu)劣的關(guān)鍵之處。PID控制是按設定值和被控量偏差的比例、積分和微分進行控制的一種控制方法。PID控制在控制理論中占有舉足輕重的地位,由于其結(jié)構(gòu)簡單、穩(wěn)定性好、工作可靠、調(diào)整方便,被廣泛應用于包括溫度控制的各種控制過程中。
本課題是設計一個水溫自動控制系統(tǒng),設定溫度是80度,從40度對500mL的水加熱,在多種環(huán)境下,達到80度的時間不超過5分鐘,溫度最后穩(wěn)定在80度左右的調(diào)整時間不超過4分鐘,超調(diào)量不大于5%。
2.總體設計方案
本系統(tǒng)主要由單片機控制模塊、溫度檢測模塊、可控硅控制電路模塊、加熱電路、矩陣鍵盤、液晶顯示模塊等部分組成。其整體設計框圖如圖1所示:
圖1 系統(tǒng)框圖
圖2 控制電路
本系統(tǒng)主要以單片機AT89S52為核心,基于自動控制原理與PID算法,根據(jù)不斷掃描測量的溫度值對電爐進行反饋調(diào)節(jié),從而對溫度實現(xiàn)精確的調(diào)節(jié)。
溫度傳感器DS18B20將測得的溫度數(shù)據(jù)傳輸給單片機AT89S52,單片機來調(diào)整PWM波的占空比,通過驅(qū)動電路對可控硅進行控制完成對電爐的通斷電控制,從而控制其功率,達到調(diào)節(jié)水溫的目的。
3.各個模塊電路設計
(1)主控部分:由于本控制系統(tǒng)并不復雜,故選擇Atmel公司的AT89S52單片機作為CPU。
(2)溫度采集部分:本系統(tǒng)選擇使用數(shù)字溫度傳感器DS18B20檢測溫度。其溫度測量精度較高,能夠達到0.0625度以上精度。為了更精確測量,采用多點測溫的方法,本系統(tǒng)中選用三點測溫。
(3)鍵盤設置部分:本系統(tǒng)選擇4*4矩陣鍵盤作為輸入部分,用來輸入預設溫度、開啟與關(guān)閉加熱、調(diào)節(jié)時間等。
(4)顯示模塊:本系統(tǒng)用LCD1602顯示設定溫度、當前溫度、時間及加熱部分現(xiàn)在處于加熱還是停止加熱的狀態(tài)。
(5)控制加熱部分:由于本系統(tǒng)要控制電熱爐加熱,功率較大,因此需要借助功率電路。設計中我們使用光耦+可控硅,簡化電路的制作。其控制部分電路圖如圖2所示。
4.系統(tǒng)程序設計
(1)主程序流程
圖3 主程序流程圖
(2)PID算法
PID算法原理框圖如圖4所示:
圖4 PID算法原理框圖
PID算法的一般表達式為:
溫度PID調(diào)節(jié)器有三個可設定參數(shù),即比例放大系數(shù)Kp、積分時間常數(shù)Ki、微分時間常數(shù)Kd。比例調(diào)節(jié)的作用是使調(diào)節(jié)過程趨于穩(wěn)定,但會產(chǎn)生穩(wěn)態(tài)誤差;積分作用可消除被調(diào)量的穩(wěn)態(tài)誤差,但可能會使系統(tǒng)振蕩甚至使系統(tǒng)不穩(wěn)定;微分作用能有效的減小動態(tài)偏差。
P1D算法的離散化表達式為:
其中,上式中k表示第k次采樣,r(k)為設定溫度,c(k)為實際水溫,M(k)為電爐功率控制量,誤差為e(k)=r(k)-c(k)。
PID算法的輸出形式為一PWM波,通過PID算法調(diào)節(jié)PWM波形的占空比,使電爐在一周期內(nèi)開通的時間可調(diào),這樣就可以調(diào)節(jié)電熱爐的功率進而控制溫度的變化,使水溫穩(wěn)定在設定值,從而使精度提高。
(3)PID參數(shù)的整定
對一個控制系統(tǒng)而言,控制質(zhì)量的好壞取決于參數(shù)整定是否合理。PID參數(shù)整定主要有兩類,理論整定法和工程整定法。理論整定法主要是依據(jù)系統(tǒng)的數(shù)學模型,經(jīng)過理論計算確定控制器參數(shù)。這種方法所得到的計算數(shù)據(jù)未必可以直接用,還必須通過工程實際進行調(diào)整和修改。工程整定法主要依靠控制經(jīng)驗,直接在系統(tǒng)運行時進行調(diào)整。因此本實驗采用經(jīng)驗法即試湊法來確定PID的參數(shù)。
試湊時,對參數(shù)整定實行先比例、后積分,再微分的整定步驟。
首先確定比例部分。將比例參數(shù)由小變大,并觀察相應的系統(tǒng)響應,直至得到反應快、超調(diào)小的響應曲線。如果系統(tǒng)沒有靜差或靜差已經(jīng)小到允許范圍內(nèi),并且對響應曲線已經(jīng)滿意,則只需要比例調(diào)節(jié)器即可。
如果在比例調(diào)節(jié)的基礎上系統(tǒng)的靜差不能滿足設計要求,則必須加入積分環(huán)節(jié)。在整定時先將積分時間設定到一個比較大的值,然后將已經(jīng)調(diào)節(jié)好的比例系數(shù)略微縮小,然后減小積分時間,使得系統(tǒng)在保持良好動態(tài)性能的情況下,靜差得到消除。在此過程中,可根據(jù)系統(tǒng)的響應曲線的好壞反復改變比例系數(shù)和積分時間,以期得到滿意的控制過程和整定參數(shù)。
如果在上述調(diào)整過程中對系統(tǒng)的動態(tài)過程反復調(diào)整還不能得到滿意的結(jié)果,則可以加入微分環(huán)節(jié)。首先把微分時間設置為0,在上述基礎上逐漸增加微分時間,同時相應地改變比例系數(shù)和積分時間,逐步湊試,直到得到滿意的調(diào)節(jié)效果。
(4)PID算法程序
本系統(tǒng)PID控制的思路:
在第一次PID調(diào)節(jié)時記下PID調(diào)節(jié)器的輸出值uk0(該值為以后PID調(diào)節(jié)器輸出的最大值),并以該值為參考,以后的輸出uk與uk0做比值,假設uk0表示加熱a,那么輸出uk與uk0比值表示加熱a*uk/uk0時間,以此類推,最后算出每次計算應該加熱的時間作用于可控硅,控制電爐加熱。由于溫度變化緩慢,則設置為5s計算PID一次。
另外本系統(tǒng)的PID采用了開關(guān)量計算——積分分離相結(jié)合的改進PID算法,具體思路是:
1)當溫差>=15度時,不用PID直接進行加熱。
2)當溫差在0-15度之間時,采用PID計算。
①當溫差>5度時,采用PD控制加快響應速度并減少超調(diào);
②當溫差<5度時,采用PID控制保證系統(tǒng)的穩(wěn)態(tài)精度。
PID程序如下:
void PID(void)
{ float ek,ek1,ek2,ek_sum;
uint a; ek=K-temp; //計算誤差
while(1)
{ if(ON_OFF==1) //溫控開關(guān)開
{ if(ek>=15)
{outflag=1;OUT=0;Time_on=100; break;} //溫差大于15度,不用PID調(diào)節(jié)
else if(ek<0)
{ek=0;outflag=0; OUT=1;Time_on=0;break;} //溫差小于等于0不調(diào)節(jié)
else
{ if(ek>5)
a=0;
if(ek<5)
a=1;
ek2=ek1;
ek1=ek;
ek_sum+=ek;
uk=kp*ek+ki*ek_sum+kd*(ek1-ek2); //計算PID輸出uk if(start_flag==0)//PID運算標志位
{
uk0=uk; //uk初值,用于參考以后uk加熱時間
start_flag=1;
div=100/uk0;
} //開始PID計算
else if(start_flag==1)
{ //加熱片加熱時間
Time_on=uk*div;
OUT=0;
outflag=1;
}
break;}
} else{outflag=0;OUT=1;break;} //不加熱
}
}
5.實驗數(shù)據(jù)及結(jié)果分析
經(jīng)過多次測量,確定了測溫過程中的幾個指標:
從起始溫度到設定溫度經(jīng)歷的時間:t(min);
使其達到設定溫度的調(diào)整時間:t*(min);
達到設定溫度的超調(diào)量:Δ%。
其測量結(jié)果如表1所示。
通過上表的數(shù)據(jù)分析,各項指標均滿足要求。
6.結(jié)束語
本系統(tǒng)設計采用單片機AT89S52為控制中心,利用DS18B20采集溫度,采用PID算法對水溫進行控制系統(tǒng),具有成本低、控制可靠等優(yōu)點。經(jīng)過多次測試,驗證了該水溫控制系統(tǒng)達到了較高的精確度,滿足要求。
參考文獻
[1]黃勤.單片機原理及應用[M].清華大學出版社.
[2]劉金琨.先進PID控制MATLAB仿真(第3版)[M].電子工業(yè)出版社.
[3]明鑫,陳可中,王戎丞,等.基于單片機的水溫控制系統(tǒng)[J].現(xiàn)代電子技術(shù),2005(6):1-2.
[4]胡焱,周超,沈家慶,等.基于單片機的水溫控制系統(tǒng)設計[J].通信技術(shù),2007(8):31-33.
作者簡介:
焦晶晶,現(xiàn)就讀于鄭州大學信息工程學院電子信息工程學院。
王飛虎,現(xiàn)就讀于鄭州大學信息工程學院電子信息工程學院。