金子皓,向 玲,李林春,胡愛(ài)軍
(華北電力大學(xué) 機(jī)械工程系,河北 保定 071003)
風(fēng)能是一種儲(chǔ)量豐富的清潔環(huán)保型能源。在經(jīng)過(guò)多年的曲折探索之后,風(fēng)能的利用開(kāi)始進(jìn)入快速發(fā)展的軌道[1,2]。截止到2021年底,全球風(fēng)電裝機(jī)容量達(dá)到840 GW[3],比2020年增加了13%,可滿足全球7%以上的電力需求。
風(fēng)能所具有的間歇性和不穩(wěn)定性[4]是制約風(fēng)電發(fā)展的主要因素。通過(guò)風(fēng)速的高精度預(yù)測(cè)來(lái)提高風(fēng)能入網(wǎng)后電網(wǎng)運(yùn)行的可靠性,成為研究熱點(diǎn)。
目前,常用的風(fēng)速預(yù)測(cè)模型主要包括物理模型、統(tǒng)計(jì)模型、機(jī)器學(xué)習(xí)模型、混合模型。
物理模型根據(jù)大氣物理過(guò)程,使用天氣預(yù)報(bào)模型[5]預(yù)測(cè)風(fēng)速。物理模型不適用于小區(qū)域和短期預(yù)測(cè),并且需要大量計(jì)算資源。
統(tǒng)計(jì)模型基于歷史數(shù)據(jù)預(yù)測(cè)風(fēng)速。例如,隨機(jī)時(shí)間序列法。文獻(xiàn)[6]依據(jù)風(fēng)速的特殊性質(zhì)將ARIMA應(yīng)用于日前風(fēng)速預(yù)測(cè)。統(tǒng)計(jì)模型不能準(zhǔn)確地預(yù)測(cè)非線性風(fēng)速序列。
機(jī)器學(xué)習(xí)模型包括神經(jīng)網(wǎng)絡(luò)(Artificial neural network,ANN)、支持向量機(jī)(Support vector machines,SVM)等。文獻(xiàn)[7]基于 ANN 進(jìn)行了超前1 h的風(fēng)速預(yù)測(cè)。文獻(xiàn)[8]基于SVM結(jié)合蝙蝠優(yōu)化算法進(jìn)行了短期風(fēng)速預(yù)測(cè)。機(jī)器學(xué)習(xí)模型預(yù)測(cè)方法適用范圍廣,但在預(yù)測(cè)精度方面并不理想,應(yīng)用時(shí)需要考慮結(jié)合其他技術(shù)。
混合模型,即為結(jié)合數(shù)據(jù)預(yù)處理與機(jī)器學(xué)習(xí)的預(yù)測(cè)模型。文獻(xiàn)[9]利用經(jīng)驗(yàn)?zāi)B(tài)分解(Empirical mode decomposition,EMD)來(lái)降低風(fēng)速序的不穩(wěn)定性,建立了最小二乘支持向量機(jī)預(yù)測(cè)模型,取得了較好的預(yù)測(cè)效果。但是,EMD分解數(shù)據(jù)時(shí)會(huì)產(chǎn)生模態(tài)混疊的問(wèn)題,導(dǎo)致預(yù)測(cè)準(zhǔn)確性降低。文獻(xiàn)[10]基于集合經(jīng)驗(yàn)?zāi)B(tài)分解(Ensemble empirical mode decomposition,EEMD)較好地解決了模態(tài)混疊問(wèn)題,但在重構(gòu)時(shí)分量殘留噪聲較大[11]。文獻(xiàn)[12]提出的基于互補(bǔ)自適應(yīng)噪聲的完備集合經(jīng)驗(yàn)?zāi)B(tài)分解(Complete EEMD with adaptive noise,CEEMDAN)方法可以有效地提高信號(hào)分解效率。文獻(xiàn)[13]提出基于變分模態(tài)分解與核極限學(xué)習(xí)機(jī)結(jié)合的風(fēng)速多步預(yù)測(cè)模型。該模型具有良好的運(yùn)行效率。
近年來(lái),深度學(xué)習(xí)算法的發(fā)展速度較快。深度學(xué)習(xí)模型在數(shù)據(jù)提取、處理方面具有優(yōu)勢(shì)。文獻(xiàn)[14]提出一種基于門(mén)控單元網(wǎng)絡(luò)(Gate recurrent unit,GRU)的短期負(fù)荷預(yù)測(cè)模型;通過(guò)GRU神經(jīng)網(wǎng)絡(luò)對(duì)歷史負(fù)荷序列數(shù)據(jù)進(jìn)行動(dòng)態(tài)建模。應(yīng)用此方法可對(duì)負(fù)荷預(yù)測(cè)模型中不同特征進(jìn)行分析處理。文獻(xiàn)[15]提出了基于完備總體經(jīng)驗(yàn)?zāi)B(tài)分解–小波變換–卷積神經(jīng)網(wǎng)絡(luò)的混合預(yù)測(cè)模型。該模型中的卷積神經(jīng)網(wǎng)絡(luò)可以學(xué)習(xí)出風(fēng)速對(duì)應(yīng)的溫度、氣壓、風(fēng)向等屬性特征,進(jìn)而有效降低風(fēng)速預(yù)測(cè)誤差。
綜合考慮以上研究成果,本文提出組合風(fēng)速預(yù)測(cè)方法(以下簡(jiǎn)稱,CEEMDAN-SE-BiGRU):首先,采用CEEMDAN對(duì)原始風(fēng)速序列進(jìn)行分解;然后,采用樣本熵(Sample entropy,SE)對(duì)每個(gè)風(fēng)速序列進(jìn)行復(fù)雜度評(píng)估,將復(fù)雜度相近的序列重新組合得到新的序列;在GRU神經(jīng)網(wǎng)絡(luò)中引入BiGRU模型,充分考慮前后數(shù)據(jù)變化的規(guī)律并進(jìn)行雙向訓(xùn)練;將各新序列輸入到BiGRU模型中進(jìn)行預(yù)測(cè),結(jié)果疊加即得最終預(yù)測(cè)結(jié)果。
早期的EMD方法具有較強(qiáng)的自適應(yīng)性,能夠有效地分解時(shí)間序列;但是,算法在運(yùn)算過(guò)程中容易出現(xiàn)模態(tài)混疊現(xiàn)象。
EEMD分解方法的思想是:在原始信號(hào)中加入白噪聲[16],使極值點(diǎn)分布更均衡;最終分量在EMD的基礎(chǔ)上進(jìn)行集成平均而得。但是,這種方法具有計(jì)算量大且重構(gòu)時(shí)殘留噪音大的缺陷。
CEEMDAN是EEMD的改進(jìn)算法。該算法通過(guò)添加有限次數(shù)的自適應(yīng)白噪聲,解決了集合平均次數(shù)限制下的重構(gòu)誤差較大的問(wèn)題[17]。該方法分解的風(fēng)速序列較為平穩(wěn),描述如下。
(1)使用x(t)表示原始風(fēng)速序列。對(duì)風(fēng)速信號(hào)添加m次均值為0的高斯白噪聲,構(gòu)造m次待分解序列,即:
式中:i=1,2,…,m;εk為高斯白噪聲去權(quán)值系數(shù);χi(t)為第i次實(shí)驗(yàn)中增加的具有標(biāo)準(zhǔn)正態(tài)分布的白噪聲序列。
(2)對(duì)xi(t)進(jìn)行EMD分解,得到第 1 個(gè)模態(tài)分量IMF1:
式中:IMFi(t)為CEEMDAN產(chǎn)生的第i個(gè)模態(tài)分量。
(3)在i=1時(shí)產(chǎn)生第1個(gè)殘差余量信號(hào),即:
式中:R1(t)為剩余分量。
對(duì)R1(t)添加白噪聲,然后進(jìn)行分解,計(jì)算得到第2個(gè)模態(tài)分量:
式中:Ek(*)為序列分解的第k階模態(tài)分量;E1(χi(t))為χi(t)分解的第1階模態(tài)分量。
(4)對(duì)于其他階段,即k=2,3,···,K,計(jì)算第k個(gè)殘余分量,即有:
循環(huán)利用EMD對(duì)原始序列進(jìn)行分解,計(jì)算得到第k+1個(gè)模態(tài)分量,即:
(5)重復(fù)執(zhí)行步驟(4),直到信號(hào)不能再分解。最終的余量信號(hào)為:
(6)原始風(fēng)速序列x(t)被分解為k個(gè)模態(tài)分量,可表示為:
CEEMDAN有效抑制了模態(tài)混疊現(xiàn)象的發(fā)生,且可減小重構(gòu)誤差。
近似熵可以度量時(shí)間序列復(fù)雜度。SE理論[18]由Richman提出,其精度比近似熵更高。
SE表示為SampEn(N,m,r),其中N為輸入數(shù)據(jù)的長(zhǎng)度,r為相似容限,m為維數(shù)。序列復(fù)雜度與樣本熵大小成正比。
針對(duì)等時(shí)間間隔采樣,長(zhǎng)度為N時(shí)間序列x(1),x(2),···,x(N),具體算法如下:
(1)將序列x(N)按順序重構(gòu)為m維序列x(1),x(2),···,x(t–m+1),其中Xm(i)=[x(i),x(i+1),···,x(i+m- 1 )]。
(2)當(dāng)1 ≤i≤N-m-1 ,i≠j時(shí),時(shí)間序列中絕對(duì)值相差最大距離為D[Xm(i),Xm(j)]=max(|x(i+k)–x(j+k)|),k=0,1,···,m–1。
(3)計(jì)算滿足r≥D[Xm(i),Xm(j)]的向量個(gè)數(shù)與N–m的比值,即:
(4)維度m每增加1,重復(fù)步驟(1)—(3),于是可以求出Bm+1(r),則SE定義為:
(5)在實(shí)際應(yīng)用中,SE簡(jiǎn)化為:
在應(yīng)用中,m一般取1或2;閾值r取原始數(shù)據(jù)標(biāo)準(zhǔn)差的0.10~0.25倍。
循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent neural network,RNN)是經(jīng)典的神經(jīng)網(wǎng)絡(luò)之一。由于RNN隱藏層在不同樣本序列的同一個(gè)神經(jīng)元之間存在記憶傳遞[19,20],因此RNN在處理時(shí)間序列的線性回歸問(wèn)題具有優(yōu)勢(shì):即,可以將前一刻神經(jīng)元受到的影響輸送到下一次學(xué)習(xí)中。但是,傳統(tǒng)的RNN在進(jìn)行反向傳播時(shí),如果輸入數(shù)據(jù)的序列比較長(zhǎng),就會(huì)出現(xiàn)梯度消失、梯度爆炸等問(wèn)題。
長(zhǎng)短期記憶網(wǎng)絡(luò)(Long short term memory,LSTM)和GRU的優(yōu)勢(shì),在于其通過(guò)“門(mén)”結(jié)構(gòu)極大地避免梯度消失問(wèn)題,可以有效地分析長(zhǎng)期依賴關(guān)系。LSTM包含3個(gè)門(mén)結(jié)構(gòu):遺忘門(mén),輸入門(mén)、輸出門(mén)[21]。GRU在LSTM的基礎(chǔ)上減少了單元中門(mén)的個(gè)數(shù),化簡(jiǎn)了單元復(fù)雜度,因此其運(yùn)行效果要好于LSTM。
GRU是由更新門(mén)和重置門(mén)構(gòu)成,其內(nèi)部結(jié)構(gòu)如圖1所示。
圖1 GRU結(jié)構(gòu)Fig. 1 GRU structure
圖1中,zt和rt為更新門(mén)、重置門(mén),ht–1為上一時(shí)刻的輸入,ht為輸出。GRU神經(jīng)網(wǎng)絡(luò)輸出值ht的計(jì)算過(guò)程為:
式中:zt為更新門(mén),即保留上一時(shí)刻神經(jīng)元傳遞的信息;xt為t時(shí)刻的輸入;σ為sigmoid激活函數(shù);Wz、Wr分別為更新門(mén)和重置門(mén)的權(quán)重;為t時(shí)刻待定輸出狀態(tài);ht為t時(shí)刻輸出門(mén);rt為重置門(mén),其取值為[0,1]。當(dāng)rt=0時(shí),上一時(shí)刻傳遞的信息全部被遺忘。
在時(shí)間序列中,為充分考慮數(shù)據(jù)正反向的信息規(guī)律,BiGRU由正向傳播和反向傳播的雙向循環(huán)神經(jīng)網(wǎng)絡(luò)構(gòu)成[22]。與單向 GRU相比,BiGRU同時(shí)考慮前后數(shù)據(jù)的變化規(guī)律,且前向隱藏層和后向隱藏層之間沒(méi)有聯(lián)系,所以 BiGRU可以更好地挖掘數(shù)據(jù)的時(shí)序特征。BiGRU網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
圖2 BiGRU神經(jīng)網(wǎng)絡(luò)Fig. 2 BiGRU network structure
由圖2知,BiGRU由輸入層、前向隱藏層、后向隱藏層和輸出層構(gòu)成。BiGRU的網(wǎng)結(jié)構(gòu)表達(dá)式如下。
組合預(yù)測(cè)模型通常比單個(gè)預(yù)測(cè)模型有更好的預(yù)測(cè)結(jié)果。本文采用信號(hào)分解算法和深度學(xué)習(xí)算法相結(jié)合方式構(gòu)建組合模型。
首先,通過(guò)信號(hào)分解算法把風(fēng)速序列分解成一系列的穩(wěn)定分量;然后,通過(guò)深度學(xué)習(xí)算法對(duì)每個(gè)分量分別進(jìn)行預(yù)測(cè);最后,把預(yù)測(cè)的結(jié)果重構(gòu),得到最終的預(yù)測(cè)結(jié)果。
單向神經(jīng)網(wǎng)絡(luò)的信息依據(jù)時(shí)間序列由前至后單向進(jìn)行傳播,忽略了反向數(shù)據(jù)變換規(guī)律對(duì)短時(shí)預(yù)測(cè)性能的影響。為進(jìn)一步挖掘數(shù)據(jù)之間的強(qiáng)相關(guān)性,采用BiGRU以兼顧數(shù)據(jù)正反向信息特征。
為驗(yàn)證模型的準(zhǔn)確性,選取以下3種性能指標(biāo)進(jìn)行評(píng)價(jià)。
(1)平均絕對(duì)誤差(Mean absolute error,MAE)。
(2)平均絕對(duì)百分比誤差(Mean absolute percentage error,MAPE)。
(3)均方根誤差(Root mean square error,RMSE)。
選用CEEMDAN-SE-BiGRU組合方法對(duì)超短期風(fēng)速預(yù)測(cè),步驟如下。
(1)使用 CEEMDAN將原始風(fēng)速序列分解成幾個(gè)規(guī)律性更強(qiáng)的IMF和一個(gè)殘差Res,以減小序列的波動(dòng)性和隨機(jī)性。
(2)由于產(chǎn)生的 IMF數(shù)量較多,若直接將所有IMF輸入到BiGRU中則會(huì)增大計(jì)算量,所以使用SE對(duì)復(fù)雜度相近的IMF信號(hào)進(jìn)行組合,作為一個(gè)新的序列。
(3)將組合成的新IMF輸送到BiGRU預(yù)測(cè)模型進(jìn)行預(yù)測(cè),將得出的新子序列進(jìn)行線性疊加,即得到最終的預(yù)測(cè)結(jié)果。
(4)依據(jù)性能指標(biāo),評(píng)判模型的預(yù)測(cè)性能。預(yù)測(cè)流程如圖3所示。
圖3 風(fēng)速預(yù)測(cè)流程Fig. 3 Wind speed forecasting process
本文選取某地區(qū)風(fēng)電場(chǎng)風(fēng)機(jī)的實(shí)測(cè)風(fēng)速數(shù)據(jù)為樣本:每1 min為1個(gè)采樣點(diǎn),一共取得2 000個(gè)采樣點(diǎn);原始風(fēng)速序列如圖4所示。
圖4 原始風(fēng)速序列Fig. 4 Original wind speed sequence
對(duì)原始風(fēng)速序列進(jìn)行CEEMDAN分解,加入500組標(biāo)準(zhǔn)差為0.2的白噪聲信號(hào)。
分解結(jié)果如圖5所示。
圖5 CEEMDAN分解結(jié)果Fig. 5 CEEMDAN decomposition results
由圖5可知,原始風(fēng)速序列被分解為11個(gè)子序列。子序列由高頻向低頻分布,分別為IMF1—IMF10。IMF11為殘差。
分解子序列所需迭代次數(shù)如圖6所示。
圖6 各模態(tài)分量所需迭代次數(shù)Fig. 6 The number of iterations required for each modal component
求解各個(gè)模態(tài)分量的SE。m值取2,r取模態(tài)序列標(biāo)準(zhǔn)差的0.2倍。
計(jì)算各模態(tài)分量的SE值如圖7所示。
圖7 各模態(tài)分量的SE值Fig. 7 TheSE value of each modal component
根據(jù)圖7,將分量SE值分為4組,得到新的子序列,如表1所示。
表1 新子序列組合Tab. 1 New subsequence combination
將各個(gè)子序列分別輸入到 BiGRU模型中進(jìn)行預(yù)測(cè),最后將結(jié)果疊加,即可得到最終的預(yù)測(cè)結(jié)果。
采用Python語(yǔ)言,在Tensorflow框架下實(shí)現(xiàn)本實(shí)驗(yàn)。將新建子序列分別輸入到BiGRU神經(jīng)網(wǎng)絡(luò)中進(jìn)行預(yù)測(cè)。
根據(jù)實(shí)驗(yàn)及經(jīng)驗(yàn),提前設(shè)置 BiGRU參數(shù):batch_size 設(shè)置為32;迭代次數(shù)設(shè)置為100;學(xué)習(xí)率設(shè)為0.01;添加Dropout為0.5,以防止過(guò)擬合;第一層隱藏層節(jié)點(diǎn)數(shù)為100;第二層隱藏層節(jié)點(diǎn)數(shù)為100;激活函數(shù)為tanh;優(yōu)化器選用Adam進(jìn)行全局優(yōu)化。將實(shí)際風(fēng)速的前90%數(shù)據(jù)作為訓(xùn)練集訓(xùn)練神經(jīng)網(wǎng)絡(luò),后10%作為驗(yàn)證集進(jìn)行風(fēng)速預(yù)測(cè)。
將本文模型與 LSTM(模型 1)、GRU(模型 2)、EEMD-SE-LSTM(模型 3)、EEMD-SE-GRU(模型 4)、CEEMD-SE-LSTM(模型 5)、CEEMD-SE-GRU(模型 6)進(jìn)行對(duì)比,結(jié)果如圖8所示。
圖8 各模型風(fēng)速預(yù)測(cè)結(jié)果對(duì)比Fig. 8 Comparison of wind speed prediction results of each model
由圖8可知,單一模型,如LSTM、GRU,在功率數(shù)據(jù)波動(dòng)較大處的預(yù)測(cè)結(jié)果偏差較大。組合模型相比單一預(yù)測(cè)模型對(duì)風(fēng)速數(shù)據(jù)的變化趨勢(shì)捕捉得更為出色,預(yù)測(cè)曲線更平滑;這說(shuō)明,該模型的預(yù)測(cè)精度更高。
各模型誤差分析結(jié)果如圖9所示。由圖9可以看出:組合模型的各項(xiàng)誤差相比單一模型更低;本文提出的組合模型預(yù)測(cè)最佳。
圖9 各模型誤差對(duì)比Fig. 9 Error comparison of each model
各模型的具體誤差如表2所示。
表2 各模型評(píng)價(jià)指標(biāo)比較·Tab. 2 Comparison of evaluation indicators for each modelm/s
由表2計(jì)算得出,本文提出的 CEMMDANSE-BiGRU相比其他模型:MAE值分別減少了58.3%、56.9%、32.4%、16.7%、13.8%、3.8%;MAPE值分別降低了4.27%、4.12%、1.80%、0.15%、0.39%、0.15%;RMSE值分別減少了 58.5%、56.4%、27.7%、24.4%、15.0%、8.1%。
由實(shí)例計(jì)算和誤差對(duì)比結(jié)果可知,組合模型的預(yù)測(cè)效果好于單一模型的預(yù)測(cè)效果;本文提出的CEEMDAN-SE-BiGRU預(yù)測(cè)出效果好于其他6種模型。
本文針對(duì)風(fēng)速預(yù)測(cè),提出了 CEEMDAN-SEBiGRU的組合預(yù)模型。
模型中,CEEMDAN分解法較好地重構(gòu)了原始風(fēng)速序列,解決了 EMD的模態(tài)混疊現(xiàn)象以及EEMD引入白噪聲的問(wèn)題。該組合模型與其他模型在多種預(yù)測(cè)精度評(píng)判指標(biāo)下的對(duì)比結(jié)果顯示,其預(yù)測(cè)誤差最?。贿@表明,該模型具有更好的適應(yīng)性,可以提高超短期風(fēng)速預(yù)測(cè)的準(zhǔn)確率。