王傳旭, 王康, 陳林, 李學(xué), 張紅偉
(安徽大學(xué)電子信息工程學(xué)院, 計(jì)算智能與信號(hào)處理教育部重點(diǎn)實(shí)驗(yàn)室, 合肥 230039)
我國(guó)糧食年產(chǎn)量增長(zhǎng)迅速,但是糧食儲(chǔ)藏過程中的損耗也不容忽視,對(duì)糧倉(cāng)內(nèi)糧堆溫度的準(zhǔn)確把握是保證儲(chǔ)糧安全的前提。一旦糧堆發(fā)生小部分發(fā)熱現(xiàn)象,若不及時(shí)處理就會(huì)造成糧倉(cāng)內(nèi)部濕熱環(huán)境劇烈變化、糧堆出現(xiàn)結(jié)露、演化成霉變,從而對(duì)儲(chǔ)備的糧食造成重大損失[1]。因此,準(zhǔn)確掌握糧堆溫度分布、合理分析預(yù)測(cè)糧堆溫度變化趨勢(shì)是保障儲(chǔ)糧安全狀態(tài)的重要措施。為了合理預(yù)測(cè)糧溫信息,學(xué)者們基于數(shù)值分析進(jìn)行溫度場(chǎng)建模,如Gastón等[2]依據(jù)糧食水分等溫吸附方程和熱質(zhì)局部平衡原理,視糧堆為多孔介質(zhì),建立了糧堆熱濕耦合模型;尹君等[3-5]對(duì)糧堆進(jìn)行多場(chǎng)耦合并建立了仿真圖像分析模型,成功復(fù)現(xiàn)糧堆在冬末春初和夏季的溫度場(chǎng)分布狀況,準(zhǔn)確預(yù)測(cè)了糧堆可能結(jié)露的位置?;跀?shù)值分析建立的溫度場(chǎng)模型雖然較為精確,但需要專門的軟件進(jìn)行數(shù)值模擬來建立數(shù)學(xué)模型,計(jì)算量大,難以滿足工程應(yīng)用需求,因此,基于糧情大數(shù)據(jù)進(jìn)行數(shù)據(jù)分析的方式被逐漸應(yīng)用于糧堆溫度的預(yù)測(cè)[6-7]。沈兵[8]利用BP神經(jīng)網(wǎng)絡(luò)來預(yù)測(cè)儲(chǔ)糧安全。Duan等[9]通過分析糧堆的大量歷史數(shù)據(jù)與相應(yīng)天氣預(yù)報(bào)數(shù)據(jù)之間的相關(guān)性,采用支持向量回歸方法基于天氣數(shù)據(jù)來預(yù)測(cè)谷物堆的平均溫度。
對(duì)比于溫度場(chǎng)建模方法,數(shù)據(jù)分析能夠較為簡(jiǎn)易地對(duì)單點(diǎn)溫度或平均溫度進(jìn)行預(yù)測(cè),但對(duì)于復(fù)雜的倉(cāng)儲(chǔ)環(huán)境,預(yù)測(cè)結(jié)果不足以表現(xiàn)出整個(gè)糧倉(cāng)內(nèi)部溫度的變化趨勢(shì),很難預(yù)測(cè)到倉(cāng)中出現(xiàn)局部溫度異常的情況,導(dǎo)致理論預(yù)測(cè)與實(shí)際情況偏差較大。為此,本文擬結(jié)合上述兩種方法的優(yōu)勢(shì),采用糧倉(cāng)內(nèi)已有監(jiān)測(cè)點(diǎn)的溫度及空時(shí)數(shù)據(jù)進(jìn)行溫度場(chǎng)預(yù)測(cè),設(shè)計(jì)溫度場(chǎng)預(yù)測(cè)模型。通過該模型對(duì)倉(cāng)內(nèi)多個(gè)監(jiān)測(cè)點(diǎn)測(cè)溫?cái)?shù)據(jù)進(jìn)行時(shí)序上的預(yù)測(cè),得到倉(cāng)內(nèi)離散的溫度預(yù)測(cè)值,再利用預(yù)測(cè)出的溫度值進(jìn)行空間上的插值估計(jì)建立倉(cāng)內(nèi)的預(yù)測(cè)溫度場(chǎng),以期為各種倉(cāng)儲(chǔ)過程中糧食溫度預(yù)測(cè)提供基礎(chǔ),確保糧食安全。
本文利用分布式糧倉(cāng)測(cè)控系統(tǒng)中各監(jiān)測(cè)點(diǎn)的歷史數(shù)據(jù)對(duì)糧倉(cāng)內(nèi)溫度進(jìn)行空時(shí)分析。首先對(duì)糧倉(cāng)進(jìn)行空間重建,將每個(gè)溫度點(diǎn)的數(shù)據(jù)對(duì)應(yīng)到糧倉(cāng)的各個(gè)位置,以現(xiàn)場(chǎng)的電纜排布為標(biāo)準(zhǔn),以a、b、c代表糧倉(cāng)的行、列、層,對(duì)溫度數(shù)據(jù)進(jìn)行時(shí)序上預(yù)測(cè),然后再進(jìn)行空間上的插值估計(jì)。模型公式如式(1)所示。
(1)
式中,Zt+1(ε)為糧倉(cāng)空間插值點(diǎn)的預(yù)估溫度 ,ε為空間的不同位置;Zt+1(εi)為已知位置,即傳感器所在位置的預(yù)測(cè)溫度值,εi為傳感器位置,以行列層信息(a,b,c)確定;λi為溫度場(chǎng)的數(shù)值計(jì)算中已知位置的權(quán)重系數(shù);Zt-j(εi+d)為糧倉(cāng)中不同位置傳感器的歷史時(shí)間點(diǎn)數(shù)據(jù),D為近鄰傳感器的個(gè)數(shù),J為歷史數(shù)據(jù)的時(shí)間長(zhǎng)度;φjd為溫度點(diǎn)預(yù)測(cè)中不同位置不同時(shí)刻對(duì)應(yīng)的權(quán)重系數(shù),f(x)代表一種非線性組合。
本文將BP神經(jīng)網(wǎng)絡(luò)和地質(zhì)學(xué)中的Kringing插值方法[10-11]相結(jié)合,實(shí)現(xiàn)式(1)的溫度場(chǎng)預(yù)測(cè)模型,采用BP神經(jīng)網(wǎng)絡(luò)對(duì)離散的溫度點(diǎn)進(jìn)行數(shù)據(jù)分析,完成模型中溫度值預(yù)測(cè)的功能,再使用Kringing插值法將糧倉(cāng)空間劃分成細(xì)小的區(qū)塊進(jìn)行插值,建立溫度場(chǎng)。
1.2.1BP神經(jīng)網(wǎng)絡(luò) BP神經(jīng)網(wǎng)絡(luò)是一種適于非線性模式識(shí)別和分類預(yù)測(cè)的人工神經(jīng)網(wǎng)絡(luò)[12-13],由輸入層、隱含層和輸出層組成。
輸入層的輸入序列為糧堆的溫度數(shù)據(jù)以及濕度數(shù)據(jù)。從數(shù)據(jù)庫(kù)取出的數(shù)據(jù)需要預(yù)處理,再作為神經(jīng)網(wǎng)絡(luò)的輸入序列。首先將溫度點(diǎn)對(duì)應(yīng)到糧倉(cāng)的各個(gè)位置,以現(xiàn)場(chǎng)的電纜排布為標(biāo)準(zhǔn)進(jìn)行數(shù)據(jù)排列,令X(a,b,c)為第a行、b列、c層的溫度點(diǎn)數(shù)據(jù)序列。
X(a,b,c)=[x1(a,b,c),x2(a,b,c),…,xt(a,b,c)]
(2)
式中,X(a,b,c)代表第a行、b列、c層的溫度點(diǎn)數(shù)據(jù),t為當(dāng)前溫度點(diǎn)溫度數(shù)據(jù)的個(gè)數(shù)。
將溫度數(shù)據(jù)處理好后,結(jié)合濕度數(shù)據(jù),進(jìn)行BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練。BP神經(jīng)網(wǎng)絡(luò)的框架如圖1所示。
圖1 BP神經(jīng)網(wǎng)絡(luò)Fig.1 BP neural network
BP神經(jīng)網(wǎng)絡(luò)算法有兩部分:一是信號(hào)由輸入到輸出的正向傳播,二是神經(jīng)網(wǎng)絡(luò)輸出值與期望值的誤差從輸出到輸入的逆向調(diào)節(jié)。在正向傳播過程中,輸入信號(hào)從輸入層輸入,經(jīng)過隱含層,到達(dá)輸出層產(chǎn)生輸出信號(hào)。在輸出層,比較輸出值和期望值,如果其差值不滿足設(shè)定條件,那么這個(gè)誤差就需要逆向傳播去調(diào)節(jié)權(quán)值閾值。在逆向調(diào)節(jié)階段,誤差由輸出端開始逐層向前傳播,對(duì)隱含層到輸出層的權(quán)值和閾值、輸入層到隱含層的權(quán)值和閾值進(jìn)行調(diào)節(jié)。神經(jīng)網(wǎng)絡(luò)的訓(xùn)練具體步驟如下所示。
①信號(hào)正向傳播。
假設(shè)輸入層、隱含層、輸出層的節(jié)點(diǎn)個(gè)數(shù)分別為n、l、m,隱含層的輸出Hj如式(3)所示。
(3)
式中,xi為經(jīng)過預(yù)處理之后的溫度序列,ωij為輸入層到隱含層的權(quán)重,αj為輸入層到隱含層的偏置,g(x)為激勵(lì)函數(shù)。
輸出層的輸出Ok如式(4)所示。
(4)
式中,ωjk為隱含層到輸出層的權(quán)重;βk為隱含層到輸出層的偏置;ξ為1~10的常數(shù)。
誤差公式E如式(5)所示。
(5)
式中,yk為期望輸出,ok為神經(jīng)網(wǎng)絡(luò)輸出。
②誤差反向傳播。
令ek=yk-ok。隱含層到輸出層的權(quán)值的迭代更新、輸入層到隱含層的權(quán)值迭代更新方法如式(6)所示。
(6)
隱含層到輸出層的偏置迭代更新和輸入層到隱含層的偏置迭代更新方法如式(7)所示。
(7)
(8)
式中,Z(εi)為倉(cāng)內(nèi)實(shí)際溫度傳感器第i個(gè)位置處的溫度預(yù)測(cè)值;ε是預(yù)測(cè)位置;w測(cè)量值數(shù);λi為權(quán)重系數(shù),λi的取值直接決定了待估計(jì)值的精度,由于Kriging插值的依據(jù)是無偏最優(yōu)估計(jì),則λi應(yīng)滿足以下條件。
(9)
取數(shù)據(jù)庫(kù)中一個(gè)倉(cāng)庫(kù)的定時(shí)數(shù)據(jù)作為樣本數(shù)據(jù),對(duì)監(jiān)測(cè)點(diǎn)先進(jìn)行預(yù)處理,結(jié)合空間信息得到每個(gè)溫度點(diǎn)對(duì)應(yīng)的位置,重新排列數(shù)據(jù)作為BP神經(jīng)網(wǎng)絡(luò)中訓(xùn)練集和測(cè)試集,得到訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)以及預(yù)測(cè)的溫度值,進(jìn)行Kriging插值,結(jié)合倉(cāng)庫(kù)實(shí)際信息,得到真實(shí)倉(cāng)房?jī)?nèi)的溫度場(chǎng)預(yù)測(cè)圖。具體實(shí)現(xiàn)流程如圖2所示。
圖2 基于BP神經(jīng)網(wǎng)絡(luò)的糧倉(cāng)空時(shí)溫度場(chǎng)預(yù)測(cè)流程Fig.2 Prediction flow of space-time temperature field of granary based on BP neural network
本文以均方根誤差(RMSE)和平均絕對(duì)百分誤差(MAPE)來檢驗(yàn)?zāi)P途_度,如公式(10)和(11)所示。
(10)
(11)
式中,N為樣本個(gè)數(shù),x(εi)為實(shí)際溫度值,Z(εi)為溫度場(chǎng)預(yù)測(cè)圖中對(duì)應(yīng)位置的預(yù)測(cè)值。
在糧情數(shù)據(jù)庫(kù)中取某個(gè)糧情用戶下的一個(gè)倉(cāng)進(jìn)行溫度場(chǎng)預(yù)測(cè),數(shù)據(jù)范圍為最近一年的定時(shí)數(shù)據(jù),去除無效數(shù)據(jù)后,共計(jì)720條數(shù)據(jù)。BP 神經(jīng)網(wǎng)絡(luò)設(shè)定最大訓(xùn)練次數(shù)為5 000次,學(xué)習(xí)率為0.05,訓(xùn)練要求精度為10-3。訓(xùn)練集與測(cè)試集比例為19∶1。Kriging插值半變異函數(shù)選取球形函數(shù)。該倉(cāng)庫(kù)為7行6列4層。
根據(jù)各個(gè)溫度點(diǎn)位置尋找近鄰點(diǎn),取當(dāng)前溫度點(diǎn)相鄰的溫度點(diǎn)作為近鄰點(diǎn)。如第一行第一列第二層的溫度點(diǎn)(1,1,2),其近鄰點(diǎn)一共有四個(gè)(1,1,1)(1,1,3)(2,1,2)(1,2,1)。這說明該溫度點(diǎn)位于糧倉(cāng)長(zhǎng)方體空間的外層棱地方,屬于外層溫度點(diǎn),受外溫外濕的影響較大,所以在訓(xùn)練時(shí),其神經(jīng)網(wǎng)絡(luò)輸入序列包括幾個(gè)溫度點(diǎn)的數(shù)據(jù)以及大氣數(shù)據(jù)。再如溫度點(diǎn)(4,3,2),其近鄰點(diǎn)一共有六個(gè)(4,3,1)(4,3,3)(4,2,2)(4,4,2)(3,3,2)(5,3,2)。這說明該溫度點(diǎn)位于糧倉(cāng)長(zhǎng)方體空間的內(nèi)部,屬于“內(nèi)芯”溫度點(diǎn),受倉(cāng)外溫度和濕度的影響較小,其溫度波動(dòng)除自身變化外還與周圍空間糧食的熱量傳輸相關(guān),所以在訓(xùn)練時(shí),其神經(jīng)網(wǎng)絡(luò)輸入序列只包括幾個(gè)溫度點(diǎn)的數(shù)據(jù)即可。
運(yùn)用BP 神經(jīng)網(wǎng)絡(luò)方法對(duì)數(shù)據(jù)進(jìn)行分析處理,設(shè)定訓(xùn)練周期以及精度,對(duì)訓(xùn)練集進(jìn)行訓(xùn)練,用測(cè)試集進(jìn)行測(cè)試,取糧倉(cāng)中某個(gè)點(diǎn)的訓(xùn)練結(jié)果進(jìn)行展示,結(jié)果如圖3所示,從倉(cāng)內(nèi)某點(diǎn)的溫度預(yù)測(cè)對(duì)比圖可以看出,測(cè)試集測(cè)試結(jié)果良好,預(yù)測(cè)的溫度變化趨勢(shì)與實(shí)際一致,誤差很小。
圖3 坐標(biāo)(1,1,1)的溫度預(yù)測(cè)對(duì)比Fig.3 Comparison of temperature predictions at coordinates (1,1,1)
選取相應(yīng)平面的歷史數(shù)據(jù)經(jīng)過BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)后,得出平面中不同位置的溫度點(diǎn)預(yù)測(cè)值,得到其平均絕對(duì)百分誤差為1.253 5%,均方根誤差為0.106 0。
從表1可以看出,整個(gè)平面各監(jiān)測(cè)點(diǎn)的溫度預(yù)測(cè)效果也是良好的。
表1 第一行電纜各監(jiān)測(cè)點(diǎn)實(shí)際溫度與預(yù)測(cè)溫度的對(duì)比Table 1 Comparison of actual temperature and predicted temperature of each monitoring point of the first row of cables (℃)
2.2.1溫度場(chǎng)云圖分析 在得出當(dāng)前平面的溫度預(yù)測(cè)值后,結(jié)合實(shí)際的倉(cāng)庫(kù)信息,將溫度點(diǎn)的空間分布還原到實(shí)際場(chǎng)景中,并根據(jù)溫度點(diǎn)的預(yù)測(cè)值進(jìn)行Kriging插值,得出該平面的溫度場(chǎng)分布。本倉(cāng)庫(kù)長(zhǎng)40 m,寬35 m。行列之間的間距為5 m,最外層電纜距四周墻壁距離為2.5 m;層間間距為1.5 m,最頂層測(cè)溫點(diǎn)距頂層間距為0.75 m。測(cè)溫點(diǎn)自上而下排布,截面上的坐標(biāo)(1,1)對(duì)應(yīng)的就是實(shí)際倉(cāng)庫(kù)截面圖中的(0.75,5.25),以此類推進(jìn)行繪圖,圖4為實(shí)際溫度場(chǎng)和預(yù)測(cè)溫度場(chǎng)對(duì)比,可以看出,不同層面的溫度基本一致,表明預(yù)測(cè)結(jié)果準(zhǔn)確度高。
圖4 實(shí)際溫度場(chǎng)和預(yù)測(cè)溫度場(chǎng)對(duì)比Fig.4 Comparison between actual temperature field and predicted temperature field
2.2.2溫度場(chǎng)預(yù)測(cè)精度分析 由于預(yù)測(cè)出的溫度場(chǎng)和預(yù)測(cè)出的點(diǎn)屬不同維度,采用極限逼近方法進(jìn)行比較,即留M法,留出M個(gè)已知點(diǎn)的位置做空白處,用剩下的(N-M)個(gè)已知點(diǎn)溫度去估計(jì)M個(gè)未知點(diǎn),最后逼近單點(diǎn)估計(jì)的效果,由平均絕對(duì)百分誤差和均方根誤差衡量,實(shí)驗(yàn)結(jié)果如表2所示。
表2 “留M法”驗(yàn)證效果對(duì)比Table 2 Comparison of the effect of verification by “retain M method”
從表2可以看出, M值越大,平均絕對(duì)百分誤差和均方根誤差越大,對(duì)未知點(diǎn)估計(jì)的準(zhǔn)確度就越低。M值越大代表已知點(diǎn)的數(shù)目越小,已知點(diǎn)的數(shù)目越小,預(yù)估效果越差,當(dāng)已知點(diǎn)為1時(shí),其預(yù)估效果必定比(N-1)個(gè)已知點(diǎn)條件下的預(yù)估效果差。因此,本模型的溫度場(chǎng)預(yù)測(cè)方式比單點(diǎn)溫度預(yù)測(cè)方式效果更好。
在科學(xué)儲(chǔ)糧背景下,儲(chǔ)藏過程中糧食溫度預(yù)測(cè)研究尤為重要。目前,多數(shù)學(xué)者以數(shù)值分析方式結(jié)合熱力學(xué)、流體力學(xué)等專業(yè)學(xué)科知識(shí)進(jìn)行溫度場(chǎng)建模,能夠利用模型精確反映糧堆的溫度分布以及變化規(guī)律,但是其建模過程過于專業(yè)化,難以達(dá)到實(shí)際工程的需求。對(duì)比于溫度場(chǎng)建模分析方法,數(shù)據(jù)分析是挖掘已有的糧堆監(jiān)測(cè)數(shù)據(jù)自身所體現(xiàn)的規(guī)律,對(duì)糧堆單個(gè)測(cè)量點(diǎn)溫度或者均溫進(jìn)行預(yù)測(cè),實(shí)現(xiàn)過程較為簡(jiǎn)易,但是這種預(yù)測(cè)單點(diǎn)溫度或均溫的方式無法反映糧倉(cāng)內(nèi)的溫度分布詳情,無法掌握糧堆各處的的溫度變化。
本研究基于數(shù)據(jù)分析預(yù)測(cè)溫度,并采用地質(zhì)學(xué)中的Kriging插值法對(duì)糧倉(cāng)內(nèi)部空間進(jìn)行溫度插值,建立溫度場(chǎng)。該方法相較于傳統(tǒng)的數(shù)值分析建模方式更加簡(jiǎn)易可行,實(shí)現(xiàn)復(fù)雜度低,易通過編程語(yǔ)言實(shí)現(xiàn),相應(yīng)的功能模塊能獨(dú)立實(shí)現(xiàn),可嵌入到實(shí)際的糧情測(cè)控系統(tǒng),使預(yù)測(cè)更為便捷。相較于單點(diǎn)溫度或均溫的預(yù)測(cè)方式,能夠展現(xiàn)出糧倉(cāng)溫度變化的整體趨勢(shì),更為細(xì)致地反映出糧倉(cāng)糧堆內(nèi)部溫度信息,為可疑點(diǎn)的扦樣準(zhǔn)確度提供了理論依據(jù)。