陶興朋,王 嬋,張 錚
(湖北工業大學機械工程學院,湖北 武漢430068)
溫濕度精確控制是保證生產和實驗環境的一項重要內容。常規的PID控制器只有在參數確定的情況下才能完成控制任務,一旦環境發生變化,就需要重新調整PID控制參數[1]。本文提出的基于神經元PID的溫濕度實驗箱的設計具有自學習能力,可對PID參數進行自整定,提高了生產和實驗效率。
根據某客戶溫濕度實驗箱的實際需求,溫濕度控制的基本功能需求如下:具有四路數字式溫濕度傳感器,分別從四個方位測量實驗箱的溫濕度值;兩路模擬式流量控制閥,一路控制干空氣流量,另一路控制濕空氣流量;四路PWM控制的半導體溫控模塊,兼具加熱和制冷兩種功能,控制實驗箱的溫度;四路電子天平進行控制和數據顯示,采用7英寸(17.8cm)電容式觸摸屏作為人機接口,實時監控溫濕度實驗箱的數據;控制器擴展RS232接口,用于上位機監控溫濕度實驗箱的數據;在60cm×60cm×60cm的溫濕度實驗箱中,溫濕度控制范圍和精確度指標如表1所示。

表1 溫濕度控制范圍和精度要求
溫濕度實驗箱的控制系統硬件結構主要包括:電源模塊、溫濕度采集模塊、觸摸屏人機界面、STM32最小系統、改進的H橋驅動電路、半導體溫度控制器、D/A轉換器、濕度控制流量器,以及擴展串口模塊(圖1)。其中電源模塊將交流220V電源分別轉換為直流24V、12V、5V、3.3V電源為各模塊供電;溫濕度采集模塊采用數字式溫濕度傳感器,其溫度測量精度為0.1℃,量程為-40℃~120℃,相對濕度的測量精度為1%,量程為0~100%,傳感器數據使用IIC總線方式進行讀取。

圖1 控制系統硬件框圖
STM32最小系統采用意法半導體的STM32F103RBT6作為主控芯片。該芯片是一款基于ARM的32位處理器,處理能力較強,能夠執行一些復雜算法,具有20K的RAM和128KB的FLASH;改進的H橋驅動電路用來驅動半導體溫度控制器[2]16位的D/A轉換器將0~65 535的數字量轉換為0~5V的模擬量電壓用來控制濕度流量控制閥的流量大小。擴展串口模塊采用MAX232芯片將TTL電平轉換為RS232電平,與PC上位機進行通信。
對于四路溫濕度傳感器而言,若為每路溫濕度傳感器分配2個IO口,則需要占用8個IO口,布線較多,資源利用率降低,系統的更改和擴充比較復雜且可靠性也不高??紤]到四路溫濕度傳感器采用IIC串行總線具備多主機系統所需的包括總線裁決和高低速器件同步功能,只有2根雙向信號線(一根是數據線SDA,另一根是時鐘線SCL),每個接到總線上的溫濕度傳感器都有唯一的地址[3]。如圖2所示,將四路溫濕度傳感器分別掛接在同一個IIC總線上,主機與溫濕度傳感器之間的數據傳輸可以由主機發送地址和命令到溫濕度傳感器,相應的溫濕度傳感器收到指令后立即將采集的數據發送到主機。此時溫濕度傳感器為發送器,主機為接收器。

