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