一種基于單片機的溫度監(jiān)控系統(tǒng)設計
在工業(yè)控制領域,溫度控制的應用非常廣泛,控制精度的高低直接影響到產(chǎn)品的質(zhì)量及使用壽命,研究和設計高性能的溫度控制系統(tǒng)具有非常重要的意義。目前控制算法的多樣化也為溫度控制提供了便利條件,應用較為普遍的有比例積分微分(PID)控制、模糊控制等。本文根據(jù)某溫控設備的控制要求設計了一種以單片機為核心的監(jiān)控系統(tǒng)。系統(tǒng)采用熱電偶溫度傳感器測溫,利用位置式PID算法,實現(xiàn)了溫度的實時監(jiān)測、超限報警、顯示與控制等功能。
1 系統(tǒng)硬件設計
本系統(tǒng)主要由熱電偶溫度傳感器、OP27低噪聲精密運算放大器、雙積分型A/D轉(zhuǎn)換器ICL7135、可編程定時/計數(shù)接口芯片8253、AT89C51單片機等器件組成。系統(tǒng)框圖如圖1所示。
1.1 電源模塊
電源模塊分模擬電源和數(shù)字電源兩大部分,分別對本機的模擬電路和數(shù)字電路供電,地線各自獨立,按A/D轉(zhuǎn)換器的要求只在A/D轉(zhuǎn)換器處將模擬地和數(shù)字地相連。數(shù)字電源和模擬電源都采用三端穩(wěn)壓塊穩(wěn)壓,在個別要求電源精度較高的場合選用低溫漂穩(wěn)壓二極管進行二級穩(wěn)壓。
1.2 溫度采集模塊
溫度數(shù)據(jù)采集模塊以熱電偶溫度傳感器為核心部件,將溫度變化量轉(zhuǎn)化為電壓信號,經(jīng)精密運算放大器OP27進行放大,放大后的電壓信號輸出到ICL7135雙積分型A/D轉(zhuǎn)換器進行高精度模數(shù)轉(zhuǎn)換。A/D轉(zhuǎn)換后,往往要進行相應的換算,得到系統(tǒng)所需要的數(shù)據(jù)。之后將數(shù)據(jù)送往單片機,此信號一部分送往顯示模塊,以提供實時數(shù)據(jù)的顯示;另一部分送往控制模塊,將實時數(shù)據(jù)與目標數(shù)據(jù)對比,繼而進行控制。圖中采用8253接口電路是為系統(tǒng)升級為具有多路溫度檢測控制功能而設置的。
1.3 輸出控制
輸出控制電路主要包括驅(qū)動和執(zhí)行兩部分??捎眠_林頓陣列ULN2003來作驅(qū)動,進而控制交流固態(tài)繼電器(AC-SSR)中的雙向可控硅的關斷和導通,以便切斷或接通加熱電源。原理是采用雙向可控硅交流“調(diào)功”方式控制加熱電熱絲發(fā)熱量,即在每一個控制周期時間內(nèi),改變加在電熱負載上交流電壓半波的個數(shù)來調(diào)節(jié)電熱絲的發(fā)熱量。[!--empirenews.page--]
1.4 顯示與報警
顯示模塊由LED數(shù)碼管和驅(qū)動電路組成。報警系統(tǒng)采用聲光報警由發(fā)光二極管,揚聲器及驅(qū)動電路組成,當單片機發(fā)出超限報警信號,將驅(qū)動發(fā)光二極管和揚聲器實現(xiàn)報警。
1.5 看門狗電路
為了防止系統(tǒng)受干擾而使程序丟失,或走進死循環(huán)而使系統(tǒng)死機,應加入看門狗電路,以保證系統(tǒng)的可靠性和穩(wěn)定性。本系統(tǒng)采用常用的集成看門狗電路X5045,X5045是一種集看門狗、電壓監(jiān)控和串行E2PROM三種功能于一體的可編程電路。
2 系統(tǒng)軟件設計
系統(tǒng)程序的控制思想如下:設置目標溫度后,系統(tǒng)對爐溫采樣,并通過預設溫度、當前溫度、歷史偏差等進行PID運算產(chǎn)生輸出參數(shù),通過該參數(shù)控制加熱時間,從而調(diào)節(jié)加熱器的平均功率,實現(xiàn)系統(tǒng)的PID控制。整體功能通過主程序、串行通信中斷服務程序、PID控制子程序等配合實現(xiàn)。這里主要介紹主程序流程和PID控制子程序流程。系統(tǒng)首先初始化I/O、8253、定時器、UART等部件,然后進入主循環(huán),進行溫度采樣和相關處理。本系統(tǒng)軟件設計的核心思想就在于實現(xiàn)PID控制,在系統(tǒng)運行過程中通過按相應鍵重新設置目標溫度。主程序流程如圖2所示。
本方案利用位置式PID算法,將溫度傳感器采樣輸入作為當前輸入,接著與設定值進行相減得偏差,再進行PID運算產(chǎn)生輸出結(jié)果,然后控制定時器的時間進而控制加熱器。由中斷定時器提供溢出頻率為64 Hz的中斷信號,配合主程序的PID運算結(jié)果來確定加熱時間,實現(xiàn)加熱器功率調(diào)節(jié),該部分子程序流程圖如圖3所示。
上位機軟件使用Delphi,由于Delphi不提供串口通信的ActiveX控件,僅有API函數(shù)可以使用,但API函數(shù)編程較為復雜,因此可將微軟公司提供的Ac-tiveX控件Microsoft Communication Control 6.0(簡稱MSComm控件)引入到Delphi開發(fā)環(huán)境中,這樣用戶便可以像使用Delphi控件一樣方便地利用MSComm控件進行計算機串口的通信編程。下面給出上位機命令的發(fā)送與數(shù)據(jù)接收的部分源程序:
3 系統(tǒng)調(diào)試
本系統(tǒng)的關鍵之處在于PID控制。對于PID系統(tǒng)來說,系統(tǒng)性能的好壞主要取決于PID控制參數(shù)的設定。由PID控制原理知;比例(P)控制能迅速反應誤差,減小穩(wěn)態(tài)誤差;比例作用的加大,會引起系統(tǒng)的不穩(wěn)定。積分(I)控制的作用,只要系統(tǒng)有偏差存在,積分作用不斷地積累,輸出控制量以消除誤差;積分作用太強會使系統(tǒng)超調(diào)加大,甚至使系統(tǒng)出現(xiàn)振蕩。微分(D)控制可以減小超調(diào)量,克服振蕩,使系統(tǒng)的穩(wěn)定性提高,同時加快系統(tǒng)的動態(tài)響應速度,減小調(diào)整時間,從而改善系統(tǒng)的動態(tài)性能。本系統(tǒng)要達到的目標就是:反應速度盡可能快,超調(diào)量盡可能小,穩(wěn)態(tài)誤差趨近于0。[!--empirenews.page--]
為能在上位機上實時顯示溫度的變化曲線,調(diào)節(jié)PID系統(tǒng)關鍵參數(shù)KP,KD使系統(tǒng)處于最佳運行狀態(tài)就顯得尤為重要。圖4給出了在4種情況下溫度隨時間變化的調(diào)試曲線。由圖可知:在KP=1.5,KD=1.0(溫升:20~40℃)時,超調(diào)量過大;在KP=1.2,KD=1.0(溫升:40~60℃)時,由于參數(shù)過小,系統(tǒng)的快速性不好,反應比較遲鈍;在KP=-1.3,KD=1.0(溫升:30~50℃)時,由于參數(shù)過小,系統(tǒng)的超調(diào)量比較大,而且預測性不好,造成溫度長時間超調(diào);在KP=1.3,KD=2.0(溫升:50~70℃)時,選擇適中,系統(tǒng)的超調(diào)量很小,而且超調(diào)維持時間很短就會恢復平衡點。此時溫度控制指標如下:靜態(tài)誤差:T≤0.5℃;分辨率:0.1℃;超調(diào)量:T≤0.5℃。這樣的情況下,系統(tǒng)運行情況可以達到最好。
4 結(jié) 語
以單片機AT89C51為中心,設計了一種溫度監(jiān)控功能系統(tǒng)。該系統(tǒng)簡潔,溫度數(shù)據(jù)采集和運算處理十分方便簡單,擴展為多路溫度監(jiān)控系統(tǒng)容易。利用單片機的串行中斷,采用Delphi編制上下位機通信程序,在上位機直接實時顯示溫度的變化曲線,便于直接觀察控制的性能。通過調(diào)試找到了使控制最優(yōu)的PID參數(shù),在此情況下,系統(tǒng)運行良好,表明了本系統(tǒng)設計的可行性和有效性。