郭松林, 巴艷坤, 李 春
(黑龍江科技大學(xué) 電氣與控制工程學(xué)院, 哈爾濱 150022)
近些年來(lái),隨著國(guó)家對(duì)綠色能源的倡導(dǎo),生活越來(lái)越依靠電能。但由于電能難以大量?jī)?chǔ)存,而負(fù)荷的需求也是實(shí)時(shí)變化的,因此,對(duì)于電力負(fù)荷的有效預(yù)測(cè)可以保障電網(wǎng)平穩(wěn)、安全、經(jīng)濟(jì)地運(yùn)行[1]。對(duì)此,國(guó)內(nèi)外學(xué)者已經(jīng)提出了諸多方案對(duì)電力負(fù)荷進(jìn)行短期預(yù)測(cè),張林等[2]利用正交小波對(duì)用電負(fù)荷序列進(jìn)行分解,通過(guò)變種LSTM神經(jīng)網(wǎng)絡(luò)對(duì)各尺度負(fù)荷序列進(jìn)行建模,有效地消除負(fù)荷數(shù)據(jù)的波動(dòng)性。王劍鋒等[3]提出了一種基于改進(jìn)深度信念網(wǎng)絡(luò)算法的負(fù)荷預(yù)測(cè)模型,提高了數(shù)據(jù)處理的效率。陳雪薇等[4]構(gòu)建了基于遷移學(xué)習(xí)算法來(lái)預(yù)測(cè)新建建筑電力負(fù)荷的預(yù)測(cè)模型。關(guān)書(shū)懷等[5]建立了粒子群優(yōu)化對(duì)RBF神經(jīng)網(wǎng)絡(luò)的負(fù)荷預(yù)測(cè)模型。馮忠義等[6]提出了一種基于隨機(jī)森林和改進(jìn)局部預(yù)測(cè)模型,提高了短期電力負(fù)荷的預(yù)測(cè)精度??盗x[7]建立了基于粒子群算法優(yōu)化LSTM的預(yù)測(cè)模型,改善了超短期負(fù)荷預(yù)測(cè)的精度。筆者提出一種改進(jìn)麻雀搜索算法與BP神經(jīng)網(wǎng)絡(luò)相結(jié)合的短期負(fù)荷預(yù)測(cè)模型(BSSABP),將麻雀搜索算法中發(fā)現(xiàn)者的覓食行為由跳躍改為移動(dòng),優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值,以提高負(fù)荷預(yù)測(cè)模型的預(yù)測(cè)性能。
改進(jìn)傳統(tǒng)的SSA算法,主要是對(duì)算法的步長(zhǎng)更新因子和發(fā)現(xiàn)者、警戒者位置更新公式進(jìn)行調(diào)整,運(yùn)用用BSSA算法迭代得到的結(jié)果賦值給BP神經(jīng)網(wǎng)絡(luò)作為其初始權(quán)值和閾值。由于改進(jìn)后的麻雀搜索算法擁有較強(qiáng)的全局搜索能力,穩(wěn)定性更強(qiáng),由此,可以構(gòu)建一個(gè)收斂更快,誤差更小的短期負(fù)荷預(yù)測(cè)模型。
麻雀搜索算法是受麻雀覓食啟發(fā)產(chǎn)生的。麻雀覓食時(shí),會(huì)將所有個(gè)體進(jìn)行調(diào)整,分為發(fā)現(xiàn)者和跟隨者,并隨機(jī)分配警戒者進(jìn)行反捕食行為。
發(fā)現(xiàn)者要為整個(gè)種群指引方向,尋找覓食區(qū)域,發(fā)現(xiàn)者位置數(shù)學(xué)表達(dá)式為
(1)
α——(0,1]中的均勻隨機(jī)數(shù);
Q——標(biāo)準(zhǔn)正態(tài)分布的隨機(jī)數(shù);
R2——[0,1]中的均勻隨機(jī)數(shù);
ST——警戒閾值;
M——最大迭代次數(shù)。
當(dāng)R2≥ST時(shí),覓食區(qū)域可能存在危險(xiǎn),麻雀?jìng)儽仨氾w往附近的安全位置;當(dāng)R2 跟隨者則是在發(fā)現(xiàn)者的指引下,在覓食區(qū)域內(nèi)進(jìn)行覓食,跟隨者位置數(shù)學(xué)表達(dá)式為 (2) i——第i個(gè)個(gè)體; D——維度; n——種群數(shù)量; 由式(2)可以看出,若i>n/2時(shí),該麻雀處于饑餓狀態(tài),必須馬上飛往其他位置進(jìn)行覓食行為;若i≤n/2時(shí),麻雀會(huì)飛往附近最優(yōu)位置。 麻雀會(huì)隨機(jī)分配警戒者,負(fù)責(zé)守護(hù)種群進(jìn)行覓食,警戒者位置數(shù)學(xué)表達(dá)式為 (3) 式中:β——符合標(biāo)準(zhǔn)正態(tài)分布的隨機(jī)數(shù); k——[-1,1]的均勻隨機(jī)數(shù); ε——極小數(shù),防止分母為零; fw——最差位置麻雀的適應(yīng)度; fi、fb——任意位置麻雀和最優(yōu)位置麻雀的適應(yīng)度值。 當(dāng)fi>fb時(shí),說(shuō)明當(dāng)前的麻雀正位于覓食區(qū)域的邊緣,已經(jīng)遭到其他捕食者的威脅,麻雀會(huì)逃到最優(yōu)位置附近,可能喪失其他最優(yōu)解;當(dāng)fi=fb時(shí),該預(yù)警的麻雀處于當(dāng)前的最優(yōu)位置時(shí),它會(huì)飛往到自身附近的一個(gè)位置。 對(duì)傳統(tǒng)SSA算法進(jìn)行改進(jìn)主要是對(duì)步長(zhǎng)更新公式和發(fā)現(xiàn)者、警戒者位置更新公式的改進(jìn)。 (1)步長(zhǎng)更新公式的改進(jìn) 在算法迭代的過(guò)程中,較大的步長(zhǎng)會(huì)使群體大范圍的進(jìn)行搜索行為;較小的步長(zhǎng)因子則會(huì)使群體在局部區(qū)域進(jìn)行集中搜索[7]。但是在式(3)中,β和k的選取都是在一定范圍內(nèi)隨機(jī)的,而隨機(jī)選取可能不一定能滿足算法的需求,且可能會(huì)使算法陷入局部最優(yōu)解。 (4) 式中:fb——最優(yōu)位置上的麻雀的適應(yīng)度值; t——當(dāng)前迭代次數(shù)。 證明:設(shè)t1 ∵fb-fw>0,t1-t2<0, ∴β1<β2。 因此,β是一個(gè)遞增函數(shù)。 由式(4)可以看出,β不再是隨機(jī)取值,而是表現(xiàn)出非線性變化,且是一個(gè)遞增函數(shù)。對(duì)算法改進(jìn)后,前期的β取值范圍相對(duì)比較小,會(huì)使個(gè)體的局部搜索能力得到加強(qiáng),而后期的取值相對(duì)較大,能夠使麻雀進(jìn)行大范圍搜索,進(jìn)而解決可能陷入局部最優(yōu)的問(wèn)題。 (5) 由式(5)知,k在迭代前期是遞增的,迭代后期則會(huì)快速減少。該改進(jìn)可以促使麻雀前期對(duì)于整個(gè)覓食區(qū)域的搜索更加充分,后期則可以極大地提高算法的收斂速度。 (2)位置更新公式的改進(jìn) 改進(jìn)后發(fā)現(xiàn)者位置更新公式為 (6) 對(duì)式(1)改進(jìn)后,可以消除掉麻雀群體收斂于原點(diǎn)的操作,并且向最優(yōu)位置的操作也由跳躍變?yōu)橐苿?dòng)。改進(jìn)后警戒者位置更新公式為 (7) 證明當(dāng)fi≠fb時(shí) 當(dāng)fi=fb時(shí) 對(duì)式(3)改進(jìn)后可以看出,如果警戒者所處的位置最好,那么它會(huì)逃到最優(yōu)和最差的位置之間的隨機(jī)位置,否則,它將會(huì)逃到自己和最優(yōu)位置之間的隨機(jī)位置。在對(duì)整個(gè)算法進(jìn)行改進(jìn)后,可以看出麻雀不會(huì)再集中于原點(diǎn)了,大范圍搜素能有效避免陷入局部最優(yōu)的問(wèn)題。選取基準(zhǔn)函數(shù)測(cè)試BSSA的尋優(yōu)性能。 單峰值函數(shù)Sphere基準(zhǔn)測(cè)試函數(shù)為 (8) 多峰值函數(shù)Rastrign基準(zhǔn)測(cè)試函數(shù)為 (9) 由式(8)和(9)可知,維度分別為30和4,理論上最優(yōu)解均為0。改進(jìn)前后算法的各初始參數(shù)均一致,分別運(yùn)行30次,并對(duì)結(jié)果進(jìn)行記錄,計(jì)算出平均值和標(biāo)準(zhǔn)差,如表1所示。收斂性能對(duì)比如圖1所示。 圖1 測(cè)試函數(shù)收斂曲線Fig. 1 Convergence cure of test function 表1 測(cè)試結(jié)果Table 1 Test results 利用BSSA算法對(duì)BP神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化的流程如圖2所示,其適應(yīng)度函數(shù)J的數(shù)學(xué)模型為 (10) 式中:N——訓(xùn)練樣本的樣本數(shù); C——輸出神經(jīng)元個(gè)數(shù); yij——神經(jīng)網(wǎng)絡(luò)輸出值。 改進(jìn)麻雀搜索算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的流程如圖2所示。 圖2 BSSA算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)流程Fig. 2 Flow of BP neural network optimized by BSSA 選取所要預(yù)測(cè)日前一周、前兩天、前一天的負(fù)荷數(shù)據(jù)、預(yù)測(cè)日平均溫度和預(yù)測(cè)日類型當(dāng)作輸入變量,考慮工作日和雙休對(duì)電力負(fù)荷也有相應(yīng)的影響,因此,文中將工作日影響因子λ1確定為0.8,雙休日影響因子λ2確定為0.2。選取預(yù)測(cè)日的電力負(fù)荷作為輸出變量。并對(duì)負(fù)荷數(shù)據(jù)進(jìn)行歸一化處理,為了使模型得到更快的收斂速度和更高的精度,文中將數(shù)據(jù)處理在[0,1]之內(nèi)。 對(duì)于隱含層神經(jīng)元個(gè)數(shù)的選取是一個(gè)難題,個(gè)數(shù)過(guò)多的話,可能會(huì)出現(xiàn)過(guò)擬合的問(wèn)題,而個(gè)數(shù)過(guò)少有可能會(huì)導(dǎo)致誤差過(guò)大[8]。通過(guò)前人的研究[9],對(duì)于隱含層神經(jīng)元選取時(shí),試湊法不失為一個(gè)相對(duì)而言比較科學(xué)的辦法;根據(jù)隱含層神經(jīng)元個(gè)數(shù)不同時(shí),造成的誤差結(jié)果也有大有小,進(jìn)而選擇誤差最小時(shí)的隱含層神經(jīng)元個(gè)數(shù),數(shù)學(xué)表達(dá)式為 (11) 式中:l、m、n——隱含層、輸入層、輸出層神經(jīng)元個(gè)數(shù); a——調(diào)整常數(shù)。 通過(guò)試湊法[10]進(jìn)行測(cè)試,實(shí)驗(yàn)結(jié)果表明隱含層節(jié)點(diǎn)數(shù)為7時(shí),誤差最小。因此,確定5-7-1作為文中的神經(jīng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。將誤差目標(biāo)設(shè)置為0.00 001,網(wǎng)絡(luò)學(xué)習(xí)率設(shè)置為0.2,最大訓(xùn)練次數(shù)為1 000。 文中采集了某地從5月1日起到6月30日為止的共61組電力負(fù)荷樣本數(shù)據(jù),由于硬件故障或者數(shù)據(jù)傳輸過(guò)程中存在問(wèn)題,負(fù)荷數(shù)據(jù)中可能存在異常點(diǎn)。文中對(duì)數(shù)據(jù)處理的表達(dá)式為 (12) 式中:A、A′——原始數(shù)據(jù)矩陣和處理完成的數(shù)據(jù)矩陣; i——矩陣行數(shù)取值范圍,i=1,2,…,61; j——矩陣列數(shù),取值范圍,j=1,2,…,24。 將處理完異常點(diǎn)的數(shù)據(jù)作為數(shù)據(jù)樣本,并對(duì)數(shù)據(jù)進(jìn)行歸一化操作,提高網(wǎng)絡(luò)的迭代速度和精度。文中采用最大最小歸一化法[11],其數(shù)學(xué)模型為 (13) 式中:X、X′——數(shù)據(jù)量; Xmax、Xmin——數(shù)據(jù)中的最大值和最小值。 選取前51組作為訓(xùn)練樣本,剩下的10組數(shù)據(jù)作為測(cè)試樣本。將兩種模型分別得到的預(yù)測(cè)值與實(shí)際值作對(duì)比,得到結(jié)果如圖3和4所示。 圖3 SSABP和BSSABP預(yù)測(cè)結(jié)果Fig. 3 Prediction results of SSABP and BSSABP 由圖3可知,BSSABP預(yù)測(cè)模型得到的預(yù)測(cè)更符合實(shí)際值,且經(jīng)過(guò)計(jì)算得到SSABP的平均誤差為0.012,而SSABP的平均誤差為0.060。由此可見(jiàn),改進(jìn)之后的SSA算法在克服全局搜索能力弱,易陷入局部最優(yōu)解等問(wèn)題是可行的。 由圖4可以看出,BSSABP預(yù)測(cè)模型明顯收斂更快,且在同樣的迭代次數(shù)下,訓(xùn)練后BSSABP預(yù)測(cè)模型誤差更小。 圖4 BSSABP和SSABP預(yù)測(cè)模型的訓(xùn)練結(jié)果Fig. 4 Training results of BSSABP and SSABP (1)優(yōu)化SSA后,發(fā)現(xiàn)者向最優(yōu)位置的移動(dòng)方式由跳躍改為移動(dòng),提高了模型的全局搜索能力,步長(zhǎng)更新因子由隨機(jī)選取轉(zhuǎn)換為非線性變化,增強(qiáng)了模型預(yù)測(cè)能力的穩(wěn)定性。 (2)仿真實(shí)驗(yàn)表明,采用BSSA優(yōu)化BP神經(jīng)網(wǎng)絡(luò)后,預(yù)測(cè)結(jié)果的平均誤差降低了4.80%,BSSABP能夠應(yīng)用于短期電力負(fù)荷預(yù)測(cè)中,且預(yù)測(cè)精度更高。1.2 改進(jìn)麻雀搜索算法
1.3 BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)的設(shè)置
2 實(shí)例應(yīng)用
3 結(jié) 論