彭 穎,丁家會,張財寶,高澤呈
(南京師范大學中北學院能源互聯網研究所,江蘇 丹陽 212300)
當前正處于全球化能源互聯網背景下,清潔能源的開發具有重要意義。近年來,風電、光伏等可再生能源接入電力系統的比例大幅提高,但其不確定性和不可控性對電力系統的穩定運行有著越來越大的影響。電力系統短期調度又稱電力系統日前調度,以15 min為一個采樣周期,共記96個采樣周期,在準確預測下一階段可再生能源機組發電功率和電力負荷的基礎上,滿足電力平衡約束、傳輸功率約束等各種約束條件的情況下,根據各發電單元的不同特性,合理地安排各機組的發電容量,充分發揮可再生能源的作用,保證電力系統運行的穩定性、可靠性、經濟性以及安全性。日前調度是超短期安全經濟調度的基礎,同時對保障電能質量和提高可再生能源在電力市場的競爭力有重要意義。
目前,許多學者針對風電、光伏輸出功率預測提出了不同的方法。在風電功率預測方面,琚垚等人采用統計模型,基于改進的烏鴉算法優化回聲狀態神經網絡中的神經元和權值,但沒有考慮氣象因素對輸出功率的影響[1]。丁明等人提出將風電功率波動聚類,利用引力搜索算法與反向傳播神經網絡結合,建立模型進行功率預測[2]。在光伏功率預測方面,張雨金等人首先利用K平均算法聚類訓練樣本,然后分別建立不同的支持向量機模型[3]。王昕等人采用蝗蟲算法優化支持向量機回歸模型的參數,輸入數據采用數值天氣預報[4]。本文主要研究并使用遺傳算法優化BP神經網絡預測輻照強度和溫度,用輻照強度和溫度預測光伏發電功率,再用遺傳算法優化BP神經網絡,按照光伏發電功率的歷史數據預測光伏發電功率,優化組合后得到單步發電值,分別預測小波動、中等波動和大波動情況,進一步探索更適合預測光伏發電功率的算法。
遺傳算法是模擬生物界中進化過程來求解最優化問題的算法,旨在找出全局最優化解,應用范圍廣、準確度高。
遺傳算法主要由染色體編碼、初始種群設定、適應度函數及遺傳算子等部分組成,具體運算步驟如下文所述。
首先計算出種群中全部個體的適應度并相加得到適應度總和Σfi,求出單獨個體對于適應度總和的相對適應度fi/Σfi;其次隨機產生一個[0,1]間的隨機數,用輪盤賭法確定個體被選中的概率;最后進行交叉與配對,此為新個體產生的關鍵步驟,采用一定的交配率(Pc,一般是0.4~0.99)及變異率(Pm,一般是0.000 1~0.1),配合各種交叉策略如單點交叉、多點交叉等生成新個體,不斷進化迭代并代入適應度函數,以期獲得最優化的結果。達到設定的迭代次數后,則終止計算,得出最優解。其中,隨機配對后交叉點位置、變異運算、參數的選擇都會影響新個體的產生。
適應度函數公式為
式中:fmax(x)為適應度函數f(x)的最大值。當fmax(x)未知時,可用當前f(x)或目前進化過程中計算出的f(x)的最大值來替代,因此fmax(x)會隨著進化過程不斷變化。
與此同時,還存在
式中:fmax(x)為適應度函數f(x)的下限值。若fmax(x)未知,則用當前f(x)值或目前進化過程中得到的f(x)的最小值來替代。
由此得到關系式
式中:M為將當前最大適應度值放大的倍數,選擇合適的M值的作用是拉開不同個體間的適應度值之間的差距。還利用了線性變換f'=af+b,目的是希望計算后的最大適應度值是平均適應度值的較小倍,M一般取1.5或2。
利用MATLAB輸入程序,同時將[1,16]的1 600多個數據,這些數據都是隨機無規律出現,并通過運用遺傳算法來進行數據預測。
圖1為遺傳算法的預測結果。觀察結果圖,發現主要分布于坐標系縱軸附近,終止代數相同,當進化代數取值不同時,適應度分布情況也不同。從實驗結果中也可以很明顯地看出,經過遺傳算法處理后的最佳適應度確實比原始曲線誤差小了點,進化代數接近某一數值之后變化趨于水平,且容易受到外界因素的影響,導致處理后的結果沒有達到預期效果。

