王明馨,鄭瑛楠,鄧卓夫
(1.沈陽(yáng)農(nóng)業(yè)大學(xué) 水利學(xué)院,遼寧 沈陽(yáng) 110866;2.東北大學(xué) 軟件學(xué)院,遼寧 沈陽(yáng) 110169)
由于電能無(wú)法大量?jī)?chǔ)存,通常情況下為即發(fā)即用[1]。因此準(zhǔn)確的電力系統(tǒng)負(fù)荷預(yù)測(cè)可有效地平衡供需關(guān)系,并大幅度降低發(fā)電成本,有助于改善電力系統(tǒng)的經(jīng)濟(jì)效益,同時(shí)提高其環(huán)境效益[2]。在電力負(fù)荷預(yù)測(cè)方面,傳統(tǒng)預(yù)測(cè)模型通常包括差分整合移動(dòng)平均自回歸模型、卡爾曼濾波模型、參數(shù)回歸模型等[3]。隨著人工智能技術(shù)的快速發(fā)展,神經(jīng)網(wǎng)絡(luò)、專家系統(tǒng)、支持向量機(jī)等模型在電力系統(tǒng)負(fù)荷預(yù)測(cè)中的應(yīng)用已成為主流[4]。
Elman 神經(jīng)網(wǎng)絡(luò)在前饋神經(jīng)網(wǎng)絡(luò)中添加一層連接層作為單步延遲算子,以達(dá)到記憶的目的,并使該系統(tǒng)具有較為實(shí)用的時(shí)變特性,能夠適用于電力負(fù)荷預(yù)測(cè)[5-6]。但對(duì)于未知的非線性模型容易陷入局部最優(yōu),僅具有非線性擬合能力的Elman 神經(jīng)網(wǎng)絡(luò)在尋優(yōu)方面仍有待加強(qiáng)[7]。近年來(lái),神經(jīng)網(wǎng)絡(luò)的非線性擬合能力與智能算法的非線性優(yōu)化相結(jié)合已成為解決非線性模型的趨勢(shì)[8],但部分研究對(duì)于負(fù)荷預(yù)測(cè)的效率及準(zhǔn)確度仍有待提升[9]。
因此,文中采用細(xì)菌覓食算法(Bacterial Foraging Algorithm,BFA)改進(jìn)Elman 神經(jīng)網(wǎng)絡(luò),構(gòu)建了基于BFA-Elman的電力負(fù)荷可靠性預(yù)測(cè)系統(tǒng),并通過(guò)實(shí)驗(yàn)分析驗(yàn)證系統(tǒng)預(yù)測(cè)的準(zhǔn)確性和高效性。
通常而言,Elman 神經(jīng)網(wǎng)絡(luò)依次包含輸入層、隱藏層、接收層以及輸出層4 層網(wǎng)絡(luò)。其具體結(jié)構(gòu)如圖1 所示。
圖1 Elman神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
輸入層起到信號(hào)傳輸?shù)淖饔茫敵鰧悠鸬骄€性權(quán)重的作用[10-11]。隱藏層的傳遞函數(shù)可以采用線性函數(shù)或非線性函數(shù),承接層用于存儲(chǔ)前一時(shí)刻隱藏層的輸出值,并返回到網(wǎng)絡(luò)的輸入[12]。
Elman 神經(jīng)網(wǎng)絡(luò)的非線性狀態(tài)空間表達(dá)式為:
式中,x、y、u分別表示中間層、輸出層以及輸入層的節(jié)點(diǎn)向量;xc(k)是承接層的反饋向量;ω1、ω2、ω3分別是承接層連接中間層、輸入層連接中間層、中間層連接輸出層的權(quán)重。
2002 年Kevin M.Passino 基于大腸桿菌在人體腸道內(nèi)吞噬食物的覓食行為,提出了一種仿生優(yōu)化算法—細(xì)菌覓食算法(BFA),該算法的核心機(jī)制包括趨向、繁殖和遷移等操作[13]。
1)趨向:個(gè)體適應(yīng)度可以通過(guò)游動(dòng)和翻轉(zhuǎn)進(jìn)行改善。游動(dòng)過(guò)程不改變個(gè)體方向,當(dāng)適應(yīng)度不能再通過(guò)游動(dòng)改善時(shí)則進(jìn)行翻轉(zhuǎn),使游動(dòng)方向隨機(jī)改變。具體表達(dá)如下:
式中,j、k、l分別為趨化次數(shù)、繁殖次數(shù)和遷移次數(shù);θi(j,k,l)為個(gè)體i在對(duì)應(yīng)次數(shù)的趨化、繁殖和遷移后的位置;S(i)與?(j)分別為個(gè)體i游動(dòng)步長(zhǎng)及隨機(jī)翻轉(zhuǎn)后的方向。
2)繁殖:根據(jù)適應(yīng)度對(duì)個(gè)體進(jìn)行排序,并選擇適應(yīng)度靠前的個(gè)體為繁殖操作的父代。在不考慮變異的情況下,子代個(gè)體將繼承父代個(gè)體的所有屬性。
3)遷移:適應(yīng)度較差的個(gè)體新位置按遷移概率進(jìn)行隨機(jī)選取。
定義t時(shí)刻網(wǎng)絡(luò)的權(quán)值調(diào)整誤差函數(shù)為:
式中,y(t)與yd(t)分別為第i個(gè)輸出節(jié)點(diǎn)的期望輸出和實(shí)際輸出。
將E(t)對(duì)ω3求偏導(dǎo),可得:
同樣,將誤差函數(shù)E(t)對(duì)權(quán)值ω2、ω1進(jìn)行求偏導(dǎo)。由可以得到BFA-Elman 神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法,計(jì)算過(guò)程為:
Elman 神經(jīng)網(wǎng)絡(luò)算法的性能受諸多因素影響,主要包括學(xué)習(xí)算法、激勵(lì)函數(shù)、初始時(shí)各層的權(quán)值和閾值以及網(wǎng)絡(luò)結(jié)構(gòu)等。因此,為了獲得更優(yōu)的預(yù)測(cè)精度,利用BFA 算法對(duì)Elman 神經(jīng)網(wǎng)絡(luò)進(jìn)行改進(jìn)。BFA 在處理高維度問(wèn)題時(shí)能夠避免早熟收斂,其具有較高的尋優(yōu)效率[14]。因此,利用BFA 算法對(duì)Elman的權(quán)值和閾值進(jìn)行改進(jìn),解決其本身拓?fù)浣Y(jié)構(gòu)的多樣性和權(quán)值閾值的不確定性問(wèn)題[15-16]。基于BFAElman的電力負(fù)荷可靠性預(yù)測(cè)流程如圖2 所示。
圖2 基于BFA-Elman的電力負(fù)荷可靠性預(yù)測(cè)流程
在進(jìn)行可靠預(yù)測(cè)時(shí),首先對(duì)電力負(fù)荷的歷史數(shù)據(jù)進(jìn)行預(yù)處理,然后利用BFA 改進(jìn)Elman 神經(jīng)網(wǎng)絡(luò),得到最優(yōu)的權(quán)值閾值。最終將預(yù)處理后的電力數(shù)據(jù)輸入優(yōu)化后的Elman網(wǎng)絡(luò),以實(shí)現(xiàn)電力負(fù)荷的可靠預(yù)測(cè)。
由于各個(gè)環(huán)節(jié)均可能存在數(shù)據(jù)丟失、缺損的情況,從而造成異常數(shù)據(jù)的產(chǎn)生,而這都有可能影響預(yù)測(cè)模型的精度。電力負(fù)荷具有一定的周期性,在同一時(shí)刻負(fù)荷具有一定的相似性,其變化范圍波動(dòng)較小。若超出這一范圍,則可判定為異常數(shù)據(jù),表達(dá)如下:
式中,x(i,t)為第t個(gè)時(shí)刻的負(fù)荷值;?(t)為閾值,其根據(jù)實(shí)際情況可預(yù)先設(shè)定。
當(dāng)檢測(cè)出異常數(shù)據(jù)后,通過(guò)對(duì)突變負(fù)荷的平滑處理,可使得數(shù)據(jù)波動(dòng)較小。具體處理如下:
式中,(t)為負(fù)荷平均值。
輸入輸出數(shù)據(jù)的直接差異較大容易導(dǎo)致嚴(yán)重的預(yù)測(cè)誤差,因此對(duì)所有數(shù)據(jù)進(jìn)行了歸一化處理如下:
式中,xmax、xmin分別是數(shù)據(jù)的最大值和最小值;xi、分別是歸一化前后的數(shù)據(jù)。根據(jù)式(10)對(duì)優(yōu)化后的Elman 神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)數(shù)據(jù)進(jìn)行反向歸一化,以獲得預(yù)測(cè)負(fù)荷值:
式中,yi和分別是逆歸一化前、后的預(yù)測(cè)數(shù)據(jù)。
實(shí)驗(yàn)中使用了某省市一天內(nèi)的實(shí)際電力負(fù)載數(shù)據(jù),每半小時(shí)收集一次,共48 組數(shù)據(jù)。同時(shí)選擇30天總共1 440 個(gè)數(shù)據(jù)作為實(shí)驗(yàn)數(shù)據(jù),如圖3 所示。
圖3 電力負(fù)荷歷史數(shù)據(jù)信息
實(shí)驗(yàn)中,使用單步滾動(dòng)預(yù)測(cè)模型,選擇第一批1 383 個(gè)樣本作為訓(xùn)練集,最終選擇了48 個(gè)樣本作為測(cè)試集。Elman神經(jīng)網(wǎng)絡(luò)設(shè)置為9-11-1結(jié)構(gòu),輸入層中的神經(jīng)元數(shù)量為9;隱藏層中的神經(jīng)元數(shù)量為11;輸出層中的神經(jīng)元數(shù)量為1。誤差設(shè)置為0.000 1,最大訓(xùn)練頻率為2 000 次/s。
為了論證BFA-Elman 神經(jīng)網(wǎng)絡(luò)的尋優(yōu)性能,將其與傳統(tǒng)Elman 神經(jīng)網(wǎng)絡(luò)在預(yù)測(cè)所需時(shí)間上進(jìn)行對(duì)比。數(shù)據(jù)量對(duì)預(yù)測(cè)時(shí)間的影響如圖4 所示。
圖4 數(shù)據(jù)量對(duì)預(yù)測(cè)時(shí)間的影響分析
由圖4 可知,當(dāng)數(shù)據(jù)樣本較小時(shí)則兩種算法所需預(yù)測(cè)時(shí)間相差較小。甚至傳統(tǒng)Elman 網(wǎng)絡(luò)所需要的時(shí)間略優(yōu)于BFA-Elman 網(wǎng)絡(luò)模型。因此所提模型在小樣本集下仍需利用BFA 進(jìn)行尋優(yōu),影響了其預(yù)測(cè)速度。但隨著樣本集的增大,預(yù)測(cè)算法所需的迭代時(shí)間有了明顯不同。傳統(tǒng)Elman 網(wǎng)絡(luò)受數(shù)據(jù)量的影響較大,而所提BFA-Elman 網(wǎng)絡(luò)的處理則能力較強(qiáng)。當(dāng)數(shù)據(jù)量為10 240 MB 時(shí),完成負(fù)荷預(yù)測(cè)的時(shí)間不超過(guò)20 s。
對(duì)優(yōu)化前后的Elman 神經(jīng)網(wǎng)絡(luò)模型分別進(jìn)行負(fù)荷預(yù)測(cè)。其預(yù)測(cè)結(jié)果準(zhǔn)確率如圖5 所示。
圖5 優(yōu)化前后的負(fù)荷預(yù)測(cè)曲線對(duì)比
從圖5 中可看出,所提BFA-Elman 網(wǎng)絡(luò)得到的負(fù)荷預(yù)測(cè)值與真實(shí)值尤為接近,而Elman 網(wǎng)絡(luò)與真實(shí)值存在一定的偏差。因此,所提模型采用BFA 算法優(yōu)化Elman的網(wǎng)絡(luò)參數(shù),能夠提高預(yù)測(cè)的精度。
為了定量分析所提模型的預(yù)測(cè)性能,將其與Elman 網(wǎng)絡(luò)預(yù)測(cè)值的相對(duì)誤差進(jìn)行對(duì)比分析。以選取一天的負(fù)荷數(shù)據(jù)為例,結(jié)果見表1 所示。
表1 負(fù)荷預(yù)測(cè)相對(duì)誤差對(duì)比
由表1 可知,通過(guò)BFA 優(yōu)化權(quán)值和閾值,能夠顯著提高模型的預(yù)測(cè)性能。基于Elman 神經(jīng)網(wǎng)絡(luò)的平均預(yù)測(cè)絕對(duì)誤差為1.45%,最大預(yù)測(cè)絕對(duì)誤差為2.56%。BFA-Elman 神經(jīng)網(wǎng)絡(luò)的平均預(yù)測(cè)絕對(duì)誤差為0.41%,最大預(yù)測(cè)絕對(duì)誤差0.69%??梢钥闯?,采用BFA-Elman 神經(jīng)網(wǎng)絡(luò)可以有效提高預(yù)測(cè)精度。
負(fù)荷預(yù)測(cè)可靠性的提高對(duì)于提升發(fā)電設(shè)備的利用率和經(jīng)濟(jì)調(diào)度均具有重要意義。為此,文中設(shè)計(jì)了一種基于BFA-Elman 電力負(fù)荷可靠性的預(yù)測(cè)系統(tǒng)。通過(guò)BFA 優(yōu)化Elman 網(wǎng)絡(luò)模型的結(jié)構(gòu)參數(shù)獲得最佳的權(quán)值和閾值,并利用BFA-Elman 網(wǎng)絡(luò)構(gòu)建電力負(fù)荷預(yù)測(cè)模型,以實(shí)現(xiàn)可靠預(yù)測(cè)。實(shí)驗(yàn)結(jié)果表明,預(yù)測(cè)誤差均值為0.41%,低于對(duì)比方法。由于文中只考慮了短期電力負(fù)荷,對(duì)于更長(zhǎng)時(shí)間的預(yù)測(cè)缺乏研究。在接下來(lái)的工作中,將通過(guò)優(yōu)化預(yù)測(cè)模型提高更長(zhǎng)時(shí)間電力負(fù)荷預(yù)測(cè)的可靠性。