彭 穎,丁家會,張財寶,高澤呈
(南京師范大學(xué)中北學(xué)院能源互聯(lián)網(wǎng)研究所,江蘇 丹陽 212300)
當(dāng)前正處于全球化能源互聯(lián)網(wǎng)背景下,清潔能源的開發(fā)具有重要意義。近年來,風(fēng)電、光伏等可再生能源接入電力系統(tǒng)的比例大幅提高,但其不確定性和不可控性對電力系統(tǒng)的穩(wěn)定運行有著越來越大的影響。電力系統(tǒng)短期調(diào)度又稱電力系統(tǒng)日前調(diào)度,以15 min為一個采樣周期,共記96個采樣周期,在準確預(yù)測下一階段可再生能源機組發(fā)電功率和電力負荷的基礎(chǔ)上,滿足電力平衡約束、傳輸功率約束等各種約束條件的情況下,根據(jù)各發(fā)電單元的不同特性,合理地安排各機組的發(fā)電容量,充分發(fā)揮可再生能源的作用,保證電力系統(tǒng)運行的穩(wěn)定性、可靠性、經(jīng)濟性以及安全性。日前調(diào)度是超短期安全經(jīng)濟調(diào)度的基礎(chǔ),同時對保障電能質(zhì)量和提高可再生能源在電力市場的競爭力有重要意義。
目前,許多學(xué)者針對風(fēng)電、光伏輸出功率預(yù)測提出了不同的方法。在風(fēng)電功率預(yù)測方面,琚垚等人采用統(tǒng)計模型,基于改進的烏鴉算法優(yōu)化回聲狀態(tài)神經(jīng)網(wǎng)絡(luò)中的神經(jīng)元和權(quán)值,但沒有考慮氣象因素對輸出功率的影響[1]。丁明等人提出將風(fēng)電功率波動聚類,利用引力搜索算法與反向傳播神經(jīng)網(wǎng)絡(luò)結(jié)合,建立模型進行功率預(yù)測[2]。在光伏功率預(yù)測方面,張雨金等人首先利用K平均算法聚類訓(xùn)練樣本,然后分別建立不同的支持向量機模型[3]。王昕等人采用蝗蟲算法優(yōu)化支持向量機回歸模型的參數(shù),輸入數(shù)據(jù)采用數(shù)值天氣預(yù)報[4]。本文主要研究并使用遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)預(yù)測輻照強度和溫度,用輻照強度和溫度預(yù)測光伏發(fā)電功率,再用遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò),按照光伏發(fā)電功率的歷史數(shù)據(jù)預(yù)測光伏發(fā)電功率,優(yōu)化組合后得到單步發(fā)電值,分別預(yù)測小波動、中等波動和大波動情況,進一步探索更適合預(yù)測光伏發(fā)電功率的算法。
遺傳算法是模擬生物界中進化過程來求解最優(yōu)化問題的算法,旨在找出全局最優(yōu)化解,應(yīng)用范圍廣、準確度高。
遺傳算法主要由染色體編碼、初始種群設(shè)定、適應(yīng)度函數(shù)及遺傳算子等部分組成,具體運算步驟如下文所述。
首先計算出種群中全部個體的適應(yīng)度并相加得到適應(yīng)度總和Σfi,求出單獨個體對于適應(yīng)度總和的相對適應(yīng)度fi/Σfi;其次隨機產(chǎn)生一個[0,1]間的隨機數(shù),用輪盤賭法確定個體被選中的概率;最后進行交叉與配對,此為新個體產(chǎn)生的關(guān)鍵步驟,采用一定的交配率(Pc,一般是0.4~0.99)及變異率(Pm,一般是0.000 1~0.1),配合各種交叉策略如單點交叉、多點交叉等生成新個體,不斷進化迭代并代入適應(yīng)度函數(shù),以期獲得最優(yōu)化的結(jié)果。達到設(shè)定的迭代次數(shù)后,則終止計算,得出最優(yōu)解。其中,隨機配對后交叉點位置、變異運算、參數(shù)的選擇都會影響新個體的產(chǎn)生。
適應(yīng)度函數(shù)公式為
式中:fmax(x)為適應(yīng)度函數(shù)f(x)的最大值。當(dāng)fmax(x)未知時,可用當(dāng)前f(x)或目前進化過程中計算出的f(x)的最大值來替代,因此fmax(x)會隨著進化過程不斷變化。
與此同時,還存在
式中:fmax(x)為適應(yīng)度函數(shù)f(x)的下限值。若fmax(x)未知,則用當(dāng)前f(x)值或目前進化過程中得到的f(x)的最小值來替代。
由此得到關(guān)系式
式中:M為將當(dāng)前最大適應(yīng)度值放大的倍數(shù),選擇合適的M值的作用是拉開不同個體間的適應(yīng)度值之間的差距。還利用了線性變換f'=af+b,目的是希望計算后的最大適應(yīng)度值是平均適應(yīng)度值的較小倍,M一般取1.5或2。
利用MATLAB輸入程序,同時將[1,16]的1 600多個數(shù)據(jù),這些數(shù)據(jù)都是隨機無規(guī)律出現(xiàn),并通過運用遺傳算法來進行數(shù)據(jù)預(yù)測。
圖1為遺傳算法的預(yù)測結(jié)果。觀察結(jié)果圖,發(fā)現(xiàn)主要分布于坐標系縱軸附近,終止代數(shù)相同,當(dāng)進化代數(shù)取值不同時,適應(yīng)度分布情況也不同。從實驗結(jié)果中也可以很明顯地看出,經(jīng)過遺傳算法處理后的最佳適應(yīng)度確實比原始曲線誤差小了點,進化代數(shù)接近某一數(shù)值之后變化趨于水平,且容易受到外界因素的影響,導(dǎo)致處理后的結(jié)果沒有達到預(yù)期效果。
圖1 平均適應(yīng)度
為了準確預(yù)測風(fēng)光功率,通過大量查詢資料采用BP神經(jīng)網(wǎng)絡(luò)算法。神經(jīng)網(wǎng)絡(luò)信號在正向傳輸中,不斷接收其他神經(jīng)元的輸入信號,這些信號乘以權(quán)重后累計到該神經(jīng)元接收到的總輸入上,并與該神經(jīng)元的輸入閾值比較。通過處理激活函數(shù),產(chǎn)生神經(jīng)元的輸出。通常情況下,理想的激活函數(shù)為單位階躍信號:,其中“0”表征了神經(jīng)元抑制,“1”表示神經(jīng)元興奮。但階躍信號是不連續(xù)且不可導(dǎo)的,因此采用Sigmoid 函數(shù)將階躍函數(shù)替換為激活信號Sigmoid(x)=1/[1+e(-x)]。圖2展示了Sigmoid 函數(shù)及其導(dǎo)數(shù)。
圖2 Sigmoid函數(shù)與其導(dǎo)數(shù)曲線
以最簡單的BP神經(jīng)網(wǎng)絡(luò)為例,推導(dǎo)其原理。假設(shè)輸入層有n個神經(jīng)元,隱藏層有p個神經(jīng)元,輸出層有q個神經(jīng)元。BP網(wǎng)絡(luò)結(jié)構(gòu)圖中定義的變量如下:輸入向量為x=(x1,x2,…,xn),隱含層輸入向量為hi=(hi1,hi2,…,hip),隱含層輸出向量為ho=(ho1,ho2,…,hop),輸出層輸入向量為yi=(yi1,yi2,…,yip),輸出層輸出向量為yo=(yo1,yo2,…,yop),預(yù)期的輸出向量為d=(d1,d2,…,dq),輸入層到中間層的連接權(quán)重為wih,隱含層到輸出層的連接權(quán)重為who,隱藏層中每個神經(jīng)元的閾值為bh,輸出層中每個神經(jīng)元的閾值為bo,示例數(shù)據(jù)個數(shù)k=1,2,…,m,激活函數(shù)為f(x)。誤差函數(shù)為
操作步驟如下:(1)初始化網(wǎng)絡(luò),分別將各連接值設(shè)定為[-1,1]間的隨機數(shù),給誤差函數(shù)e、最大學(xué)習(xí)次數(shù)M和計算精度值ε賦值;(2)任意選擇第K個輸入樣本和相應(yīng)的預(yù)期輸出;(3)計算隱藏層中每個神經(jīng)元的輸入和輸出;(4)將網(wǎng)絡(luò)的實際輸出與預(yù)期輸出進行比較,由復(fù)合函數(shù)求導(dǎo)法則計算輸出層中每個神經(jīng)元的誤差函數(shù)的偏導(dǎo)數(shù);(5)通過隱藏層中每個神經(jīng)元的輸出以及輸出層中各神經(jīng)元的δ-o(k),得到修正后的連接權(quán)重who(k);(6)使用輸入層中每個神經(jīng)元的δ-h(k),并通過輸入校正連接權(quán)重。另要注意,在最終公式中,μ、η代表學(xué)習(xí)率,目的是調(diào)整步長,防止數(shù)值過大導(dǎo)致算法陷入局部最優(yōu),最終趨于最優(yōu)解。(7)計算全局誤差;(8)將網(wǎng)絡(luò)誤差與設(shè)定范圍比較,若誤差在預(yù)設(shè)范圍內(nèi)或迭代次數(shù)達到設(shè)定值,則結(jié)束算法。否則返回步驟(3),選擇下一個學(xué)習(xí)樣本和相應(yīng)的期望輸出[5]。
應(yīng)用遺傳算法優(yōu)化BP神經(jīng)算法,對所選取的1 600個數(shù)據(jù)樣本進行處理,得到優(yōu)化后的誤差曲線如圖3所示。
圖3 優(yōu)化后的誤差曲線
能夠很明顯地看出,用改進后的算法處理過的誤差波動更加清晰,處理的過程中,該算法也沒有受到外界各因素的干擾。總體上說,用遺傳算法進行優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的傳遞函數(shù)通過仿真處理后的預(yù)測結(jié)果達到了較好的處理效果,使得優(yōu)化后的預(yù)測誤差偏小,進而預(yù)測的更加準確。
經(jīng)過分析與比較,遺傳算法能夠判斷群體性能是否符合預(yù)先設(shè)定,但處理后的圖像存在不太明顯的變化適應(yīng)度且受外界因素影響。而在BP算法中,不僅解決了上述所存在的問題,且經(jīng)過BP神經(jīng)網(wǎng)絡(luò)算法處理過的結(jié)果誤差較為精確,外界因素也能保證不受影響,可以達到較好的處理效果。
本文研究了現(xiàn)有遺傳算法和BP神經(jīng)網(wǎng)絡(luò)算法的結(jié)合方法,深入探索這2種算法的基本模型、步驟和原理,將其應(yīng)用于短期功率的風(fēng)光預(yù)測,并進行對比優(yōu)化實驗。實驗結(jié)果證明,用遺傳算法進行優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的傳遞函數(shù)可以使原來預(yù)測結(jié)果更加精確,且未出現(xiàn)失真現(xiàn)象,誤差在一定程度上也得到了改善,外界因素也可以很好地避免,整體上使得優(yōu)化后曲線誤差更適合預(yù)測結(jié)果。