蒲嫻怡 畢貴紅 王 凱 高 晗
(昆明理工大學(xué)電力工程學(xué)院 云南 昆明 650500)
風(fēng)力發(fā)電在受到越來越多的重視的同時,它所特有的隨機性、不確定性和間歇性,依舊給電力系統(tǒng)安全穩(wěn)定運行帶來危害。因此,對風(fēng)電功率進行準確預(yù)測變得極為重要。風(fēng)電場風(fēng)能預(yù)測對電力系統(tǒng)的相關(guān)設(shè)備安全、功率平衡及經(jīng)濟調(diào)度具有極其緊要的意義,是風(fēng)電安全并網(wǎng)、設(shè)備防護、高效利用的重要保障措施。風(fēng)電功率預(yù)測技術(shù)也隨著需求和實際情況在逐步改善優(yōu)化[1-3]。
文獻[4]提出一種基于自適應(yīng)噪聲完整集成經(jīng)驗?zāi)B(tài)分解(CEEMDAN)-模糊熵(FE)的核極限學(xué)習(xí)機(KELM)組合預(yù)測的方法,在同等條件下與KELM方法進行對比,顯著地提高了預(yù)測精度。文獻[5]為解決風(fēng)電功率時間序列中的混沌問題, 提出一種基于集成經(jīng)驗?zāi)B(tài)分解(Ensemble Empirical Mode Decomposition,EEMD)-近似熵和回聲狀態(tài)網(wǎng)絡(luò)(ESN)的風(fēng)電功率混沌時間序列組合預(yù)測模型,為風(fēng)電功率短期預(yù)測提供了新的參考。采用某風(fēng)電場的實際功率數(shù)據(jù)進行分析預(yù)測,預(yù)測結(jié)果驗證了所提方法的正確性和有效性。文獻[6]提出一種基于集合經(jīng)驗?zāi)B(tài)分解(EEMD)和深淺層學(xué)習(xí)組合的短期風(fēng)電功率預(yù)測方法,建立 EEMD-SAE-BP預(yù)測模型。即先用EEMD將風(fēng)電功率分解為幾個數(shù)據(jù)變化不太復(fù)雜的分量,用SAE預(yù)測IMF分量中的高頻分量,用BP神經(jīng)網(wǎng)絡(luò)預(yù)測低頻分量,疊加序列的預(yù)測結(jié)果得到最終的預(yù)測結(jié)果,具有較高的實用價值。
為了考慮對輸入變量的選擇且改進EEMD分解時間冗長和BP單一模型的預(yù)測精度低的問題且采用分解集成模型預(yù)測能有效提高預(yù)測精度[7-8],本文提出了一種基于FEEMD分解樣本熵重構(gòu)和BP神經(jīng)網(wǎng)絡(luò)集成的風(fēng)電功率預(yù)測模型。首先把原始風(fēng)電功率數(shù)據(jù)利用FEEMD分解為特征互異的固有模態(tài)函數(shù)(IMF),得到幾個IMF分量和余量,在FEEMD分解過程中采用樣本熵計算各分量的熵值進行重構(gòu),再利用PACF確定輸入變量的長度。通過神經(jīng)網(wǎng)絡(luò)分別對各個分量和余量進行預(yù)測,疊加各分量的預(yù)測結(jié)果即為最終預(yù)測結(jié)果,以降低各IMF分量預(yù)測的計算規(guī)模。在建立BP預(yù)測模型時加入AdaBoost算法選擇加權(quán)后的訓(xùn)練數(shù)據(jù)來代替隨機選取的訓(xùn)練樣本,將得到的多個弱預(yù)測器組成新的強預(yù)測器,提高預(yù)測精度。
實際中的大多數(shù)信號是非穩(wěn)定信號,為此Huang等[9]提出EMD來處理這種非穩(wěn)定的信號,EMD是信號處理上的一個重大突破。但是非穩(wěn)定信號的極值點分布不均勻會在EMD分解的過程中產(chǎn)生嚴重的模態(tài)混疊現(xiàn)象問題。模態(tài)混疊會使臨近的兩個IMF分量波形混疊在一起,無法辨認,致使分解出的IMF分量沒有意義。因此,常鵬等[10-11]提出了一種EMD的改進方法——EEMD,通過在不同的序列中多次添加強度相同的白噪聲,使有缺失的信號得到補充,并且對產(chǎn)生的新信號進行分解,在本質(zhì)上使模態(tài)混疊問題得到了解決。但迭代過程中此方法需要進行多次迭代,對IMF分量的篩選是一個耗時費力的過程,這就導(dǎo)致了這種算法的實時性不好。而且各IMF分量在EEMD分解中都會混入許多的特定尺度下的噪聲成分,如果把某個尺度的IMF分量直接完全濾掉,則有很大的可能會在去除噪聲成分時把一些有用的成分也一起濾掉,會對后續(xù)信號分析的準確性造成一定的影響。
FEEMD[12]是EEMD的快速實現(xiàn)方式,原理與EEMD相同。本文將使用FEEMD的方法來分解,通過減少取樣來降低計算時間,處理速度更快,提高 EEMD 算法執(zhí)行效率。文獻[13]驗證了FEEMD是一種有效的數(shù)據(jù)處理技術(shù),能很好地對信號進行降噪。
本文采用快速集合經(jīng)驗?zāi)B(tài)分解(FEEMD)的方法將一個復(fù)雜的、非平穩(wěn)的時間序列信號X(i)分解成有限個IMF和一個剩余分量R,在保證了有效信號的完整性的前提下去除了信號的噪聲。此方法的具體步驟如下:
(1) 求取時間序列數(shù)據(jù)Xi(t)的極大值與極小值。
(2) 采取適當方法(例如三次樣條插值法)可以獲得上下包絡(luò)線Ui(t)和Li(t),得到下式:
Ui(t)≥Xi(t)≥Li(t)t∈[ta,tb]
(1)
(3) 求出上下包絡(luò)線Xi(t)的均值mi(t):
(2)
(4) 提取出信號的局部細節(jié)信息,即求出Xi(t)與mi(t)的差值:
hi=Xi(t)-mi(t)
(3)
對hi(t)判斷是否滿足如下條件:① 點的個數(shù)與序列過零點的個數(shù)是否相等或相差為1;② 在任意的時刻點,上下包絡(luò)線的平均值是否為0。若滿足以上條件則繼續(xù),否則返回第(1)步。
(5) 計算剩余數(shù)據(jù)ri(t):
ri(t)=Xi(t)-hi(t)
(4)
(6) 重復(fù)進行上述步驟可以獲取N個IMF分量,直到滿足下式時停止分解。
(5)
式中:M為篩選次數(shù);n為樣本數(shù)。
綜上所述,得到原始信號為:
(6)
式中:N為被分解出來的IMF的總個數(shù)。
近似熵[14]可以對一個序列的復(fù)雜性進行度量分析。雖然少量的數(shù)據(jù)就可得到相對穩(wěn)定的數(shù)值,但是近似熵的計算會產(chǎn)生偏差,同時近似熵的一致性較差。所以,Richman等[15]提出了精度更好的樣本熵。樣本熵是一種在近似熵的基礎(chǔ)上改進的時間序列復(fù)雜性的度量方法。與近似熵相比,樣本熵不但具有近似熵的所有優(yōu)點,還具有對數(shù)據(jù)長度的依賴性減小、抗噪聲和干擾能力增強、在大的取值范圍內(nèi)參數(shù)一致性好等特點,更有效避免了統(tǒng)計量的不一致性。
假設(shè)原始數(shù)據(jù)序列為:x(1),x(2),…,x(N),采樣點一共有N個,以下是樣本熵的計算步驟:
(1) 將故障信號維數(shù)設(shè)為m,把原始信號的數(shù)據(jù)組成m維向量,表示為:
xm(i)=[x(i),x(i+1),…,x(i+m+1)]i=1,2,…,N-m+1
(7)
(2) 計算x(i)與x(j)之間的距離:
k=0,1,…,m-1
(8)
(3)設(shè)定閾值為r,求解所有i的平均值:
(9)
(4) 再重構(gòu)一個維數(shù)m+1,重復(fù)步驟(1)-步驟(3),可以得到Bm-1(r)。
(5) 假設(shè)N為有限數(shù)據(jù)值,則故障信號的樣本熵的計算式如下:
(10)
BP神經(jīng)網(wǎng)絡(luò)屬于多層前饋式神經(jīng)網(wǎng)絡(luò),它的基本思想就是根據(jù)梯度下降法不斷更新,訓(xùn)練方式是信號向前傳遞,誤差反向傳播,以最小化的均方誤差為目標不斷修改網(wǎng)絡(luò)直到輸出精度滿足要求。BP神經(jīng)網(wǎng)絡(luò)經(jīng)典的三層拓撲結(jié)構(gòu),由輸入層、隱含層、輸出層構(gòu)成,隱含層介于輸入層和輸出層之間,如圖1所示。其中X1,X2,…,Xp是網(wǎng)絡(luò)輸入層各神經(jīng)元的輸入值,隱含層可以由多層構(gòu)成,Y1、Y2、…、Yq為神經(jīng)網(wǎng)絡(luò)的輸出值。
圖1 BP神經(jīng)網(wǎng)絡(luò)拓撲結(jié)構(gòu)
但標準的BP神經(jīng)網(wǎng)絡(luò)容易造成局部極小而得不到全局最優(yōu)值的結(jié)果。訓(xùn)練次數(shù)多反而使得學(xué)習(xí)效率低,收斂速度慢,出現(xiàn)過擬合問題,使測試誤差上升。針對單一BP神經(jīng)網(wǎng)絡(luò)預(yù)測精度和泛化能力低的缺點,提出基于BP-AdaBoost方法的預(yù)測方法。
AdaBoost算法是經(jīng)典Boosting算法的一種改進形式,經(jīng)過近幾年的改進此算法也被廣泛的應(yīng)用到了預(yù)測問題上[16]。本文主要是通過把BP神經(jīng)網(wǎng)絡(luò)作為弱預(yù)測器從初始訓(xùn)練集中合并多個“弱”預(yù)測器的數(shù)據(jù)輸出以方便產(chǎn)生有效預(yù)測,多次訓(xùn)練通過誤差分析調(diào)整BP神經(jīng)網(wǎng)絡(luò)預(yù)測樣本輸出,通過AdaBoost算法集成得到多個BP神經(jīng)網(wǎng)絡(luò)弱預(yù)測器組成的強預(yù)測器。預(yù)測步驟如下:
(1) 對樣本數(shù)據(jù)進行選擇。從樣本數(shù)據(jù)中選擇m組為訓(xùn)練樣本,n組為測試樣本。
(2) 數(shù)據(jù)進行歸一化處理。由于原始數(shù)據(jù)級不同,如果直接輸入到弱分類器中,數(shù)值大的輸入變量將會對輸出導(dǎo)致較大的影響,而數(shù)值小的輸入變量將會對輸出產(chǎn)生較小的影響。數(shù)據(jù)歸一化處理就是為了使這種不平衡性得到統(tǒng)一。
(3) 初始化數(shù)據(jù)。根據(jù)樣本數(shù)據(jù)的輸入輸出的維數(shù)以及分布權(quán)重確定神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),初始BP神經(jīng)網(wǎng)絡(luò)的權(quán)重和閾值。
(4) 弱預(yù)測器預(yù)測。訓(xùn)練第t個弱預(yù)測器時,用訓(xùn)練數(shù)據(jù)訓(xùn)練BP神經(jīng)網(wǎng)絡(luò)并且預(yù)測訓(xùn)練數(shù)據(jù)的輸出,得到弱預(yù)測器的預(yù)測誤差和et。誤差和et的計算式為:
i=1,2,…,mt=1,2,…,T
(11)
式中:T為弱預(yù)測器的個數(shù),本文中T=10。
(5) 弱預(yù)測器的權(quán)重調(diào)整。根據(jù)式(12)的算法來更新訓(xùn)練樣本的權(quán)值,并賦予較大誤差的訓(xùn)練個體權(quán)重更大,在下一次迭代時更加關(guān)注這些訓(xùn)練個體。
(12)
計算弱預(yù)測器權(quán)重。根據(jù)弱預(yù)測器的預(yù)測誤差e(t)計算弱預(yù)測器的權(quán)重at,權(quán)重計算公式為:
(13)
(6) 強預(yù)測器預(yù)測。訓(xùn)練T輪后,使用測試數(shù)據(jù)進行預(yù)測,得到T個弱預(yù)測器的輸出y(t),則強預(yù)測器的預(yù)測結(jié)果輸出:
(14)
BP-AdaBoost預(yù)測模型如圖2所示。
圖2 BP-AdaBoost預(yù)測模型
基于FEEMD-PACF-BP-AdaBoost的超短期風(fēng)電功率預(yù)測模型實現(xiàn)流程如圖3所示。
圖3 風(fēng)電功率預(yù)測模型
FEEMD-BP-PACF-AdaBoost算法的主要步驟如下:
(1) 采用FEEMD算法將原始風(fēng)電功率序列分解為7個IMF子序列和余量。
(2) 結(jié)合樣本熵與分量曲線綜合評價,將得到的分量進行重構(gòu)。
(3) 自相關(guān)分析與建模,采用PACF計算相關(guān)程度,為每個IMF子序列確定輸入的變量,建立BP-AdaBoost模型,單步滾動輸出當前IMF分量的預(yù)測值。
(4) 結(jié)果疊加,匯總各分量預(yù)測結(jié)果進行綜合評價。
以某一風(fēng)電場實際采集的數(shù)據(jù)為算例,選取2019年9月1日到11日,風(fēng)電功率的采樣間隔為10 min,一共1 464個數(shù)據(jù)。將前十天的數(shù)據(jù)共1 440個點作為訓(xùn)練集,用于模型訓(xùn)練,取每24個數(shù)據(jù)(即4 h)為一組作為訓(xùn)練輸入,共60組,來訓(xùn)練神經(jīng)網(wǎng)絡(luò),最后一組24個數(shù)據(jù)作為預(yù)測對比數(shù)據(jù)。
(15)
為了評價建立的風(fēng)電功率預(yù)測模型,將預(yù)測序列和實際序列做數(shù)據(jù)對比,選取三個統(tǒng)計量:平均絕對誤差(MAE)、平均絕對百分比誤差(MAPE)和均方根誤差(RMSE)。數(shù)值越小,則說明預(yù)測值與實際值越接近,模型的預(yù)測效果越好。
計算表達式如下:
平均絕對誤差(MAE):
(16)
平均絕對百分比誤差(MAPE):
(17)
均方根誤差(RMSE):
(18)
風(fēng)電場實測風(fēng)電功率數(shù)據(jù)進行分析,以每10 min為一個采樣點進行采樣,共采樣了1 464個點。FEEMD參數(shù)設(shè)置為:加入了實驗次數(shù)NE=100組的白噪聲信號,添加的白噪聲標準偏差設(shè)置為0.2。把模態(tài)分量按高頻到低頻進行分布,高頻分量一般認為是對風(fēng)速的隨機性影響因素;低頻分量一般認為是對風(fēng)速的周期性影響因素;較低頻率的分量一般認為具有趨向性,它反映了原始風(fēng)速的長期趨勢?;?FEEMD 的計算結(jié)果如圖4所示。
圖4 風(fēng)電功率原始序列及FEEMD分解曲線
計算各IMF分量的樣本熵值結(jié)果如圖5所示,隨著IMF分量頻率的降低呈遞減趨勢??紤]到樣本熵值的大小同時兼顧FEEMD的分解結(jié)果,合并情況如表1所示。其中RIMF1與余量分量的樣本熵值與其他分量的差值較大,且從FEEMD分解結(jié)果看,這兩個分量需要單獨考慮;IMF2、IMF3和IMF4分量相鄰且樣本熵相近,因此將它們進行合并;IMF5、IMF6和IMF7樣本熵差值相近,相比與前幾個分量幅值大了很多,頻率變化較緩,且同為低頻周期分量,因此也將它們合并。
圖5 樣本熵值分布
表1 重構(gòu)分量結(jié)果
重構(gòu)后的分量曲線如圖6所示。
圖6 重構(gòu)后的分量曲線
偏相關(guān)分析是用來表達一組數(shù)據(jù)中前后兩個元素同時與第三個隨機元素相關(guān)時,剔除隨機元素的干擾后,分析另外兩個元素之間的相關(guān)程度的過程。用于測量當前序列值和過去序列值之間的相關(guān)性,并指示預(yù)測將來值時最有用的過去序列值。在本算例中,對于各個IMF分量結(jié)果,用偏自相關(guān)系數(shù)(PACF)來分析每個IMF中的數(shù)據(jù)之間的相關(guān)性繼而選擇每個BP模型的最優(yōu)輸入特征向量。如圖7所示,采用偏自相關(guān)系數(shù)可以計算序列與其自身經(jīng)過某些階數(shù)滯后形成的序列之間存在某種程度的相關(guān)性,有效地確定了輸入變量的長度。表2為輸入變量選擇結(jié)果。
圖7 重構(gòu)分量偏自相關(guān)圖
表2 輸入變量選擇結(jié)果
為了比較不同方法的預(yù)測效果,本文構(gòu)建了直接多步預(yù)測和單步滾動的多步預(yù)測兩類預(yù)測模型。
(1) 直接多步預(yù)測。BP神經(jīng)網(wǎng)絡(luò)看作弱預(yù)測器,采用單隱層神經(jīng)網(wǎng)絡(luò),通過重復(fù)實驗權(quán)衡網(wǎng)絡(luò)的預(yù)測誤差和訓(xùn)練時間,歷史風(fēng)電功率數(shù)據(jù)參數(shù)作為輸入層節(jié)點,確定輸入層節(jié)點數(shù)24,隱含層節(jié)點數(shù)為15,預(yù)測的風(fēng)電功率數(shù)據(jù)作為輸出,輸出節(jié)點數(shù)為24的網(wǎng)絡(luò)結(jié)構(gòu)。網(wǎng)絡(luò)最大訓(xùn)練次數(shù)為900,訓(xùn)練目標為0.000 1,學(xué)習(xí)速率為0.001,AdaBoost 把預(yù)測誤差超過0.001的測試樣本作為應(yīng)該加強學(xué)習(xí)的樣本,訓(xùn)練生成10個BP神經(jīng)網(wǎng)絡(luò)視作弱預(yù)測器,最后用10個弱預(yù)測器組合成強預(yù)測器對風(fēng)電功率進行預(yù)測。建立和實現(xiàn)BP、BP-AdaBoost、FEEMD-BP和FEEMD- BP-AdaBoost模型進行對比。
(2) 單步滾動預(yù)測。BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)設(shè)置為24-10-1,網(wǎng)絡(luò)最大訓(xùn)練次數(shù)為900,訓(xùn)練目標為0.000 1,學(xué)習(xí)速率為0.001。AdaBoost 參數(shù)設(shè)置與直接多步的相同。建立BP單步滾動、FEEMD-BP-AdaBoost單步滾動、FEEMD-BP-PACF-AdaBoost單步滾動的多步預(yù)測組合預(yù)測模型對風(fēng)電功率進行超短期預(yù)測,將不同模型預(yù)測結(jié)果進行比較。
各模型預(yù)測結(jié)果如圖8所示。
圖8 各模型預(yù)測結(jié)果對比
各模型誤差結(jié)果如表3所示。
表3 評價預(yù)測模型誤差
由圖8對比可知,七種組合預(yù)測模型中采用FEEMD分解后經(jīng)PACF確定輸入長度的BP-AdaBoost模型預(yù)測風(fēng)電功率曲線均比各單一或組合預(yù)測模型的曲線更接近于實際功率曲線。該組合預(yù)測模型預(yù)測結(jié)果的均方根誤差和平均絕對百分比誤差,均明顯小于其他幾種組合預(yù)測模型。對比表3中三種BP單步滾動預(yù)測值的均方根誤差RMSE 分別為0.146 2、0.145 0和0.139 1,比 BP單一網(wǎng)絡(luò)模型的均方誤差提高了79.12%、79.29%和80.13%,說明BP滾動預(yù)測模型的預(yù)測區(qū)間變化較小,即該模型的擬合和自適應(yīng)能力要強于單一BP神經(jīng)網(wǎng)絡(luò)模型的。FEEMD-BP-PACF-AdaBoost單步滾動模型預(yù)測值平均絕對誤差MAE為0.019 3,比BP單滾動網(wǎng)絡(luò)模型的0.124 1和未采用PACF選擇輸入的FEEMD-BP-AD單步滾動模型的0.122 7分別提高了84.44%和84.27%,表明該模型的預(yù)測誤差離散程度較小。
通過對比七種單一、組合重構(gòu)預(yù)測模型,得到以下結(jié)論:
(1) 傳統(tǒng)FEEMD-BP模型在預(yù)測未來電風(fēng)功率時,缺少對風(fēng)電功率在FEEMD分解結(jié)果的物理意義思考;樣本熵可以衡量時間序列的復(fù)雜性,為FEEMD分解的分量重構(gòu)提供了有力依據(jù),基于FEEMD分解和樣本熵結(jié)合的BP神經(jīng)網(wǎng)絡(luò)可以很好地預(yù)測風(fēng)電功率。
(2) 以往在構(gòu)建BP模型時,輸入變量的選擇沒有依據(jù),但采用偏相關(guān)分析可以呈現(xiàn)序列的相關(guān)性,表明了變量之間的相關(guān)信息。PACF可以在不同序列的自變量中,選出對因變量的影響較大的自變量作為輸入變量,繼而可以舍去不用考慮那些對因變量影響較小的因素。
(3) AdaBoost算法能夠合并多個弱預(yù)測器的輸出以計算當前弱預(yù)測器的權(quán)重,可以把弱預(yù)測器組合更新權(quán)重形成最終的強預(yù)測器。綜上對比可知,該組合模型在超短期預(yù)測風(fēng)電功率時能得到較為準確的預(yù)測趨勢和較高的精度,能夠獲得令人滿意的預(yù)測結(jié)果。