魯玉軍,周世豪,胡小勇
(浙江理工大學(xué)機械與自動控制學(xué)院,浙江 杭州 310018)
luet_lyj@zstu.edu.cn;1240219752@qq.com;944498378@qq.com
目前,太陽輻射預(yù)測應(yīng)用最多的是光伏發(fā)電領(lǐng)域,為了解決太陽逐時輻射強度的時變性導(dǎo)致的光伏發(fā)電功率不穩(wěn)定問題,需要對太陽輻射強度進行高精度的預(yù)測。我國的太陽輻射觀測站較少,因此建立精確的模型對太陽輻射進行精準預(yù)測非常必要[1-3]。
國內(nèi)外對太陽輻射預(yù)測進行了大量的研究,國內(nèi)學(xué)者主要基于神經(jīng)網(wǎng)絡(luò)的預(yù)測方法進行研究[4]。文獻[5]和文獻[6]利用優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)預(yù)測光伏電站的輸出功率,對太陽輻射預(yù)測具有參考意義,但是單純的BP神經(jīng)網(wǎng)絡(luò)的預(yù)測精度有限。文獻[7]和文獻[8]在引入氣象因素時考慮不夠全面,忽略了大氣壓強等氣象因素對太陽輻射的影響。
在參考國內(nèi)外相關(guān)研究的基礎(chǔ)上,本文結(jié)合小波分解提出了一種基于BP神經(jīng)網(wǎng)絡(luò)和小波神經(jīng)網(wǎng)絡(luò)的混合預(yù)測模型,預(yù)測結(jié)果表明:所提出的混合預(yù)測模型能有效減小太陽輻射預(yù)測的誤差。
太陽輻射強度與氣象因素具有很強的相關(guān)性,選擇合適的氣象參數(shù)能夠提高輻射預(yù)測的精度,本文選取的氣象因素包括太陽輻射強度、溫度、空氣濕度、云量和大氣壓強。網(wǎng)絡(luò)輸入的不同會帶來網(wǎng)絡(luò)輸出的差異,選取對輸出變量具有更強影響的輸入變量能夠提高網(wǎng)絡(luò)的預(yù)測準確度。因此,需要進行輸入輸出相關(guān)性分析,根據(jù)不同輸入變量與輸出變量相關(guān)性的大小確定網(wǎng)絡(luò)輸入的數(shù)目,其計算公式如下[9]。
本文需要對t時刻的太陽輻射強度進行預(yù)測,即確定網(wǎng)絡(luò)的輸出層神經(jīng)元數(shù)目為1,接著將t時刻前5 h的相關(guān)氣象因素作為網(wǎng)絡(luò)輸入變量的待確定項。為了確定與輸出變量相關(guān)性強的輸入變量,將選擇的輸入輸出變量作相關(guān)性分析,利用MATLAB軟件讀取和處理歷史數(shù)據(jù),得到的結(jié)果如表1所示。
表1 輸入輸出變量相關(guān)系數(shù)表Tab.1 Correlation number of input and output variables
由表1可知,t-1時刻與t-2時刻的輻射強度、t-1時刻的溫度、t-1時刻的空氣濕度、t-1時刻與t-2時刻的云量、t-1時刻與t-2時刻的大氣壓強共8 個輸入變量與太陽輻射的相關(guān)系數(shù)大于同氣象因素下其他時刻的相關(guān)系數(shù)。此外,對前一日t時刻與當(dāng)日t時刻的輻射強度做相關(guān)性分析,得出相關(guān)系數(shù)為0.7805,因此將前一天t時刻的輻射強度加入輸入變量之中。最終,確定網(wǎng)絡(luò)輸入層神經(jīng)元數(shù)目為9 個。
BP神經(jīng)網(wǎng)絡(luò)作為常用的經(jīng)典神經(jīng)網(wǎng)絡(luò),其結(jié)構(gòu)包含輸入層、輸出層和隱含層三層網(wǎng)絡(luò),其功能是通過信號前向傳遞和誤差反向傳遞實現(xiàn)的。BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖如圖1所示[10]。
圖1 三層BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.1 Structure diagram of three-layer BP neural network
圖1中,n表示輸入層神經(jīng)元的個數(shù),N表示隱含層神經(jīng)元的個數(shù),m表示輸出層神經(jīng)元的個數(shù)。
BP神經(jīng)網(wǎng)絡(luò)隱含層節(jié)點數(shù)會影響預(yù)測的精度,本文根據(jù)前人研究總結(jié)的公式確定隱含層節(jié)點數(shù)[11]。根據(jù)小節(jié)2內(nèi)容分析,由經(jīng)驗公式確定隱含層神經(jīng)元數(shù)量為4—13 個。為確定具體的神經(jīng)元數(shù)量,以單隱含層結(jié)構(gòu)為研究對象,使用MATLAB軟件進行仿真實驗,對神經(jīng)元匹配結(jié)構(gòu)的預(yù)測均方根誤差結(jié)果進行對比,最終取13 個神經(jīng)元數(shù)量,得出的結(jié)果如表2所示。
表2 BP神經(jīng)網(wǎng)絡(luò)單隱含層結(jié)構(gòu)結(jié)果對比Tab.2 Comparison of single hidden layer structure of BP neural network
其中,均方根誤差(RMSE)定義為式(2)所示。
式(2)中,N為樣本數(shù),為網(wǎng)絡(luò)預(yù)測值,為實際值。
為了提高預(yù)測精度,在隱含層神經(jīng)元個數(shù)取13 個的條件下,比較雙隱含層結(jié)構(gòu)下的預(yù)測結(jié)果,得出的結(jié)果如表3所示。
表3 BP神經(jīng)網(wǎng)絡(luò)雙隱含層結(jié)構(gòu)結(jié)果對比Tab.3 Comparison of double hidden layers structure of BP neural network
隱藏層節(jié)點數(shù)計算,如式(3)所示。
式(3)中,n為輸入層神經(jīng)元的數(shù)量,m為輸出層神經(jīng)元的數(shù)量,a為1—10區(qū)間內(nèi)的不定常數(shù),N為隱含層節(jié)點的數(shù)量。
對比表2和表3中的結(jié)果可知,雙隱含層結(jié)構(gòu)下的預(yù)測精度更高,同時由表3得出第四種網(wǎng)絡(luò)隱含層結(jié)構(gòu)更好,即第一層和第二層隱含層神經(jīng)元數(shù)量分別取7 個和6 個。構(gòu)建BP神經(jīng)網(wǎng)絡(luò)需要選擇合適的訓(xùn)練函數(shù),經(jīng)過實驗對比,trainlm訓(xùn)練函數(shù)的訓(xùn)練速度更快,結(jié)果精度更高,因此更適合本文網(wǎng)絡(luò)的結(jié)構(gòu)和規(guī)模。神經(jīng)元傳遞函數(shù)選擇tansig,訓(xùn)練的最大迭代次數(shù)設(shè)為2,000,目標精度設(shè)為0.01。
小波神經(jīng)網(wǎng)絡(luò)按照組成結(jié)構(gòu)的不同分成緊湊型與松散型。緊湊型小波神經(jīng)網(wǎng)絡(luò)在結(jié)構(gòu)組成上與常規(guī)神經(jīng)網(wǎng)絡(luò)類似,不同的是將神經(jīng)元傳遞函數(shù)替換為滿足條件的小波函數(shù);松散型小波神經(jīng)網(wǎng)絡(luò)是對原始信號時間序列進行小波分解,得到低頻子序列和不同層次的高頻子序列,然后將分解得到的序列作為后續(xù)神經(jīng)網(wǎng)絡(luò)的輸入。緊湊型小波神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示,松散型小波神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示[12]。
圖2 緊湊型小波神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)簡圖Fig.2 Structure diagram of compact wavelet neural network
圖3 松散型小波神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)簡圖Fig.3 Structure diagram of loose wavelet neural network
小波神經(jīng)網(wǎng)絡(luò)一般采用單隱含層的網(wǎng)絡(luò)結(jié)構(gòu),通過實驗仿真尋找最佳的隱含層神經(jīng)元數(shù)量,最終選擇隱含層神經(jīng)元個數(shù)為20 個,隱含層結(jié)構(gòu)結(jié)果對比如表4所示。經(jīng)過仿真對比,基于Morlet小波基函數(shù)的神經(jīng)網(wǎng)絡(luò)更適合當(dāng)前網(wǎng)絡(luò)結(jié)構(gòu),預(yù)測精度更高,因此采用Morlet小波基函數(shù)代替常規(guī)神經(jīng)網(wǎng)絡(luò)的基函數(shù)作為隱含層傳遞函數(shù)。訓(xùn)練的最大迭代次數(shù)設(shè)為10,000,目標精度設(shè)為0.001,訓(xùn)練算法采用梯度下降算法。
表4 小波神經(jīng)網(wǎng)絡(luò)隱含層結(jié)構(gòu)結(jié)果對比Tab.4 Comparison of hidden layer structure of wavelet neural network
小波分解能夠改變時間窗和頻率窗,在處理準周期性和不確定性時間序列信號時非常有效,太陽輻射強度也符合這一特點。因此,可以對太陽輻射強度時間序列進行小波分解,得到包含信號大致輪廓的低頻分量和包含信號具體細節(jié)的高頻分量,低頻分量和高頻分量具有不同的權(quán)重和功能作用,對原信號預(yù)測值的貢獻也不同。因此,可以利用Mallat算法將信號劃分為主體信息和細節(jié)信息,并將劃分后的兩種信息分別作為網(wǎng)絡(luò)輸入構(gòu)建神經(jīng)網(wǎng)絡(luò),可以對太陽輻射強度進行更加精細的分析[13]。
在函數(shù)空間內(nèi),多分辨率分析采用一系列近似函數(shù)描述函數(shù)。這種方法可以有效地提高數(shù)值計算精度和效率,函數(shù)的三層分解樹如圖4所示[14]。
圖4 三層多分辨率分解樹Fig.4 Three-layer multi-resolution decomposition tree
其中,A表示分解信號得到的低頻分量,D表示分解信號得到的高頻分量。由圖4可知,初始信號與分解后得到的分量的關(guān)系為f=A3+D3+D2+D1。
受緊湊型小波神經(jīng)網(wǎng)絡(luò)和松散型小波神經(jīng)網(wǎng)絡(luò)的啟發(fā),本文考慮到小波分解的特點,提出了基于BP神經(jīng)網(wǎng)絡(luò)和小波神經(jīng)網(wǎng)絡(luò)的混合預(yù)測模型,其主要思想如下:首先對太陽輻射強度時間序列進行小波三層分解,得到低頻分量A3和高頻分量D1、D2、D3;然后將相關(guān)氣象參數(shù)數(shù)據(jù)和分量A3與D1、D2、D3分別作為網(wǎng)絡(luò)的輸入進行訓(xùn)練預(yù)測;最后將四個分量通過訓(xùn)練得到的預(yù)測量進行疊加得到t時刻太陽輻射強度的預(yù)測值。通過實驗結(jié)果比對得出,分量A3對應(yīng)的神經(jīng)網(wǎng)絡(luò)可以選擇緊湊型小波神經(jīng)網(wǎng)絡(luò),而分量D1、D2、D3對應(yīng)的神經(jīng)網(wǎng)絡(luò)可以選擇BP神經(jīng)網(wǎng)絡(luò)。構(gòu)建的混合預(yù)測模型如圖5所示。
圖5 混合預(yù)測模型Fig.5 Mixed prediction model
本文采用的數(shù)據(jù)為杭州地區(qū)2019 年全年太陽輻射強度及相關(guān)氣象數(shù)據(jù),包括太陽輻射強度、溫度、空氣濕度、云量和大氣壓強,數(shù)據(jù)采樣間隔為1 h,全年共8,760 個數(shù)據(jù)。為了對提出的混合預(yù)測模型進行驗證,對于本次實驗的8,760 個數(shù)據(jù)進行處理,其中前355 天的8,520 個數(shù)據(jù)作為網(wǎng)絡(luò)的訓(xùn)練數(shù)據(jù),后10 天的240 個數(shù)據(jù)作為檢驗數(shù)據(jù)。對原始太陽輻射強度時間序列進行小波三層分解,經(jīng)過實驗對比,基于db4函數(shù)分解的結(jié)果更理想,分解后各分量如圖6所示。
圖6 小波三層分解結(jié)果Fig.6 Results of three-layer wavelet decomposition
在確定了網(wǎng)絡(luò)的輸入和輸出后,需要采用數(shù)據(jù)歸一化的方法,避免了原始數(shù)據(jù)絕對值過高導(dǎo)致的“飽和現(xiàn)象”,從而使結(jié)果超出了有效處理范圍。故采取數(shù)據(jù)歸一化的處理方法,將通過相關(guān)性分析確定的輸入因素數(shù)據(jù)歸一化到[0,1]的范圍內(nèi)。
進行歸一化處理后,利用結(jié)構(gòu)優(yōu)化后的BP神經(jīng)對高頻分量進行預(yù)測,并利用結(jié)構(gòu)優(yōu)化后的小波神經(jīng)網(wǎng)絡(luò)分別對低頻分量進行預(yù)測,將各網(wǎng)絡(luò)訓(xùn)練的預(yù)測分量進行疊加,接著對疊加后的數(shù)據(jù)進行反歸一化處理,即可獲得太陽輻射強度的預(yù)測值。最終本文提出的基于BP神經(jīng)網(wǎng)絡(luò)和小波神經(jīng)網(wǎng)絡(luò)的混合模型的預(yù)測效果如圖7所示。
圖7 混合預(yù)測模型預(yù)測效果圖Fig.7 Prediction effect diagram of mixed prediction model
為了觀測提出的混合預(yù)測模型的預(yù)測效果,將本文模型同BP神經(jīng)網(wǎng)絡(luò)和小波神經(jīng)網(wǎng)絡(luò)的預(yù)測效果進行比較,結(jié)果如圖8所示。同時,為了與其他預(yù)測模型進行橫向?qū)Ρ龋瑢ξ墨I[5]和文獻[7]的模型進行復(fù)現(xiàn),并與本文模型進行比較,結(jié)果如圖9所示??梢钥闯?,本文提出的混合預(yù)測模型的預(yù)測曲線與實測值更接近,擬合效果更好。
圖8 預(yù)測效果對比圖Fig.8 Comparison diagram of prediction effects
圖9 橫向模型預(yù)測效果對比圖Fig.9 Comparison diagram of transverse model prediction effects
為了檢驗混合預(yù)測模型的預(yù)測精度,分別計算出上述方法預(yù)測結(jié)果的均方根誤差,結(jié)果如表5所示。對比五種預(yù)測模型的均方根誤差,可看出本文模型的預(yù)測誤差相比其他模型有所降低,進一步說明了本文提出的混合預(yù)測模型的優(yōu)良性。
表5 預(yù)測誤差對比Tab.5 Comparison diagram of prediction errors
本文根據(jù)小波分解的原理構(gòu)建了基于BP神經(jīng)網(wǎng)絡(luò)和小波神經(jīng)網(wǎng)絡(luò)的混合預(yù)測模型。首先,分析了網(wǎng)絡(luò)輸入輸出的相關(guān)性,從而確定了網(wǎng)絡(luò)的輸入項;其次,優(yōu)化了BP神經(jīng)網(wǎng)絡(luò)和小波神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu);再次,對太陽輻射強度歷史序列進行了小波分解,并用優(yōu)化后的小波神經(jīng)網(wǎng)絡(luò)預(yù)測分解得到低頻分量,用優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)預(yù)測分解得到各高頻分量;最后,將所有預(yù)測結(jié)果進行疊加得到太陽輻射強度的預(yù)測值。通過實驗仿真表明:本文提出的基于BP神經(jīng)網(wǎng)絡(luò)和小波神經(jīng)網(wǎng)絡(luò)的混合預(yù)測模型可以減少太陽輻射預(yù)測結(jié)果的誤差。