陶興朋,王 嬋,張 錚
(湖北工業(yè)大學(xué)機(jī)械工程學(xué)院,湖北 武漢430068)
溫濕度精確控制是保證生產(chǎn)和實(shí)驗(yàn)環(huán)境的一項(xiàng)重要內(nèi)容。常規(guī)的PID控制器只有在參數(shù)確定的情況下才能完成控制任務(wù),一旦環(huán)境發(fā)生變化,就需要重新調(diào)整PID控制參數(shù)[1]。本文提出的基于神經(jīng)元PID的溫濕度實(shí)驗(yàn)箱的設(shè)計(jì)具有自學(xué)習(xí)能力,可對(duì)PID參數(shù)進(jìn)行自整定,提高了生產(chǎn)和實(shí)驗(yàn)效率。
根據(jù)某客戶(hù)溫濕度實(shí)驗(yàn)箱的實(shí)際需求,溫濕度控制的基本功能需求如下:具有四路數(shù)字式溫濕度傳感器,分別從四個(gè)方位測(cè)量實(shí)驗(yàn)箱的溫濕度值;兩路模擬式流量控制閥,一路控制干空氣流量,另一路控制濕空氣流量;四路PWM控制的半導(dǎo)體溫控模塊,兼具加熱和制冷兩種功能,控制實(shí)驗(yàn)箱的溫度;四路電子天平進(jìn)行控制和數(shù)據(jù)顯示,采用7英寸(17.8cm)電容式觸摸屏作為人機(jī)接口,實(shí)時(shí)監(jiān)控溫濕度實(shí)驗(yàn)箱的數(shù)據(jù);控制器擴(kuò)展RS232接口,用于上位機(jī)監(jiān)控溫濕度實(shí)驗(yàn)箱的數(shù)據(jù);在60cm×60cm×60cm的溫濕度實(shí)驗(yàn)箱中,溫濕度控制范圍和精確度指標(biāo)如表1所示。
表1 溫濕度控制范圍和精度要求
溫濕度實(shí)驗(yàn)箱的控制系統(tǒng)硬件結(jié)構(gòu)主要包括:電源模塊、溫濕度采集模塊、觸摸屏人機(jī)界面、STM32最小系統(tǒng)、改進(jìn)的H橋驅(qū)動(dòng)電路、半導(dǎo)體溫度控制器、D/A轉(zhuǎn)換器、濕度控制流量器,以及擴(kuò)展串口模塊(圖1)。其中電源模塊將交流220V電源分別轉(zhuǎn)換為直流24V、12V、5V、3.3V電源為各模塊供電;溫濕度采集模塊采用數(shù)字式溫濕度傳感器,其溫度測(cè)量精度為0.1℃,量程為-40℃~120℃,相對(duì)濕度的測(cè)量精度為1%,量程為0~100%,傳感器數(shù)據(jù)使用IIC總線(xiàn)方式進(jìn)行讀取。
圖1 控制系統(tǒng)硬件框圖
STM32最小系統(tǒng)采用意法半導(dǎo)體的STM32F103RBT6作為主控芯片。該芯片是一款基于A(yíng)RM的32位處理器,處理能力較強(qiáng),能夠執(zhí)行一些復(fù)雜算法,具有20K的RAM和128KB的FLASH;改進(jìn)的H橋驅(qū)動(dòng)電路用來(lái)驅(qū)動(dòng)半導(dǎo)體溫度控制器[2]16位的D/A轉(zhuǎn)換器將0~65 535的數(shù)字量轉(zhuǎn)換為0~5V的模擬量電壓用來(lái)控制濕度流量控制閥的流量大小。擴(kuò)展串口模塊采用MAX232芯片將TTL電平轉(zhuǎn)換為RS232電平,與PC上位機(jī)進(jìn)行通信。
對(duì)于四路溫濕度傳感器而言,若為每路溫濕度傳感器分配2個(gè)IO口,則需要占用8個(gè)IO口,布線(xiàn)較多,資源利用率降低,系統(tǒng)的更改和擴(kuò)充比較復(fù)雜且可靠性也不高。考慮到四路溫濕度傳感器采用IIC串行總線(xiàn)具備多主機(jī)系統(tǒng)所需的包括總線(xiàn)裁決和高低速器件同步功能,只有2根雙向信號(hào)線(xiàn)(一根是數(shù)據(jù)線(xiàn)SDA,另一根是時(shí)鐘線(xiàn)SCL),每個(gè)接到總線(xiàn)上的溫濕度傳感器都有唯一的地址[3]。如圖2所示,將四路溫濕度傳感器分別掛接在同一個(gè)IIC總線(xiàn)上,主機(jī)與溫濕度傳感器之間的數(shù)據(jù)傳輸可以由主機(jī)發(fā)送地址和命令到溫濕度傳感器,相應(yīng)的溫濕度傳感器收到指令后立即將采集的數(shù)據(jù)發(fā)送到主機(jī)。此時(shí)溫濕度傳感器為發(fā)送器,主機(jī)為接收器。
圖2 四路溫濕度數(shù)據(jù)采集模塊
由于半導(dǎo)體溫濕度控制器的功率較大,不能直接使用STM32來(lái)驅(qū)動(dòng),可采用H橋驅(qū)動(dòng)電路,然而H橋驅(qū)動(dòng)電路半導(dǎo)體溫度控制器時(shí),通常難以保證H橋上處于兩個(gè)同側(cè)位置的兩個(gè)三極管不會(huì)同時(shí)導(dǎo)通,倘若同側(cè)的兩個(gè)三極管同時(shí)導(dǎo)通,那么電流就會(huì)從正極穿過(guò)三極管直接回到負(fù)極,此時(shí)電路中電流會(huì)因?yàn)殡娐分袥](méi)有其他負(fù)載而達(dá)到最大值,甚至燒壞三極管。H橋電路所需的控制引腳較多,每個(gè)引腳單獨(dú)控制,同步性較差[4]?;谏鲜鲈?,在實(shí)際驅(qū)動(dòng)電路中通常要用硬件方式方便控制三級(jí)管的開(kāi)關(guān)。如圖3所示,改進(jìn)的H橋驅(qū)動(dòng)電路在基本的H橋電路基礎(chǔ)上增加了4個(gè)與門(mén)和2個(gè)非門(mén)。其中4個(gè)與門(mén)由同一個(gè)使能端信號(hào)“ENABLE”控制,通過(guò)使能信號(hào)就可控制整個(gè)電路的開(kāi)關(guān)。而兩個(gè)非門(mén)通過(guò)提供一種方向輸入,可以保證任何時(shí)候在H橋的同側(cè)都只有1個(gè)三極管導(dǎo)通。采用以上方法,對(duì)半導(dǎo)體溫度控制器的控制只需要3個(gè)信號(hào):ENABLE、DIR0、DIR1。若ENABLE置為1,DIR0置1,而DIR1置0,Q1、Q4導(dǎo)通,Q2、Q3截止,則半導(dǎo)體溫度控制器處于加熱模式;若ENABLE置1,DIR0置0,而DIR1置1,Q2、Q3導(dǎo)通,Q1、Q4截止,電流反向,半導(dǎo)體溫度控制器處于制冷模式,加熱和制冷的功率大小可通過(guò)PWM方式進(jìn)行控制。
圖3 改進(jìn)H驅(qū)動(dòng)電路圖
神經(jīng)元是神經(jīng)網(wǎng)絡(luò)的基本單位,具有自學(xué)習(xí)能力,其結(jié)構(gòu)相對(duì)簡(jiǎn)單而且容易實(shí)現(xiàn)。若將其與通用PID控制算法相結(jié)合,可以在一定程度上解決傳統(tǒng)PID控制器參數(shù)不易在線(xiàn)調(diào)整、環(huán)境適應(yīng)性差等問(wèn)題[5]。神經(jīng)元PID控制器控制原理如圖4所示[6]:
圖4 神經(jīng)元PID 控制原理圖
假設(shè)神經(jīng)元的3個(gè)輸入分別是:
式中,系統(tǒng)輸入與輸出的偏差e(k)=r(k)-c(k)??梢赃x擇線(xiàn)性函數(shù)作為輸出節(jié)點(diǎn)的激勵(lì)函數(shù):y(k)=K0u(k),單神經(jīng)元輸入節(jié)點(diǎn)的輸入與輸出關(guān)系為
其中:K為比例系數(shù),Wi(k)為連接權(quán)系數(shù),而增量式PID控制器的算式為
對(duì)比式(1)和式(2),采用待定系數(shù)法可得PID控制器參數(shù)
神經(jīng)元的權(quán)系數(shù)可以通過(guò)自學(xué)習(xí)進(jìn)行自適應(yīng)調(diào)整。為有效發(fā)揮神經(jīng)元的自學(xué)習(xí)能力,采用移動(dòng)的學(xué)習(xí)算法對(duì)權(quán)值進(jìn)行學(xué)習(xí)。首先引入性能指標(biāo)函數(shù)Z,Z是輸出誤差的平方,即
使權(quán)系數(shù)Wi(k)的修正方向與Z減小的方向相同,即對(duì)Wi(k)沿著負(fù)梯度方向搜索,并選擇ηi(0<ηi<1)作為學(xué)習(xí)速率,則有
從式(4)中可見(jiàn)該算法的運(yùn)行效果與可調(diào)參數(shù)K和學(xué)習(xí)速率η1、η2、η3等的選取有很大關(guān)系。在實(shí)際應(yīng)用中,主要通過(guò)改變K的值來(lái)提高響應(yīng)速度:當(dāng)誤差較大且大于零時(shí),增大K以提高動(dòng)態(tài)行程;當(dāng)誤差小于0時(shí),應(yīng)減少K以抑制超調(diào)。
2.2.1 μC/OS-II操作系統(tǒng)的運(yùn)行流程 考慮到溫濕度控制系統(tǒng)需要執(zhí)行溫度采集與控制、濕度采集與控制、神經(jīng)元PID控制算法、觸摸屏的顯示和控制、串口通信等多個(gè)任務(wù),若采用非操作系統(tǒng)的方式開(kāi)發(fā)程序則實(shí)時(shí)性難以保證,可靠性不高而且代碼的移植性較差,可使用μC/OS-II統(tǒng)來(lái)解決上述問(wèn)題。μC/OS-II是一個(gè)微型的、可移植、固化、剪裁的搶先式實(shí)時(shí)系統(tǒng),支持多任務(wù)管理[7],μC/OS-II操作系統(tǒng)運(yùn)行流程如圖5所示。
圖5 μC/OS-II操作系統(tǒng)運(yùn)行流程圖
μC/OS-II操作系統(tǒng)運(yùn)行流程如下。啟動(dòng)操作系統(tǒng)后首先進(jìn)行系統(tǒng)全局變量和數(shù)據(jù)結(jié)構(gòu)的初始化,然后開(kāi)始創(chuàng)建用戶(hù)任務(wù)(包括創(chuàng)建任務(wù)堆棧并指定任務(wù)的優(yōu)先級(jí)),接著就是啟動(dòng)μC/OS-II多任務(wù)管理,執(zhí)行優(yōu)先級(jí)較高的任務(wù)。最高優(yōu)先級(jí)任務(wù)執(zhí)行完畢后,開(kāi)始執(zhí)行下一個(gè)用戶(hù)任務(wù);任務(wù)執(zhí)行過(guò)程中,產(chǎn)生高優(yōu)先級(jí)的任務(wù)中斷,系統(tǒng)將執(zhí)行高優(yōu)先級(jí)的中斷任務(wù)。
2.2.2 神經(jīng)元PID溫濕度控制流程 神經(jīng)元PID溫濕度控制流程如下:系統(tǒng)初始化之后通過(guò)IIC總線(xiàn)方式采集四路溫濕度傳感器數(shù)據(jù),并通過(guò)用戶(hù)指令決定是否進(jìn)行PID參數(shù)自整定;若需要進(jìn)行參數(shù)自整定,則通過(guò)神經(jīng)元PID控制算法的自學(xué)習(xí)功能,使權(quán)值在過(guò)程中不斷學(xué)習(xí),達(dá)到優(yōu)化控制的目的;整定完成后將整定的參數(shù)進(jìn)行存儲(chǔ)并輸出,然后進(jìn)行溫濕度控制模式,當(dāng)測(cè)量的溫度值超出設(shè)定的溫度值范圍時(shí),啟動(dòng)神經(jīng)元PID溫度控制算法,并輸出PWM控制量完成對(duì)溫度的控制;同理,當(dāng)測(cè)量的濕度超出設(shè)定的范圍時(shí),啟動(dòng)相應(yīng)的神經(jīng)元PID控制算法,并輸出控制數(shù)字量;最后通過(guò)A/D轉(zhuǎn)換器將數(shù)字量轉(zhuǎn)換為模擬量控制干濕空氣流量從而完成濕度控制。神經(jīng)元PID控制流程如圖6所示。
圖6 神經(jīng)元PID溫濕度控制流程圖
采用Kinco公司的ET070型觸摸屏,其顯示屏為7英寸,通過(guò)RS232串口與STM32最小系統(tǒng)進(jìn)行通訊。下位機(jī)將采集的四路溫濕度傳感器數(shù)據(jù)和四路電子天平數(shù)據(jù)發(fā)送給觸摸屏,觸摸屏對(duì)收到的數(shù)據(jù)進(jìn)行處理顯示。如圖7a所示,界面軟件系統(tǒng)對(duì)四路溫濕度分別求其平均值,并顯示在編輯框中。為了幫助用戶(hù)對(duì)采集的數(shù)據(jù)進(jìn)監(jiān)控和分析,顯示界面分別添加了溫濕度監(jiān)測(cè)的棒狀圖和趨勢(shì)圖,以及對(duì)溫濕度進(jìn)行設(shè)定的輸入框。如圖7b所示的稱(chēng)重界面,分別添加4個(gè)天平的顯示框和趨勢(shì)圖,方便用戶(hù)對(duì)四路天平稱(chēng)重?cái)?shù)據(jù)的變化趨勢(shì)進(jìn)行監(jiān)測(cè),同時(shí)還可通過(guò)清零、去皮、稱(chēng)重、退出等按鈕發(fā)送相應(yīng)的指令對(duì)電子天平進(jìn)行控制。
圖7 監(jiān)控界面
為了充分驗(yàn)證本溫濕度控制系統(tǒng)的準(zhǔn)確性和可靠性,通過(guò)觸摸屏界面分別將溫度目標(biāo)值從0℃~50℃范圍遞增,遞增步長(zhǎng)設(shè)置為5℃,相對(duì)濕度目標(biāo)值從0~100%范圍遞增,遞增步長(zhǎng)設(shè)置為10%,設(shè)置間隔為5min,并記錄結(jié)果得出一組數(shù)據(jù)。該實(shí)驗(yàn)重復(fù)10次,取平均值,得到數(shù)據(jù)如表2和表3所示。
表2 實(shí)驗(yàn)箱溫度控制數(shù)據(jù)表
表3 實(shí)驗(yàn)箱濕度控制數(shù)據(jù)表
從表2中可以看出當(dāng)溫度范圍為10℃-30℃時(shí),超調(diào)量小于0.3℃,穩(wěn)態(tài)精度不超過(guò)0.3℃,且較為穩(wěn)定,調(diào)節(jié)時(shí)間少于2min。當(dāng)溫度范圍為0℃~10℃、30℃~50℃時(shí),超調(diào)量低于0.4℃;調(diào)節(jié)時(shí)間最大為3.1min,滿(mǎn)足控制要求;同理,由表3可知,當(dāng)相對(duì)濕度范圍為25%~75%時(shí),超調(diào)量低于6%,穩(wěn)態(tài)精度不超過(guò)3%,調(diào)節(jié)時(shí)間最大為3.5min,當(dāng)相對(duì)濕度范圍為0~25%、75%~100%時(shí),超調(diào)量最大為13%,穩(wěn)態(tài)精度低于5%,調(diào)節(jié)時(shí)間縮短為2.5min以?xún)?nèi),也滿(mǎn)足控制要求??梢?jiàn)當(dāng)溫度處于0~10℃、30℃~50℃范圍內(nèi)或相對(duì)濕度為0~25%、75%~100%時(shí),超調(diào)量有所增加,穩(wěn)態(tài)精度變大,超調(diào)時(shí)間也延長(zhǎng)了,經(jīng)研究發(fā)現(xiàn),其主要原因在于實(shí)驗(yàn)箱并非完全封閉的結(jié)構(gòu),當(dāng)實(shí)驗(yàn)箱中溫濕度偏高或偏低,與環(huán)境溫濕度相差較大時(shí),易受到外部的干擾,所以出現(xiàn)了較大的超調(diào)和穩(wěn)態(tài)誤差,以及較長(zhǎng)的調(diào)整時(shí)間。
基于神經(jīng)元PID溫濕度實(shí)驗(yàn)箱的設(shè)計(jì)包括硬件設(shè)計(jì)和軟件設(shè)計(jì)。硬件設(shè)計(jì)選用32位的STM32作為主控芯片,可充分利用其硬件資源;四路溫濕度傳感器采用IIC總線(xiàn)進(jìn)行通信,大大節(jié)省了IO口的數(shù)量和布線(xiàn)數(shù)量;溫度控制部分在原有的H橋驅(qū)動(dòng)電路基礎(chǔ)上改進(jìn)提高了驅(qū)動(dòng)的穩(wěn)定性和同步性。軟件設(shè)計(jì)部分移植了μC/OS-II操作系統(tǒng),方便對(duì)多任務(wù)進(jìn)行管理,提高了應(yīng)用程序的執(zhí)行效率和可移植性,控制部分采用神經(jīng)元的PID控制算法,該算法具有自學(xué)習(xí)能力,能夠根據(jù)實(shí)驗(yàn)狀態(tài)進(jìn)行PID參數(shù)自整定,獲得最佳的PID控制參數(shù),為了方便用戶(hù)對(duì)溫濕度控制進(jìn)行實(shí)時(shí)監(jiān)控,設(shè)計(jì)了觸摸屏人機(jī)交互界面。最后對(duì)整個(gè)溫濕度實(shí)驗(yàn)箱進(jìn)行了測(cè)試與分析,測(cè)試結(jié)果表明該控制系統(tǒng)滿(mǎn)足應(yīng)用要求。
[1] 陶永華.新型PID控制及其應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2002.
[2] 祁鴻芳.半導(dǎo)體溫度控制系統(tǒng)研究[J].蘭州工業(yè)學(xué)院學(xué)報(bào),2013(02):13-16.
[3] 王 毅,萬(wàn) 英.基于IIC總線(xiàn)的溫濕度測(cè)量系統(tǒng)的設(shè)計(jì)[J].福建師范大學(xué)學(xué)報(bào),2014(06):40-45.
[4] 陶 凱,賴(lài)康生.基于PWM控制H橋驅(qū)動(dòng)半導(dǎo)體制冷片的恒溫系統(tǒng)[J].工業(yè)控制計(jì)算機(jī),2013(04):131-133.
[5] 孫 健,王金城.基于單神經(jīng)元PID的電阻爐智能溫度控制系統(tǒng)[D].大連:大連理工大學(xué),2008:38-39.
[6] 李 科,王永驥.溫控系統(tǒng)的智能PID控制算法研究[D].武漢:華中科技大學(xué),2006:11-15.
[7] 任 哲.嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-II原理及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2005.