摘 要: 設(shè)計一種基于STM32單片機的高精度溫度控制實驗系統(tǒng),調(diào)溫范圍為15~130 ℃。系統(tǒng)包括測溫、控制、人機交互和加熱器等模塊,使用DS18B20溫度傳感器測量溫度,采用搭載ARM Cortex?M內(nèi)核的STM32F429單片機作為控制核心,人機交互部分采用TFT顯示屏實時顯示溫度,通過PWM脈沖寬度調(diào)制波驅(qū)動加熱器。該系統(tǒng)可以實現(xiàn)溫度的測量變送、控制、數(shù)據(jù)存儲和分析功能。采用自適應(yīng)性強的模糊PID算法,實現(xiàn)三個控制參數(shù)的在線修正。不需要建立被控對象精確模型就能保證加熱器功率的實時控制要求,實現(xiàn)較快和較穩(wěn)的動態(tài)性能。實驗測試結(jié)果證明了該方法的實用性和有效性。
關(guān)鍵詞: 溫度控制; 溫度實時顯示; 脈沖寬度調(diào)制; 模糊PID
中圖分類號: TN876?34 文獻(xiàn)標(biāo)識碼: A 文章編號: 1004?373X(2016)12?0037?04
Abstract: A high?precision temperature control experimental system based on microcontroller STM32 was designed, whose temperature range is from 15 ℃ to 130 ℃. The system contains four modules of temperature measurement, control, man?machine interaction and heater. DS18B20 temperature sensor is used to detect temperature. single?chip microcomputer STM32F429 with ARM Cortex?M kernel is taken as the key control unit. TFT screen is adopted in the human?computer interaction part to realize temperature real?time display. The heater is driven by pulse width modulation (PWM) wave. The system can implement the functions of transmission, control, data storage and analysis of detected temperature. The adaptive fuzzy PID algorithm is adopted to realize the on?line correction of three control parameters. It is unnecessary to establish accurate model for the controlled object to guarantee the power control requirements of the heater, realize the fast?response and stable dynamic performance. The experimental results has proved the practicability and validity of the method.
Keywords: temperature control; real?time display of temperature; PWM; fuzzy PID
自控原理實驗中溫度控制是較復(fù)雜的非線性問題,實驗教學(xué)課堂效率低,過程緩慢,誤差大,較難滿足教學(xué)需求[1?2]。如果能夠設(shè)計合適的溫度控制模塊,把溫度控制在設(shè)定偏差允許范圍內(nèi),滿足實驗中對溫度控制的超調(diào)小、速度快等要求,那么將會提高實驗教學(xué)的效率和增強學(xué)生學(xué)習(xí)控制理論的興趣。另外,在現(xiàn)代實驗教學(xué)過程中,信息的處理和算法設(shè)計的融合更加方便,給設(shè)計具有溫度測量、控制和通信能力的開放式溫度控制模塊提供了充分條件。
基于這種應(yīng)用背景和設(shè)計理念,提出了一種廉價的基于STM32的溫度控制實驗系統(tǒng),可以實現(xiàn)溫度的測量變送、控制、數(shù)據(jù)存儲和分析功能。
1 系統(tǒng)整體設(shè)計
自控原理實驗中的溫度控制系統(tǒng)主要由四個部分組成:溫度檢測模塊、人機交互模塊、控制器和PWM驅(qū)動加熱模塊。系統(tǒng)整體結(jié)構(gòu)如圖1所示。
溫度檢測模塊以DS18B20溫度傳感器為核心,將檢測到的溫度信號傳送給STM32進(jìn)行溫度的實時檢測,同時輸出給單片機溫度信號及變化規(guī)律,指導(dǎo)控制器控制信號的強度。要想準(zhǔn)確控制某個量變化,需帶有反饋的閉環(huán)控制,將被控制量穩(wěn)定在設(shè)定值的偏差范圍內(nèi),通過溫度測量模塊來實現(xiàn)反饋。溫度檢測模塊的測量誤差必須盡可能的減小。
人機交互模塊由2.4英寸TFT彩色顯示屏和兩個物理按鍵組成??刂破鬟x用了搭載ARM Cortex?M內(nèi)核的STM32F429單片機,利用模糊控制原理設(shè)計控制算法。應(yīng)用PWM驅(qū)動電路實現(xiàn)直流電壓調(diào)制從而驅(qū)動被控對象。
2 系統(tǒng)各模塊設(shè)計
2.1 主控模塊設(shè)計
選擇STM32作為主控芯片。由于STM32F429型單片機具有的低功耗、高速度以及再編譯簡單有效、對彩色顯示屏的驅(qū)動應(yīng)用更加方便直接等,采用STM32F429型單片機作為控制微處理器。STM32單片機基于ARM Cortex?M內(nèi)核為嵌入式應(yīng)用,STM32單片機新產(chǎn)品外設(shè)共有12條DMA通道,還有一個CRC計算單元,支持96 b惟一標(biāo)識碼,其供電電壓在2.0~3.6 V時也可以保證工作效率,運行程序時以72兆次/s的速度從只讀程序存儲器中讀取命令,只需要27 mA的電流就可以驅(qū)動[3?4]。另外提供了4種極低耗電量的節(jié)能模式,可以把電流降低到2 μA,無論哪種模式,STM32F429都可以完成快速啟動,復(fù)位電路的設(shè)計可以把由振蕩器生成的80 MHz的數(shù)字信號用于快速啟動。
2.2 溫度測量模塊設(shè)計
溫度傳感器選DS18B20,其直接輸出數(shù)字信號,不需要模/數(shù)轉(zhuǎn)換可直接應(yīng)用,使用方便且精度高,溫度量程為-55.0~125.0 ℃,-10~85 ℃范圍內(nèi)精度為±0.2 ℃。DS18B20型溫度傳感器的溫度測量原理如圖2所示。
對溫度靈敏度較小的晶體振蕩器在發(fā)生溫度變化時的振蕩頻率非常穩(wěn)定,幾乎沒有變化,因此它可以被用來提供振蕩周期不變的計數(shù)器1的驅(qū)動時鐘信號。對溫度靈敏度較大的晶體振蕩器在發(fā)生溫度變化時的振蕩頻率有很大波動,它被用來提供作為溫度傳感器接收器的計數(shù)器2的驅(qū)動信號。當(dāng)溫度傳感器被放在-55 ℃的環(huán)境中時,計數(shù)器1的計數(shù)速度對應(yīng)了一個預(yù)設(shè)的數(shù)值。對溫度靈敏度較小的晶體振蕩器的每一個發(fā)出的信號作用在計數(shù)器1上都會使它進(jìn)行一次自減1的操作,如果計數(shù)器1中存儲的數(shù)值最終變成了0,存放溫度值的存儲器就進(jìn)行一次自加1操作。然后計數(shù)器1內(nèi)將重新寫入設(shè)置的對應(yīng)-55 ℃的數(shù)值。循環(huán)進(jìn)行直到計數(shù)器2中存儲的值減小到0。而存放溫度值的存儲器中的值就是此時的溫度值。斜率累加器作為對測量過程中的曲線進(jìn)行線性化校正,方式是通過對計數(shù)器1的基礎(chǔ)數(shù)值進(jìn)行修正實現(xiàn)的。實驗中通過對STM32單片機的編程,運用卡爾曼濾波的方式修正測溫數(shù)值,理論測溫精度可達(dá)±0.1 ℃。DS18B20溫度傳感器使用方便,但如果想要讓DS18B20溫度傳感器的測量精確程度達(dá)到比較理想的水平,I/O端口一定要保證在溫度傳感器工作時,被提供足夠多的能量。所以需要通過一個1.7 kΩ的電阻與STM32F429單片機的VE端相連,保證工作時有穩(wěn)定的大于1 mA的電流輸入。溫度傳感器電路如圖3所示。
中間數(shù)據(jù)端口連接在單片機控制器的B10端口,以串行方式輸入給單片機12 b的溫度信號。DS18B20的溫度數(shù)據(jù)如表1所示。
表1 DS18B20的溫度表
這是數(shù)字轉(zhuǎn)化后的數(shù)據(jù),存儲在兩個8 b的RAM中,二進(jìn)制中的前面5位是符號位,如果測得的溫度大于0, 這5位為0,只要將測到的數(shù)值乘以0.062 5即可得到實際溫度;如果溫度小于0,這5位為1,測到的數(shù)值需要取反加1再乘以0.062 5即可得到實際溫度。例如125 ℃的數(shù)字輸出為07D0H,-25.062 5 ℃的數(shù)字輸出為FE6FH。正、負(fù)溫度要把數(shù)值由十六進(jìn)制轉(zhuǎn)為十進(jìn)制。例如輸入的數(shù)據(jù)是00FA,則代表著溫度為(15×16+10)×0.062 5=15.62 ℃,例如輸入的數(shù)據(jù)是0032H,則代表著溫度為(3×16+2)×(-0.062 5)=-3.125 ℃。
2.3 人機交互模塊設(shè)計
本模塊應(yīng)用2.4英寸TFT顯示屏進(jìn)行溫度數(shù)值的實時顯示、設(shè)定值參考、PWM占空比顯示、KP隸屬度顯示等功能。配合按鍵一同完成溫度設(shè)置與控制狀態(tài)顯示的功能實現(xiàn)。采用單片機開發(fā)版中自帶的彩屏,并不需要外加任何電路設(shè)計就可以直接編程使用[5]。TFT彩色顯示屏的所有數(shù)據(jù)傳送和獲取過程都由其內(nèi)部的運算器主導(dǎo),例如在左上角顯示一個點,這個點的坐標(biāo)就是X0,Y0。TFT彩色顯示屏的控制器,需要首先通過18位數(shù)據(jù)接口發(fā)送x坐標(biāo)給LCD執(zhí)行元件,再發(fā)送y坐標(biāo)給LCD,最后發(fā)送18位數(shù)據(jù)組成顏色代碼給CLD。這樣,LCD屏幕上就會在左上角第一個點顯示出來相應(yīng)的顏色。無論是一幅圖片還是一個視頻都是按照這個方式來顯示的。常規(guī)的小型TFT顯示屏有一個18位數(shù)據(jù)接口,18根線用來設(shè)定要顯示的點的x,y坐標(biāo)、以及顯示哪種顏色、同時還可以用來設(shè)定LCD的功能狀態(tài)。
2.4 加熱模塊設(shè)計
加熱模塊由PWM波驅(qū)動一塊加熱片進(jìn)行溫度控制,利用STM32F429內(nèi)部PWM脈寬調(diào)制模塊驅(qū)動加熱片控制溫度變化。當(dāng)PWM的占空比為100%時,經(jīng)過PWM驅(qū)動模塊輸出的直流電壓為12 V,如果占空比為50%,那么輸出電壓就是6 V直流電壓。
電阻絲發(fā)熱量過大,需要的驅(qū)動電流常常高達(dá)10 A以上,如不加裝電氣隔離,稍不注意就會損壞控制器。而且電阻絲的發(fā)熱難以控制,由于加熱時電阻絲存在很強的非線性特性,故采用XH?RJ101012的陶瓷加熱片作為被控對象。采用L6203橋式整流驅(qū)動器把輸入的模擬PWM脈寬調(diào)制信號整流成穩(wěn)定的直流電壓信號輸出。實驗中為DMOS全橋直流驅(qū)動器,OUT1和OUT2之間接陶瓷加熱片,ENABLE=1時,將PWM信號給IN1,PWM信號反向后給IN2,這樣調(diào)整PWM即可改變加熱片的加熱功率。加熱片額定電壓為10 V,最大電壓為38 V,額定功率為5 W,電阻為20 Ω。PWM驅(qū)動模塊原理如圖4所示。
3 溫度控制器設(shè)計
溫度控制是一個具有時變性和滯后性的復(fù)雜系統(tǒng),而且很難建立它的精確數(shù)學(xué)模型,實驗?zāi)K選用模糊自適應(yīng)PID控制算法,將傳統(tǒng)PID控制策略與模糊控制理論相結(jié)合,既不需要依賴精確的系統(tǒng)模型,又能顯著提高調(diào)節(jié)精度和速率。溫度控制系統(tǒng)設(shè)計的核心,就是對其中起到控制器作用的模糊PID的模糊邏輯與模糊規(guī)則進(jìn)行設(shè)置和調(diào)試。模糊控制器的結(jié)構(gòu)主要由模糊化處理模塊、模糊控制規(guī)則模塊、模糊推理機制和解模糊模塊組成。在PID調(diào)節(jié)中,靜態(tài)誤差的大小由比例系數(shù)決定,比例系數(shù)KP越大,靜態(tài)誤差越小。但KP過大時,會使振蕩次數(shù)增加,調(diào)節(jié)時間延長,穩(wěn)定性變差,比例系數(shù)調(diào)節(jié)要以系統(tǒng)穩(wěn)定性為界限;引入積分環(huán)節(jié)改善低頻特性,當(dāng)閉環(huán)系統(tǒng)穩(wěn)定時,加入會提升系統(tǒng)的開環(huán)型別;微分環(huán)節(jié)影響動態(tài)響應(yīng)速度和穩(wěn)定性[6]。故通過預(yù)測出的反映偏差信號變化率的信號縮短調(diào)節(jié)時間且加速系統(tǒng)的動態(tài)速度,顯著改善了控制系統(tǒng)的穩(wěn)定性能和響應(yīng)速度。找出PID三個控制參數(shù)KP,KI,KD與輸入量e,ec之間的模糊關(guān)系,實現(xiàn)三個控制參數(shù)的在線修正。解模糊方式是最小面積重心法,利用模糊變量和模糊規(guī)則表,經(jīng)由模糊推理策略得出輸出控制量KP,KI,KD,控制信號的輸出量,得到的PWM占空比。模糊邏輯使用誤差和誤差變化率作為輸入變量,同時對其進(jìn)行實時監(jiān)控保證被控對象具有良好性能。實驗中自適應(yīng)模糊控制過程如圖5所示。
4 實驗結(jié)果及分析
控制模塊中只要適當(dāng)改變溫控模塊軟件里面的控制參數(shù)或通過上位機設(shè)置,系統(tǒng)就能發(fā)揮很好的控制功能。實驗實物調(diào)試如圖6所示。
彩屏顯示為操作者提供了實時溫度顯示以及定時溫度和PWM波占空比的參考,此外,為了方便調(diào)試,在屏幕下方也顯示了Ke在各個模糊子集下的隸屬度函數(shù)值。界面顯示如圖7所示,擾動作用下系統(tǒng)穩(wěn)定性分析如圖8所示。
Matlab中可對各種控制算法進(jìn)行編程擴展溫度控制實驗[7?8],利用Matlab對系統(tǒng)進(jìn)行數(shù)據(jù)分析。當(dāng)被控對象的數(shù)學(xué)模型發(fā)生變化時,把模型參數(shù)增加20%,在圖8中描繪出被控對象的溫度變化曲線。
實驗表明該系統(tǒng)具有很小的超調(diào)量,穩(wěn)態(tài)誤差較小。實驗?zāi)K擁有較高的精度、良好的魯棒性,而且可以有效地補償參數(shù)變化帶來的影響。
5 結(jié) 論
運用自適應(yīng)性強的模糊PID算法,經(jīng)過對模糊規(guī)則的微調(diào),已經(jīng)達(dá)到以下控制效果。溫度可調(diào)范圍在25~130 ℃內(nèi)的任何溫度,為調(diào)試方便只提供整數(shù)位的演示。系統(tǒng)達(dá)到穩(wěn)態(tài)時控制精度在±0.1 ℃之內(nèi);設(shè)定升溫差值不超過70 ℃時,上升時間不超過30 s,超調(diào)量不超過0.6 ℃。溫控模塊只需要稍作改動即可應(yīng)用于其他更多領(lǐng)域,具有一定開放性及實用價值。
參考文獻(xiàn)
[1] 祁鯤,厲虹.基于PLC的溫度控制仿真試驗平臺設(shè)計[J].電氣技術(shù),2013,14(9):30?33.
[2] 劉增環(huán),王利珍,何廣祥.加熱爐爐溫 PLC 模糊控制系統(tǒng)的設(shè)計[J].自動化與儀表,2011,26(10):27?30.
[3] 余新栓.基于Matlab的STM32軟件快速開發(fā)方法[J].單片機與嵌入式系統(tǒng)應(yīng)用,2011,11(10):46?48.
[4] 盧秀和,李建波.基于STM32的四旋翼姿態(tài)控制系統(tǒng)[J].計算機測量與控制,2014,22(3):761?763.
[5] 夏宇,王軍政,徐山峰.基于ARM9的嵌入式控制系統(tǒng)設(shè)計與實現(xiàn)[J].微計算機信息,2008,24(22):1?3.
[6] 劉華.基于ARM?Linux的嵌入式開發(fā)關(guān)鍵技術(shù)的研究與應(yīng)用[D].北京:北京工業(yè)大學(xué), 2007.
[7] 陳小敏,朱秋明,徐大專,等.基于Matlab的模擬通信系統(tǒng)實驗設(shè)計與仿真[J].實驗科學(xué)與技術(shù),2014,12(6):1?3.
[8] 趙莉華,張亞超,金陽,等.基于LabVIEW和Matlab虛擬實驗室的實現(xiàn)[J].實驗室研究與探索,2014,33(4):62?64.