基于DS18B20的溫控系統(tǒng)冷熱調(diào)節(jié)設(shè)計
3.1主程序模塊
主程序模塊采用循環(huán)查詢直至中斷退出,以達到溫控系統(tǒng)冷熱自動控制的目的。主程序流程如圖3所示。
3.2運算控制模塊
運算控制模塊包括數(shù)字濾波、PID算法、溫度傳感器控制3個子程序。數(shù)字濾波由限速濾波實現(xiàn),限速濾波能充分利用每一個采樣值,保證了采樣的實時性和采樣值變化的連續(xù)性。限速濾波子程序流程如圖4所示。
PID算法由積分分離PID算法實現(xiàn),采用積分分離的方法,在被控量開始監(jiān)控時取消積分作用,在溫度值接近目標(biāo)值時才產(chǎn)生積分作用,有效降低系統(tǒng)啟、停次數(shù)頻繁給系統(tǒng)帶來的振蕩。積分分離PID算法為:
式中,Y(K)為溫度的目標(biāo)設(shè)定值,C(K)為經(jīng)數(shù)字濾波后的溫度測量值,△Y為設(shè)定的最大允許偏差值。根據(jù)此算法思想可用匯編語言編程實現(xiàn)積分分離PID算法。
DS18B20控制子程序按照DS18B20的通信協(xié)議編制,包括DDS18B20初始化,DS18B20讀、寫控制子程序,分別按照相應(yīng)的規(guī)則說明進行編程實現(xiàn)。
3.3功能實現(xiàn)模塊
功能實現(xiàn)模塊包括溫度值設(shè)置、溫度顯示、固態(tài)繼電器通斷控制以及系統(tǒng)運行狀態(tài)顯示等子程序,其中在溫度顯示子程序中要完成各個位置段碼的調(diào)用、數(shù)碼管的選通以及數(shù)據(jù)總線的穩(wěn)定(一般采用延時幾ms實現(xiàn))。
4系統(tǒng)調(diào)試
系統(tǒng)調(diào)試主要進行PID參數(shù)的整定和溫度值的系統(tǒng)誤差校正。PID參數(shù)及系統(tǒng)其它參數(shù)的整定首先采用經(jīng)驗值,再逐個細(xì)調(diào),以滿足控制精度要求。根據(jù)表3的實驗數(shù)據(jù),利用MATLAB進行一維曲線擬合,校正系統(tǒng)誤差,從而得到更準(zhǔn)確的測量數(shù)據(jù)。
MATLAB擬合過程和結(jié)果如圖5所示。圖5中“O”表示(檢測值,標(biāo)準(zhǔn)值),“*”表示(檢測值,擬合值),一維曲線擬合方程為:y=0.9948x-0.3996,經(jīng)數(shù)字濾波后的采樣值再采用此方程處理便可得到更為精確的測量值。
5結(jié)束語
本文從應(yīng)用角度出發(fā),給出了溫控系統(tǒng)冷熱調(diào)節(jié)詳細(xì)的硬件和軟件設(shè)計,充分利用DS18B20單總線測溫的準(zhǔn)確性和便捷性,并使用限速濾波、積分分離PID算法、MATLAB一維曲線擬合等方法來提高系統(tǒng)的可靠性和測量值的精確性。但信號傳輸線的抗干擾、鍵盤按鍵消抖等方面還不夠完善,而且采用MATLAB進行處理的實驗數(shù)據(jù)采樣不夠充分,未考慮在測量過高或過低溫度時的溫度漂移情況,因此系統(tǒng)的設(shè)計有待進一步的深入與完善。
評論