戴寶賦,胡 天,譚建軍,孫先波,黃 勇,朱 黎,胡 濤,易金橋*
(1.湖北民族大學(xué) 信息工程學(xué)院,湖北 恩施 445000;2.國(guó)家電網(wǎng)湖北電力公司 宜昌供電公司,湖北 宜昌 443000)
2020年,中國(guó)光伏發(fā)電裝機(jī)總?cè)萘坷塾?jì)253 GW,連續(xù)6年位居全球首位[1].但大型光伏電站本地用戶(hù)的消納能力有限,因此,準(zhǔn)確預(yù)測(cè)光伏電站發(fā)電量,有助于實(shí)時(shí)調(diào)整調(diào)度計(jì)劃.
反向傳播神經(jīng)網(wǎng)絡(luò)(back propagation neural network,BPNN)是預(yù)測(cè)光伏電站發(fā)電量的主要方法之一,具有高度的自我學(xué)習(xí)能力和較強(qiáng)的非線性映射能力,但對(duì)初始權(quán)值和閾值較為敏感.為避免BPNN因初始權(quán)值和閾值選取不當(dāng)而陷入局部最優(yōu)解,龔波等[2]基于改進(jìn)人工魚(yú)群算法優(yōu)化BPNN的初始權(quán)值和閾值,提高了系統(tǒng)的泛化能力.鄭建鄂等[3]將天氣類(lèi)型進(jìn)行量化處理,基于人工蜂群算法優(yōu)化BPNN,提高了預(yù)測(cè)的準(zhǔn)確性.楊書(shū)杰等[4]基于灰狼算法優(yōu)化BPNN,增強(qiáng)全局搜索能力,提高收斂速度和精度.耿博等[5]基于GA優(yōu)化BPNN,并引入相似日的概念提高了預(yù)測(cè)精度.
鯨魚(yú)算法通過(guò)模擬鯨魚(yú)的搜索行為、包圍行為和泡網(wǎng)捕食行為,以到達(dá)尋找最優(yōu)解的目的.鯨魚(yú)算法具有結(jié)構(gòu)簡(jiǎn)單、操作簡(jiǎn)便等優(yōu)點(diǎn),但收斂速度慢、易早熟.徐航等[6]引入Gauss映射產(chǎn)生種群,提高了算法跳出局部最優(yōu)解的能力.劉琨等[7]使用精英反向?qū)W習(xí)的策略初始化種群,提高種群的質(zhì)量及全局收斂速度.趙傳武等[8]通過(guò)引入非線性權(quán)重優(yōu)化鯨魚(yú)的位置更新公式,提高了收斂速度和精度.馮文濤等[9]基于柯西反向?qū)W習(xí)和DE算法對(duì)鯨魚(yú)算法的種群進(jìn)行變異和選擇,增加種群的多樣性并提高算法的收斂速度.
本文采用Tent映射初始化種群并引入非線性系數(shù),以彌補(bǔ)算法易早熟的缺點(diǎn),引入選擇策略對(duì)種群進(jìn)行篩選,以加快算法的收斂速度,從而提出一種基于選擇策略的鯨魚(yú)優(yōu)化算法(selection whale optimization algorithm,SWOA),并用于優(yōu)化BPNN,避免BPNN陷入局部最優(yōu)解,并提高預(yù)測(cè)精度.
鯨魚(yú)優(yōu)化算法由Mirjalili等[10]于2016年首次提出,鯨魚(yú)優(yōu)化算法是模擬座頭鯨捕食行為的新型智能優(yōu)化算法,該算法的尋優(yōu)過(guò)程主要由包圍行為、搜索行為和泡網(wǎng)捕食行為組成.
(1)
(2)
(3)
其中b為定義對(duì)數(shù)螺旋形狀的常數(shù),一般設(shè)置為1.l是區(qū)間[-1,1]的一個(gè)隨機(jī)數(shù).
鯨魚(yú)優(yōu)化算法中需要產(chǎn)生一個(gè)隨機(jī)數(shù)p,當(dāng)p<0.5,且|A|<1時(shí),執(zhí)行包圍獵物行為;當(dāng)p<0.5,且|A|≥1時(shí),執(zhí)行搜索獵物行為.當(dāng)p≥0.5時(shí),執(zhí)行泡網(wǎng)捕食行為.
混沌運(yùn)動(dòng)具有隨機(jī)性和遍歷性特點(diǎn),使用混沌映射生成初始種群能有效克服因使用隨機(jī)數(shù)進(jìn)行初始化導(dǎo)致種群?jiǎn)我恍詥?wèn)題.常用的混沌映射有Logistic映射、Henon映射、Tent映射、Kent映射等[11-13].其中Tent映射的均勻性較強(qiáng),其表示為:
(4)
其中,Xn表示初始值,Xn∈(0,1),Xn+1表示經(jīng)過(guò)一次Tent映射后的值.
使用Tent映射生成初始種群的步驟為:
步驟1n=1,生成隨機(jī)數(shù)Xn;
步驟2 將Xn代入Tent映射得到Xn+1;
步驟3 將生成的值按順序組成數(shù)組x;
步驟4 如果n大于最大次數(shù),則執(zhí)行步驟6;否則,n=n+1;
步驟5 如果序列x落入不動(dòng)點(diǎn)或5周期以?xún)?nèi)的循環(huán),則重新生成一個(gè)隨機(jī)數(shù)Xn,然后執(zhí)行步驟2;否則,直接執(zhí)行步驟2;
步驟6 輸出序列x,將其作為T(mén)ent映射生成的種群.
鯨魚(yú)優(yōu)化算法[10]中的系數(shù)a由2線性減小到0,協(xié)同系數(shù)A∈[-a,a].因?yàn)锳是[-a,a]之間的隨機(jī)數(shù),|A|<1和|A|≥1的概率相當(dāng),即全局尋優(yōu)的次數(shù)和局部尋優(yōu)的次數(shù)相當(dāng).為了增強(qiáng)算法的全局尋優(yōu)能力,本文采用非線性系數(shù)a,其表達(dá)式為:
(5)
非線性系數(shù)a的函數(shù)曲線如圖1所示.由圖1可知,增加a>1的次數(shù),即增加|A|≥1的次數(shù),提高了算法的全局尋優(yōu)能力.
圖1 a系數(shù)Fig.1 a coefficient
選擇策略是指在舊群體中以一定的概率選擇個(gè)體到新群體中,該個(gè)體的適應(yīng)度越好,被選中的概率越大.本文的選擇策略使用遺傳算法中的輪盤(pán)賭法,表達(dá)式為:
fi=k/Fi,
(6)
(7)
其中Fi表示第i個(gè)個(gè)體的適應(yīng)度,k為系數(shù),N為種群數(shù),pi表示fi被選擇的概率.
采用選擇策略將種群中較差的個(gè)體舍去,保留適應(yīng)度好的個(gè)體,以減小適應(yīng)度差的個(gè)體對(duì)種群產(chǎn)生負(fù)面效果.
SWOA算法的收斂速度快,優(yōu)化BPNN可避免其陷入局部最優(yōu)解.基于SWOA優(yōu)化BPNN的流程圖如圖2所示.
圖2 SWOA優(yōu)化BPNN流程圖Fig.2 Flow chart of SWOA optimized BP neural network
基于SWOA優(yōu)化BPNN的步驟為:
步驟1 設(shè)置BPNN的輸入層、隱含層、輸出層的節(jié)點(diǎn)數(shù)和激活函數(shù),輸入層到隱含層、隱含層到輸出層的傳遞函數(shù);
步驟2 初始化鯨魚(yú)算法的種群數(shù)、最大迭代次數(shù)、邊界等參數(shù),使用Tent映射生成種群;
步驟3 將迭代次數(shù)Iteration設(shè)置為1;
步驟4 計(jì)算種群中每條鯨魚(yú)的適應(yīng)度,并將適應(yīng)度最好的一條鯨魚(yú)設(shè)置為公告牌;
步驟5 生成隨機(jī)數(shù)p,若p<0.5則執(zhí)行步驟7;
步驟6 執(zhí)行泡網(wǎng)捕食行為,執(zhí)行步驟8;
步驟7 計(jì)算協(xié)同系數(shù)A的值,若|A|≥1,則執(zhí)行搜索獵物行為;否則執(zhí)行包圍獵物行為;
步驟8 對(duì)種群使用輪盤(pán)賭法進(jìn)行選擇處理,保留種群中適應(yīng)度好的鯨魚(yú);
步驟9 使用新位置取代舊的位置;
步驟10Iteration=Iteration+1;
步驟11 判斷種群中的最優(yōu)鯨魚(yú)的適應(yīng)度是否優(yōu)于公告牌,如果優(yōu)于公告牌則更新公告牌;
步驟12 若Iteration 步驟13 將公告牌中記錄的最優(yōu)鯨魚(yú)的值賦給BPNN. 適應(yīng)度計(jì)算方法:將鯨魚(yú)的參數(shù)賦予BPNN,并進(jìn)行訓(xùn)練和仿真,計(jì)算仿真結(jié)果與實(shí)際值之間的均方誤差(mean squared error,MSE),MSE越小則說(shuō)明該鯨魚(yú)的適應(yīng)度越好. BPNN中待定的權(quán)值和閾值多,維度高,運(yùn)算量大.經(jīng)過(guò)實(shí)驗(yàn),本文確定鯨魚(yú)的種群數(shù)為10,迭代的最大次數(shù)為100,輪盤(pán)賭法中的k為10. 輸入層的神經(jīng)元個(gè)數(shù)為5,隱含層的神經(jīng)元個(gè)數(shù)為6,輸出層的神經(jīng)元個(gè)數(shù)為1.輸入層到隱含層的傳遞函數(shù)為tansig,隱含層到輸出層的傳遞函數(shù)為purelin,訓(xùn)練函數(shù)為traingdx.BPNN模型如圖3所示. 圖3 BPNN模型Fig.3 Model of BP neural network 3.3.1 數(shù)據(jù)集簡(jiǎn)介 數(shù)據(jù)來(lái)源于國(guó)能日新光伏功率預(yù)測(cè)大賽提供的數(shù)據(jù).train_1數(shù)據(jù)記錄了某光伏電站從2016年4月1日到2018年4月30日的歷史數(shù)據(jù),采樣頻率為15 min/次.本文使用文獻(xiàn)[3]中的數(shù)據(jù)處理方式,選取2017年6月1日至2017年8月31日每天8:00-19:00的12個(gè)整點(diǎn)數(shù)據(jù)進(jìn)行訓(xùn)練和仿真.數(shù)據(jù)如表1所示,該數(shù)據(jù)集的環(huán)境數(shù)據(jù)已進(jìn)行脫敏處理. 表1 某光伏電站環(huán)境數(shù)據(jù)與發(fā)電量Tab.1 Environmental data and power generation of a photovoltaic station 3.3.2 數(shù)據(jù)歸一化 當(dāng)數(shù)據(jù)之間的數(shù)量級(jí)相差較大時(shí),為了減小誤差,對(duì)數(shù)據(jù)進(jìn)行歸一化處理. xnorm=2·(x-xmin)/(xmax-xmin)-1, (8) 其中,xnorm為歸一化后的值,x為原始數(shù)據(jù),xmin為數(shù)據(jù)集中的小值,xmax為數(shù)據(jù)集中的最大值. 表2 三種算法測(cè)試集的MSETab.2 MSE of three algorithm test sets 程序在Matlab R2018b的環(huán)境下運(yùn)行.使用2017年8月最后3 d的數(shù)據(jù)作為測(cè)試集,其他數(shù)據(jù)作為訓(xùn)練集.使用SWOA、PSO和WOA算法分別優(yōu)化BPNN.基于測(cè)試集數(shù)據(jù)的3種算法仿真結(jié)果的MSE如表2所示.3種算法的適應(yīng)度曲線和仿真結(jié)果如圖4和圖5所示. 圖4 適應(yīng)度曲線圖5 預(yù)測(cè)結(jié)果 Fig.4 Fitness curve Fig.5 Predicted results 由圖4可知,在迭代初期,SWOA-BPNN的適應(yīng)度起點(diǎn)最低,說(shuō)明引入混沌映射提高了算法種群初始化的均一性.迭代前期,SWOA-BPNN的收斂速度優(yōu)于WOA-BPNN,可見(jiàn)引入輪盤(pán)賭法有效剔除種群中較差的個(gè)體,保留較好的個(gè)體;PSO-BPNN的收斂速度略?xún)?yōu)于SWOA-BPNN,這是因?yàn)樵诘捌冢L魚(yú)主要進(jìn)行全局尋優(yōu),其局部尋優(yōu)能力不強(qiáng).在迭代后期,SWOA-BPNN的收斂適應(yīng)度是3種算法中最小的. 圖5中有36組數(shù)據(jù),12組為1 d,共3 d.由圖5可知,3種算法的預(yù)測(cè)結(jié)果都比較接近實(shí)際值. 為了進(jìn)一步比較3種算法的仿真結(jié)果,選取8月31日3種算法的仿真結(jié)果絕對(duì)誤差進(jìn)行比較,如圖6所示,3種算法預(yù)測(cè)結(jié)果的絕對(duì)誤差均在2.5 kW以下,其中SWOA-BPNN的絕對(duì)誤差僅僅在9:00、10:00、14:00和15:00高于WOA-BPNN和PSO-BPNN的絕對(duì)誤差.其他時(shí)刻SWOA-BPNN的絕對(duì)誤差低于WOA-BPNN和PSO-BPNN的絕對(duì)誤差.總體而言,SWOA-BPNN的預(yù)測(cè)結(jié)果優(yōu)于WOA-BPNN和PSO-BPNN的預(yù)測(cè)結(jié)果. 圖6 絕對(duì)誤差Fig.6 Absolute error 本文提出SWOA算法優(yōu)化BPNN,使用風(fēng)速、壓強(qiáng)、溫度、濕度和輻照度5種數(shù)據(jù)建立光伏電站發(fā)電量的預(yù)測(cè)模型并預(yù)測(cè)發(fā)電量.采用SWOA算法優(yōu)化BPNN的初始權(quán)值和閾值,由表2可知,SWOA-BPNN與PSO-BPNN相比,其MSE降低了0.077 2;SWOA-BPNN與WOA-BPNN相比,其MSE降低了0.032 8.3.1 SWOA初始化
3.2 BPNN模型
3.3 數(shù)據(jù)處理
4 實(shí)驗(yàn)結(jié)果與分析
5 結(jié)語(yǔ)