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