殷豪,董朕,孟安波
(廣東工業大學 自動化學院, 廣州 510006)
為滿足不斷增長的全球電力需求,可再生能源的使用有了明顯的提升。在這些可再生能源中,風力發電所占比重最大。風電的不穩定性是風電系統與主電網結合的障礙之一,為了更安全有效的利用持續增長的風能,高精度的風電功率預測方法對電網運行有著重要意義[1]。
風電功率預測面臨的最大挑戰是它的間歇性和不確定性特征,這種隨機波動是引起預測誤差的主要因素。目前的預測方法可分為基于物理模型和基于歷史數據預測兩類方法[2]。復雜的物理模型總是依靠數字天氣預報(NWP)系統,但所需的輸入數據通常很難獲得。基于歷史數據預測的方法較多,它們包括時間序列法[3],灰色模型方法[4],人工神經網絡[5],支持向量機[6]等。每種方法都有自己的優點和限制。人工神經網絡具有自適應的特點,因此在風電功率預測中得到廣泛應用,但神經網絡訓練過程中容易陷入局部最小值。粒子群算法[7-8]由于簡單、魯棒性好、易于實現和收斂速度快等特點被廣泛應用于神經網絡的參數優化問題,但常規粒子群算法在迭代時可能存在早熟收斂問題。組合預測由于其高精度性逐漸得到比上述單一預測方法更廣泛的應用,如文獻[9]利用經驗模態分解和支持向量機建立風電功率預測模型,比支持向量機和灰色預測模型表現出更高的精度。文獻[10]用改進的集成經驗模態分解和時間序列建立組合預測模型,將風電功率時間序列分解成若干固有模態函數,然后建立ARMA模型對各分量進行預測,疊加重構全部分量的預測結果作為風電功率的最終預測值,實例驗證組合預測模型可以有效降低超短期風電功率預測的誤差。
基于此,提出一種基于可變模式分解-樣本熵和改進粒子群算法優化貝葉斯神經網絡的超短期風電功率預測模型。首先,采用可變模式分解-樣本熵將原始序列分解為多個不同帶寬的子模式。然后,對各子模式分別建立貝葉斯神經網絡的預測模型,采用改進粒子群算法優化貝葉斯神經網絡的權值和閾值提高預測精度。最后,疊加全部分量的預測值得到實際預測值。實例驗證表明:所提超短期風電功率預測模型能獲得優良的預測精度。
VMD是將實值信號分解成不同模式分量uk的信號處理技術,其在產生主信號時具有特定的稀疏特性。設每個模式uk具有一個在分解過程中確定的中心頻率ωk,則每個模式的稀疏特性是其在頻譜域中的帶寬。獲得模式帶寬的步驟如下:(1)對每個模式uk應用希爾伯特變換以獲得單側頻譜;(2)對每個模式uk通過與其對應的中心頻率ωk的指數項混疊,將頻譜變換到“基帶”;(3)通過解調信號的H1高斯平滑即L2范數梯度的平方根估算每個子模式的帶寬。則其求解可轉化為以下優化問題來實現分解處理[11]:
(1)
式中f(t)是待分解主信號;{uk}:={u1,…,uK}和{wk}:={w1,…,wK}分別表示所有模式的集合及其中心頻率;δ(t)是狄拉克分布;*表示卷積。為解決約束,采用懲罰項和拉格朗日乘數λ將式(1)變為如下一個無約束優化問題[11]:
L({uk},{wk},λ)=
(2)
式中α為平衡參數;λ為拉格朗日乘子。使用乘子交替方向法來求解最小化問題,可變模式分解的完整算法可以在文獻[11]中找到。由此可得:
(3)
(4)
VMD具體步驟如下:
(3)對拉格朗日乘子依式(5)進行更新:
(5)
式中τ為更新參數。
(4)判斷下式的收斂條件是否滿足,若滿足分解過程結束;否則,迭代次數n加1,轉(2)。
(6)
樣本熵由Richman[12]于2000年提出,用于評價時間序列的復雜度。若序列的自相似性越高,樣本熵值就越小,序列越復雜,其樣本熵值就越大。具體計算熵值步驟見文獻[13],樣本熵的參數設置與文獻[13]相同。
神經網絡性能優劣與其網絡規模息息相關,網絡規模主要由神經網絡的權值和閾值大小決定,小權值和閾值的神經網絡具備更好的泛化能力。貝葉斯神經網絡通過正則化的方法對網絡的訓練性能函數進行修正,限制權值和閾值大小,從而提高神經網絡泛化能力。傳統前饋型神經網絡采用均方誤差公式MSE作為訓練性能函數:
(7)
式中N為樣本總數;ei為誤差;ti為目標輸出值;ai為神經網絡預測輸出值。
貝葉斯正則化法在原有訓練性能函數的基礎上,將網絡權值的均方差引入到性能函數中,構成式(8)所示的新的訓練函數:
msereg=βEd+αEw
(8)
(9)
式中msereg為改進后的誤差函數;α、β為正則化參數;Ew為網絡所有權值平方和的平均值;Wi為網絡權值。
網絡訓練過程中,正則化參數通過式(10)進行自適應地調整,從而達到最優訓練的目的。
(10)
式中γ=N-2αtr(H)-1;H為msereg的海森矩陣。
修正后的訓練性能函數可以使神經網絡在訓練的過程中能夠減少陷入局部最小值或者過度訓練情況的發生,但傳統的權值閾值調整方法很難保證得到最佳的網絡參數。
貝葉斯神經網絡雖然通過修正誤差性能函數提高了泛化能力,但傳統的神經網絡參數優化方法無法獲得最優網絡參數,而基本粒子群算法在針對神經網絡這種大規模參數優化問題時存在早熟收斂問題,故本文提出一種改進的粒子群算法用于貝葉斯神經網絡的權值和閾值尋優。
PSO算法由于參數設置少和收斂速度快的特點而得到廣泛應用,但算法尋優過程中存在早熟和局部最優問題[14]。粒子更新過程中產生個體最優極值和全局最優極值,個體最優極值是個體尋優過程中的最優解,全局最優極值則是全部粒子尋優過程中的最優解。其更新公式如下:
(11)
(12)
式中r1、r2為[0,1]之間的均勻分布隨機數;c1、c2為加速因子;w為慣性權重;v是粒子的飛行速度;x表示粒子;pgd和pid分別表示全局最優極值和個體最優極值。
PSO與遺傳算法、蟻群算法等絕大多數啟發式算法相似,在算法迭代后期種群多樣性會急劇下降,形成“聚集”現象[15],導致過早收斂的問題。
3.2.1 種群方差計算
針對PSO的早熟收斂問題,本文提出以下改進:由式(11)、式(12)可知,PSO是向個體極值和全局極值運動產生新的個體,當迭代達到一定次數時會出現“聚集”現象,種群中的個體差異幾乎為0,即式(13)求出的整個種群的方差E趨于0。
(13)
式中M為種群大小;D為粒子維數;gen為粒子當前迭代次數。
由于個體間無差異導致無法產生新的突變個體,導致整個種群陷入局部最優值,故本文提出在執行粒子群算法之前進行種群方差計算,當種群方差E小于某一極小值MV(通常取10~20)時則不執行粒子群算子,轉而進入引進的維度交叉算子。
3.2.2 維度交叉算子
維度交叉算子是對種群中所有維進行隨機兩兩不重復配對后,以概率Pv的形式選擇配對維執行縱向交叉的一種算數交叉操作。由于不同維之間取值范圍可能不同,執行維度交叉算子前對個體的每一維進行歸一化處理。每次維度交叉只需產生一個子代維,其目的在于在保證其他正常維不被破壞的前提下,使陷入局部最優的維從中順利跳出。例如粒子X(i)的第d1維與和d2維進行維度交叉,則根據式(14)產生新的子代維:
MSvc(i,d1)=r*x(i,d1)+(1-r)*x(i,d2)
(14)
式中d1,d2∈N(1,D);r∈[0,1];i∈N(1,M);MSvc(i,d1)為父代粒子x(i)的第d1維和第d2維執行維度交叉后產生的子代;x(i,d1)和x(i,d2)分別是第i個粒子的第d1、d2維。
絕大部分算法存在的收斂過早問題通常是由于種群個體中的局部維停滯不前,稱為維局部最優。故對粒子群算法引入維度交叉算子,利用維度交叉特有的擺脫維局部最優能力,有效解決PSO的早熟問題,改善PSO迭代到一定程度后種群多樣性不足的缺陷,從而提高PSO的全局搜索能力。
3.2.3 參數優化步驟
基于IPSO的BNN權值和閾值優化步驟如下:
(1)確定BNN結構為“m-k-n”形式,則粒子變量維數D=m*k+k*n+k+n,m和n分別為神經網絡的輸入和輸出個數,k為隱含層節點數;
(2)參數初始化。設置IPSO種群大小M,最大迭代次數Maxgen,初始權重和加速因子,維度交叉概率Pv。隨機生成IPSO的初始種群;
(3)迭代次數t置1。將IPSO初始種群粒子轉換成BNN的權值和閾值,進行網絡訓練,由式(8)計算訓練誤差,即為粒子的適應度值;
(4)fort=1:Maxgen,進入迭代過程;
(a)執行式(13)計算IPSO種群的方差E,若E>MV,則轉(b);若E (b)執行標準粒子群算法中的粒子更新算子,將其產生的子代種群保存在矩陣SPSO中,然后根據式(8)計算矩陣SPSO每個粒子的適應度,并將其與父代種群X中所對應的粒子進行對比,選擇適應值更優的粒子作為新的父代粒子保留在X中,記錄最優粒子Xbest,轉(5)。 (c)對粒子所有維進行隨機配對(共D/2對),選取一對維數,若rand() (5)當迭代次數t 本文實驗樣本為廣東某一風電場2016年1月實際采集的24d(1月1日到1月24日)風電功率數據,每15 min一個數據點,每天共96個數據點,風電場的額定裝機容量是10.02 MW,風電功率時間序列如圖1所示。 (1)由于圖1所示風電功率時間序列無明顯的變化規律和趨勢,非線性程度較高,故采用VMD對圖1所示數據進行分解,得到多個呈現一定波動趨勢的不同帶寬的子模式。 圖1 風電功率時間序列 (2)采取交叉驗證的方式確定模式個數,即計算不同模式個數情況下VMD-BNN的模型訓練誤差。如圖2所示,結果表明隨著分解模式個數增加時,模型訓練誤差逐漸減小,但在模式個數達到8個以后,訓練誤差無明顯改善,幾乎保持不變,此時增加分解模式個數僅增加計算成本,而不會對預測精度有較大的改善。鑒于此,選取分解模式個數為9個。 圖2 不同模式個數下的模型訓練誤差 (3)VMD分解后得到9個子模式,若直接利用IPSO-BNN對每一個子模式分別建模預測,會增大計算的規模。故采用樣本熵理論,對各子模式的復雜度進行分析,得到的結果如圖3所示。 圖3 各子模式的樣本熵 從圖3 可知,第3~6個子模式的樣本熵相差不多,可以把這4個歸為一類,疊加重構后作為一個新的子模式輸入BNN進行訓練和預測。同理全部子模式的歸類重構結果如表1所示,歸類重構后的各子模式如圖4所示。圖5為分解重構風電功率信號的重構誤差。從圖5可以看出,分解重構誤差值較小,相對于實際功率值可忽略不計。 表1 各子模式合并為新子序列的結果 圖4 經VMD-SE處理后的風電子模式 圖5 風電功率信號重構誤差 (4)建立4個IPSO-BNN預測模型,對上述4個子模式分別進行訓練與預測,最后各子模式預測值的累積即為風電功率預測輸出值。 (5)誤差分析。預測誤差評價函數采用歸一化絕對平均誤差eNMAE和歸一化均方根誤差eNRMSE。 (15) (16) 文章將第4節中1月22日12點前的數據進行模型訓練,即前2 160個點為訓練樣本,第22日12點15分到24日的數據進行測試驗證,測試數據共144點。采用輸入維數為8維提前4步的一次多步預測,一次預測得到4個點即1 h的測試數據,反復進行36次多步預測,即一次4步預測后,把剛測試完的實際功率數據輸入預測模型中進行訓練,繼續新一輪的4步預測。同時為驗證本文模型的有效性,建立BP-NN、BP-BNN、PSO-BNN、IPSO-BNN、EEMD-SE-BNN、VMD-SE-BNN、VMD-SE-PSO-BNN和VMD-SE-IPSO-BNN 8種預測模型進行對比分析。本文所有的仿真實驗均在Matlab R2011b版本環境下進行, 采用宏基4 750 G.2.3 GHz雙核處理器, 3.0 G內存的計算機平臺。 BNN結構為“8-6-4”形式,選擇Tansig函數和purelin函數作為隱藏層和輸出層的傳輸函數,學習率設置為0.1,目標誤差為0.01,訓練最大次數500。IPSO種群大小設為30,最大迭代次數設為300代,初始權重設為0.9,加速因子設為0.2,維度交叉概率設為0.55。 為避免隨機性對預測結果的影響,各模型每次實驗均獨立運行30次,取平均誤差,表2給出了不同模型的預測誤差,圖6給出了文章模型的最優預測曲線,4步預測歸一化絕對誤差如圖7所示。 表2 不同模型的預測誤差 由表2可知: (1)對比BP-NN和BNN可知:后者的eNMAE和eNRMSE分別提高了0.26%和0.44%,說明貝葉斯神經網絡能取得比傳統BP神經網絡更高的預測精度,具有更強的泛化能力; (2)PSO-BNN和IPSO-BNN與BNN相比,eNMAE和eNRMSE均有所提高,說明采用智能算法優化神經網絡的權值和閾值有利于提高預測精度; (3)IPSO-BNN的eNMAE和eNRMSE較PSO-BNN提高了0.18%和0.45%;VMD-SE-IPSO-BNN的eNMAE和eNRMSE較VMD-SE-PSO-BNN提高了0.17%和0.32%,說明改進的粒子群算法比基本粒子群算法具備更強大的全局搜索能力,提高了模型的預測精度; (4)VMD-SE-BNN的eNMAE和eNRMSE較EEMD-SE-BNN分別提高了0.5%和0.29%,說明基于 VMD-SE 的組合模型具有更優良的預測性能; (5)文章所提VMD-SE-IPSO-BNN模型具有最高的預測精度,相對于單一的BNN模型,它的eNMAE和eNRMSE分別提高了4.57%和4.45%,預測精度得到大幅度提升,說明所組合預測模型的有效性和高精度性。 由圖6可以看出,單一的BNN和IPSO-BNN雖然能大致跟蹤風電功率的變化規律,但各點的預測值與實際值相差較大,而本文VMD-SE-IPSO-BNN在各個預測點的預測值均與實際值較為接近,是一種較高精度的超短期風電功率預測模型。由圖7可知,與單一的BNN模型相比,組合模型的在各預測點的預測誤差更小,說明組合預測模型的有效性和高精度性;本文所提VMD-SE-IPSO-BNN在大部分預測點的歸一化絕對誤差相對較小,能夠取得較高精度的超短期風電功率預測結果。 圖6 本文模型的風電功率預測曲線 圖7 4步預測歸一化絕對誤差 針對非線性風電功率時間序列的超短期預測,提出一種基于可變模式分解-樣本熵和改進粒子群算法優化貝葉斯神經網絡的組合預測模型,實例研究表明: (1)貝葉斯神經網絡比傳統BP神經網絡具有更高的預測精度,顯示出其在超短期風電功率預測中的應用潛力; (2)與PSO相比,采用IPSO對神經網絡進行權值和閾值尋優時預測精度更高,表明IPSO具有更優良、更穩定的全局尋優能力; (3)與EEMD-SE相比,基于VMD-SE的組合模型具有更優良的預測性能,有效提高了預測精度。本文所提組合模型能取得較高精度的超短期風電功率預測結果。4 基于VMD-SE和IPSO-BNN的風電功率預測模型
5 算例及結果分析
6 結束語