王 桔 洪 梅
(長(zhǎng)春大學(xué) 電子信息工程學(xué)院,長(zhǎng)春130022)
恒溫箱是航空、汽車、家電、科研等領(lǐng)域必備的測(cè)試設(shè)備,用于測(cè)試和確定電工、電子及其他產(chǎn)品及材料進(jìn)行高溫試驗(yàn)的溫度環(huán)境變化后的參數(shù)及性能,是用來(lái)在一定的溫度下飼養(yǎng)或培養(yǎng)生物或生物的一部分(細(xì)胞等)的箱型器具[1]。適合電子、電器、通訊、儀表、車輛、塑膠制品、金屬、食品、化學(xué)、建材、醫(yī)療、航天等制品檢測(cè)質(zhì)量之用。
在實(shí)驗(yàn)室中,特別是生物實(shí)驗(yàn)室,我們?yōu)榱说玫礁訙?zhǔn)確的實(shí)驗(yàn)數(shù)據(jù),對(duì)于恒溫實(shí)驗(yàn)環(huán)境要求嚴(yán)格。所以針對(duì)實(shí)驗(yàn)室來(lái)說(shuō),恒溫箱的作用顯得相當(dāng)重要,對(duì)于我們實(shí)驗(yàn)室的研究過(guò)程以及研究結(jié)果將產(chǎn)生很大的影響。同時(shí)更加準(zhǔn)確的研究結(jié)果對(duì)于我們由此產(chǎn)生的試驗(yàn)成果的實(shí)際運(yùn)用產(chǎn)生積極的作用。
在工業(yè)生產(chǎn)中,恒溫箱的應(yīng)用是廣泛的,工廠車間的產(chǎn)品以及由此相關(guān)的工業(yè)生產(chǎn)都是基于恒溫環(huán)境的后續(xù)發(fā)展。所以恒溫箱的作用在工業(yè)中更是處于舉足輕重的地位。同時(shí)在工業(yè)生產(chǎn)過(guò)程中我們對(duì)于恒溫箱的要求也相對(duì)更加嚴(yán)格,比如質(zhì)量的可靠性、恒溫箱的維護(hù)管理費(fèi)用、恒溫箱的本身價(jià)位等,
在醫(yī)藥方面,醫(yī)用恒溫箱主要用于藥品,試劑的儲(chǔ)存,運(yùn)輸;疫苗,血液的冷藏保溫,透析液的加溫,生理鹽水的加溫等。
本系統(tǒng)包括STM32F103 核心板、PT1000 溫度傳感器、放大電路、4×4 矩陣鍵盤、聲光報(bào)警電路、液晶顯示屏、驅(qū)動(dòng)電路、繼電器控制電路、半導(dǎo)體制冷片及PTC 加熱片,如圖1 所示。
PT1000 溫度傳感器輸出電壓經(jīng)放大電路放大后送到STM32F103 核心板的模數(shù)轉(zhuǎn)換接口,轉(zhuǎn)化成數(shù)字量后經(jīng)STM32F103 單片機(jī)處理得到相應(yīng)的溫度信息。在某一時(shí)刻箱內(nèi)如果低于設(shè)置溫度則通過(guò)繼電器控制電路使PTC 加熱片開(kāi)始加熱,經(jīng)H 橋驅(qū)動(dòng)電路正向驅(qū)動(dòng)制冷片使半導(dǎo)體制冷片開(kāi)始加熱箱體。當(dāng)箱內(nèi)溫度高于設(shè)置溫度時(shí),STM32F103 單片機(jī)發(fā)出控制指令,經(jīng)驅(qū)動(dòng)電路反向驅(qū)動(dòng)制冷片使半導(dǎo)體制冷片開(kāi)始制冷。在液晶顯示屏上顯示箱內(nèi)實(shí)際溫度和設(shè)置溫度。通過(guò)4×4 矩陣鍵盤輸入設(shè)置溫度,也可以在觸摸屏上直接輸入設(shè)置溫度。
系統(tǒng)采用PID 算法控制單片機(jī)輸出PWM 的占空比從而控制半導(dǎo)體制冷片的功率。在某一時(shí)刻箱內(nèi)溫度如果低于設(shè)置溫度則PTC 加熱片開(kāi)始加熱,經(jīng)H 橋驅(qū)動(dòng)電路正向驅(qū)動(dòng)制冷片使半導(dǎo)體制冷片開(kāi)始加熱箱體。當(dāng)箱內(nèi)溫度高于設(shè)置溫度時(shí),STM32F103 單片機(jī)發(fā)出控制指令,經(jīng)驅(qū)動(dòng)電路反向驅(qū)動(dòng)制冷片使半導(dǎo)體制冷片開(kāi)始制冷。
圖1 系統(tǒng)設(shè)計(jì)方案
PID 是比例控制(P)、積分控制(I)和微分控制(D)的簡(jiǎn)稱。在過(guò)程控制中,按偏差的比例(P)、積分(I)和微分(D)進(jìn)行控制的PID 控制器是應(yīng)用最廣泛的一種自動(dòng)控制器。PID 調(diào)節(jié)規(guī)律[2]是連續(xù)系統(tǒng)動(dòng)態(tài)品質(zhì)校正的一種有效方法,它的參數(shù)整定方式簡(jiǎn)單,結(jié)構(gòu)形式靈活。控制點(diǎn)包含兩種PID 控制算法,分別是:增量式算法,位置式算法[3]。
本設(shè)計(jì)采用位置式算法,將實(shí)際溫度與目標(biāo)溫度之差經(jīng)比例微分積分運(yùn)算后擬合成PWM 占空比數(shù)值的變化曲線,輸出給光耦H 橋驅(qū)動(dòng)電路。控制器根據(jù)第n 次被控變量采樣結(jié)果與設(shè)定值之間的偏差e(n)計(jì)算出第n 次采樣之后所輸出的控制變量。位置式PID 控制算法的數(shù)學(xué)表達(dá)式為:
其中u(n-1)是第n-1 次采樣之后所輸出的控制變量??刂谱兞縰(n)的值將決定第n 次采樣之后執(zhí)行器的動(dòng)作位置。離散化公式:
常用的數(shù)字濾波器算法有中值判斷法、算術(shù)平均值法、加權(quán)濾波法、滑動(dòng)濾波法[4]。中值濾波的基本原理是把數(shù)字圖像或數(shù)字序列中一點(diǎn)的值用該點(diǎn)的一個(gè)鄰域中各點(diǎn)值的中值代替,讓周圍的值接近的真實(shí)值,從而消除孤立的噪聲點(diǎn)。中值濾波對(duì)脈沖噪聲有良好的濾除作用,特別是在濾除噪聲的同時(shí),能夠保護(hù)信號(hào)的邊緣,使之不被模糊[5]。中值濾波的算法比較簡(jiǎn)單,也易于用硬件實(shí)現(xiàn)。算術(shù)平均法是求出一定觀察期內(nèi)預(yù)測(cè)目標(biāo)的時(shí)間數(shù)列的算術(shù)平均數(shù)作為下期預(yù)測(cè)值的一種最簡(jiǎn)單的時(shí)序預(yù)測(cè)法。常用的有簡(jiǎn)單算術(shù)平均法和加權(quán)算術(shù)平均法。滑動(dòng)濾波法就是把連續(xù)取N 個(gè)采樣值看成一個(gè)隊(duì)列,隊(duì)列的長(zhǎng)度固定為N,每次采樣到一個(gè)新數(shù)據(jù)放入隊(duì)尾,并扔掉原來(lái)隊(duì)首的一次數(shù)據(jù).把隊(duì)列中的N 個(gè)數(shù)據(jù)進(jìn)行算術(shù)平均運(yùn)算,就可獲得新的濾波結(jié)果。此方法對(duì)周期性干擾有良好的抑制作用,平滑度高 適用于高頻振蕩的系統(tǒng)。
比較幾種濾波方法可以得出。如圖2 所示,中值判斷法更適合恒溫箱的軟件設(shè)計(jì)。
本系統(tǒng)的調(diào)試從傳感器的數(shù)據(jù)輸入開(kāi)始到PWM 的輸出再到GPIO 的測(cè)試每一步都要經(jīng)過(guò)數(shù)據(jù)的比對(duì)。傳感器的數(shù)據(jù)輸入使用的是STM32 單片機(jī)的AD 端口,使用ADC 時(shí)常常需要不間斷采集大量的數(shù)據(jù),在一般的器件中會(huì)使用中斷進(jìn)行處理,但使用中斷的效率還是不夠高。在STM32 中,使用ADC 時(shí)往往采用DMA傳輸?shù)姆绞剑蒁MA 把ADC 外設(shè)轉(zhuǎn)換得的數(shù)據(jù)傳輸?shù)絊RAM,再進(jìn)行處理,甚至直接把ADC 的數(shù)據(jù)轉(zhuǎn)移到串口發(fā)送給上位機(jī)。
圖2 中值判斷法
測(cè)試使用的端口是ADC1 的通道11,單片機(jī)上的引腳為PC1,AD 的轉(zhuǎn)換結(jié)果保存在全局變量ADCConvertedValue 中。將放大器的輸出端接到PC1 上,打開(kāi)電源后,將ADC 的測(cè)試程序燒寫到單片機(jī)中,進(jìn)行在線調(diào)試,觀察Watch1 窗口中ADC-ConvertedValue 值的變化,如圖3 所示。
圖3 Watch1 窗口中ADC-ConvertedValue 值
變量ADC-ConvertedValue 的結(jié)果與真實(shí)值相比誤差很小,ADC 端口調(diào)試通過(guò)。
在STM32 芯片上,I/O 引腳可以被軟件設(shè)置成各種不同的功能,如輸入或輸出,所以被稱為GPIO(General-purpose I/O)。而GPIO 引腳又被分為GPIOA、GPIOB-GPIOG 不同的組,每組端口分為0~15,共16 個(gè)不同的引腳,對(duì)于不同型號(hào)的芯片,端口的組和引腳的數(shù)量不同。
控制LED 就要選定需要控制的特定引腳,配置需要的特定功能,設(shè)置GPIO輸出電壓的高低。
將LED 測(cè)試程序燒寫到單片機(jī)中,如圖4 所示,進(jìn)入調(diào)試界面并全速運(yùn)行,可以觀察到LED 燈間隔500 毫秒閃爍,GPIO 端口沒(méi)有錯(cuò)誤,調(diào)試完成。
圖4 調(diào)試界面
PWM 由通用定時(shí)器產(chǎn)生。通用定時(shí)器是通過(guò)可編程預(yù)分頻器驅(qū)動(dòng)的16 位自動(dòng)裝載計(jì)數(shù)器構(gòu)成。它適用于很多種場(chǎng)合,包括測(cè)量輸入信號(hào)的脈沖長(zhǎng)度或者產(chǎn)生輸出波形[6]。使用定時(shí)預(yù)分頻器和RCC 時(shí)鐘控制器預(yù)分頻器,脈沖長(zhǎng)度和波形周期可以再幾個(gè)微妙到幾個(gè)毫秒之間調(diào)整[7]。定時(shí)器是完全獨(dú)立的沒(méi)有相互共享任何單片機(jī)資源。
調(diào)試使用的是定時(shí)器3 的2 通道,實(shí)現(xiàn)KHz 的不同占空比波形。槳測(cè)試程序燒寫到單片機(jī)中,進(jìn)人在線調(diào)試狀態(tài),用示波器觀察輸出端口的波形如圖5 所示。
圖5 示波器顯示的波形圖
本文提出了基于微型計(jì)算機(jī)機(jī)測(cè)量和控制技術(shù)的恒溫箱系統(tǒng),STM32F103 單片機(jī)作為系統(tǒng)的核心,使用半導(dǎo)體制冷片作為系統(tǒng)的加熱、制冷設(shè)備,轉(zhuǎn)換效率較高,與使用壓縮機(jī)的恒溫箱相比更節(jié)能更環(huán)保。
系統(tǒng)初步完成了最初的設(shè)計(jì)要求并基本實(shí)現(xiàn)了總體功能。經(jīng)過(guò)測(cè)試,系統(tǒng)的恒溫范圍在25℃-80℃。超調(diào)量為1℃,達(dá)到穩(wěn)定的時(shí)間為10min 左右,如圖6 所示本設(shè)計(jì)的實(shí)物圖。
圖6 基于STM32 單片機(jī)的恒溫箱系統(tǒng)實(shí)物圖
[1] 徐亞飛,劉官敏,高國(guó)章,等.溫箱溫度PID 與預(yù)測(cè)控制[J].武漢理工大學(xué)學(xué)報(bào)(交通科學(xué)與工程版),2004,28(4):554-557.
[2] 呂芮棟,張志文.以MSP430F149 為核心的溫度檢測(cè)儀的硬件模塊和軟件設(shè)計(jì)[J].現(xiàn)代電子技術(shù).,2012,35(1):199-201.
[3] 施春寧,張中華,王濤.談PID 控制的理論分析[J].山西建筑,2012,38(3):238-240.
[4] 張鵬飛,齊曉慧.基于N 溝道MOS 管H 橋驅(qū)動(dòng)電路設(shè)計(jì)與制作[J].科技信息,2012(20):147,149.
[5] 廖建興.基于DB6225 芯片的H 橋電機(jī)驅(qū)動(dòng)器[J].研究與設(shè)計(jì),2012(1):32-35.
[6] 汪亮亮.溫室溫度檢測(cè)及報(bào)警器的設(shè)計(jì)與功能實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2012,8(12):2906-2907.
[7] TomaszKlopot,Jacek czeczot..Flexible function block implementation[J].Energy and Environment,2014,4(4):21-23.