段新會,李文鑫
(1.華北電力大學 控制與計算機工程學院,保定071003;2.保定華仿科技股份有限公司,保定071051)
風能是一種清潔且用之不竭的可再生能源,發(fā)展利用風能已是大勢所趨。2019年我國風電累計裝機容量達到21005 萬千瓦,并且我國海上風電裝機規(guī)模位居全球第三[1],但風能是一種不可控能源,具有波動性、隨機性等特點,導致風力發(fā)電設備成規(guī)模并網(wǎng)時給整個電力系統(tǒng)的安全運行帶來考驗,無法準確滿足發(fā)電與用電之間的供需平衡導致風力資源浪費,降低電網(wǎng)經(jīng)濟性[2]。因此提高風速預測的準確性是保證安全并網(wǎng)的重要前提。
對于風速預測的方法主要分為2 大類:物理法與統(tǒng)計法。近幾年,人工智能迅速發(fā)展,滲透到了多個社會發(fā)展領域中,因此統(tǒng)計法成為了主流的預測方法,即對歷史數(shù)據(jù)進行統(tǒng)計分析找出非線性規(guī)律實現(xiàn)風速的預測。其中傳統(tǒng)的BP 神經(jīng)網(wǎng)絡與傳統(tǒng)的PSO 粒子群算法因結(jié)構(gòu)簡單、編程易實現(xiàn)等優(yōu)點被人們廣泛的應用于非線性擬合、參數(shù)尋優(yōu)等問題上[3]。文獻[4]采用BP 神經(jīng)網(wǎng)絡算法對風功率進行預測,但是其權(quán)值與偏置的選取影響著神經(jīng)網(wǎng)絡訓練的結(jié)果,具有一定偶然性,容易陷入局部最優(yōu)解,最后預測的結(jié)果具有較大誤差;文獻[5]采用PSO-BP算法對功率進行預測,預測結(jié)果好于BP 算法,但傳統(tǒng)的PSO 算法搜索能力較弱也會產(chǎn)生局部最優(yōu)、收斂速度較慢等問題,所以要對傳統(tǒng)的PSO 算法進行改進;文獻[6]引入混沌策略和種群適應度方差的概念,適應度方差越小代表粒子發(fā)散程度較差,影響著粒子群的搜索能力。當種群適應度方差較小時引入混沌策略增強粒子群的搜索能力;文獻[7]為解決后期粒子群算法在最優(yōu)解附近搜索的問題引入了收縮因子控制粒子的飛行速度,最后將改進的PSO算法對最小二乘支持向量機的核函數(shù)和懲罰因子進行尋優(yōu),結(jié)果表明仿真結(jié)果好于其它算法。針對以上改進的方法,本文引入一維Logistic 混沌映射與收縮因子對傳統(tǒng)PSO 粒子群算法進行優(yōu)化,既提高了粒子群初期的全局搜索能力又增強了粒子群后期局部尋優(yōu)的能力。將改進的PSO 粒子群算法對BP 神經(jīng)網(wǎng)絡的初始權(quán)值和偏置進行尋優(yōu),最后利用改進PSO 優(yōu)化的BP 神經(jīng)網(wǎng)絡對實際工程中的風速進行預測,結(jié)果表明基于改進粒子群優(yōu)化神經(jīng)網(wǎng)絡算法的超短期風速預測結(jié)果好于BP 神經(jīng)網(wǎng)絡算法、傳統(tǒng)PSO-BP 算法和僅引入收縮因子的PSO-BP算法的風速預測結(jié)果,驗證了算法改進的正確性。
BP 神經(jīng)網(wǎng)絡是一種多層前饋的運算模型,由大量神經(jīng)元之間相互聯(lián)接構(gòu)成,能夠很好地解決非線性問題[8]。本文所采納的神經(jīng)網(wǎng)絡結(jié)構(gòu)如圖1所示。
工作原理分為訓練和測試2 部分,訓練部分包括2 個環(huán)節(jié),正向傳播和反向傳播。通過正向傳播得到訓練樣本的輸出和誤差,然后利用誤差梯度下降方法反向傳播調(diào)節(jié)神經(jīng)網(wǎng)絡的權(quán)值和偏置。測試部分將測試的數(shù)據(jù)輸入到訓練后的神經(jīng)網(wǎng)絡模型中,實現(xiàn)對風速的預測。
圖1 BP 神經(jīng)網(wǎng)絡結(jié)構(gòu)Fig.1 BP neural network structure
三層BP 神經(jīng)網(wǎng)絡正向傳播計算方式如下:
式中:r 為輸入矩陣;wij為輸入層到隱含層的權(quán)值;i為輸入層神經(jīng)元個數(shù);j 為隱含層個數(shù);w0為隱含層的偏置;net1為隱含層的輸入。此次選擇sigmoid 函數(shù)作為隱含層和輸出層的激勵函數(shù);oj為隱含層的輸出;net2為輸出層的輸入;wjk為隱含層到輸出層的權(quán)值;k 為輸出層神經(jīng)元的個數(shù);w1為輸出層偏置;y1為系統(tǒng)輸出。
反向傳播利用誤差梯度下降法對權(quán)值、偏置進行調(diào)整。通過不斷迭代得到最后的權(quán)值與偏置。本文選取輸出層節(jié)點的誤差平方和作為神經(jīng)網(wǎng)絡的目標函數(shù),選取誤差平方和作為目標函數(shù)其中一個目的是對誤差平方求導時可以避免函數(shù)不可導這種情況,其表達公式為
式中:y0為系統(tǒng)實際值,則輸出層權(quán)值與偏置更新為
更新后的權(quán)值、偏置矩陣為
式中:α 為學習率,隱含層權(quán)值與偏置更新為
則更新的權(quán)值、偏置矩陣為
PSO 算法是模仿鳥群覓食的方法總結(jié)出的一種算法。其基本原理為PSO 算法隨機初始化一群粒子,通過迭代找到適應度函數(shù)的最優(yōu)解。假設n 個粒子X=(x1,x2,…,xn)在m 維的函數(shù)空間進行尋優(yōu),第i 個粒子由2 個向量表示:Xi=(xi1,xi2,…,xim)為第i 個粒子的位置向量;Vi=(vi1,vi2,…,vim)為第i 個粒子的速度向量。每次迭代中每個粒子根據(jù)兩個極值以及飛行速度來更新自己的位置,一個極值是個體本身求解適應度的最優(yōu)解對應的粒子位置,稱其為個體極值Pi;另一個是整個粒子群在所有某次迭代中求解適應度的最優(yōu)解對應的粒子位置,稱其為全局極值Pg。找到兩個極值后粒子不斷地改變速度,朝著兩個極值的方向靠攏。第i 個粒子按如下公式進行尋優(yōu):
式中:β 為粒子群的權(quán)重,影響粒子群的全局搜索能力和局部搜索能力;c1,c2為加速因子;r1,r2為[0-1]的隨機常數(shù);Pi為個體極值;Pg為全局極值;Vi+1,Xi+1為第i 個粒子迭代一次更新后的速度向量與位置向量。
由于傳統(tǒng)的粒子群算法中權(quán)重β 為恒定的常數(shù),當設定β 過大粒子的全局搜索能力較強影響后期的局部搜索能力,β 過小全局搜索能力較差收斂速度較慢,β 的大小對粒子飛行速度產(chǎn)生了一定的影響。因此為了提高粒子群全局搜索能力和局部搜索能力,對權(quán)重β 采用動態(tài)調(diào)整的方式。首先為了提高粒子群初期時的全局搜索能力,本文引入混沌理論中的一維Logistic 映射模型[7],公式為
式中:a∈[0,4]為Logistic 參數(shù);λ∈[0,1]的隨機數(shù)。當a 越接近4 時,Logistic 模型產(chǎn)生的序列具有非周期、非收斂的特點,而選取其它值時產(chǎn)生的序列是收斂的,產(chǎn)生的序列分布如圖2所示。
圖2 Logistic 序列分布圖Fig.2 Logistic sequence distribution
Logistic 序列分布見表1,由圖2 與表1 可看出混沌產(chǎn)生的序列具有發(fā)散、隨機性等特點,因此引入一維Logistic 映射模型調(diào)整權(quán)重可提高粒子群的全局搜索能力。
表1 Logistic 序列分布Tab.1 Logistic sequence distribution
改進后的權(quán)重見式(14),λ 為一維Logistic 映射產(chǎn)生的隨機序列;τ 為當前迭代的次數(shù);ε 為某一常數(shù)。當τ 小于ε 時,引入混沌映射使粒子群在迭代初期具有較強的全局尋優(yōu)能力。
式中:βmax=1.3,βmin=0.6,其大小由經(jīng)驗確定。
傳統(tǒng)粒子群算法進入尋優(yōu)后期,最優(yōu)值將收斂于某個區(qū)域內(nèi),粒子群將在此區(qū)域內(nèi)不斷地迭代,由于傳統(tǒng)粒子群權(quán)重β 為恒定的常數(shù),在尋優(yōu)后期粒子的局部搜索能力較差導致尋優(yōu)結(jié)果不理想,若只引入混沌策略,粒子進入后期可能會在區(qū)域內(nèi)來回振蕩甚至會跳出收斂的區(qū)域,因此本文引入收縮因子更新粒子群的速度,提高粒子群尋優(yōu)后期局部搜索能力,更新后的速度公式為
式中:μ 為收縮因子;time 為迭代總次數(shù)。當τ 大于等于ε 時,粒子群進入尋優(yōu)后期,T 逐漸增加使權(quán)重β 減小,收縮因子也逐漸減小。在權(quán)重β 與收縮因子μ 共同作用下使粒子的飛行速度Vi+1減小,增強了粒子群后期局部的尋優(yōu)能力。
BP 神經(jīng)網(wǎng)絡在識別、分類、預測等問題上有著廣泛的應用[9],但是其權(quán)值與偏置的選取影響著神經(jīng)網(wǎng)絡訓練的結(jié)果,因此需要采用尋優(yōu)算法尋找到更好的神經(jīng)網(wǎng)絡初始參數(shù)。本文引入混沌映射與壓縮因子算法對粒子群算法進行了改進,將改進后的粒子群算法用于尋優(yōu)BP 神經(jīng)網(wǎng)絡的初始參數(shù),最后對風速進行預測。PSO 優(yōu)化BP 神經(jīng)網(wǎng)絡時,將BP 神經(jīng)網(wǎng)絡的權(quán)值和偏置作為PSO 算法中的粒子,結(jié)合神經(jīng)網(wǎng)絡正向傳播計算方式計算出粒子適應度,比較適應度的大小并確定個體極值與全局極值,不斷更新粒子的速度、位置。直至達到迭代要求為止,得到的最優(yōu)粒子作為BP 神經(jīng)網(wǎng)絡的初始權(quán)值與偏置。此時粒子的適應度為神經(jīng)網(wǎng)絡中的目標函數(shù),見式(5)。具體優(yōu)化步驟如下:
步驟1首先初始化模型各參數(shù),BP 結(jié)構(gòu)初始化、粒子群算法初始化。
步驟2將歸一化的風速訓練數(shù)據(jù)作為神經(jīng)網(wǎng)絡的輸入,根據(jù)正向傳播的計算方式計算出各粒子的初始適應度值,根據(jù)適應度值確定全局極值,此時個體極值為個體本身。
步驟3利用式(14)、式(16)更新粒子的速度和位置,計算新的適應度。
步驟4將新適應度與對應的當前適應度比較,若新適應度小于對應的當前適應度,將新適應度對應的位置向量作為新個體極值;找到最小的新適應度并與當前最小適應度進行比較,若小于當前適應度,將新適應度對應的位置向量作為新全局極值,將其作為全局最優(yōu)解。
步驟5判斷迭代結(jié)果是否滿足尋優(yōu)條件或是否達到迭代次數(shù),若達到要求迭代停止,否則重復步驟(3)~步驟(5)。
步驟6將粒子群算法優(yōu)化后的參數(shù)作為BP神經(jīng)網(wǎng)絡的初始權(quán)值、偏置參數(shù)。將最后得到的神經(jīng)網(wǎng)絡模型對風速數(shù)據(jù)進行訓練與預測。流程如圖3所示。
圖3 改進的PSO-BP 算法流程圖Fig.3 Improved PSO-BP algorithm flow chart
本文對某風電場的風速進行超短期預測,預測前對該電廠的風速數(shù)據(jù)進行采集,每隔5 min 采集一次風速數(shù)據(jù),采集了3 天共860 組風速數(shù)據(jù)。選取其中845 組數(shù)據(jù)作為訓練數(shù)據(jù),15 組作為測試數(shù)據(jù)。采用前4 個時刻風速值預測下一時刻的風速值,因此設置BP 神經(jīng)網(wǎng)絡輸入層i 為4 層,輸出層k 為1 層。對于隱含層的設定通過經(jīng)驗公式(20)來確定,h∈[0,10],取h=3,則隱含層j 為6層。因此共有30 個權(quán)值,7 個偏置參數(shù)需要優(yōu)化,設定種群粒子數(shù)為37,種群規(guī)模為60,迭代次數(shù)300 次。
利用經(jīng)改進的粒子群算法優(yōu)化后的BP 神經(jīng)網(wǎng)絡模型對風速數(shù)據(jù)進行訓練與預測。訓練數(shù)據(jù)見式(21)~式(22),將o 矩陣每一列作為神經(jīng)網(wǎng)絡的輸入,q1的每一列為對應的輸入訓練數(shù)據(jù)經(jīng)神經(jīng)網(wǎng)絡結(jié)構(gòu)計算得到的輸出值,通過q1與實際風速值q0之間的誤差不斷地去訓練神經(jīng)網(wǎng)絡模型。
訓練結(jié)束后對風速進行預測,測試數(shù)據(jù)見式(24),測試的結(jié)果見式(25)。其中s 為測試的輸入數(shù)據(jù),t 為測試結(jié)果。
為了驗證算法改進的正確性,分別采用傳統(tǒng)BP神經(jīng)網(wǎng)絡、傳統(tǒng)PSO-BP 算法、僅引入收縮因子的PSO-BP 算法、改進的PSO-BP 算法在MATLAB 平臺上對風速預測,預測結(jié)果如圖4所示。
圖4 風速預測曲線Fig.4 Wind speed forecast curve
為了衡量預測的準確率,分別計算不同算法對應的平均相對誤差MAPE 和均方根誤差RMSE,結(jié)果如表2所示。
表2 預測誤差Tab.2 Prediction error
通過圖4 和表2 可看出改進后的PSO-BP 算法預測結(jié)果較好于前三者,驗證該算法的準確性,可減小預測誤差,具有一定的實用性。
本文引入混沌映射和收縮因子對傳統(tǒng)PSO 算法進行改進,提高了粒子群初期的全局搜索能力和后期的局部搜索能力。將改進的PSO 算法對BP 神經(jīng)網(wǎng)絡參數(shù)尋優(yōu),最后將優(yōu)化后的PSO-BP 算法對風速進行預測,并將結(jié)果與BP 神經(jīng)網(wǎng)絡算法、PSO-BP算法、僅引入收縮因子的PSO-BP 算法預測的結(jié)果相比較,結(jié)果表明改進后的PSO-BP 算法效果好于前三者,證明改進后算法的正確性及一定的實用性。