王明濤,周 驊
(貴州大學大數(shù)據(jù)與信息工程學院,貴陽 550025)
在工業(yè)生產和日常生活中,對溫控系統(tǒng)的要求主要是保證溫度在一定范圍內可調、穩(wěn)定,對快速性要求不高[1]。但在實驗室和計量校準應用場合中,對溫控系統(tǒng)的收斂速度和精度都有較高要求。對此已有眾多研究者提出各自方案。例如:李天旭[2]等人采用傳統(tǒng)PID算法控制水浴溫度,控制精度僅為±0.1℃,且響應速度不快;梁永忠[3]采用傳統(tǒng)PID作為恒溫控制器的控制算法,只能實現(xiàn)小于2℃的線性誤差,證明了傳統(tǒng)PID算法很難保證響應速度和控制精度;文思奇[4]等人采用遺傳算法整定PID參數(shù),但遺傳算法的“變異”過程具有一定隨機性,效率不及利用模型信息優(yōu)化PID;李勇[5]采用BP神經網絡對PID參數(shù)進行優(yōu)化,但是BP神經網絡依賴初始權值的設定,且有可能陷入局部最優(yōu);宋春光[6]采用模糊控制器對PID的參數(shù)分階段優(yōu)化,提升了溫控系統(tǒng)的精度。
恒溫控制系統(tǒng)存在一定時變性,導致隨機性較強的溫度跳變[7],另一方面,傳統(tǒng)的恒溫控制系統(tǒng)存在控制精度低、響應速度慢等缺點[8]。這都是現(xiàn)有研究中有待解決的問題。
綜合研究簡易溫度模型函數(shù)的建立、PID的改進策略、溫度模型函數(shù)與PID結合算法,在此嘗試設計一款適用于便攜式設備的溫控系統(tǒng)。其控制算法由簡易溫度模型函數(shù)與改進PID相結合而成。新設計將比傳統(tǒng)的PID溫度控制算法能以更快的速度逼近設定溫度,同時當溫度達到設定溫度的微調區(qū)間能立即得到設定溫度對應PID輸出的估算值。利用這一特性,再結合PID改進算法,就能在保證控制精度和極小超調量的同時,大大提高響應速度。系統(tǒng)總體方案設計原理圖如圖1所示。
系統(tǒng)由觸控屏幕、PC機連接端、溫度傳感器、PWM輸出控制端、H橋轉換模塊、半導體制冷(熱)片、保溫箱組成。系統(tǒng)工作時,屏幕收到用戶命令后會將數(shù)據(jù)幀通過USART3發(fā)送到STM32F407主控制器。溫度傳感器精度為0.01℃,實時監(jiān)控溫箱內數(shù)據(jù),每隔200 ms通過USART6發(fā)送一次溫度數(shù)據(jù)幀到主控制器中,同時主控制器會將溫度傳感器返回來的數(shù)據(jù)打包整理實時發(fā)送到用戶PC機上。在溫度控制部分,采用STM32自帶的4路PWM外設輸出根據(jù)算法計算的方波。該PWM方波直接作用到H橋電壓轉換模塊,由H橋將不同占空比PWM信號轉換成相應的電壓信號,作用到兩塊半導體制冷(熱)片,通過改變4路PWM的方向來達到半導體片制冷和制熱的切換。至此,可形成一個閉環(huán)系統(tǒng),達到精確控制溫度的目的。
系統(tǒng)中的精確控制采用增量型PID算法。該算法由比例、積分、微分環(huán)節(jié)構成。以s(t)表示設定值,f(t)表示實際值,以e(t)表示設定值與實際值之間的偏差:e(t)=s(t)-f(t)。以u(t)作為PID運算得出的輸出結果,有如下運算關系:
其中Kp為比例系數(shù),Ti為積分時間常量,Td為微分時間常量。在計算機上實現(xiàn)PID算法通常需要用到離散化的思想,將以上PID函數(shù)作離散處理并簡化得到以下關系式:
其中,Ki為積分系數(shù),Kd為微分系數(shù)。根據(jù)上式便可得到增量PID的運算公式如下:
公式運算結果即為PID運算一次得到的增(減)量。
改進后的PID系統(tǒng)架構如圖2所示,該系統(tǒng)使用改進增量PID作為主要的控制算法。由于增量PID的輸出為增(減)量,所以實際控制時可以根據(jù)情況調整輸出。
圖2 改進的PID系統(tǒng)框圖
系統(tǒng)在設計程序時增加一個比例、積分、微分選擇器,該選擇器根據(jù)溫度的變化情況和設定的調整策略控制比例、積分、微分是否參與運算。具體調整策略為:
當溫度到達系統(tǒng)設定的微調區(qū)間時,PID參與運算并控制輸出,實時檢測箱內溫度的變化速度;當溫度上升(下降)速度超過閾值時積分分離,微分項和比例項參與運算;當溫度上升(下降)速度小于等于0時比例項、微分項分離,積分項單獨作用,并且此時積分項會根據(jù)實際溫度調整大小,該值與設定溫度與實際溫度之差成反比,其他情況三個參數(shù)都參與運算。
當溫度超調量超過0.01℃時比例項不參與運算,只有積分項和微分項起作用,這樣更有利于溫度快速回歸到設定值精度范圍內。
系統(tǒng)的控制算法中需要用到高強度制熱、高強度制冷、反向剎車、模型預估輸出函數(shù)、PID輸出補償、改進PID算法精確調整。其中反向剎車、模型預估輸出函數(shù)和PID輸出補償需要根據(jù)溫箱模型得到其隨溫度變化的函數(shù)。
反向制冷時間函數(shù)的建立流程圖如圖3所示。以此方法得到系統(tǒng)不同溫差對應的反向時間數(shù)據(jù)如表1所示。
圖3 反向制冷時間函數(shù)流程
表1 不同溫差對應的反向時間
在計算中,溫差x=設定溫度值/10,利用MATLAB參數(shù)擬合函數(shù)擬合得出反向時間,即:
預估輸出函數(shù)可以直接計算出設定溫度對應的估算輸出值,能大大提高PID調整的響應速度,模型預估輸出函數(shù)的建立流程可概括為:
首先,設定H橋的輸出為幾個特殊值,等待溫度穩(wěn)定;
然后,將得到的幾組對應關系輸入MATLAB擬合函數(shù);
最后,得到擬合的函數(shù)式。
用以上方法得到該系統(tǒng)制熱時不同溫差對應的輸出電壓如表2。
表2 制熱時不同溫差對應輸出電壓
根據(jù)以上數(shù)據(jù)關系計算出制熱預估函數(shù),即:溫差k=(設定溫度溫度-箱內環(huán)境溫度值)/10,得到制熱預估函數(shù)y=2.08k。
系統(tǒng)制冷時不同溫差對應的輸出電壓如表3。
表3 制冷時不同溫差對應輸出電壓
此處,溫差z=(箱體環(huán)境溫度-設定溫度值)/10,同理可得制冷預估函數(shù)y=5.9z。
軟件程序采用KeilμVision5開發(fā)平臺設計,包括STM32F407外設初始化、Freertos配置初始化、PWM占空比運算、PID階段性參數(shù)調整、中斷處理等。系統(tǒng)進入主函數(shù)后,開始等待用戶輸入設定溫度值,收到設定溫度數(shù)據(jù)后,即開始控制溫度。
制熱軟件流程如圖4所示。當用戶輸入設定溫度值,減去當前箱體溫度,溫差大于4℃時運行強制熱,即PWM輸出100%占空比進行制熱。當設定溫度與箱內實際溫度相差小于3℃時,為防止半導體制冷(熱)片的余熱過高導致超調,需要反向制冷。反向制冷時間根據(jù)剎車函數(shù)即公式(4)計算。定時完畢即根據(jù)制熱預估函數(shù)進行制熱,保持PWM輸出。此時輸出的電壓值y=2.08x,等待以下三個微調條件:箱內實際溫度與設定值之差的絕對值小于0.2℃;當前溫度上升速度小于0.04℃/min;預估PWM輸出時間超過6分鐘。只要滿足其中一個條件,則進行以下操作:
圖4 制熱軟件流程圖
步驟一、立即運行一次PID算法得到PID輸出值,將這個值根據(jù)H橋PWM占空比關系得到對應的輸出電壓V1。
步驟二、根據(jù)模型函數(shù)計算補償值C1=2.08x-V1。
步驟三、在隨后的PID運算中都加上補償值C1。PID會自動調整輸出電壓使溫箱內溫度不斷逼近設定值。當實際溫度與設定溫度之差的絕對值大于0.05℃且小于0.5℃時,對PID參數(shù)作如下調整:
當溫度上升速度超過0.03℃/min時PID積分項分離;
當溫度上升速度小于等于0℃/min時PID的比例和微分項分離;
其他情況,PID的比例、積分、微分都參與運算。
當輸入設定溫度與實際溫度之差小于4℃且大于0℃時,直接根據(jù)預估輸出函數(shù)進行制熱;當實際溫度與設定溫度之差的絕對值大于0.05℃且小于0.5℃時,同樣對PID進行調整。
制冷軟件流程如圖5所示。當用戶輸入溫度值低于當前溫箱溫度時需要制冷;當輸入設定溫度與當前實際溫度之差小于-2℃,PWM輸出100%占空比,開始制冷,保持輸出。直到箱內溫度與設定值溫差小于-1℃時,根據(jù)制冷預估函數(shù)y=5.9x輸出對應占空比的PWM方波,開始制冷,保持輸出。此時等待以下三個微調條件:箱內實際溫度與設定值之差絕對值小于0.7℃;當前溫度下降速度小于0.06℃/min、預估PWM輸出時間超過8分鐘。只要滿足其中一個條件則進行以下操作:
圖5 制冷軟件流程圖
步驟1:立即運行一次PID算法,得到PID輸出值,將這個值根據(jù)H橋PWM占空比關系得到對應的輸出電壓V2。
步驟2:根據(jù)模型函數(shù)計算補償值C2=5.9x-V2。步驟3:在隨后的PID運算中都加上補償值C2。PID會自動調整輸出電壓使溫箱內溫度不斷逼近設定值,當實際溫度與設定溫度之差的絕對值大于0.05℃且小于0.5℃時對PID參數(shù)進行如下調整:
當溫度下降速度超過0.03℃/min時,PID的比例和微分項分離;
當溫度下降速度小于等于0℃/min時,PID的比例和微分項分離;
其他情況,PID的比例、積分、微分都參與運算。
將制熱和制冷兩種情況分別與傳統(tǒng)單一PID控制算法進行比較,控制兩種算法的PID參數(shù)一致,分別從相同的起始溫度控制到相同的終止溫度,將數(shù)據(jù)從串口導出到PC,利用Origin 2018軟件繪制數(shù)據(jù)曲線。
制熱對比曲線如圖6所示。采用傳統(tǒng)增量PID控制算法的溫度曲線如圖中曲線A所示,采用本系統(tǒng)的溫箱模型函數(shù)與自整定PID結合算法的溫度曲線如圖中曲線B所示。
圖6 制熱曲線對比圖
從圖上可明顯看出,本算法用12分鐘將溫度調整到35℃,而只采用增量PID控制算法則要42分鐘才能將溫度調整到35℃,速度提升將近72%。同時,傳統(tǒng)PID控制算法的超調量高達1.3℃,而本系統(tǒng)的控制算法響應曲線是一個較平穩(wěn)的上升曲線。
制冷對比曲線如圖7所示。采用單一增量PID控制算法的制冷溫度曲線如圖中曲線A所示,采用本系統(tǒng)的模型函數(shù)與自整定PID結合算法的溫度曲線如圖中曲線B所示。
圖7 制冷曲線對比圖
從圖中明顯看出,本算法只用23分鐘,即可將溫度從21℃平穩(wěn)調整到15℃,而若采用單一PID算法,需要76分鐘才能實現(xiàn)這樣的溫度變化。新算法速度提升達69.7%,而且它的超調量保持在0.05℃范圍內,比普通PID的超調量0.8℃理想許多。
所設計的適用于便攜式設備的溫度控制系統(tǒng),在嘗試采用簡易模型函數(shù)與改進PID相結合的算法之下,按預期實現(xiàn)了溫箱內溫度5℃到50℃的連續(xù)可調。相較于傳統(tǒng)的PID算法,該法的響應速度更快、控制精度更高、魯棒性好、超調量極小,體現(xiàn)出多方面的優(yōu)勢。按該設計已經制造出實物并投入實際使用,獲得了良好的實用效果。