宋祥弟
摘要本文以模糊控制為主要方法的恒溫水浴智能溫度控制系統(tǒng),主要以STC89C52單片機為控制核心。闡述了模糊控制系統(tǒng)設(shè)計,選取水浴實際溫度與目標溫度之間的偏差與偏差變化率作為輸入變量實現(xiàn)二維模糊控制的Matlab仿真,選取溫度偏差實現(xiàn)一維模糊控制,通過不斷進行實驗,總結(jié)出一套合適的模糊控制規(guī)則,能夠?qū)嶋H溫度、目標溫度、加熱方式顯示在1602液晶上,并且將溫度控制在設(shè)定溫度的±0.1℃~0.2℃。
關(guān)鍵詞恒溫水??;溫度;模糊控制;單片機
1恒溫水浴工作原理
圖1為恒溫水浴的原理框圖,系統(tǒng)以STC89C52單片機為控制和信息處理核心,主要完成水浴溫度采集、加熱與制冷工作方式判決、LCD顯示、目標溫度輸入、水浴溫度控制等功能。STC89C52根據(jù)設(shè)定的水浴目標溫度和水浴溫度的差值進行加熱與制冷工作方式判決,當(dāng)目標溫度高于水浴溫度時,單片機通過固態(tài)繼電器SSR控制加熱裝置工作;當(dāng)水浴目標溫度低于水浴溫度時,單片機通過繼電器控制加熱裝置工作,制冷裝置由于條件限制,采用發(fā)光二極管代替。
2恒溫水浴模糊控制
通過Simulink建立水浴加熱模型,如圖2所示。
通過Simulink仿真,以E(溫度差值),EC(溫差變化率)為輸入量,U為控制量,得到了較好的控制效果。但是如果將二維模糊控制算法用單片機實現(xiàn),算法復(fù)雜。
本系統(tǒng)采用一維模糊控制實現(xiàn),目標溫度與水浴實際溫度之間的誤差e作為輸入變量,控制量u作為輸出變量。系統(tǒng)中溫度誤差e、控制量u的基本論域分別為[0℃,+3℃]和[0,1]。E為溫度誤差的模糊輸入變量,E=INT[Round(e/k)]。
3系統(tǒng)硬件設(shè)計
本系統(tǒng)主要由單片機控制電路、水浴溫度采集電路、鍵盤控制電路、lcd顯示電路組成。
溫度控制電路主要由可控硅固態(tài)繼電器構(gòu)成,紅、綠色LED燈分別代表加熱和制冷,本設(shè)計中使用5401PNP型三極管,由單片機發(fā)出信號通過P2.6口控制繼電器通斷,從而使熱得快通電加熱。
溫度采集電路使用DS18820智能溫度傳感器,無需外接限流電阻,可以直接從傳感器中讀取溫度,如圖3所示,18820-1用來測外部環(huán)境溫度,數(shù)據(jù)口與單片機P2.5口相連,ds18b20用來測水浴溫度,數(shù)據(jù)口與單片機P2.4口相連。
4基于C語言的恒溫水浴的實現(xiàn)
4.1主函數(shù)的設(shè)計
單片機主程序主要用來實現(xiàn)對整個系統(tǒng)工作的控制、目標溫度的設(shè)置,顯示功能,以及與DS18b20溫度采集,具體工作流程如圖4所示。
圖4中,e為溫度誤差,即設(shè)置的目標溫度與水浴實際溫度的差值,Td為目標溫度,T為水浴實際溫度。4.2模糊控制程序設(shè)計及實現(xiàn)
溫度控制主要通過STC89C52的P1.3和P1.4口控制,P1.3口外接綠色的發(fā)光二極管,通過發(fā)光二極管來模擬壓縮機制冷,P1.4口控制固態(tài)繼電器驅(qū)動電路工作,通過固態(tài)繼電器來控制熱得快的加熱。
4.3 DS18820溫度采集
數(shù)字傳感器DS18b20的初始化。DS18820對時序有著非常高的要求,單總線上的所有通信都是以初始化序列開始,包括主機發(fā)出的復(fù)位脈沖及從機的應(yīng)答脈沖。當(dāng)從機發(fā)出響應(yīng)主機的應(yīng)答脈沖時,即向主機表明它處于總線上,且工作準備就緒。在主機初始化過程,主機通過拉低單總線至少480μs,以產(chǎn)生(Tx)復(fù)位脈沖。接著,主機釋放總線,并進入接收模式(Rx)。在單總線器件檢測到上升沿后,延時15μs~60μs,接著通過拉低總線60μs~240μs,以產(chǎn)生應(yīng)答脈沖。
5測試方案與測試結(jié)果
5.1測試方案
用繼電器模塊來控制200W“熱得快”來對長方形玻璃水缸中的5L水進行加熱,用鍵盤設(shè)定需要加熱的目標溫度值,觀察1602液晶顯示穩(wěn)定時的水溫值,多次調(diào)試并設(shè)定模糊控制規(guī)則參數(shù)來完善該系統(tǒng)。
5.2測試結(jié)果
經(jīng)過多次測試,得到如表1數(shù)據(jù)。