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