??? 摘 要:介紹了以AT89C52單片機(jī)為核心的溫度控制系統(tǒng),用來控制油氣分析箱體的溫度。該系統(tǒng)的環(huán)境溫度范圍在-40℃~+70℃,控制溫度為20℃左右。通過硬件和軟件的設(shè)計(jì)利用固態(tài)繼電器實(shí)現(xiàn)加熱和制冷控制,使溫度達(dá)到設(shè)定值??刂凭冗_(dá)到±0.5℃。
??? 關(guān)鍵詞:AT89C52;溫度控制;固態(tài)繼電器;模糊PID
?
??? 電力在人們生活和工業(yè)生產(chǎn)中是一種重要的資源,大型變壓器的正常穩(wěn)定工作是電力供應(yīng)的重要保障。本課題針對(duì)大型變壓器里的油氣分析研究智能型在線儀器。由于油氣分析采用氦離子分析檢測(cè)器,所以對(duì)油氣分離和儀器工作的環(huán)境均有嚴(yán)格的要求。
??? 油氣分析箱需要工作在我國(guó)北方或南方的露天環(huán)境下,氣候條件惡劣,環(huán)境溫度范圍達(dá)到-40℃~+70℃。為了保證分析的穩(wěn)定性與準(zhǔn)確性,需要對(duì)油氣分析箱體的溫度進(jìn)行監(jiān)測(cè)和控制。
??? 本設(shè)計(jì)硬件部分以AT89C52單片機(jī)為核心,溫度傳感器采用LM35,MAX1268作為A/D轉(zhuǎn)換器件,通過固態(tài)繼電器控制加熱或制冷單元來實(shí)現(xiàn)對(duì)溫度的控制。軟件部分主要通過模糊PID算法控制固態(tài)繼電器的輸出。
1溫控系統(tǒng)硬件設(shè)計(jì)
??? 在一個(gè)控制系統(tǒng)中,硬件選擇的優(yōu)良與否直接影響著控制的精度,對(duì)硬件的深入了解也是編制程序的必要前提[1]。系統(tǒng)總體結(jié)構(gòu)如圖1所示。
?
?
??? 電路根據(jù)功能可劃分為4個(gè)部分:溫度檢測(cè)模塊,A/D模塊、單片機(jī)及通信模塊,輸出控制模塊。
1.1 溫度檢測(cè)模塊
??? 系統(tǒng)采用LM35作為溫度傳感器,LM35系列的溫度傳感器是集成的高精度傳感器。測(cè)量范圍為-55℃~+150℃,在+25℃時(shí)測(cè)量精度為0.5℃。其輸出電壓值與攝氏溫度值成線性關(guān)系,比例因數(shù)是+10.0 mV/℃,使用起來比較方便。由于本設(shè)計(jì)的環(huán)境溫度涉及到零度以下,所以LM35的輸出端需要連接一個(gè)-5 V電壓,本設(shè)計(jì)中的電源模塊只提供+5 V電源,所以需要一個(gè)電壓倒相器來生成負(fù)電壓,本設(shè)計(jì)中采用的是開關(guān)電容式電壓倒相器NCP1729。溫度檢測(cè)電路原理圖如圖2所示。
?
?
1.2 A/D轉(zhuǎn)換電路模塊
??? 由于本設(shè)計(jì)的環(huán)境溫度在-30℃~+70℃,使用LM35測(cè)出的電壓范圍就為-0.3 V~+0.7 V,這就對(duì)A/D轉(zhuǎn)換芯片的量程提出了要求。本設(shè)計(jì)選擇MAX1268作為模數(shù)轉(zhuǎn)換芯片,其量程為0~2.5 V,符合設(shè)計(jì)要求。工作溫度在-40℃~+85℃,工作電壓+5 V,雙通道,帶有并行12位接口,最大誤差不超過1 LSB??蛇x單極性和雙極性兩種模式,本設(shè)計(jì)中由于需要測(cè)零下的溫度,所以選擇雙極性模式。當(dāng)MAX1268被選中且處于內(nèi)部查詢模式時(shí),WR的一個(gè)上升沿到來促使轉(zhuǎn)換開始。轉(zhuǎn)換結(jié)束時(shí)INT引腳輸出低電平。單片機(jī)只需定時(shí)查詢INT引腳即可準(zhǔn)備是否讀數(shù)據(jù)。需要注意的是REF和REFADJ兩個(gè)引腳的接法,由于選擇的是MAX1268內(nèi)部的2.5 V基準(zhǔn)電壓,兩個(gè)引腳均接地。
1.3 單片機(jī)及通信模塊
??? 整個(gè)測(cè)控系統(tǒng)是以8位的單片機(jī)AT89C52為核心的,AT89C52是美國(guó)ATMEL公司推出的一種電可擦寫單片機(jī),該產(chǎn)品與INTEL80C51和80C52單片機(jī)完全兼容,它內(nèi)部有8 KB可重復(fù)編程的閃爍存儲(chǔ)器,8 KB的ROM可以完全容納下一個(gè)控溫的程序。選擇它就不需要再外擴(kuò)RAM和ROM,也就不需要外加鎖存器,這可以充分減小制板的面積,減小制版的面積從另一方面來說也就是減少干擾,提高精度。
??? AT89C52還有256 B的8位RAM,32位可編程I/O口,3個(gè)16位定時(shí)器/計(jì)數(shù)器,8個(gè)中斷源,1個(gè)全雙工串行I/O口,片內(nèi)晶振和時(shí)鐘電路[2]。
??? 其中,P1.2和P1.3用來控制固態(tài)繼電器的導(dǎo)通與否,P1.4輸出自檢成功信號(hào),P1.5輸出溫控完成信號(hào)。
??? P3.0和P3.1用作串行通信口,與MAX232連接,實(shí)現(xiàn)接口電平轉(zhuǎn)換,然后將溫度值送到PC機(jī),方便查看溫控過程,并利于軟件中PID參數(shù)的調(diào)節(jié)。
1.4 輸出控制電路
??? 對(duì)溫度的直接控制主要是由風(fēng)冷式制冷單元來完成的,其原理是P/N結(jié),輸入為2個(gè)端子,工作電壓為24 V,工作電流為10 A,由于負(fù)載端電流較大,所以選擇固態(tài)繼電器。固態(tài)繼電器具有能以微小的的控制信號(hào)達(dá)到直接驅(qū)動(dòng)大電流負(fù)載的優(yōu)點(diǎn),單片機(jī)只要輸出能控制固態(tài)繼電器通斷時(shí)間的脈沖信號(hào)就可以了。本設(shè)計(jì)選擇直流控制直流型繼電器,源端控制電壓選擇3~32 V,需要注意的是,由于負(fù)載端接制冷單元,電流比較大,所以為了安全起見,固態(tài)繼電器的負(fù)載端電壓選擇25 V,為電流留出足夠的裕量。本系統(tǒng)中的脈沖控制是通過程序輸出的。
??? 風(fēng)冷式制冷單元結(jié)構(gòu)圖如圖3所示。
?
??? 與固態(tài)繼電器相接的2個(gè)端子正接24 V時(shí)制冷單元加熱,反接24 V時(shí)則制冷,所以在這里要使用4個(gè)固態(tài)繼電器通過與電源和2個(gè)端子的連接來控制加熱或者制冷。單片機(jī)的P1.2端口控制2個(gè)固態(tài)繼電器來加熱,P1.3端口控制另兩個(gè)固態(tài)繼電器來制冷。
2溫控系統(tǒng)軟件設(shè)計(jì)[3]
2.1 總體設(shè)計(jì)
??? 系統(tǒng)程序由主程序、查詢服務(wù)子程序、計(jì)算程序、串口通信子程序等組成。程序的總體流程圖如圖4所示。
?
??? 軟件系統(tǒng)首先自檢,自檢無誤后將P1.4置0,通過光耦向控制端顯示。然后進(jìn)行初始化,主要是硬件的初始化以及設(shè)置各變量的初值。接著進(jìn)入數(shù)據(jù)轉(zhuǎn)換子程序,然后進(jìn)行數(shù)據(jù)的處理,通過串口調(diào)試助手輸出溫度值,并進(jìn)行PID計(jì)算,最后輸出控制。溫度穩(wěn)定在設(shè)定值后將P1.5置0,通知控制端溫度控制完成。主程序代碼主要部分如下。
??? void main(void)
??? {
??? …… ??????????????????? //自檢并且初始化
??? while(1)
??? {
??? void delay();//定時(shí)
??? input=sensor();??? //數(shù)據(jù)轉(zhuǎn)換子程序
??? void serial();??? //串行通信
??? }
??? } out=Pid(input);?? //PID計(jì)算
??? out=conver(out);?? //輸出控制
??? ……
??? 由于儀器的工作環(huán)境存在強(qiáng)電磁干擾,為提高溫控系統(tǒng)的可靠性,軟件上采用數(shù)字濾波法,傳統(tǒng)的方法大多采用線性濾波,但是多數(shù)線性濾波具有低通特性,在去除噪聲的同時(shí)也使信號(hào)的突變點(diǎn)變得模糊。本系統(tǒng)采用小波變換的去噪方法。本控制系統(tǒng)在一次采樣周期內(nèi)讀入多個(gè)數(shù)據(jù),先對(duì)采樣信號(hào)進(jìn)行首次濾波,去掉最大、最小值后再取平均值,把得到的值進(jìn)行5階DB4小波分解,對(duì)每一階細(xì)節(jié)小波系數(shù)給定閾值進(jìn)行濾波,最后將得到的值進(jìn)行小波重構(gòu)就得到了濾波后的信號(hào)。
2.2 帶參數(shù)自整定的模糊PID控制器的設(shè)計(jì)
??? 在變壓器運(yùn)行監(jiān)測(cè)過程中,由于受外界擾動(dòng)較大,傳統(tǒng)的PID控制方法很難取得較理想的控制效果。而模糊PID控制器可以根據(jù)操作人員長(zhǎng)期實(shí)踐積累的經(jīng)驗(yàn)知識(shí)運(yùn)用控制規(guī)則模糊化,然后運(yùn)用PID參數(shù)的自整定,以取得最佳控制效果。其控制原理如圖5所示。
?
??? 由于油氣分析箱需要工作在氣候極為惡劣的環(huán)境下,所以控制器還引入了Bang-Bang控制,當(dāng)系統(tǒng)處于異常的大偏差下時(shí),控制器應(yīng)輸出最大值以實(shí)現(xiàn)設(shè)定值的快速跟蹤,而無需利用模糊算法再進(jìn)行一系列復(fù)雜計(jì)算,可以加快動(dòng)態(tài)響應(yīng)。
常規(guī)數(shù)字式PID控制器的算式為
??? 其中,un和en分別為n個(gè)采樣時(shí)刻控制器的輸出量(控制量)和輸入量(偏差量) ;T為采樣周期;Ti和Td分別為積分和微分時(shí)間常數(shù);KP為比例增益。
??? 模糊PID控制器把速度偏差變化e和偏差變化率ec加到模糊控制器的輸入端,模糊化過程將其轉(zhuǎn)換為模糊輸入語(yǔ)言變量,經(jīng)過模糊推理得到隸屬函數(shù),推倒出模糊輸出量,然后再經(jīng)過解模糊過程(本文采用最大隸屬度法),輸出參數(shù)KP、TI、TD的模糊調(diào)整決策矩陣。
??? 根據(jù)系統(tǒng)響應(yīng)曲線設(shè)定系統(tǒng)響應(yīng)的誤差E和誤差變化率EC的Fuzzy子集為:
??? ?
??? 其中,E、EC隸屬度函數(shù)如圖6所示,Kp隸屬度函數(shù)曲線如圖7所示。
?
??? 根據(jù)Kp的調(diào)整規(guī)則模型進(jìn)行算法合成,求得響應(yīng)的控制表如表1所示。其他參數(shù)依此類推。
?
??? 模糊控制器和傳統(tǒng)控制器相比,具有更快的響應(yīng)和更小的超調(diào),而且具有很強(qiáng)的魯棒性,能夠克服非線性因素的影響。
??? 本系統(tǒng)采用AT89C52單片機(jī)為核心來進(jìn)行溫度的測(cè)控,在環(huán)境溫度下,使用同一個(gè)單元進(jìn)行加熱或制冷,減小了箱體的體積。配上所選的各種硬件,最大限度地減少了元器件的數(shù)量,資源也得到了充分的利用,一方面大大減少了開發(fā)成本,并使得控溫精度達(dá)到±0.5℃,另一方面本設(shè)計(jì)中由于引入溫控的制冷作用,使得整個(gè)溫控過程響應(yīng)速度快,在較少的時(shí)間內(nèi)能夠完成控制目標(biāo),達(dá)到工業(yè)監(jiān)控的要求。模糊PID算法的引入,消除了到工作現(xiàn)場(chǎng)來回設(shè)定參數(shù)的麻煩,能在較短的時(shí)間內(nèi)實(shí)現(xiàn)溫度的自動(dòng)調(diào)節(jié),是一種較好的設(shè)計(jì)方案,在箱體溫控設(shè)備上有很好的應(yīng)用前景。
參考文獻(xiàn)
[1]? 趙東輝. 單片機(jī)89C52在加熱爐測(cè)控溫度中的應(yīng)用[J]. 電氣開關(guān),2002(5):10.
[2]? 楊定安. 89C52單片機(jī)在可控硅調(diào)功溫控系統(tǒng)中的應(yīng)用[J]. 機(jī)電工程技術(shù),2002,31(3):23.
[3]? 戴佳,戴衛(wèi)恒. 51單片機(jī)C語(yǔ)言應(yīng)用程序設(shè)計(jì)實(shí)例精講[M]. 北京:電子工業(yè)出版社,2006.
[4]? 李軍,王孫安. 模糊控制器在溫度控制系統(tǒng)中的應(yīng)用[J]. 機(jī)床與液壓,2003(4).
[5]? 王麗娟. 單片機(jī)在鍋爐溫度控制系統(tǒng)中的應(yīng)用[J]. 微計(jì)算機(jī)信息,2007(2).