圖1 平均適應度
為了準確預測風光功率,通過大量查詢資料采用BP神經網絡算法。神經網絡信號在正向傳輸中,不斷接收其他神經元的輸入信號,這些信號乘以權重后累計到該神經元接收到的總輸入上,并與該神經元的輸入閾值比較。通過處理激活函數,產生神經元的輸出。通常情況下,理想的激活函數為單位階躍信號:,其中“0”表征了神經元抑制,“1”表示神經元興奮。但階躍信號是不連續且不可導的,因此采用Sigmoid 函數將階躍函數替換為激活信號Sigmoid(x)=1/[1+e(-x)]。圖2展示了Sigmoid 函數及其導數。

圖2 Sigmoid函數與其導數曲線
以最簡單的BP神經網絡為例,推導其原理。假設輸入層有n個神經元,隱藏層有p個神經元,輸出層有q個神經元。BP網絡結構圖中定義的變量如下:輸入向量為x=(x1,x2,…,xn),隱含層輸入向量為hi=(hi1,hi2,…,hip),隱含層輸出向量為ho=(ho1,ho2,…,hop),輸出層輸入向量為yi=(yi1,yi2,…,yip),輸出層輸出向量為yo=(yo1,yo2,…,yop),預期的輸出向量為d=(d1,d2,…,dq),輸入層到中間層的連接權重為wih,隱含層到輸出層的連接權重為who,隱藏層中每個神經元的閾值為bh,輸出層中每個神經元的閾值為bo,示例數據個數k=1,2,…,m,激活函數為f(x)。誤差函數為
操作步驟如下:(1)初始化網絡,分別將各連接值設定為[-1,1]間的隨機數,給誤差函數e、最大學習次數M和計算精度值ε賦值;(2)任意選擇第K個輸入樣本和相應的預期輸出;(3)計算隱藏層中每個神經元的輸入和輸出;(4)將網絡的實際輸出與預期輸出進行比較,由復合函數求導法則計算輸出層中每個神經元的誤差函數的偏導數;(5)通過隱藏層中每個神經元的輸出以及輸出層中各神經元的δ-o(k),得到修正后的連接權重who(k);(6)使用輸入層中每個神經元的δ-h(k),并通過輸入校正連接權重。另要注意,在最終公式中,μ、η代表學習率,目的是調整步長,防止數值過大導致算法陷入局部最優,最終趨于最優解。(7)計算全局誤差;(8)將網絡誤差與設定范圍比較,若誤差在預設范圍內或迭代次數達到設定值,則結束算法。否則返回步驟(3),選擇下一個學習樣本和相應的期望輸出[5]。
應用遺傳算法優化BP神經算法,對所選取的1 600個數據樣本進行處理,得到優化后的誤差曲線如圖3所示。

圖3 優化后的誤差曲線
能夠很明顯地看出,用改進后的算法處理過的誤差波動更加清晰,處理的過程中,該算法也沒有受到外界各因素的干擾。總體上說,用遺傳算法進行優化BP神經網絡的傳遞函數通過仿真處理后的預測結果達到了較好的處理效果,使得優化后的預測誤差偏小,進而預測的更加準確。
經過分析與比較,遺傳算法能夠判斷群體性能是否符合預先設定,但處理后的圖像存在不太明顯的變化適應度且受外界因素影響。而在BP算法中,不僅解決了上述所存在的問題,且經過BP神經網絡算法處理過的結果誤差較為精確,外界因素也能保證不受影響,可以達到較好的處理效果。
本文研究了現有遺傳算法和BP神經網絡算法的結合方法,深入探索這2種算法的基本模型、步驟和原理,將其應用于短期功率的風光預測,并進行對比優化實驗。實驗結果證明,用遺傳算法進行優化BP神經網絡的傳遞函數可以使原來預測結果更加精確,且未出現失真現象,誤差在一定程度上也得到了改善,外界因素也可以很好地避免,整體上使得優化后曲線誤差更適合預測結果。