圖2 四路溫濕度數據采集模塊
由于半導體溫濕度控制器的功率較大,不能直接使用STM32來驅動,可采用H橋驅動電路,然而H橋驅動電路半導體溫度控制器時,通常難以保證H橋上處于兩個同側位置的兩個三極管不會同時導通,倘若同側的兩個三極管同時導通,那么電流就會從正極穿過三極管直接回到負極,此時電路中電流會因為電路中沒有其他負載而達到最大值,甚至燒壞三極管。H橋電路所需的控制引腳較多,每個引腳單獨控制,同步性較差[4]。基于上述原因,在實際驅動電路中通常要用硬件方式方便控制三級管的開關。如圖3所示,改進的H橋驅動電路在基本的H橋電路基礎上增加了4個與門和2個非門。其中4個與門由同一個使能端信號“ENABLE”控制,通過使能信號就可控制整個電路的開關。而兩個非門通過提供一種方向輸入,可以保證任何時候在H橋的同側都只有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驅動電路圖
神經元是神經網絡的基本單位,具有自學習能力,其結構相對簡單而且容易實現。若將其與通用PID控制算法相結合,可以在一定程度上解決傳統PID控制器參數不易在線調整、環境適應性差等問題[5]。神經元PID控制器控制原理如圖4所示[6]:

圖4 神經元PID 控制原理圖
假設神經元的3個輸入分別是:

式中,系統輸入與輸出的偏差e(k)=r(k)-c(k)??梢赃x擇線性函數作為輸出節點的激勵函數:y(k)=K0u(k),單神經元輸入節點的輸入與輸出關系為

其中:K為比例系數,Wi(k)為連接權系數,而增量式PID控制器的算式為

對比式(1)和式(2),采用待定系數法可得PID控制器參數


神經元的權系數可以通過自學習進行自適應調整。為有效發揮神經元的自學習能力,采用移動的學習算法對權值進行學習。首先引入性能指標函數Z,Z是輸出誤差的平方,即

使權系數Wi(k)的修正方向與Z減小的方向相同,即對Wi(k)沿著負梯度方向搜索,并選擇ηi(0<ηi<1)作為學習速率,則有


從式(4)中可見該算法的運行效果與可調參數K和學習速率η1、η2、η3等的選取有很大關系。在實際應用中,主要通過改變K的值來提高響應速度:當誤差較大且大于零時,增大K以提高動態行程;當誤差小于0時,應減少K以抑制超調。
2.2.1 μC/OS-II操作系統的運行流程 考慮到溫濕度控制系統需要執行溫度采集與控制、濕度采集與控制、神經元PID控制算法、觸摸屏的顯示和控制、串口通信等多個任務,若采用非操作系統的方式開發程序則實時性難以保證,可靠性不高而且代碼的移植性較差,可使用μC/OS-II統來解決上述問題。μC/OS-II是一個微型的、可移植、固化、剪裁的搶先式實時系統,支持多任務管理[7],μC/OS-II操作系統運行流程如圖5所示。

圖5 μC/OS-II操作系統運行流程圖
μC/OS-II操作系統運行流程如下。啟動操作系統后首先進行系統全局變量和數據結構的初始化,然后開始創建用戶任務(包括創建任務堆棧并指定任務的優先級),接著就是啟動μC/OS-II多任務管理,執行優先級較高的任務。最高優先級任務執行完畢后,開始執行下一個用戶任務;任務執行過程中,產生高優先級的任務中斷,系統將執行高優先級的中斷任務。
2.2.2 神經元PID溫濕度控制流程 神經元PID溫濕度控制流程如下:系統初始化之后通過IIC總線方式采集四路溫濕度傳感器數據,并通過用戶指令決定是否進行PID參數自整定;若需要進行參數自整定,則通過神經元PID控制算法的自學習功能,使權值在過程中不斷學習,達到優化控制的目的;整定完成后將整定的參數進行存儲并輸出,然后進行溫濕度控制模式,當測量的溫度值超出設定的溫度值范圍時,啟動神經元PID溫度控制算法,并輸出PWM控制量完成對溫度的控制;同理,當測量的濕度超出設定的范圍時,啟動相應的神經元PID控制算法,并輸出控制數字量;最后通過A/D轉換器將數字量轉換為模擬量控制干濕空氣流量從而完成濕度控制。神經元PID控制流程如圖6所示。

