曾亮,狄飛超,蘭欣,王珊珊
(1.湖北工業(yè)大學(xué)電氣與電子工程學(xué)院,湖北 武漢 430068;2.湖北工業(yè)大學(xué)太陽(yáng)能高效利用及儲(chǔ)能運(yùn)行控制湖北省重點(diǎn)實(shí)驗(yàn)室,湖北 武漢 430068)
風(fēng)能作為一種清潔能源,可以緩解能源短缺、環(huán)境污染和氣候變化等問(wèn)題。風(fēng)能受風(fēng)速、風(fēng)向、氣壓和溫度等自然條件的影響很大,因此風(fēng)力具有間歇性、波動(dòng)性和隨機(jī)性。當(dāng)風(fēng)能大規(guī)模集成到電網(wǎng)中時(shí),給電網(wǎng)的安全和穩(wěn)定運(yùn)行帶來(lái)了巨大挑戰(zhàn)。減少與風(fēng)力發(fā)電相關(guān)的不確定性,對(duì)實(shí)現(xiàn)風(fēng)電場(chǎng)風(fēng)電功率的準(zhǔn)確預(yù)測(cè)具有重大意義[1]。
風(fēng)電功率的預(yù)測(cè)方法主要分為物理法和統(tǒng)計(jì)法[2],[3],這些方法大多基于傳統(tǒng)模型和深度學(xué)習(xí)模型[4]。物理法是基于各種影響因素,包括風(fēng)速、溫度、氣壓等數(shù)據(jù)進(jìn)行風(fēng)電功率預(yù)測(cè),統(tǒng)計(jì)法是根據(jù)歷史風(fēng)電功率數(shù)據(jù)來(lái)進(jìn)行分析與預(yù)測(cè)。常用的傳統(tǒng)模型包括支持向量機(jī)、馬爾可夫過(guò)程等[5],[6]。近幾年應(yīng)用更為廣泛的預(yù)測(cè)模型是貝葉斯神經(jīng)網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)、以及長(zhǎng)短期記憶(LSTM)等深度學(xué)習(xí)模型[7]。文獻(xiàn)[8]利用copula函數(shù)進(jìn)行特征提取,將提取的特征作為L(zhǎng)STM的輸入,建立單一的光伏功率和風(fēng)電功率預(yù)測(cè)模型,但是模型預(yù)測(cè)精度較低。文獻(xiàn)[9]提出了一種基于LSTM-Attention網(wǎng)絡(luò)的短期風(fēng)電功率預(yù)測(cè)方法,利用LSTM進(jìn)行特征提取,同時(shí)引入注意力機(jī)制分析輸入和輸出的相關(guān)性,得到最終的預(yù)測(cè)結(jié)果,但模型的預(yù)測(cè)精度有待進(jìn)一步提升。文獻(xiàn)[10]提出了一種基于VMD-ConvLSTM的風(fēng)電功率預(yù)測(cè)模型,通過(guò)疊加各分量的預(yù)測(cè)值得到最終的預(yù)測(cè)結(jié)果,然而并未對(duì)風(fēng)電功率的預(yù)測(cè)誤差進(jìn)行進(jìn)一步修正。
針對(duì)目前風(fēng)電功率預(yù)測(cè)方法在預(yù)測(cè)精度和誤差修正上的不足,本文提出了一種基于CEEMDCNN-BiGRU-RF模型的短期風(fēng)電功率預(yù)測(cè)模型。首先,利用完全集成經(jīng)驗(yàn)?zāi)B(tài)分解(CEEMD)對(duì)風(fēng)電功率時(shí)間序列進(jìn)行模態(tài)分解;其次,對(duì)分解的各個(gè)風(fēng)電功率時(shí)間序列利用卷積神經(jīng)網(wǎng)絡(luò)(CNN)進(jìn)行特征提??;再次,建立雙向門(mén)控循環(huán)單元(BiGRU)模型對(duì)各個(gè)風(fēng)電功率時(shí)間序列進(jìn)行預(yù)測(cè),疊加各個(gè)分量的預(yù)測(cè)值;最后,對(duì)誤差進(jìn)行進(jìn)一步分析與預(yù)測(cè),利用隨機(jī)森林(RF)進(jìn)行誤差修正,得到最終的風(fēng)電功率預(yù)測(cè)值。
CEEMD是經(jīng)驗(yàn)?zāi)B(tài)分解(EMD)和集成經(jīng)驗(yàn)?zāi)B(tài)分解(EEMD)的改進(jìn),是一種完整的模態(tài)分解技術(shù),能夠完整地將信號(hào)進(jìn)行分解。CEEMD通過(guò)在原始信號(hào)中添加一組正負(fù)相反的白噪聲,實(shí)現(xiàn)既能抑制EMD模態(tài)混疊,又能使得剩余噪聲始終維持在很小的量級(jí)上,進(jìn)而忽略不計(jì),算法主要步驟如下。
①在原始信號(hào)x(t)中加入n組正負(fù)相反的白噪聲m+和m-,構(gòu)成合成信號(hào)p(t)和N(t)。
CNN本質(zhì)上是一個(gè)數(shù)學(xué)模型,它通過(guò)數(shù)據(jù)轉(zhuǎn)換和數(shù)據(jù)降維將原始輸入映射為新的特征。與標(biāo)準(zhǔn)的全連接網(wǎng)絡(luò)不同,CNN具有特殊的網(wǎng)絡(luò)結(jié)構(gòu)。CNN中的層間節(jié)點(diǎn)是本地連接的,且CNN中卷積層和池化層中的連接權(quán)重權(quán)值共享。
CNN的網(wǎng)絡(luò)結(jié)構(gòu)包括1D CNN,2D CNN和3D CNN。其中,1D CNN主要用于序列數(shù)據(jù)處理,2D CNN通常用于圖像和文本識(shí)別,3D CNN主要用于醫(yī)學(xué)圖像和視頻數(shù)據(jù)識(shí)別。1D CNN可以很好地應(yīng)用于時(shí)間序列分析,也可以用于分析周期性信號(hào)數(shù)據(jù),1D CNN的詳細(xì)流程如圖1所示。
圖1 1D CNN流程圖Fig.1 1D CNN flowchart
圖1的左側(cè)是輸入時(shí)間序列數(shù)據(jù),它是一個(gè)多維矩陣,從上到下進(jìn)行卷積。使用濾波器進(jìn)行卷積后,提取的特征維數(shù)為N×1,其中N與輸入數(shù)據(jù)維數(shù)、濾波器大小和步長(zhǎng)有關(guān)。假設(shè)過(guò)濾器的數(shù)量為M,則提取的特征為N×M。
門(mén)控循環(huán)單元(GRU)是循環(huán)神經(jīng)網(wǎng)絡(luò)的一種,是循環(huán)神網(wǎng)絡(luò)(RNN)和LSTM的改進(jìn)。GRU的主要結(jié)構(gòu)為更新門(mén)和重置門(mén),簡(jiǎn)化了模型結(jié)構(gòu)和模型參數(shù),在一定程度上抑制過(guò)擬合。GRU模型的結(jié)構(gòu)如圖2所示。
圖2 GRU模型的結(jié)構(gòu)圖Fig.2 GRU model structure diagram
式中:tanh為雙曲正切激活函數(shù);ot為重置門(mén)計(jì)算的隱藏狀態(tài)。
本文對(duì)GRU模型進(jìn)行改進(jìn),提出BiGRU模型。BiGRU模型包括前向GRU和反向GRU。前向GRU用于獲得輸入特征向量的上信息,并從左到右生成前向隱式狀態(tài)序列;反向GRU則獲得輸入特征向量的下信息,并從右到左生成反向隱式狀態(tài)序列。最后,組合獲得的前向隱式狀態(tài)序列和反向隱式狀態(tài)序列,獲得最后的特征信息。BiGRU模型的具體結(jié)構(gòu)如圖3所示。
圖3 BiGRU模型的結(jié)構(gòu)圖Fig.3 BiGRU model structure diagram
圖中,{h1→h2→hn}為前向GRU生成的隱式狀態(tài)序列,{hn→h2→h1}為反向GRU生成的隱式狀態(tài)序列。
RF是集成模型的一種,屬于Bagging集成方式,與單一模型相比,RF的預(yù)測(cè)效果更為精確。
將CNN與BiGRU相結(jié)合構(gòu)建混合CNNBiGRU模型,以提高風(fēng)電功率的預(yù)測(cè)精度。該模型以多維時(shí)間序列數(shù)據(jù)作為輸入,以多步或單步時(shí)間序列數(shù)據(jù)作為輸出。
利用CNN進(jìn)行特征提取,構(gòu)造了兩個(gè)一維卷積層和兩個(gè)池化層。過(guò)擬合是深度神經(jīng)網(wǎng)絡(luò)(DNN)中的常見(jiàn)現(xiàn)象,利用Dropout層,可以有效抑制過(guò)擬合現(xiàn)象。Dropout是在DNN的訓(xùn)練過(guò)程中,按照一定的概率丟失一定的神經(jīng)元個(gè)數(shù)。為了避免過(guò)擬合,在BiGRU層后添加了一個(gè)Dropout層進(jìn)行預(yù)測(cè),最后連接全連接層(FC),獲得最后的預(yù)測(cè)結(jié)果。CNN-BiGRU混合模型的結(jié)構(gòu)如圖4所示。
圖4 CNN-BiGRU混合模型的結(jié)構(gòu)圖Fig.4 CNN-BiGRU hybrid model structure diagram
建立預(yù)測(cè)模型進(jìn)行風(fēng)電功率的預(yù)測(cè),具體步驟如下:
①對(duì)風(fēng)電功率數(shù)據(jù)集進(jìn)行數(shù)據(jù)預(yù)處理,包括缺失值的補(bǔ)齊、異常點(diǎn)的剔除以及數(shù)據(jù)歸一化;
②對(duì)風(fēng)電功率數(shù)據(jù)集進(jìn)行CEEMD分解,分解成多個(gè)IMF分量和一個(gè)殘余分量(Rest);
③對(duì)各個(gè)IMF分量建立CNN-BiGRU預(yù)測(cè)模型,獲得各個(gè)分量的預(yù)測(cè)值,將預(yù)測(cè)值進(jìn)行疊加,獲得預(yù)測(cè)結(jié)果;
④對(duì)誤差進(jìn)行分析,對(duì)誤差建立RF模型,預(yù)測(cè)獲得測(cè)試集的誤差,將預(yù)測(cè)誤差與預(yù)測(cè)結(jié)果組合,獲得最終的風(fēng)電功率預(yù)測(cè)值。
預(yù)測(cè)模型的流程如圖5所示。
圖5 CEEMD-CNN-BiGRU-RF預(yù)測(cè)模型流程圖Fig.5 CEEMD-CNN-BiGRU-RF prediction model flowchart
本文選用的預(yù)測(cè)模型評(píng)價(jià)指標(biāo)為平均絕對(duì)百分比誤差MAPE和R-Square。
式中:yi為第i個(gè)時(shí)刻風(fēng)電功率實(shí)際值;y^i為第i個(gè)時(shí)刻風(fēng)電功率預(yù)測(cè)值;yˉ為m個(gè)風(fēng)電功率值的平均值。
本文選用我國(guó)西北地區(qū)一個(gè)風(fēng)電場(chǎng)的數(shù)據(jù)進(jìn)行短期風(fēng)電功率預(yù)測(cè),選取該風(fēng)電場(chǎng)2019年10月1日0時(shí)-11日0時(shí)共960個(gè)風(fēng)電功率數(shù)據(jù)點(diǎn)進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)數(shù)據(jù)點(diǎn)之間的采樣間隔為15 min,得到的風(fēng)電功率時(shí)間序列如圖6所示。其中,前9 d的數(shù)據(jù)作為訓(xùn)練集,后1 d數(shù)據(jù)點(diǎn)作為測(cè)試集,以前1 h風(fēng)電功率數(shù)據(jù)預(yù)測(cè)下一時(shí)刻的風(fēng)電功率,實(shí)現(xiàn)風(fēng)電功率的滾動(dòng)預(yù)測(cè)。
圖6 風(fēng)電功率時(shí)間序列圖Fig.6 Time series diagram of wind power
由圖6可知,風(fēng)電功率時(shí)間序列具有波動(dòng)性和非平穩(wěn)性。對(duì)原始風(fēng)電功率數(shù)據(jù)集進(jìn)行CEEMD分解,得到的分解結(jié)果如圖7所示。
圖7 CEEMD分解結(jié)果圖Fig.7 CEEMD decomposition result diagram
由圖7可知,CEEMD分解風(fēng)電功率時(shí)間序列的效果較好,且Rest始終維持在很小的量級(jí)上,因此Rest在預(yù)測(cè)時(shí)可以忽略不計(jì)。
對(duì)各個(gè)分量分別建立CNN-BiGRU預(yù)測(cè)模型,通過(guò)網(wǎng)格搜索等調(diào)參方法進(jìn)行模型參數(shù)尋優(yōu)。網(wǎng)格搜索是為每個(gè)需要尋優(yōu)的參數(shù)預(yù)先設(shè)置一個(gè)可選范圍,然后進(jìn)行訓(xùn)練,最后輸出參數(shù)的最優(yōu)取值。具體地,將CNN層和BiGRU層的神經(jīng)元個(gè)數(shù)范圍設(shè)置為常用的[32,64,128],步長(zhǎng)范圍為[0,1,2],padding可選范圍為[same,valid],激活函數(shù)可選范圍為[relu,tanh,sigmoid],Dropout范圍為(0,1)。通過(guò)不斷地參數(shù)調(diào)整、組合與尋優(yōu),得到各個(gè)最優(yōu)參數(shù)分別為CNN層的神經(jīng)元個(gè)數(shù)為32,步長(zhǎng)為1,padding為same,激活函數(shù)為relu函數(shù),BiGRU層的神經(jīng)元個(gè)數(shù)設(shè)置為64,Dropout設(shè)置為0.1,訓(xùn)練時(shí)最小批量大小設(shè)置為32,優(yōu)化器設(shè)置為Adam,對(duì)各個(gè)分量的預(yù)測(cè)值進(jìn)行累加,得到風(fēng)電功率預(yù)測(cè)值。
在進(jìn)行誤差修正時(shí),采用同樣的調(diào)參方法,最終確定RF模型中,決策樹(shù)個(gè)數(shù)為400,最大深度為5。
為驗(yàn)證模型的有效性和預(yù)測(cè)的高精度,本文采用了6種模型進(jìn)行比較和驗(yàn)證。模型1采用支持向量機(jī)(SVR)進(jìn)行預(yù)測(cè),模型2采用CNN進(jìn)行預(yù)測(cè),模型3建立CEEMD-CNN模型對(duì)風(fēng)電功率進(jìn)行預(yù)測(cè),模型4采用CEEMD-CNN-BiLSTM模型進(jìn)行預(yù)測(cè),模型5采用CEEMD-CNN-BiGRU模型進(jìn)行預(yù)測(cè),模型6采用CEEMD-CNN-Bi-GRU-RF模型進(jìn)行預(yù)測(cè),同時(shí)對(duì)誤差進(jìn)行修正,得到最終的風(fēng)電功率預(yù)測(cè)值。
為驗(yàn)證誤差修正的作用,對(duì)誤差修正前后的曲線進(jìn)行作圖,真實(shí)值與模型5的結(jié)果如圖8所示。
圖8 誤差修正前后的曲線圖Fig.8 Curves before and after error correction
由圖8可知,在進(jìn)行誤差修正后,風(fēng)電功率的預(yù)測(cè)值和實(shí)際值的擬合效果更好。
表1列出了2019年10月10-11日6種不同預(yù)測(cè)模型的評(píng)價(jià)指標(biāo)。
表1 6種不同預(yù)測(cè)模型的評(píng)價(jià)指標(biāo)Table 1 Evaluation indicators of 6 different prediction models
圖9為6種模型預(yù)測(cè)結(jié)果與真實(shí)值的曲線圖,圖10為6種模型預(yù)測(cè)誤差絕對(duì)值的分布圖。
圖10 6種模型預(yù)測(cè)誤差絕對(duì)值分布Fig.10 The distribution of the absolute value of the prediction errors of the six models
根據(jù)表1和圖9的預(yù)測(cè)結(jié)果,可以得出:
圖9 6種模型預(yù)測(cè)結(jié)果的曲線圖Fig.9 Curves of prediction results of 6 models
①深層網(wǎng)絡(luò)模型在風(fēng)電功率預(yù)測(cè)中的效果比傳統(tǒng)模型好;
②對(duì)于非平穩(wěn)性和波動(dòng)性的時(shí)間序列,對(duì)其進(jìn)行分解,使得時(shí)間序列趨于平穩(wěn),能夠有效提升模型的預(yù)測(cè)精度,模型的評(píng)價(jià)指標(biāo)MAPE下降到了4.761%,R-Square提升到了0.908;
③利用CNN進(jìn)行深層特征提取,作為模型的輸入,CEEMD-CNN-BiGRU模型能夠有效提高模型的預(yù)測(cè)精度;
④當(dāng)進(jìn)一步對(duì)誤差進(jìn)行修正時(shí),模型的預(yù)測(cè)效果得到進(jìn)一步提升,其中,MAPE為2.090%,RSquare提升到了0.982。
根據(jù)圖10,箱線圖中直線為預(yù)測(cè)誤差絕對(duì)值的中位數(shù),三角為均值,可以看出本文提出的模型的預(yù)測(cè)誤差絕對(duì)值整體比較集中,中位數(shù)和均值最小。
與其他模型相比,本文提出的CEEMDCNN-BiGRU-RF預(yù)測(cè)模型能夠較好地預(yù)測(cè)短期風(fēng)功率的變化趨勢(shì),模型預(yù)測(cè)的精度得到了有效提升,驗(yàn)證了本文提出方法的可行性和有效性。
本文針對(duì)時(shí)間序列的風(fēng)電功率預(yù)測(cè),提出了一種基于CEEMD-CNN-BiGRU-RF的短期風(fēng)電功率預(yù)測(cè)模型,得出以下結(jié)論。
①通過(guò)對(duì)非平穩(wěn)時(shí)間序列采用信號(hào)分解技術(shù),可以調(diào)高模型的預(yù)測(cè)精度和預(yù)測(cè)效率。
②深度學(xué)習(xí)模型在時(shí)間序列上的預(yù)測(cè)效果較優(yōu),混合模型CNN-BiGRU的預(yù)測(cè)效果比單一的深度學(xué)習(xí)模型更好。
③當(dāng)發(fā)現(xiàn)預(yù)測(cè)誤差呈現(xiàn)一定的規(guī)律性后,可以采用適當(dāng)?shù)哪P蛯?duì)誤差進(jìn)行訓(xùn)練與修正,這能夠進(jìn)一步提高模型的預(yù)測(cè)精度。