黃琦蘭,王 濤
(天津工業(yè)大學(xué)控制科學(xué)與工程學(xué)院,天津 300387)
我國作為一個人口大國,其糧食的儲備不可或缺,正確的儲糧方式可以保證糧食安全長久地儲備在糧倉中。據(jù)調(diào)研報告顯示,我國的糧食每年在存放、運(yùn)送、制作這3方面損失的產(chǎn)量就高達(dá)350億kg,造成了許多不必要的糧食浪費(fèi)[1],可見正確的儲糧方式是多么重要。目前比較常見的儲糧方式包括低溫儲藏、氣調(diào)儲藏、機(jī)械通風(fēng)等方式[2]。低溫儲藏是降低糧倉內(nèi)的溫度使其處于較低的水平,從而減少糧食的損害,缺點(diǎn)是長期的存儲成本較高;氣調(diào)儲藏是通過調(diào)整糧倉內(nèi)各種氣體的比例來保證糧食儲藏的環(huán)境,這對儲存糧食的倉庫密閉性要求嚴(yán)格;機(jī)械通風(fēng)是較為常用的一種控制糧倉溫度的方法,其原理是通過通風(fēng)設(shè)備交換倉內(nèi)外的空氣來調(diào)整倉內(nèi)的溫濕度以保證倉內(nèi)溫度的穩(wěn)定,與其他方法對比,機(jī)械通風(fēng)易于實(shí)現(xiàn)、成本不高。橫向通風(fēng)是近年提出的一種全新通風(fēng)方式,但是針對于大多數(shù)橫向通風(fēng)來說,通風(fēng)時機(jī)和時長都是由人們的經(jīng)驗(yàn)來判斷,這樣難免會出現(xiàn)人為上的失誤,嚴(yán)重的則會導(dǎo)致糧食受到損害[3]。
近年來,智能通風(fēng)在糧食儲藏方面逐步得到應(yīng)用[4],在智能通風(fēng)過程中,關(guān)鍵在于糧堆的溫度預(yù)測,以往大多數(shù)研究方法是采用數(shù)學(xué)建模分析溫度的變化曲線。隨著現(xiàn)代信息技術(shù)的發(fā)展,部分智能算法應(yīng)用到了糧倉上面,如支持向量機(jī)法、遺傳算法、神經(jīng)網(wǎng)絡(luò)等先進(jìn)算法[5-7],但相關(guān)研究較少。本研究選擇RBF神經(jīng)網(wǎng)絡(luò)建立糧堆溫度場預(yù)測模型,并利用粒子群(Particle Swarm Optimization,PSO)算法和列文伯格-馬夸爾特(Levenberg-Marquard,LM)算法優(yōu)化網(wǎng)絡(luò)的參數(shù)。這樣一方面既能提高預(yù)測的精度,使得預(yù)測值更加準(zhǔn)確,也可以減少算法運(yùn)行時間,基于RBF的預(yù)測模型可以準(zhǔn)確預(yù)知糧堆溫度,從而判斷橫向通風(fēng)的時機(jī),對智能儲糧有一定參考意義。
RBF神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)包括輸入層、隱含層和輸出層[8],其結(jié)構(gòu)如圖1所示,其中輸入層作為第1層,它是該網(wǎng)絡(luò)的輸入環(huán)節(jié),隱含層大多采用高斯函數(shù)作為神經(jīng)元激活函數(shù),第3層是輸出層,是該網(wǎng)絡(luò)的輸出。
圖1 RBF神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.1 Diagramof RBFneural network structure
x(t)=(x1,x2,…,xN)T為輸入向量,本文中輸入向量的個數(shù)設(shè)為7個,x1~x7分別代表為糧倉內(nèi)濕度、糧倉內(nèi)溫度、糧倉外環(huán)境濕度、糧倉外環(huán)境溫度、通風(fēng)口風(fēng)速大小、通風(fēng)口濕度、通風(fēng)口溫度。
輸入層到隱含層的輸出為非線性激活函數(shù)hj(t):
式中:cj為第j個節(jié)點(diǎn)的中心,σj為第j個節(jié)點(diǎn)的寬度,‖x(t)-cj(t)‖是二者之間的歐氏距離,m是隱層節(jié)點(diǎn)的個數(shù)。
對隱層神經(jīng)元的輸出進(jìn)行加權(quán)得到輸出:
式中:ω代表權(quán)值,n為網(wǎng)絡(luò)輸出的數(shù)量,i表示網(wǎng)絡(luò)輸出節(jié)點(diǎn)的數(shù)量,j表示隱層節(jié)點(diǎn)數(shù),t代表輸入樣本序號。
RBF神經(jīng)網(wǎng)絡(luò)的參數(shù)cj、σj、ω需要通過學(xué)習(xí)訓(xùn)練確定,為了提高神經(jīng)網(wǎng)絡(luò)的總體性能,本文欲采用PSO算法分別尋優(yōu)來確定參數(shù)[9]。
PSO算法的產(chǎn)生和鳥群覓食相關(guān)[10],假想一群鳥正在覓食,每一只鳥都可能找到食物,把鳥看成粒子的話,則每一個粒子都代表一個解,所有解中最好的一個解是食物的位置,每個粒子都會在該區(qū)域內(nèi)尋找食物的位置,并且每個粒子會在尋找食物的過程中得到自身離食物最相近的一個位置,這個位置稱個體極值;全體粒子在尋找過程中會得到的一個最好的位置稱為全局極值。
粒子通過這兩個極值位置來更新每個粒子自身的速度和位置,更新公式如下:
權(quán)重ω的作用體現(xiàn)在收斂性能和收斂速度上。伴隨著ω增大,粒子的全局收斂性能會提高;當(dāng)ω減小時,局部收斂性能就會加強(qiáng)[11]。因此動態(tài)調(diào)整ω是目前比較常用的一種方法。本文采取線性遞減權(quán)值法來動態(tài)地更新ω值[12],這樣既可以加強(qiáng)算法前期的全局收斂能力,也可以保證后期的局部收斂性能。常用的權(quán)值更新公式為:
式中:k表示目前的迭代次數(shù);kmax則為最大次數(shù);ωmax和ωmin代表最大權(quán)重和最小權(quán)重,一般ωmax=0.9,ωmin=0.4。
改進(jìn)后PSO算法的流程圖如圖2所示。
圖2 PSO算法流程圖Fig.2 PSOalgorithmflow chart
動態(tài)更新權(quán)值后,算法的收斂性能和收斂速度都會提高,但是由于種群的限制,該算法仍面臨著陷入局部最優(yōu)的問題[13]。LM算法是目前常用的訓(xùn)練網(wǎng)絡(luò)的算法,其迭代時間少,收斂速度快,可以很大程度上避免陷入局部最優(yōu)解。
LM算法結(jié)合了梯度下降法和高斯-牛頓法的長處[14]。其迭代公式為:
式中:uk為第k次迭代時的控制輸入序列,uk+1為下一時刻的控制輸入序列,μ為比例系數(shù),ek為網(wǎng)絡(luò)預(yù)測值與真實(shí)值之間的偏差,Ak為雅克比矩陣。
LM算法實(shí)現(xiàn)過程:
(1)確定初值x0,令k=0,μ=μ0,設(shè)置誤差許可值ε和調(diào)整系數(shù)β。
(2)根據(jù)誤差指數(shù)公式計算網(wǎng)絡(luò)的誤差指數(shù)。
(3)通過計算雅克比矩陣代入到迭代公式中求得新的權(quán)值和閾值。
(4)若誤差指數(shù)小于誤差許可值,滿足設(shè)定要求,則直接跳到第6步,不滿足的話則回到第2步重新計算。
(5)將兩次得到的誤差指數(shù)進(jìn)行比較,如果k+1次的誤差指數(shù)小于第k次的誤差指數(shù),則輸出k=k+1,μ=μ/β再返回第2步重新計算。反之μ=μ·β,uk+1=uk。
(6)結(jié)束。
LM算法雖然有著收斂快、精度高的特點(diǎn),但是該算法比較依賴初值的選取[15]。為此,本文將上述兩種算法組合在一起,利用PSO算法收斂性能好的優(yōu)點(diǎn)迅速尋找最優(yōu)值,再用得到的值當(dāng)作LM算法的初值,LM算法的高精度尋優(yōu)進(jìn)一步減小了誤差。PSO-LM算法的結(jié)合一方面解決了LM算法的初值問題,又很大程度上解決了PSO算法易陷入局部最優(yōu)的問題。
本文以糧堆溫度監(jiān)測系統(tǒng)為仿真算例,搭建RBF神經(jīng)網(wǎng)絡(luò),并用PSO-LM算法進(jìn)行優(yōu)化,采用改進(jìn)的RBF網(wǎng)絡(luò)對糧堆溫度進(jìn)行預(yù)測,圖3所示為糧堆溫度預(yù)測過程。
圖3 改進(jìn)RBF神經(jīng)網(wǎng)絡(luò)溫度預(yù)測流程Fig.3 Processof improved RBFneural network for temperature prediction
針對構(gòu)建的RBF神經(jīng)網(wǎng)絡(luò)采用PSO-LM算法優(yōu)化網(wǎng)絡(luò)參數(shù)。PSO算法的種群規(guī)模設(shè)置為30,學(xué)習(xí)因子c1=c2=2,ω采用式(5)動態(tài)更新,r1=0.5,r2=0.6,由于迭代次數(shù)的選擇會影響訓(xùn)練時間,因此在用模型預(yù)測糧堆溫度前先預(yù)設(shè)最大迭代次數(shù)設(shè)為100。圖4為進(jìn)行訓(xùn)練后得到適應(yīng)度曲線。由圖4可以看出,當(dāng)?shù)?0次時,改進(jìn)算法的適應(yīng)度曲線已經(jīng)基本平穩(wěn),故最大迭代次數(shù)定為30次。LM算法誤差許可值設(shè)為10-6,阻尼因子μ0=0.001,調(diào)整系數(shù)β=10。
圖4 改進(jìn)PSO算法適應(yīng)度變化曲線圖Fig.4 Adaptability variation curve of the improved PSOalgorithm
以天津市某糧倉為試驗(yàn)對象,溫度檢測點(diǎn)的設(shè)置按照糧堆1、2.5、4 m的深度分為3層,每層設(shè)置13個溫度傳感器采集每層的平均溫度。由于糧倉內(nèi)體積較大且傳熱較慢,因此對糧堆進(jìn)行空間劃分,按照橫向通風(fēng)的通風(fēng)方向?qū)⒓Z堆劃分為3層截面,再對劃分的截面進(jìn)行預(yù)測研究。其中第3層截面靠近通風(fēng)口,第1層截面離通風(fēng)口最遠(yuǎn)。在冬季通風(fēng)作業(yè)時每隔1 h分別采集倉內(nèi)濕度、倉內(nèi)溫度、外部環(huán)境溫度、外部環(huán)境濕度、通風(fēng)口風(fēng)速大小、通風(fēng)口溫度、通風(fēng)口濕度的數(shù)據(jù),共采集360組數(shù)據(jù)。試驗(yàn)中按照時間序列順序選取前260組數(shù)據(jù)在訓(xùn)練時使用,剩余100組用于測試。
不同單位的數(shù)據(jù)會對結(jié)果產(chǎn)生影響,因此需要對這些數(shù)據(jù)進(jìn)行處理,使得樣本數(shù)據(jù)映射到[0,1]之間,歸一化公式為:
式中:xi為采集的樣本數(shù)據(jù);xmax、xmin分別為采集的樣本數(shù)據(jù)的最大樣本值與最小樣本值。
仿真通過MATLAB實(shí)現(xiàn),為驗(yàn)證改進(jìn)RBF神經(jīng)網(wǎng)絡(luò)預(yù)測模型的優(yōu)越性,仿真搭建PSO-RBF神經(jīng)網(wǎng)絡(luò)預(yù)測模型和PSO-LM-PSO神經(jīng)網(wǎng)絡(luò)預(yù)測模型,仿真后得到結(jié)果如圖5~7所示。
從圖5~7可以直觀看出,相對于PSO優(yōu)化的RBF神經(jīng)網(wǎng)絡(luò)來說,PSO-LM-RBF神經(jīng)網(wǎng)絡(luò)預(yù)測模型的預(yù)測效果更好,更加貼近于糧堆的實(shí)際溫度。
圖5 糧堆截面1溫度預(yù)測效果圖對比Fig.5 Comparison of temperature prediction renderingsof grain pilesection 1
為進(jìn)一步檢驗(yàn)預(yù)測效果,采用均方誤差(MSE)、平均絕對誤差(MAE)、均方根誤差(RMSE)來進(jìn)行比較,其計算公式為:
圖6 糧堆截面2溫度預(yù)測效果圖對比Fig.6 Comparison of temperature prediction renderingsof grain pile section 2
圖7 糧堆截面3溫度預(yù)測效果圖對比Fig.7 Comparison of temperature prediction renderingsof grain pile section 3
經(jīng)計算得到的性能指標(biāo)如表1~3所示。
表1 截面1模型性能指標(biāo)Table 1 Model performance index of section 1
表2 截面2模型性能指標(biāo)Table 2 Model performanceindex of section 2
表3 截面3模型性能指標(biāo)Table 3 Model performanceindex of section 3
由表1~3的對比結(jié)果可知,PSO-LM-RBF預(yù)測模型在糧堆溫度預(yù)測上表現(xiàn)出良好的性能,其MAE、MSE、RMSE的值均小于PSO-RBF神經(jīng)網(wǎng)絡(luò)模型,說明改進(jìn)的RBF神經(jīng)網(wǎng)絡(luò)算法能夠進(jìn)一步提高預(yù)測模型的精確度。
采用改進(jìn)后的RBF神經(jīng)網(wǎng)絡(luò)對糧堆溫度預(yù)測模型進(jìn)行了搭建,通過PSO和LM算法相結(jié)合的方式進(jìn)行了網(wǎng)絡(luò)的優(yōu)化,兩種算法結(jié)合達(dá)到了理想的效果。通過試驗(yàn)結(jié)果可知,改進(jìn)后的RBF神經(jīng)網(wǎng)絡(luò)預(yù)測模型的預(yù)測精確度更高,效果更好,在糧情監(jiān)控方面有一定的參考價值。