石 慧,李芷萱,馬 旭
(太原科技大學電子信息工程學院,山西 太原 030024)
風能是一種具有規模化開發條件的清潔可再生能源,而風能的間歇性、隨機性和波動性對其發展產生了極大的影響。風電輸出功率的預測有利于降低發電成本,提高電能質量與發電效率,有非常重要的研究意義和使用價值。
目前風電功率的預測方法主要有以下幾類:數據歸一化、功率曲線、功率矩陣等。戚雙斌等[1]在預測風速和功率時采用功率曲線來建模。典型的風機功率曲線只考慮風速和功率的轉換關系,樣本數據種類過于單一。茆美琴等[2]提出EEMD-SVM的方法預測光伏電站短期功率預測。數據歸一化通常采用的變量類型較多,受設備工作條件、氣象情況等因素的影響,不同變量互相干擾,容易增加預測誤差。柯擁勤[3]采用風速、風向的功率矩陣建模,但功率矩陣的數據不具有普遍性,不適用于其它風電場,因此這種方法會對功率預測誤差有影響。多元線性回歸(Multiple linear regression,MLR)通過建立最優方程可以計算分析關于每個自變量對因變量映射的相對關聯度和擬合程度,可以很好的分析不同因素對功率的影響關系[4]。Schaffrin B[5]提出加權最小二乘對MLR的調整方法。王惠文等[6]將MLR建模進行預測和分析。彭鵬等[7]運用MLR對電力負荷預測做了大量的研究。因此本文采用MLR對影響功率的風速和風向進行相關性分析。此外,預測風電功率的方法還包括高斯分布模型[8]、柯西分布模型[9]、分位數回歸模型[10]等,這些模型建立都需要大量的風電歷史數據,在部分數據缺失和一些新風電場的數據量較少的情況下,對風電功率的預測并不能得到更為準確的值。
上述方法通常采用淺層模型作為預測方法,復雜的系統使用時預測精度有所下降。研究證明,深度學習能夠比淺層模型更好的提取數據序列深層非線性特征。當前,已經用于風電功率預測的神經網絡模型有支持向量機[11],局部遞歸神經網絡[12],RBF神經網絡[13],BP神經網絡[14]等。相比于其它的神經網絡,深度置信網絡(DBN)的非線性映射特征提取能力更適合用于預測風速、風向和功率等復雜特征的時序數列。Sanam Narejo等[15]通過構造一個六層的DBN模型來對風速進行精確預測,并通過DBN的特征提取功能獲取到了非線性趨勢等重要樣本,最終取得不錯的預測效果。唐振浩等[16]在DBN網絡中插入了小波變換算法,實驗證明可以提高風速預測的準確性。Tao Yubo等[17]使用DBN算法提取風電場歷史運行數據中的樣本特征,同時也通過DBN模型研究了其它干擾因素對預測結果的影響。以上方法證明了DBN可以很好的進行風速的預測,但是要適應電力系統的并網發展要求,還需要對影響功率因素的風向、風機系數等因素進行綜合考慮。
為此,本文以風電場歷史原始數據為對象,對風速、風向和功率預測方法進行了研究,提出一種結合深度置信網絡(DBN)和多元線性回歸(MLR)的風電功率預測新方法。首先以風電場風速、風向為自變量,以功率為因變量,建立最優MLR方程,然后在DBN的最頂層加入最優MLR構建預測模型,輸入風速和對應的風向數據通過預測模型計算出未來的功率值。根據MLR的映射關系和DBN的預測可以更好的擬合風電能量變換過程,得到風速、風向和功率的預測值,從而實現對風力發電機組的數據預測。
DBN網絡由多個受限玻爾茲曼機(RBM)疊加構成,前一個RBM的隱層同時這也是后一個RBM的輸入層。網絡訓練分為兩個階段:分層預訓練階段,采用前向傳播從最底層開始逐層訓練;監督微調階段,利用BP算法計算網絡誤差,從頂層到底層調節參數,求取整個網絡模型的最優解。本文采用的DBN網絡在最頂層添加最優MLR方程進行計算,并在監督微調階段進行訓練達到最優。
RBM通過可見層接收最底層(或者前一個隱層)傳送過來的數據向量,輸入向量通過激活函數變換到隱含層,經過訓練使得內部能量函數達到最小值。給定可見單位vi、隱藏單位hi及其連接權值Wij(大小為nvnh),以及vi的偏移ai和hi的偏置權值bj,定義能量函數E(v,h)為