圖6 神經元PID溫濕度控制流程圖
采用Kinco公司的ET070型觸摸屏,其顯示屏為7英寸,通過RS232串口與STM32最小系統進行通訊。下位機將采集的四路溫濕度傳感器數據和四路電子天平數據發送給觸摸屏,觸摸屏對收到的數據進行處理顯示。如圖7a所示,界面軟件系統對四路溫濕度分別求其平均值,并顯示在編輯框中。為了幫助用戶對采集的數據進監控和分析,顯示界面分別添加了溫濕度監測的棒狀圖和趨勢圖,以及對溫濕度進行設定的輸入框。如圖7b所示的稱重界面,分別添加4個天平的顯示框和趨勢圖,方便用戶對四路天平稱重數據的變化趨勢進行監測,同時還可通過清零、去皮、稱重、退出等按鈕發送相應的指令對電子天平進行控制。

圖7 監控界面
為了充分驗證本溫濕度控制系統的準確性和可靠性,通過觸摸屏界面分別將溫度目標值從0℃~50℃范圍遞增,遞增步長設置為5℃,相對濕度目標值從0~100%范圍遞增,遞增步長設置為10%,設置間隔為5min,并記錄結果得出一組數據。該實驗重復10次,取平均值,得到數據如表2和表3所示。

表2 實驗箱溫度控制數據表

表3 實驗箱濕度控制數據表
從表2中可以看出當溫度范圍為10℃-30℃時,超調量小于0.3℃,穩態精度不超過0.3℃,且較為穩定,調節時間少于2min。當溫度范圍為0℃~10℃、30℃~50℃時,超調量低于0.4℃;調節時間最大為3.1min,滿足控制要求;同理,由表3可知,當相對濕度范圍為25%~75%時,超調量低于6%,穩態精度不超過3%,調節時間最大為3.5min,當相對濕度范圍為0~25%、75%~100%時,超調量最大為13%,穩態精度低于5%,調節時間縮短為2.5min以內,也滿足控制要求。可見當溫度處于0~10℃、30℃~50℃范圍內或相對濕度為0~25%、75%~100%時,超調量有所增加,穩態精度變大,超調時間也延長了,經研究發現,其主要原因在于實驗箱并非完全封閉的結構,當實驗箱中溫濕度偏高或偏低,與環境溫濕度相差較大時,易受到外部的干擾,所以出現了較大的超調和穩態誤差,以及較長的調整時間。
基于神經元PID溫濕度實驗箱的設計包括硬件設計和軟件設計。硬件設計選用32位的STM32作為主控芯片,可充分利用其硬件資源;四路溫濕度傳感器采用IIC總線進行通信,大大節省了IO口的數量和布線數量;溫度控制部分在原有的H橋驅動電路基礎上改進提高了驅動的穩定性和同步性。軟件設計部分移植了μC/OS-II操作系統,方便對多任務進行管理,提高了應用程序的執行效率和可移植性,控制部分采用神經元的PID控制算法,該算法具有自學習能力,能夠根據實驗狀態進行PID參數自整定,獲得最佳的PID控制參數,為了方便用戶對溫濕度控制進行實時監控,設計了觸摸屏人機交互界面。最后對整個溫濕度實驗箱進行了測試與分析,測試結果表明該控制系統滿足應用要求。
[1] 陶永華.新型PID控制及其應用[M].北京:機械工業出版社,2002.
[2] 祁鴻芳.半導體溫度控制系統研究[J].蘭州工業學院學報,2013(02):13-16.
[3] 王 毅,萬 英.基于IIC總線的溫濕度測量系統的設計[J].福建師范大學學報,2014(06):40-45.
[4] 陶 凱,賴康生.基于PWM控制H橋驅動半導體制冷片的恒溫系統[J].工業控制計算機,2013(04):131-133.
[5] 孫 健,王金城.基于單神經元PID的電阻爐智能溫度控制系統[D].大連:大連理工大學,2008:38-39.
[6] 李 科,王永驥.溫控系統的智能PID控制算法研究[D].武漢:華中科技大學,2006:11-15.
[7] 任 哲.嵌入式實時操作系統μC/OS-II原理及應用[M].北京:北京航空航天大學出版社,2005.