吳可秀,鄭 琪,李忠?guī)?,許凌云*
(1.南京航空航天大學(xué) 電子信息學(xué)院,江蘇 南京 211100;2.南京航空航天大學(xué) 物理學(xué)院,江蘇 南京 211100)
溫度控制是現(xiàn)代工業(yè)、生活和科研領(lǐng)域中尤其重要的技術(shù)[1-4]。從金屬鑄造的上千攝氏度,到超導(dǎo)體的幾十開爾文,再到載人飛船載人倉的溫度,溫度控制的要求都很嚴(yán)格[5-9]。但由于實驗設(shè)備更新較慢,市面上大部分溫度控制儀器主要采用位式控制算法,使用傳統(tǒng)熱電偶溫度傳感器測溫、熱電爐加熱與電風(fēng)扇降溫實現(xiàn)控溫,測量精度低,響應(yīng)慢,穩(wěn)定性差,影響實驗進程,而重新購買實驗設(shè)備會造成大量開銷,舊實驗設(shè)備也不好處理。因而本項目基于STM32,利用模糊PID控制算法,設(shè)計出一套操作簡單,精度高,響應(yīng)速率高以及穩(wěn)定性高的智能溫度控制儀。
本項目設(shè)計的智能溫度控制儀基于STM32單片機,實現(xiàn)高穩(wěn)定性、高精度的測量溫度、顯示溫度、控制溫度的功能。本項目的設(shè)計方案主要包括三個模塊,分別是主控制器模塊、人機交互模塊以及溫度控制模塊。
智能溫度控制儀總體結(jié)構(gòu)框圖如圖1所示。
圖1 溫控儀總體結(jié)構(gòu)框圖
智能溫度控制儀的具體工作流程為:由供電模塊供電,DS18B20實時采集溫度數(shù)據(jù)并傳入STM32單片機處理,STM32單片機通過串口通訊控制智能液晶顯示屏以及語音合成模塊顯示所測溫度值,并依據(jù)液晶屏傳入的控制溫度目標(biāo)值通過程序設(shè)定的模糊PID算法將當(dāng)前所測溫度值與目標(biāo)溫度值比對,從而動態(tài)調(diào)整PWM波的輸出,以此實時控制加熱管或TEC半導(dǎo)體制冷片工作,逐步趨近目標(biāo)溫度值,最終達(dá)到高精度、高穩(wěn)定性的控溫效果。
溫控儀總體工作流程圖如圖2所示。
圖2 溫控儀總體工作流程圖
主控制器模塊采用STM32H750作為控制核心部件,主要負(fù)責(zé)溫度信號的讀取、解碼以及輸入輸出控制。STM32H750的程序設(shè)計由編程軟件Keil5完成,再通過軟件STM32CubeMX配置I/O口、串口、定時器等部件的初始化。
STM32的工作內(nèi)容主要表現(xiàn)為讀取溫度采集模塊的數(shù)字信號傳輸至溫度顯示模塊,同時根據(jù)主控制器軟件設(shè)計部分的程序指令,輸出下一步指令至溫度控制模塊,實現(xiàn)智能溫度控制儀的宏觀調(diào)控功能。本項目選擇的控制器件STM32H750核心板性價比高,設(shè)計精簡,同其他模塊有對應(yīng)串口功能和定時器PWM輸出功能,與本項目設(shè)計的智能溫度控制儀適配度高,在實際操作中功能發(fā)揮強大,節(jié)省大量精力。
人機交互模塊主要由DS18B20溫度傳感器、智能液晶顯示屏以及語音合成模塊組成。
DS18B20溫度傳感器主要負(fù)責(zé)液體環(huán)境溫度的采集。其根據(jù)通訊協(xié)議寫入指令,將檢測到的溫度模擬信號直接轉(zhuǎn)化為溫度數(shù)字信號,并采用單總線數(shù)字協(xié)議輸出至STM32單片機,檢測溫度范圍為-55 ℃~125 ℃,精度達(dá)到±0.1 ℃。
智能液晶顯示屏采用開放軟件USART HMI設(shè)計顯示頁面,通過串口與STM32交互通訊,將得到的控制溫度目標(biāo)值傳入STM32,同時將接受的溫度數(shù)字信號顯示于設(shè)定位置。
語音合成模塊通過數(shù)字協(xié)議,以串口方式與STM32通訊,定時將STM32收集的溫度數(shù)字信號通過語音形式播報輸出。
人機交互模塊的工作流程如下:DS18B20溫度傳感器與轉(zhuǎn)接板結(jié)合使用,定時接收液體環(huán)境的溫度模擬信號并轉(zhuǎn)化為溫度數(shù)字信號后,經(jīng)過STM32單片機的調(diào)控傳輸至本項目采用的智能液晶顯示屏中顯示,同時通過自定義printf函數(shù)與語音合成模塊進行串口通訊從而使所測溫度值通過語音合成模塊輸出。該設(shè)計便于實時獲取溫度數(shù)據(jù),操作簡易,穩(wěn)定性高。
溫度控制模塊由12 V液體加熱管、TEC半導(dǎo)體制冷片以及散熱電扇套件組成。
智能溫度控制儀的溫度控制模塊主要采用模糊PID算法來控制STM32PWM的輸出以實現(xiàn)溫度的動態(tài)調(diào)控。具體工作流程如下:當(dāng)確定控制溫度目標(biāo)值后,STM32通過內(nèi)部預(yù)設(shè)的模糊PID算法將溫度采集模塊獲取的溫度值比對預(yù)設(shè)溫度值,若實時溫度值低于預(yù)設(shè)溫度值,則加熱管正常工作,制冷片及電扇停止工作,液體溫度上升;反之,制冷片及電扇正常工作,加熱管停止工作,液體溫度下降。溫變速率動態(tài)變化,逐漸趨近控制溫度目標(biāo)值,精度達(dá)到±0.1 ℃。加熱管和制冷片的工作電壓均為12 V,功率較低,安全系數(shù)高,且穩(wěn)定性強。
溫度控制模塊工作流程框圖如圖3所示。
圖3 溫度控制模塊工作框圖
介于對多種控溫方式的研究,智能溫度控制儀的溫度控制模塊主要采用模糊PID算法實現(xiàn)溫度的動態(tài)調(diào)控。模糊PID算法主要結(jié)合傳統(tǒng)PID算法與模糊算法的思想,充分發(fā)揮兩種算法的優(yōu)勢,自調(diào)整被控溫度系統(tǒng)的PID參數(shù),逐步求精,最終實現(xiàn)精準(zhǔn)控溫。
其中,PID算法是集比例(Proportional,對應(yīng)參數(shù)P),積分(Integral,對應(yīng)參數(shù)I)和微分(Differential,對應(yīng)參數(shù)D)調(diào)節(jié)為一體的控制算法,其控制公式為:
(1)
控制公式中,u(t)為控制器輸出的控制量,即PWM波的占空比;e(t)為偏差信號,它等于給定量與輸出量之差,即給定溫度和DS18B20的測量結(jié)果之差;Kp為比例放大系數(shù),對應(yīng)參數(shù)P;Ti為積分時間常數(shù),對應(yīng)參數(shù)I;Td為微分時間常數(shù),對應(yīng)參數(shù)D。
而模糊(Fuzzy)算法是一種總結(jié)歸納專家或操作人員的經(jīng)驗和數(shù)據(jù),運用語言變量和模糊集合理論模擬人的思維而形成的智能化控制算法。
模糊PID算法在被控對象沒有精確的數(shù)學(xué)模型的前提下,就可根據(jù)所總結(jié)的程序算法較為理想地控制具有不穩(wěn)定性、不確定性、非線性、時變性的被控對象。對比傳統(tǒng)PID算法線性控制的本質(zhì),模糊PID算法精確度更高,誤差更小,這使得溫度控制模塊的工作效果更佳。
本項目將模糊PID算法應(yīng)用于所設(shè)計的模糊PID控制器。模糊PID控制器工作的主要步驟為模糊化處理量化數(shù)據(jù)、利用模糊規(guī)則庫進行推理決策以及解模糊化操作,主要組成部件有模糊控制器、PID控制器與被控對象。
模糊PID控制器結(jié)構(gòu)圖如圖4所示。
圖4 模糊PID控制器結(jié)構(gòu)圖
模糊PID控制器中的模糊控制器主要以溫度量化值的偏差e和偏差增量ec作為輸入,經(jīng)過模糊化處理量化數(shù)據(jù)、利用規(guī)則庫進行推理決策以及解模糊操作等模糊控制規(guī)則后,輸出于傳統(tǒng)PID控制器中進行實時修正,實現(xiàn)PID參數(shù)的調(diào)整。
構(gòu)建模糊系統(tǒng)的具體步驟如下:
首先本項目選擇NB,NM,NS,ZO,PS,PM,PB作為語言變量以確立模糊子集。并利用線性方式對輸入的實際值偏差e和偏差增量ec進行量化。所采用的線性方式量化函數(shù)關(guān)系如下:
(2)
(3)
其中Vmax-Vmin表示e的量程范圍。
綜合各類分析,本項目采取{-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6}作為偏差e和偏差增量ec模糊子集對應(yīng)的論域,并采用最常見的線性隸屬度值法計算對應(yīng)的隸屬度。
經(jīng)過對比例系數(shù)Kp、積分系數(shù)Ki和微分系數(shù)Kd三個參數(shù)在PID算法應(yīng)用中特性與影響的分析,建立這三個參數(shù)的模糊規(guī)則庫。
(4)
至此模糊系統(tǒng)構(gòu)建完成。
在MATLAB中模糊控制工具箱里,本項目根據(jù)輸入量偏差e和偏差增量ec以及輸出量,設(shè)計一個二維模糊控制器。
根據(jù)具體參數(shù)設(shè)計的模糊PID控制器結(jié)構(gòu)設(shè)定界面如圖5所示:
圖5 模糊PID控制器結(jié)構(gòu)設(shè)定界面
在MATLAB的Simulink仿真器中設(shè)計智能溫度控制儀的模糊控制器模型,將各個類型的PID控制器加入其中進行功能比對與仿真測試。所設(shè)計的模糊控制器仿真模型如圖6所示。
圖6 模糊控制器仿真模型
根據(jù)設(shè)計思路,通過軟件Keil5進行模糊PID算法程序的編輯后燒錄進STM32單片機以實現(xiàn)模糊PID算法。具體的程序代碼如附錄所示。
本項目所設(shè)計的智能溫度控制儀采用加熱管與半導(dǎo)體制冷片作為控溫裝置,不僅實現(xiàn)溫度的上調(diào),而且實現(xiàn)溫度的下調(diào)。下面對溫控儀加熱實驗與溫控儀制冷實驗分別進行測試。
實驗開始前,室溫下測得自來水溫度值約為20.0 ℃,通過液晶屏設(shè)定智能溫度控制系統(tǒng)目標(biāo)溫度值為30 ℃。
采用傳統(tǒng)PID算法控制自來水加熱過程中,STM32單片機在設(shè)定的模糊控制器中依據(jù)偏差e和偏差增量ec對控溫參數(shù)自調(diào)整,升溫速率逐漸變慢,逐步趨近目標(biāo)溫度值。到達(dá)目標(biāo)溫度值附近,STM32依據(jù)實時溫度精準(zhǔn)控制加熱管工作,最后于目標(biāo)溫度值附近微小波動直至穩(wěn)定,總體溫度變化平穩(wěn)。
采用傳統(tǒng)PID算法控制自來水加熱過程中,PID參數(shù)自設(shè)定后不變,升溫速率變化稍有變慢。到達(dá)目標(biāo)溫度值時,加熱管暫停工作,但會出現(xiàn)溫度超調(diào)較嚴(yán)重的現(xiàn)象。總體溫度變化抖動較大,控溫效果不理想。
溫控儀加熱實驗溫度變化曲線如圖7所示。
圖7 溫控儀加熱實驗溫度變化曲線
實驗開始前,室溫下測得自來水溫度值約為20.0 ℃,通過液晶屏設(shè)定智能溫度控制系統(tǒng)目標(biāo)溫度值為10 ℃。
采用模糊PID算法,利用半導(dǎo)體制冷片TEC控制自來水制冷。工作過程中,由STM32單片機控制,所設(shè)定的模糊控制器依據(jù)偏差e和偏差增量ec對PID參數(shù)自調(diào)整,緩慢趨近目標(biāo)溫度值。受制冷片工作功率以及環(huán)境影響,制冷時間較長。自來水溫度于目標(biāo)溫度值附近緩慢波動直至穩(wěn)定,總體變化趨勢平穩(wěn)。
采用傳統(tǒng)PID算法控制自來水制冷過程中,PID參數(shù)自設(shè)定后不變,制冷速率變化稍有變慢。趨近目標(biāo)溫度值時,由于實際值和預(yù)設(shè)值偏差較小、PID參數(shù)固定、半導(dǎo)體制冷片功率小、實際環(huán)境較高等因素的影響,最終溫度不能降低至預(yù)設(shè)溫度,而在目標(biāo)溫度示值上波動。制冷效果不理想。
溫控儀制冷實驗制冷曲線趨勢圖如圖8所示。
時間/s
相較于現(xiàn)有的實驗室溫度控制儀,本項目設(shè)計的智能溫度控制儀分別在測溫、加熱、制冷、控溫幾個功能板塊上采用了更加先進的材料組件,實現(xiàn)對現(xiàn)有溫控儀器的改良??販鼐雀?,穩(wěn)定性更強,噪音更小,符合節(jié)能、環(huán)保的項目設(shè)計要求,可應(yīng)用于液體表面張力實驗、導(dǎo)熱系數(shù)測定實驗以及粘滯系數(shù)實驗中,提高物理實驗儀器的工作效率,減小實驗誤差。