(1)
通過能量函數E(v,h)的計算,得出隱藏層和可見層的概率分布P(v,h)為式(2)(3),Z為歸一化因子

(2)
P(v,h)=e-E(v,h)/Z
(3)
觀測數據v的概率分布Pθ(v),它對應Pθ(v,h)的邊緣分布,也稱為似然函數,如式(4)所示。式(5)表示在h中去掉分量hk后得到的向量,并代入式(6)(7)。

(4)
h-k=(h1,h2,…,hk-1,hk+1,…,hnh)T
(5)

(6)

(7)
能量函數簡化為式(8),可以得到求解出似然函數為式(9)(10)
E(v,h)=-β(v,h-k)-hkαk(v)
(8)
P(hk=1|v)=P(hk=1|h-k,v)

(9)

(10)
RBM的激活概率公式為sigmoid函數,此函數在(-∞,+∞)函數值始終在0到1之間,可以計算出相應節點的激活概率。當已知可見層(或隱藏層)所有神經單元是否被激活后,可以推出隱藏層(或可見層)神經元的激活概率,即計算P(hk=1|v)和P(vk=1|h)。未知的RBM參數W,a,b可以通過無監督學習確定,如2.3節所述。
DBN的訓練過程包括分層預訓練過程和微調過程。分層預訓練過程用于為所有參數提供良好的初值,微調過程通過假定神經網絡的最初狀態來找尋最優解。前者需要對神經網絡采取逐層分別計算的方法,即每次對獨立的RBM進行預訓練,其相關參數為W,a,b(W連接權值,vi的偏移ai和hi的偏置權值bj)。對聯合概率P(v,h)的求解根本上是求出W,a,b的值。解出數據采樣的極大似然,就能讓RBM網絡表示的聯合概率P(v,h)和數據自身隱藏的內在聯系最為相似。因此,目標函數為

(11)
其中θ屬于{W,a,b},S為訓練數據集。采用梯度上升算法求得RBM中的參數W,a,b的初值,具體如下


(12)


(13)


(14)
式(12)-(14)為只含單一訓練樣本時各偏導數的計算公式,而對于含有n個樣本的公式第一項可以使用訓練數據集上的數據計算。但是式(12)-(14)中關于Σ的計算復雜度是O(2nv+nh),第二項的計算過程十分復雜。對于這種任意的分布,可以采用馬爾可夫鏈蒙特卡羅方法(Markov Chain Monte Carlo,MCMC),如使用Gibbs采樣方法來采樣,并用樣本數據對Σ的值進行估計。
Hinton等提出了對比散度(Contrastive Divergence,CD)算法,通過在訓練樣本開始階段調整MCMC的狀態,只需要很少次的狀態轉移就能夠達到目標。本文采用k步CD算法來進行計算,CD-k算法步驟具體可描述為:
1)利用P(h|v(t-1))采樣出h(t-1);
2)利用P(v|h(t-1))采用出v(t);


(15)

(16)

(17)

(18)

(19)
實驗結果表明,即使k=1,CD算法也能很好地識別模型。本研究采用CD-1進行采樣。因此,參數W,a,b的更新規則可由式(12)-(19)推導得到,上標t表示時間步長,η為學習率。
Wt+1=Wt+η(P(h|v(0))[v(0)]T-P(h|v(1))[v(1)]T)
(20)
at+1=at+η(v(0)-v(1))
(21)
bt+1=bt+η(P(h|v(0))-P(h|v(1)))
(22)
DBN中的所有參數都是基于分層的預訓練方法進行適當初始化,同時監督學習并更新,使得DBN產生最小的損失函數。由于反向傳播算法(Back Propagation,BP)算法的有效性和高效性,本文使用BP算法進行微調,激活函數是sigmod函數,采用誤差平方和作為性能評價指標,學習規則采用最速梯度下降法。在微調過程中,BP采用周期性地自頂向下的學習方式。每個周期結束后相應參數全部要更新,從而降低預測結果的誤差率。接下來對訓練集的誤差進行反向傳播,更新調整DBN的參數為最優結果。經過一定的BP訓練周期后,可以對所有參數尋求最優狀態,從而完成了DBN的訓練過程,如圖1所示。

