陳玉敏,孟憲民,王德玉
(1.哈爾濱工業(yè)大學(威海),威海264209;2.山東卡爾電氣股份有限公司,威海264209)
基于C8051F500的溫度控制設(shè)計
陳玉敏1,孟憲民2,王德玉1
(1.哈爾濱工業(yè)大學(威海),威海264209;2.山東卡爾電氣股份有限公司,威海264209)
設(shè)計了溫度控制模塊。下位機部分包括單片機C8051F500控制模塊,溫度測量、加熱、通信等模塊,水溫控制采用邏輯規(guī)則算法進行;上位機部分利用Matlab仿真軟件設(shè)計,實驗窗口能夠?qū)囟戎祵崟r顯示,設(shè)置溫度穩(wěn)定值及相關(guān)參數(shù)控制溫度變化且便于觀察,建立Access數(shù)據(jù)庫存儲收到的實驗結(jié)果以備查詢。實踐結(jié)果證明,水溫控制模塊超調(diào)小,上升速度快,實驗監(jiān)控界面良好,實驗效果穩(wěn)定,具有實際應(yīng)用價值。
溫度控制;單片機;邏輯規(guī)則控制;Matlab仿真;溫度實時顯示
溫度控制較復(fù)雜,具有滯后、非線性等問題[1-2]。采用單片機C8051F500設(shè)計溫度控制模塊,把溫度控制在設(shè)定偏差允許范圍內(nèi),具有溫度測量、加熱、通信等功能。同時控制模塊可以擴展開放,完成對溫度控制等相關(guān)知識的實踐;利用Matlab仿真軟件設(shè)計上位機部分,進行溫度值的變化及實時顯示,同時利用Access數(shù)據(jù)庫存儲。
溫度控制模塊分為上位機和下位機兩部分,上位機模塊將溫度實時用曲線和數(shù)字進行顯示,還能對系統(tǒng)的控制品質(zhì)進行設(shè)定,水溫可以在一定范圍內(nèi)通過上位機設(shè)定來滿足不同要求,環(huán)境溫度改變時能夠自動控制,以維持目標不變,具有較好的快速性與較小的超調(diào)。下位機模塊完成采集溫度信息,根據(jù)溫度設(shè)定值與當前溫度利用一定的控制算法,最終控制溫度的變化。下位機的組成模塊包括通信模塊、溫度測量、控制、加熱等模塊。
要想準確控制某個量的變化,需帶有反饋的閉環(huán)控制,將被控量穩(wěn)定在設(shè)定值的偏差范圍內(nèi),固本設(shè)計反饋環(huán)節(jié)加入溫度測量模塊。首先上位機設(shè)定要達到的溫度值以及其他控制算法所需要的控制參數(shù),并啟動本次溫度控制,然后下位機就根據(jù)設(shè)定的溫度值與當前所測得的溫度值,采用一定的控制算法,驅(qū)動執(zhí)行機構(gòu)工作,這樣不斷的循環(huán)往復(fù)地檢測、算控制信號、驅(qū)動加熱,直到溫度穩(wěn)定在設(shè)定值附近。
3.1 單片機模塊
硬件電路選擇處理速度與51單片機有質(zhì)的飛躍的C8051F500作為主控芯片,C8051F500的時鐘選擇晶振精度很高的內(nèi)部時鐘,芯片的工作溫度在-40到+125℃之間,完全滿足實驗要求[3]。復(fù)位電路與51單片機高電平復(fù)位相反,是低電平復(fù)位;電源電路便于擴展需求,主控板電源電壓選擇+5V,電源轉(zhuǎn)換芯片選具有防反接保護的LM2937,即在電源接反時也能不損壞芯片。下載電路中JTAG接口包括TMS、 TDI、TCK、TDO4線,分別為模式選擇、數(shù)據(jù)輸入、時鐘、數(shù)據(jù)輸出線。軟件編程時先固定器件到電路板上進行在線編程,從而大大加快工程進度。單片機仿真與下載是C2接口,且C2接口與JTAG接口兼容,設(shè)計用JTAG接口電路,清晰明了,防止接錯線。加熱控制電路中采用通斷迅速的固態(tài)繼電器實現(xiàn)弱電控制強電,輸出電壓耐壓480V,最大電流10A。選用電熱絲的功率是500W,220V供電,適合在較小的容器內(nèi)加熱液體。三極管驅(qū)動固態(tài)繼電器開始加熱,LED指示燈會亮起,當固態(tài)繼電器輸出端呈高阻狀態(tài)時,加熱器不再加熱,LED指示燈會熄滅。當然對于不同的應(yīng)用場合,可以根據(jù)需要選擇不同功率的加熱裝置。電源電路、下載電路、加熱控制電路分別如圖1、圖2、圖3所示。
圖1 C8051F500電源電路圖
圖2 下載電路圖
圖3 加熱控制電路圖
單片機輸出信號采用偏差相平面基礎(chǔ)上的邏輯規(guī)則控制,在此邏輯控制中,一方面通過一系列控制法則反映系統(tǒng)行為變化,另一方面借助這些規(guī)則對對象進行有效控制。將工況劃為9種情況,通過設(shè)定參數(shù)改變動態(tài)、靜態(tài)指標,在9種狀態(tài)之間來回切換,最終達到穩(wěn)定。通過所測實時溫度與設(shè)定值得出的偏差得到溫度偏差變化率。最后根據(jù)偏差值和偏差變化率,選擇9種工況里面的一種執(zhí)行,然后一直循環(huán)往復(fù)的執(zhí)行,直到上位機發(fā)出終止命令[4]。設(shè)±e0為允許偏差,±e·0為允許偏差變化率。實驗溫控規(guī)則如表1所示。而加熱模塊的固態(tài)繼電器無法識別模擬量,故將控制量做PWM轉(zhuǎn)換,控制其占空比來調(diào)節(jié)輸出功率值,實現(xiàn)水溫控制。采用兩個定時器分別計時來控制PWM波的占空比。定時器0控制工作周期,定時器2控制一個周期內(nèi)的占空比,即9種工況分別對應(yīng)不同的定時器2的計數(shù)初始值。通過0和2的狀態(tài)判斷需要的占空比是否已經(jīng)達到,若沒有則退出中斷繼續(xù)計時,若已達到則關(guān)閉計數(shù),從而實現(xiàn)占空比的調(diào)節(jié)。軟件設(shè)計采用Visual Studio開發(fā)環(huán)境的.net構(gòu)架,軟件開發(fā)語言為Visual C#??刂扑惴鞒倘鐖D4所示。
表1 實驗溫控規(guī)則表
3.2 溫度測量模塊
溫度傳感器選用DS18B20,軟件設(shè)計編程平臺選用Keil軟件,由于該傳感器需要嚴格的時序才能正確的讀出溫度,在對該傳感器進行操作的過程中,不能有中斷發(fā)生,以免影響讀到溫度值的正確性。溫度測量電路利用Keil進行仿真實驗,測量室溫。設(shè)置斷點,在Watch里面添加觀測變量觀察所得到的溫度值正是室溫。軟件運行界面如圖5所示。
圖4 控制算法流程圖
圖5 Keil運行界面
3.3 通信模塊
通信模塊中的串口類設(shè)為SerialPort,將要傳送的數(shù)據(jù)保存到一個數(shù)組,再利用SerialPort類的發(fā)送方法,就可以發(fā)送數(shù)據(jù),如果有數(shù)據(jù)發(fā)來會暫存入緩沖區(qū)內(nèi),然后從緩沖區(qū)內(nèi)就可以讀數(shù)據(jù)了。上位機軟件里,建立存放要發(fā)送的數(shù)據(jù)和接收到的數(shù)據(jù)兩個數(shù)組。在下位機里面也相應(yīng)建立兩個數(shù)組,將要發(fā)送的數(shù)據(jù)保存在一個數(shù)組中,接收到的數(shù)據(jù)保存到另一個數(shù)組中。上位機和下位機之間進行軟件仿真,將下位機的程序編寫成將收到的數(shù)據(jù)原樣返回的功能,通過上位機來觀測發(fā)送和接收到的數(shù)據(jù)是否正確來判斷串口是否正常工作。串口數(shù)據(jù)處理采用查詢方式,要發(fā)送多個字節(jié)就要先將要發(fā)送的多字節(jié)數(shù)據(jù)保存在一個數(shù)組中,然后循環(huán)發(fā)送。串口通信中選EIA-RS-232C,由MAX232芯片完成TTL←→EIA雙向電平轉(zhuǎn)換[5-6]。發(fā)送一字節(jié)數(shù)據(jù)及接收數(shù)據(jù)流程如圖6所示。
上位機模塊主要是使溫度變化可視化以及實現(xiàn)整個溫度控制的流程。上位機包括通信、控制參數(shù)設(shè)定、溫度實時顯示、控制流程幾個模塊。溫度實時顯示設(shè)計,模塊中利用Matlab生成COM組件,然后在上位機軟件中直接調(diào)用該組件就可以實現(xiàn)C#與Matlab的組合。Matlab中也可對各種控制算法進行編程擴展溫度控制實驗[7-8]。在file按鈕里,可以選擇將圖像保存下來,保存的同時可以選擇保存類型,包括常見的圖片格式以及Matlab文件格式。若保存為Matlab格式的圖像,那么相應(yīng)數(shù)據(jù)點的信息也保存下來了,就可以利用Matlab對該圖像進行相應(yīng)的數(shù)據(jù)分析,得出關(guān)于該系統(tǒng)的相關(guān)結(jié)論等。溫度控制過程中,要對溫度穩(wěn)定目標進行設(shè)定,系統(tǒng)根據(jù)所設(shè)目標進行工作;根據(jù)單片機控制規(guī)則進行計算,不斷調(diào)整溫度偏差及溫度偏差變化率,盡量減小誤差,要對其進行限制設(shè)定;要記錄實驗開始時間、結(jié)束時間、實時溫度值、溫度差、溫差變化率等量,所設(shè)計的軟件界面如圖7所示。
圖6 發(fā)送一字節(jié)數(shù)據(jù)及接收數(shù)據(jù)流程圖
圖7 實驗軟件界面圖
數(shù)據(jù)庫存儲數(shù)據(jù),考慮到以后可能還要再查看某一次溫度的變化情況,加入數(shù)據(jù)庫。需要將溫度值、每次進行控制所設(shè)置的控制參數(shù)及開始和結(jié)束的時間等量進行存儲。數(shù)據(jù)量并不大,選用Access數(shù)據(jù)庫,通過編寫SQL語句來實現(xiàn)存儲數(shù)據(jù)的目的。具體的存儲過程是,在將當前時刻下位機上傳上來的溫度值顯示在屏幕上之后,調(diào)用Access的寫函數(shù),將該點溫度存入到數(shù)據(jù)庫中。
將各單元模塊連接上,上位機軟件設(shè)置要達到的溫度值以及控制參數(shù),點擊開始按鈕,觀察溫度實時顯示界面確定溫度是否在實時顯示。經(jīng)測試系統(tǒng)能正常運行,溫控運行時所得一組溫度變化曲線如圖8所示,設(shè)定溫度值為30℃,溫度偏差0.5℃,加熱器是500W,偏差變化率設(shè)定上限是0.02。溫度控制模塊中只要適當改變溫控模塊軟件里面的控制參數(shù)以及通過上位機設(shè)置的控制參數(shù),系統(tǒng)就能發(fā)揮很好的控溫的功能。
圖8 溫度變化曲線
實驗?zāi)K的下位機設(shè)計中利用數(shù)字化溫度傳感器實現(xiàn)硬件電路的簡化;采用邏輯規(guī)則算法實現(xiàn)控制超調(diào)小、精度高的目的;通過固態(tài)繼電器開關(guān)快速控制輸出功率。同時上位機軟件設(shè)置溫度穩(wěn)定值以及相關(guān)的控制參數(shù),可以自己設(shè)定室溫以上,100℃以下的任意溫度值。在溫度控制過程中,具有良好的顯示界面,便于觀察,而且上位機Matlab中可以對各種溫度控制算法進行實踐且性能良好,如將系統(tǒng)通信串口更換成RS485即構(gòu)成分布式溫度控制系統(tǒng)等。溫控模塊只需要稍作改動即可應(yīng)用于其它更多領(lǐng)域,具有一定的開放性及實用價值。
[1] 蔣鼎國.基于改進型BP神經(jīng)網(wǎng)絡(luò)PID控制器的溫室溫度控制技術(shù)[J].實驗室研究與探索,2015,34(1):9-13.Jiang Ding-guo.Based on the improved BP neural network PID controller of the greenhouse temperature control technology[J].Laboratory research and exploration,2015,34(1):9-13.
[2] 祁鯤,厲虹.基于PLC的溫度控制仿真試驗平臺設(shè)計[J].電氣技術(shù),2013(9)30-33.Qi Kun,Li Hong.Temperature control simulation test platform design based on PLC[J].Electrical technology,2013(9)30-33.
[3] 王琪,李利品,郭錦濤,等.基于C8051F500的數(shù)控恒流源設(shè)計[J].電子制作,2014(5):5-6.Wang Qi,Li Li-pin,Guo Jin-tao,et al.The numerical controlconstantcurrentsourcedesignbasedon C8051F500[J].Electronic manufacture,2014(5):5-6.
[4] 林偉,邵華楓,李才安,等.水溫控制系統(tǒng)的邏輯規(guī)則控制研究[J].測控技術(shù),2008,27(8):67-69.Lin Wei,Shao Hua-feng,Li Cai-an,et al.Water temperature control system of the logic rule control research[J].Measurement and control technology,2008,27(8):67-69.
[5] 鐘科.基于STM32的溫度測量系統(tǒng)[J].微處理機,2015,36(1):63-67.Zhong Ke.The temperature measurement system based on STM32[J].Microprocessor,2015,36(1):63-67.
[6] 王景忠,王俊芳,立佳.一種實現(xiàn)RS232接口一對多通信的方法[J].無線電工程,2012,42(12):1-3.Wang Jing-zhong,Wang Jun-fang,Li Jia.A realization method of the RS232 interface one-to-many communication[J].Radio engineering,2012,42(12):1-3.
[7] 結(jié)碩,韓光勝.Matlab在自動控制原理實驗中的應(yīng)用[J].實驗技術(shù)與管理,2012,29(2):95-97.Jie Shuo,Han Guang-sheng.The application of Matlab in the principle of automatic control experiment[J].Experimental Technology and Management,2012,29(2):95-97.
[8] 薛飛,楊友良,孟凡偉,等.基于Matlab GUI串口通信的實時溫度監(jiān)控系統(tǒng)設(shè)計[J].計算機應(yīng)用,2014,34(1):292-296.Xue Fei,Yang You-liang,Meng Fan-wei,et al.Based on Matlab GUI of serial communication,real-time temperature monitoring system design[J].Computer application,2014,34(1):292-296.
Design of Temperature Control Based on C8051F500
Chen Yumin1,Meng Xianmin2,Wang Deyu1
(1.Harbin Institute of Technology(WeiHai),Weihai 264209,China;2.Shandong Kaer Electric Co.,Ltd.,Weihai 264209,China)
The temperature control module is desighed in this paper,the machine consists of single chip microcomputer C8051F500 control module,temperature module,heating module and communication module,and the logical rules are used in the temperature control algorithm;Upper machine parts,using Matlab simulation software for design,can real-time display the experiment temperature and set up the stable temperature value and the related parameter for temperature change control,and set up the Access database to store received results for the query.The test results show that the water temperature control module is small overshoot,the temperature rise rapidly and has excellent monitoring experiment interface,and the experimental effect is stable and has good application value.
Temperature control;Single chip microcomputer;Logic rule control;Matlab simulation;Real-time display of temperature
10.3969/j.issn.1002-2279.2015.04.024
TN432
A
1002-2279(2015)04-0092-05
陳玉敏(1978-)女,黑龍江省哈爾濱市人,工程師,碩士研究生,主研方向:控制科學與工程。
2015-04-15