岳有軍,權 峻,王紅君,趙 輝,2
(1. 天津理工大學,天津 300384;2. 天津農(nóng)學院,天津 300191)
隨著近年來我國溫室產(chǎn)業(yè)發(fā)展的迅速,我國溫室面積居世界各國首位,使得對溫室系統(tǒng)環(huán)境的控制要求也越來越高。但是由于溫室自身的復雜性以及溫室各環(huán)境因子之間的相互影響,對溫室系統(tǒng)建模的難度很大[1]。文獻[2-5]通過溫室內(nèi)部的能量守恒方程和物質(zhì)平衡方程來構建溫室內(nèi)部的數(shù)學模型,從而實現(xiàn)對溫室的溫濕度預測。但是此類模型結構復雜,參變量多,且很多參數(shù)難以確定只能通過經(jīng)驗獲得[6]。為了進一步優(yōu)化溫室預測模型,國內(nèi)外學者采用誤差反向傳播(Back Propagation,BP)神經(jīng)網(wǎng)絡建模對溫室溫濕度預測,如文獻[7]于2012年提出了使用BP神經(jīng)網(wǎng)絡在日光溫室濕度的預測模型,預測的平均相對誤差為3.234%;文獻[8]于2016年提出了一個人工神經(jīng)網(wǎng)絡來實現(xiàn)對墨西哥中部地區(qū)溫室的智能防霜控制。為了克服BP算法的收斂速度慢等缺點,有學者使用RBF(Radial Basis Function,RBF)神經(jīng)網(wǎng)絡對溫室溫濕度進行預測,并采用PSO算法對網(wǎng)絡進行優(yōu)化來進一步提高預測效果。如文獻[9]在2017年提出了一種基于PSO-RBF神經(jīng)網(wǎng)絡的溫度預測模型,該溫度預測模型的最大相對誤差不超過1.5%。本文在采用RBF網(wǎng)絡的基礎上,通過對粒子群算法進行改進,并使用改進的算法來優(yōu)化徑向基網(wǎng)絡權值和閾值,并以粒子群算法得到的最優(yōu)權值和閾值作為LM算法的初值,用LM算法來進一步提高模型的預測精度,最后通過仿真實驗得到網(wǎng)絡預測的最大相對誤差不超過1%,與之前的研究相比預測精度得到了提高,同時算法的運行時間減少。
模型數(shù)據(jù)采集時間是在2017年3月,以天津某溫室為采樣對象,采樣周期為10 min,溫室內(nèi)部設有自然通風系統(tǒng),內(nèi)遮陽系統(tǒng),外保溫系統(tǒng)和補光系統(tǒng)等等,外設保溫幕,除濕風機等。采集溫室室內(nèi)溫度、室內(nèi)濕度、保溫幕展開度、遮陽網(wǎng)展開度、加熱閥開度、室外溫度、照度、風速共1 440組數(shù)據(jù)。其中遮陽網(wǎng)、保溫幕、加熱閥的狀態(tài)通過溫室系統(tǒng)提供的數(shù)據(jù)獲得,其余的溫度、濕度、照度和風速分別通過空氣溫度傳感器、空氣濕度傳感器、光照強度傳感器和風向風速傳感器來測量。遮陽網(wǎng)和保溫幕的開度為0和1,分別代表閉合與展開。加熱閥開度為當前開度和最大開度的百分比,其余數(shù)據(jù)按照式(1)進行歸一化處理:
(1)
式中:yi表示歸一化之后的數(shù)據(jù),范圍為[0,1];xi是測量到的輸入值;ximax對應輸入值的最大值;ximin對應輸入值的最小值。
RBF網(wǎng)絡是三層前向式神經(jīng)網(wǎng)絡,分別是輸入層、隱含層和神經(jīng)網(wǎng)絡的輸出層[10]。RBF神經(jīng)網(wǎng)絡已經(jīng)成功應用在非線性形函數(shù)逼近、模式識別、系統(tǒng)建模等領域[11-13],網(wǎng)絡結構如圖1所示。其中神經(jīng)網(wǎng)絡模型的輸入向量為X=(x1,x2,…,xm)T,m是輸入的個數(shù),本文中為6個。本文中輸入x1~x6分別是保溫幕展開度、遮陽網(wǎng)展開度、加熱閥開度、室外溫度、照度和風速,輸出y1、y2分別是傳感器測量到的溫濕度,i為隱含層節(jié)點數(shù),wi為隱含層和輸出層之間的權值,隱節(jié)點中基函數(shù)φi采用高斯核函數(shù):
(2)
式中:σi是基函數(shù)的擴展常數(shù)(寬度);ci是所選取的第i個隱節(jié)點的中心。
σi的計算公式如下:
(3)
式中:m是樣本個數(shù)。
輸出層可用隱節(jié)點加權計算得到,計算公式如下:
(4)
式中:h為隱節(jié)點數(shù)。
圖1 RBF網(wǎng)絡結構圖
粒子群(PSO)算法通過群體中各粒子之間的相互合作和競爭通過迭代來得到最優(yōu)解[14]。PSO算法優(yōu)化的基本思路是先根據(jù)待優(yōu)化的問題來確定粒子的種群規(guī)模、進化次數(shù)、個體速度的最大值和最小值及學習因子的值,然后產(chǎn)生一群隨機的初始化粒子,并對粒子的速度進行隨機化處理,粒子通過適應度函數(shù)尋優(yōu)。根據(jù)得到的粒子與群體分別的個體最優(yōu)和全局最優(yōu)適應度來更新粒子速度和位置進行迭代尋優(yōu)。速度更新公式和位置的更新公式如下:
(5)
(6)
式中:ω為網(wǎng)絡的權重;k代表迭代的次數(shù);i表示第i個粒子;j表示該粒子所對應的速度或者位置的第j維;c1和c2是算法的學習因子;r1和r2隨機的在0~1之間取值,pbest為單個粒子的個體最優(yōu)坐標,gbest為種群最優(yōu)坐標。該公式為粒子群優(yōu)化算法的核心。
本文采用自適應權重法優(yōu)化PSO算法來提高算法的精度,該方法通過自適應算法來改進權重,最終使適應度函數(shù)持續(xù)不斷的逼近最小適應度函數(shù)值來實現(xiàn)對算法的優(yōu)化,平衡了模型的局部搜索和全局搜索,算法如下:
(7)
其中ωmin取0.4,ωmax取0.9,f為RBF網(wǎng)絡的適應度函數(shù),適應度函數(shù)見式(8)。
(8)
式中:n為測試樣本數(shù);FS(x(k))為對應樣本的網(wǎng)絡預測輸出值;FR(x(k))為對應樣本的實際輸出值。
改進PSO實現(xiàn)過程如下。
(1)初始化。隨機取粒子的初始速度和位置,設置c1、c2、pbest、gbest和權重ω的初值。
(2)計算粒子適應度。
(3)根據(jù)公式(5)、(6)更新粒子速度和位置。
(4)比較種群中每個粒子位置的適應度和pbest的適應度比較,更新pbest,同理將pbest和gbest比較更新gbest。
(5)按公式(7)調(diào)整權重,當算法滿足結束條件或達到最大迭代次數(shù)跳轉(zhuǎn)到第六步,否則跳轉(zhuǎn)到第二步。
(6)停止。
LM(Levenberg-Marquardt)算法是一種可以優(yōu)化大規(guī)模參數(shù)的優(yōu)化算法[15]。 該方法結合高斯-牛頓算法和梯度下降法,不但具有高斯-牛頓算法的局部收斂性,而且可以使用梯度下降法進行全局搜索,且比梯度下降法搜索速度更快。LM是目前訓練網(wǎng)絡最有效的算法。 LM算法基于以下原則:
(9)
k=0,1,2,…,n;i=1,2,…,N
式中:k是LM算法的迭代次數(shù),可以設置;Wk是第k次迭代產(chǎn)生的神經(jīng)網(wǎng)絡的權值和閾值;ei(Wk)是當網(wǎng)絡權值和閾值取Wk時,網(wǎng)絡預計輸出值ye和實際輸出值ym之間的差值;N代表維數(shù);J為雅克比矩陣;I為單位陣;μ為正常數(shù),隨算法迭代而變化。
S(Wk)代表第k次迭代的誤差指數(shù),計算方法如下:
(10)
i=1,2,…,N
雅克比矩陣J計算如下:
(11)
LM算法實現(xiàn)過程:
(1)初始化算法所計算的神經(jīng)網(wǎng)絡權值和閾值的初值W0。并設置訓練誤差許可值ε、阻尼因子μ0、調(diào)整系數(shù)β,同時使k=0,μ=μ0。
(2)根據(jù)公式(10)計算出網(wǎng)絡第k次的誤差指數(shù)S(Wk)。
(3)根據(jù)公式(11)計算出雅克比矩陣,將其代入公式(9)得到網(wǎng)絡權值和閾值變化量ΔW,同時得到新的權值和閾值Wk+1。
(4)若S(Wk)<ε,滿足誤差要求,此時算法跳轉(zhuǎn)到第六步。否則算法繼續(xù)跳轉(zhuǎn)到第二步,再次計算第k+1次的誤差指數(shù)S(Wk+1)。
(5)比較兩次得到的誤差指數(shù),若S(Wk+1)
(6)停止。
PSO-LM算法是結合本章之前提到的PSO算法和LM算法,首先由PSO算法優(yōu)化神經(jīng)網(wǎng)絡的權值和閾值,最終得到種群中最優(yōu)的權值和閾值,并將此最優(yōu)值作為LM算法的初始值,采用LM算法對得到的權值和閾值再次優(yōu)化,得到誤差更小的網(wǎng)絡權值和閾值。
PSO算法有著速度快,易操作等優(yōu)點[16],但是由于種群的限制,容易陷入局部最優(yōu)無法取到全局最優(yōu)值[17]。LM算法有著更高的精度,然而LM算法的優(yōu)化效果較為依賴初始值的選取[18],如果初始值與最優(yōu)值偏差過大,當算法達到最大迭代次數(shù)仍無法接近最優(yōu)值。PSO-LM算法將二者結合起來,先利用PSO算法快速局部尋優(yōu),得到與最優(yōu)值接近的優(yōu)化值,并將其作為LM算法的初始值,在利用LM算法全局尋優(yōu)的高精度達到更好的尋優(yōu)效果。此方法對兩種算法優(yōu)勢互補,能夠避免兩種算法的缺陷,具有較好的優(yōu)化效果。
對數(shù)據(jù)采集系統(tǒng)采集的數(shù)據(jù)用公式(1)的方法進行歸一化處理,現(xiàn)將處理后的部分數(shù)據(jù)按時間順序如表1所示。在全部1 728組數(shù)據(jù)中選取1 440組作為訓練樣本,其余288組數(shù)據(jù)作為測試樣本。
表1 部分歸一處理數(shù)據(jù)
對構建的RBF神經(jīng)網(wǎng)絡按照2.5節(jié)提到的方法來優(yōu)化網(wǎng)絡的權值和閾值。其中PSO算法根據(jù)輸入數(shù)可以選擇粒子的種群規(guī)模數(shù)為20,粒子的最大進化次數(shù)為30,學習因子 ,誤差閾值10-6,權重ω的初值在其范圍內(nèi)隨機選取,當粒子進化到最大迭代次數(shù)訓練停止。LM算法初值為PSO算法得到的最優(yōu)權值和閾值,誤差許可值ε為10-6、阻尼因子μ0為0.001、調(diào)整系數(shù)β的值為10,最大迭代次數(shù)是100。網(wǎng)絡隱節(jié)點數(shù)通過不斷的試驗取效果較好的值,設置為3個不變。
圖2 溫度預測曲線
圖3 濕度預測曲線
將所有處理后的數(shù)據(jù)代入神經(jīng)網(wǎng)絡模型的輸入輸出,通過Matlab軟件對模型進行仿真試驗,分別使用RBF神經(jīng)網(wǎng)絡、PSO-RBF神經(jīng)網(wǎng)絡、LM-RBF神經(jīng)網(wǎng)絡和PSO-LM-RBF神經(jīng)網(wǎng)絡來構建溫室溫濕度預測模型,仿真結果如圖2、3所示。本文通過均方根誤差、所有測試樣本的絕對誤差和與相對誤差和來評估模型的精度,誤差值如表2所示。均方根誤差曲線由神經(jīng)網(wǎng)絡訓練產(chǎn)生,絕對誤差Rx和相對誤差Ry的計算公式如下:
Rx=|Y-Y′|
(12)
(13)
由仿真結果得到的溫濕度預測曲線圖可以直觀的看出,使用PSO-RBF網(wǎng)絡和LM-RBF網(wǎng)絡都能在一定程度上優(yōu)化RBF網(wǎng)絡建模,能夠有效提高該系統(tǒng)的預測精度,而用本文提出的的PSO-LM算法優(yōu)化RBF網(wǎng)絡能夠進一步提高系統(tǒng)的預測精度,同時系統(tǒng)的運行速度也得到相應的提高。該模型的相對誤差曲線如圖4、圖5。
由圖4和圖5的溫濕度預測相對誤差曲線可以看出采用PSO-LM-RBF網(wǎng)絡模型能夠更好的滿足溫濕度預測的要求且對溫室溫濕度預測的相對誤差最大值均不超過1%,可以有效的在實際生產(chǎn)中對溫室溫濕度的預測,同時也為溫室環(huán)境控制器設計提供理論支撐。
本文通過對影響溫室溫濕度的溫室內(nèi)外環(huán)境因素進行分析,篩選出對溫室溫濕度的主要影響因素作為神經(jīng)網(wǎng)絡預測模型的輸入量,室內(nèi)溫濕度分別作為輸出量,構建了基于PSO-LM-RBF的溫室溫濕度預測模型。通過優(yōu)化網(wǎng)絡的權值和閾值,提高了預測的精度,并且記錄預測模型中神經(jīng)網(wǎng)絡訓練后得到的網(wǎng)絡結構和參數(shù),以此為依據(jù)來構建神經(jīng)網(wǎng)絡控制模型,從而實現(xiàn)對溫室作物生長所需要的環(huán)境實施調(diào)控的功能。
表2 測試樣本在不同方法下的誤差
圖4 PSO-LM-RBF溫度相對誤差曲線
圖5 PSO-LM-RBF濕度相對誤差曲線