圖1 DBN訓練流程圖
相同風速下,風電機組的功率仍然會在區間內波動,這是因為風機的周圍環境參數有所不同,特別是風向的變化會對穩定運行的系統產生較大的影響。為了研究風向與功率的聯系,本文采用多元線性回歸(MLR)對風速、風向和功率建立三元映射模型。多元線性回歸通常用來研究輸出與不同輸入的相關程度,本文中輸入為風速和風向,輸出為相應的輸出功率。建立的多元線性回歸模型為

(23)
其中因變量y為功率,x1為風速的數據,x2為風向的數據,βi為對應的回歸系數。通過引用概率密度函數把回歸問題轉變為概率問題

(24)
因此求回歸系數βi就是解出全部概率密度函數的最大乘積結果

(25)

(26)
采用最小二乘法求解回歸系數β。其最小二乘矩陣表達式為

(27)
展開矩陣函數并對其求導等于0

(28)
求的解析解為
θ=(XTX)-1XTY=[β0,β1,β2]
(29)
根據前面的描述,基于風速、風向和功率的多元線性回歸分析除了需要預測即將到來的風速數據,還需要預測風向數據,才能根據多元線性回歸得出功率映射關系。風電功率的預測方法與風速的預測方法相同,即基于深度置信網絡的模型預測方法。在多元線性回歸模型中代入預測的風速、風向結果,從而計算出風電輸出功率的預測值。
本文將功率預測模型的建立分為以下三步:第一是將歷史原始風速和風向數據分別輸入到DBN中進行分層預訓練。第二是求解最優MLR方程,將MLR方程放置于預訓練好的DBN最頂層,通過監督微調過程使DBN模型參數達到最優。第三是將歷史風速和風向數據分別輸入微調好的DBN網絡。通過DBN網絡可以得到風速和風向的預測值,最后MLR最優方程可以計算出風電機組輸出功率的預測結果。提出的風電功率預測方法是DBN和MLR算法的結合模型,模型的輸入是風速數據序列和風向數據序列。DBN的訓練過程首先將參數隨機初始化,然后優化所有的參數直至收斂。利用JetBrains PyCharm實現所開發的風電功率預測模型,風電功率預測流程圖如圖2所示。

圖2 風電功率預測流程圖
數據取自我國風電場風電機組實際運行時收集到的歷史風速、風向和功率數據,采樣時間分別為30秒和10分鐘,選取1000個樣本點的數據,數據覆蓋了2016年7月到2017年2月的時間段。在每個季節,將采集到的風速、風向數據分為訓練數據集和測試數據集。訓練集涵蓋每月1日至20日,其余數據構成測試數據集。
選取4個函數對預測的風電風速、風向和功率評估指標,具體計算公式如下:
1)相關系數R(Correlation Coefficient):

(30)
2)測定系數R2:

(31)
3)均方誤差(Mean Square Error,MSE):

(32)
4)均方根誤差(RMES):

(33)
分別對采樣時間為30秒和10分鐘的原始風速、風向和功率數據進行多元線性回歸分析,將風速和風向作為輸入變量X,功率作輸出變量Y,樣本數量為1000。通過模型匯總計算,回歸方程擬合的結果如表1所示。

表1 多元線性回歸結果統計
在觀測值不變的同類數據擬合下,相關系數R為0.95表示極高的正相關關系,測定系數均大于0.902顯示出較高的擬合度。根據結果可知,風速的回歸系數遠遠大于風向的回歸系數,因此功率的預測主要影響因素是當時的風速值,風向值影響相對較小。
對多元線性回歸建模的誤差分析如表2所示。隨著采樣時間的增加,雖然整體擬合效果更好,但回歸系數均有波動,回歸系數越大,對功率的影響越大,對應的RMES波動越大,容易影響預測精度。

表2 均方根誤差比較
從上述計算過程中數據得到分析統計表,可見風速、風向和功率建模符合基本假設,因此模型設定是有效的。根據回歸模型可知,風速和風向對功率具有明顯的正向相關性影響,且風速的正向影響更加突出。
利用JetBrains PyCharm平臺對風電功率預測模型進行預測。預測結果圖中藍色線為真實數據,黃色線為擬合數據,綠色線為預測數據,樣本數量為1000,預測步長為100。損失函數圖采用最高迭代240次的預測結果進行顯示。以下給出了風電場在采樣時間為30秒和10分鐘的典型風速預測結果。其中,圖3圖4為風電場的實測風速、擬合風速和預測風速的對比結果圖。橫坐標為樣本數量,縱坐標為風速大小。從預測結果可以看出,風電場在前期的實際風速變化大體較為平緩,能較好地實現對風速的預測,但在風速變化劇烈時,預測效果有所下降,但均能很好地反映大體風速的變化。

圖3 采樣時間30s的風速預測結果

圖4 采樣時間10min的風速預測結果
由表3可知,在240次迭代過程中,loss函數值逐漸減少并穩定。30秒采樣時間預測的風速loss函數值和MSE值均比10分鐘預測的值更大。用式(32)評價預測結果的均方誤差MSE均小于0.466,預測精度較高。因此可知,采樣時間并不是越小越好,10分鐘的采樣時間的誤差更小,擬合程度更好,預測風速也更加精準。當采樣時間過小時,短期預測難以預測局部風速風向波動,導致預測誤差也隨之增大。

表3 風速預測性能指標比較
根據前面的描述,基于風速、風向的DBN建模預測功率,要求計算風速和風向兩個參數的預測值后通過多元線性分析模型得到功率。圖5、圖6是采用DBN模型得到的相對應的風向預測結果。

圖5 采樣時間30s的風向預測結果

圖6 采樣時間10min的風向預測結果
由于風向數據比風速數據的波動區間更大,可從表4得知loss函數和MSE值均增大。采樣時間為10分鐘的預測數據的loss函數和MSE值相對較小,預測風向的效果更好。

表4 風向預測性能指標比較

表5 風電功率預測性能指標比較
在DBN網絡中將MLR作為邏輯回歸層進行運算,輸入為風速和風向,輸出為預測的功率,結果如圖所示。圖7圖8給出了風電場輸出功率預測的不同情況。圖7中平均采樣時間較小,數據中的變化較多,預測誤差容易增大,預測曲線基本與實際曲線的趨勢一致;圖8中在預測的平穩波動內預測誤差較小,但風電場輸出功率在突然發生明顯變化時,預測誤差變大。隨著采樣時間的增加,功率預測誤差減少,但預測細節更少,預測整體表現較好。

圖7 采樣時間30s的風電功率預測結果

圖8 采樣時間10min的風電功率預測結果
多元線性回歸后預測的功率會受到風速預測和風向預測所帶來的誤差影響,所以功率預測的擬合情況較好但誤差更大。減少風速和風向的誤差可以有效的減少功率的誤差影響。
由以上結果分析可知,通過DBN和MLR的模型預測的風電功率能夠很好的擬合功率的變化,輸出功率相對穩定時,功率預測的誤差小,預測曲線類似于實際風機功率的產出曲線。均方誤差MSE在10分鐘采樣的預測效果較好,整體誤差較小。風機功率的預測結果大體上滿足預測需求。
為了驗證所提出算法的有效性,分別采用風電場數據進行建模實驗,對比不同算法的建模精度。算法一[18]結合人工魚群算法(AFSA)和支持向量機(SVM)對風電功率進行預測。算法二[19]基于數學形態學聚類(CA)與果蠅優化算法(FFOA)相結合。算法三[20]基于多位置NWP與主成分分析(PCA)進行研究。算法四為本文提出的DBN和MLR預測模型。實驗結果如表6所示。

表6 不同模型實驗結果對比
從表6中可以看出,基于DBN和MLR的模型預測誤差最小,MSE和RMSE分別為風電場輸出功率的36.66%和6.06%,整體預測結果都要優于其它幾種方法,尤其在均方誤差MSE中,誤差值明顯降低。
風電功率預測是保持電網穩定性的重要因素。本文提出了DBN融合MLR的預測模型,
對采集到的風電場的風速、風向和功率數據進行深度特征提取,分別對其進行回歸預測并進行實驗驗證。驗證結果表明,基于DBN和MLR的功率預測模型能較好地擬合風能的變化趨勢,既可以充分挖掘歷史數據減少誤差,又可以優化功率曲線建模,在一定程度上能提高風速、風向對功率預測時的預測精度。本文提供的風電功率預測模型可以適用于風電場功率預測,為電網運行調度增加選擇方案和參考依據。