谷 鵬,肖建于,宋香鵬,徐成振
(淮北師范大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,安徽 淮北 235000)
隨著全球?qū)Νh(huán)境污染問(wèn)題的重視,太陽(yáng)能因?yàn)槠淝鍧嵡邑S富被世界大多數(shù)國(guó)家所利用.然而光伏發(fā)電功率受輻照度、溫度等氣象因素影響較大,導(dǎo)致有較高的隨機(jī)性和波動(dòng)性[1].這將導(dǎo)致在接入電網(wǎng)系統(tǒng)時(shí)造成沖擊,影響電網(wǎng)系統(tǒng)的安全和穩(wěn)定,因此準(zhǔn)確預(yù)測(cè)光伏發(fā)電功率是很有必要的[2].
近年來(lái),光伏發(fā)電預(yù)測(cè)引起了國(guó)內(nèi)外研究學(xué)者的興趣.預(yù)測(cè)光伏發(fā)電功率的點(diǎn)預(yù)測(cè)方法主要可分為物理方法、統(tǒng)計(jì)學(xué)方法和元啟發(fā)式學(xué)習(xí)方法等[3].物理方法是利用數(shù)值天氣預(yù)報(bào)的數(shù)據(jù)結(jié)合光伏物理模型得到發(fā)電預(yù)測(cè)值[4],但需要詳細(xì)準(zhǔn)確的地理信息和天氣數(shù)據(jù),且物理模型的公式也存在誤差.統(tǒng)計(jì)學(xué)方法是輸入輻照度、發(fā)電功率等數(shù)據(jù),通過(guò)曲線擬合、估計(jì)參數(shù)來(lái)建立輸入和輸出的模型實(shí)現(xiàn)預(yù)測(cè)[5],但需要收集和處理大量數(shù)據(jù).元啟發(fā)式學(xué)習(xí)方法對(duì)輸入的樣本數(shù)據(jù)進(jìn)行訓(xùn)練,得到輸入和輸出的關(guān)系,常見(jiàn)的有神經(jīng)網(wǎng)絡(luò)[6-9]、支持向量機(jī)[10]、粒子群算法[11]、遺傳算法[12-13]、馬爾科夫鏈[14]和卡爾曼濾波算法[15-16]等,但冗余的樣本影響預(yù)測(cè)精度且容易陷入局部極值.吉鋅格等[17]利用互信息熵篩選輸入樣本,提高神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)精度.李正明等[18]利用粒子群算法優(yōu)化深度信念網(wǎng)絡(luò),精度有一定提高.姚仲敏等[19]在預(yù)測(cè)光伏發(fā)電功率時(shí)運(yùn)用遺傳算法和粒子群算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),相比與傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)精度更高.陳鐵等[20]采用狼群算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值,對(duì)變壓器進(jìn)行故障診斷,改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)診斷精度更高.
綜上所述,為了解決因輸入與輸出關(guān)聯(lián)性小而造成的預(yù)測(cè)精度差和BP神經(jīng)網(wǎng)絡(luò)易陷入局部?jī)?yōu)值等問(wèn)題提出基于關(guān)聯(lián)規(guī)則與WPA-BPNN的光伏發(fā)電功率預(yù)測(cè)方法.首先利用Apriori算法找出光伏功率樣本數(shù)據(jù)中與發(fā)電功率有強(qiáng)關(guān)聯(lián)規(guī)則的屬性組合作為輸入樣本,再利用WPA得到BP神經(jīng)網(wǎng)絡(luò)的最優(yōu)初始值,最后兩者結(jié)合對(duì)光伏發(fā)電進(jìn)行預(yù)測(cè).基于真實(shí)數(shù)據(jù)對(duì)模型進(jìn)行分析,驗(yàn)證了本模型在預(yù)測(cè)精度上有著明顯提升.
關(guān)聯(lián)規(guī)則是數(shù)據(jù)庫(kù)中各屬性間的關(guān)系,即表現(xiàn)為一個(gè)事務(wù)發(fā)生時(shí)頻繁產(chǎn)生的項(xiàng)[21].其主要概念描述為:
事務(wù):設(shè)T={t1,t2,…,ti}是i個(gè)不同項(xiàng)的集合,其中每個(gè)事務(wù)I是T的非空子集,且每個(gè)事務(wù)都有單獨(dú)對(duì)應(yīng)的標(biāo)記.
關(guān)聯(lián)規(guī)則:設(shè)X?I,Y?I且X∩Y=?,則定義X?Y構(gòu)成一條關(guān)聯(lián)規(guī)則,其中X、Y分別是前件和后件.
支持度:X∪Y在事務(wù)數(shù)據(jù)集D中的數(shù)量占事務(wù)總數(shù)的百分比,記為支持度support(X→Y).當(dāng)值越接近1,表示X和Y的關(guān)聯(lián)程度越高,計(jì)算公式為:
(1)
置信度:事務(wù)數(shù)據(jù)集D中,在出現(xiàn)X的同時(shí)也出現(xiàn)Y的概率,記為置信度confidence(X→Y).置信度越大則可信度越高,計(jì)算公式為:
(2)
頻繁項(xiàng)集:當(dāng)關(guān)聯(lián)規(guī)則滿足給定的最小支持度時(shí),則稱這個(gè)項(xiàng)集為頻繁項(xiàng)集.
序列關(guān)聯(lián)度和置信度:引入文獻(xiàn)[22]中定義的序列關(guān)聯(lián)度和置信度,若對(duì)序列A和序列B,其中有n條滿足最小支持度的規(guī)則,則序列關(guān)聯(lián)度和置信度的計(jì)算公式分別為:
(3)
(4)
當(dāng)滿足設(shè)定的最小關(guān)聯(lián)度數(shù)和置信度,則認(rèn)為這兩個(gè)序列具有強(qiáng)關(guān)聯(lián)關(guān)系,否則這兩個(gè)序列無(wú)關(guān).而神經(jīng)網(wǎng)絡(luò)的輸入變量若選用與輸出結(jié)果關(guān)聯(lián)度小的變量,會(huì)降低預(yù)測(cè)模型的精度,所以利用關(guān)聯(lián)規(guī)則找出與輸出結(jié)果關(guān)聯(lián)性強(qiáng)的變量.
狼群算法是模擬狼群的狩獵行為提出的仿生智能算法,將狼分為三種類型,分別為頭狼、探狼和猛狼,在狩獵過(guò)程中頭狼負(fù)責(zé)決策發(fā)令;探狼以獵物為目標(biāo)在空間中搜索;猛狼根據(jù)頭狼命令對(duì)獵物進(jìn)行圍攻[23].該算法是通過(guò)不斷迭代搜索找到最優(yōu)解,其基本原理如下.
第1步:狼群初始化.設(shè)狼群在N×D空間內(nèi)狩獵,N為人工狼總數(shù),D為空間維數(shù).則人工狼i的位置為:
Xi=(xi1,xi2,…,xid),i∈[1,N],d∈[1,D].
(5)
x=xmin+r×(xmax-xmin),r∈[0,1].
(6)
式中,r為區(qū)間范圍內(nèi)均勻分布的隨機(jī)數(shù),xmax和xmin分別表示搜索空間的上下限.
第2步:探狼游走行為.探狼在搜索獵物時(shí)執(zhí)行游走行為,探狼i在第d維的位置公式為:
(7)
式中,h表示探狼游走的個(gè)數(shù),stepa表示探狼游走的步長(zhǎng),p表示所處的方向.
第3步:頭狼召喚行為.猛狼根據(jù)頭狼發(fā)出的召喚向其靠近,過(guò)程中若當(dāng)猛狼的獵物氣味濃度大于頭狼,則取代為新的頭狼并重新召喚.否則猛狼繼續(xù)移動(dòng)直到頭狼附近.猛狼在k+1代的進(jìn)化中第d維的位置公式為:
(8)
第4步:狼群圍攻行為.當(dāng)頭狼和猛狼的位置小于dnear時(shí),狼群將發(fā)起圍攻.距離公式為:
(9)
(10)
式中,stepc為攻擊步長(zhǎng),λ為[-1,1]區(qū)間的隨機(jī)數(shù);在圍攻中,若感知到獵物氣味濃度比原位置強(qiáng),則更新人工狼的位置.
第5步:狼群更新機(jī)制.獵物按照狼的強(qiáng)弱分配,弱小的狼會(huì)被淘汰,當(dāng)淘汰適應(yīng)度最差的X匹狼,然后隨機(jī)生成X匹狼,X為[n/(2×β),n/β]區(qū)間的隨機(jī)整數(shù),β為狼群更新時(shí)的比例因子.當(dāng)算法滿足精度要求或達(dá)到最大迭代次數(shù)時(shí),頭狼的位置則為最優(yōu)解否則重復(fù)第3步和第4步.
WPA算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值,就是將每匹狼的位置作為BP神經(jīng)網(wǎng)絡(luò)的初始值,利用WPA算法的迭代過(guò)程求得BP神經(jīng)網(wǎng)絡(luò)的最優(yōu)權(quán)值和閾值,如圖1所示,其主要過(guò)程如下.
圖1 WPA-BPNN算法流程圖Fig.1 Flow chart of WPA-BPNN algorithm
第1步:確定神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),初始化參數(shù).設(shè)置各匹狼的初始位置、狼群數(shù)目、探狼的比例、最大迭代數(shù)、步長(zhǎng)系數(shù)、最大游走次數(shù)、更新比例系數(shù)和距離判定系數(shù).
第2步:根據(jù)狼的位置賦值BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值,通過(guò)訓(xùn)練樣本對(duì)BP神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,將誤差作為獵物的氣味濃度.
第3步:探狼按照式(7)執(zhí)行游走行為,當(dāng)有探狼聞到的氣味濃度Yi大于頭狼Ylead或者達(dá)到最大游走次數(shù),則執(zhí)行下一步.
第4步:猛狼按照式(8)執(zhí)行圍攻行為,響應(yīng)頭狼的召喚向目標(biāo)逼近,當(dāng)Yi>Ylead,則將猛狼取代頭狼發(fā)起召喚.否則猛狼一直逼近直到di≤dnear,然后執(zhí)行下一步.
第5步:按照式(9)對(duì)參與圍攻的狼更新坐標(biāo)位置.
第6步:判斷是否達(dá)到最優(yōu)精度或者最大迭代數(shù),若達(dá)成,則輸出頭狼的坐標(biāo)作為BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值,否則繼續(xù)執(zhí)行第2步.
數(shù)據(jù)集來(lái)源于國(guó)能日新提供的國(guó)內(nèi)某光伏電站歷史數(shù)據(jù),采集間隔15 min,收集有風(fēng)速、風(fēng)向、溫度、濕度、壓強(qiáng)、實(shí)際輻照度等數(shù)據(jù).選取2018年4月至5月的光伏發(fā)電功率序列作為預(yù)測(cè)樣本數(shù)據(jù),將前1800組作為訓(xùn)練集,后400組作為測(cè)試樣本集,并將訓(xùn)練集作為關(guān)聯(lián)分析的樣本.
光伏發(fā)電功率數(shù)據(jù)是數(shù)值型的,而Apriori算法的輸入數(shù)據(jù)需要布爾型,因此需要K-means算法對(duì)數(shù)據(jù)進(jìn)行離散化處理.由于數(shù)據(jù)中的數(shù)量級(jí)不同先對(duì)其進(jìn)行歸一化操作.設(shè)定聚類數(shù)為4,以濕度、輻照度和風(fēng)速為例,聚類結(jié)果如表1~表3所示.
表3 風(fēng)速聚類結(jié)果Tab.3 Wind speed clustering results
從表1、2、3中可以看出,濕度、輻照度和風(fēng)速分別被聚類成四個(gè)類,利用H、R、W將聚類結(jié)果符號(hào)化表示便于進(jìn)行序列關(guān)聯(lián)規(guī)則分析.將最終序列符號(hào)化的結(jié)果利用Apriori算法設(shè)定最小支持度為0.05,最小置信度為0.9,找出項(xiàng)集中的頻繁3項(xiàng)集,如表4所示.再利用式(3)和式(4)計(jì)算序列關(guān)聯(lián)度和置信度,設(shè)定最小關(guān)聯(lián)度為0.1,序列最小置信度序列為0.9.因要選用三個(gè)變量作為BP神經(jīng)網(wǎng)絡(luò)的輸入,所以篩選出三個(gè)因素組合對(duì)應(yīng)發(fā)電功率的關(guān)聯(lián)規(guī)則,結(jié)果如表5所示.
表5 序列關(guān)聯(lián)規(guī)則Tab.5 Sequential association rules
表4 關(guān)聯(lián)規(guī)則Tab.4 Association rules
表1 濕度聚類結(jié)果Tab.1 Humidity clustering results
表2 輻照度聚類結(jié)果Tab.2 Irradiance clustering results
由表中結(jié)果可以得出三元素組合中溫度、輻照度和濕度的組合與光伏發(fā)電功率關(guān)聯(lián)度最大,序列置信度達(dá)到0.95代表這條關(guān)聯(lián)規(guī)則可信度高,可用作BP神經(jīng)網(wǎng)絡(luò)的輸入變量.
利用WPA-BPNN算法對(duì)光伏發(fā)電功率進(jìn)行預(yù)測(cè),將溫度、輻照度和濕度作為輸入,隱藏層神經(jīng)元數(shù)量經(jīng)試驗(yàn)由表6所示,當(dāng)數(shù)量為7時(shí)訓(xùn)練誤差和測(cè)試誤差最好,確定BP神經(jīng)網(wǎng)絡(luò)模型為3-7-1的網(wǎng)絡(luò)結(jié)構(gòu).狼群數(shù)目設(shè)置為120,最大迭代次數(shù)設(shè)為200,最大游走次數(shù)設(shè)為20,探狼比設(shè)為4,距離判斷設(shè)為500,步長(zhǎng)設(shè)為1 000,更新比例設(shè)為6.
表6 隱藏層測(cè)試結(jié)果Tab.6 Hidden layer test results
預(yù)測(cè)模型在Matlab R2020a環(huán)境下運(yùn)行,為了準(zhǔn)確驗(yàn)證所提預(yù)測(cè)模型的精度,選擇與傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)模型進(jìn)行對(duì)比,將不使用強(qiáng)關(guān)聯(lián)規(guī)則作為輸入的設(shè)為模型1,使用強(qiáng)關(guān)聯(lián)規(guī)則作為輸入的設(shè)為模型2,本文所提模型設(shè)為模型3.利用訓(xùn)練好的三個(gè)模型分別對(duì)2018年5月27日和5月30日兩種天氣情況進(jìn)行試驗(yàn)預(yù)測(cè),圖2和圖3給出了各模型預(yù)測(cè)對(duì)比結(jié)果,圖4和圖5給出了各模型預(yù)測(cè)誤差對(duì)比結(jié)果.
圖4 穩(wěn)定情況誤差對(duì)比 圖5復(fù)雜情況誤差對(duì)比 Fig.4 Comparison of stability error Fig.5 Error comparison in complex situations
圖2 穩(wěn)定天氣預(yù)測(cè)對(duì)比 圖3復(fù)雜天氣預(yù)測(cè)對(duì)比Fig.2 Comparison of stable weather forecasts Fig.3 Comparison of complex weather forecasts
使用平均百分比誤差EMAPE和均方根誤差ERMSE作為評(píng)價(jià)模型的標(biāo)準(zhǔn),誤差值越低則模型精度越高.其公式為:
(11)
(12)
式中pai代表第i個(gè)時(shí)刻的實(shí)際光伏發(fā)電功率值,pi代表第i個(gè)時(shí)刻預(yù)測(cè)的光伏發(fā)電功率值,k代表數(shù)據(jù)總數(shù).
預(yù)測(cè)結(jié)果的評(píng)價(jià)如表7和表8所示,由表中結(jié)果可知本文所提模型3的方法精度比模型1和模型2都要高.模型1中當(dāng)不用強(qiáng)關(guān)聯(lián)規(guī)則作為輸入變量時(shí),由于變量中混有與光伏發(fā)電功率相關(guān)性較小的變量,干擾BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練造成預(yù)測(cè)精度差,由圖可以看出預(yù)測(cè)值總體偏離實(shí)際功率值,其在穩(wěn)定天氣中,MAPE%為16.56,RMSE%為2.269,精度一般,而在復(fù)雜天氣中預(yù)測(cè)精度更差,MAPE%為44.552 8,RMSE%為3.900 1,預(yù)測(cè)結(jié)果沒(méi)有實(shí)用價(jià)值;模型2中在沒(méi)有引入WPA算法優(yōu)化的情況下,由圖可以看出預(yù)測(cè)值出現(xiàn)較大波動(dòng),影響了整體精度,在穩(wěn)定天氣中,MAPE%為10.417 1,RMSE%為1.179 1,相對(duì)于模型1有一定提升,而在復(fù)雜天氣中,MAPE%為20.643,RMSE%為2.468 3,誤差較大;而且模型3中,波動(dòng)性相對(duì)與模型1和模型2較小,很少出現(xiàn)30%以上的誤差,預(yù)測(cè)值更貼近真實(shí)發(fā)電功率值,在穩(wěn)定天氣中,MAPE%為6.253 8,RMSE%為0.492 5,精度較高,而在復(fù)雜天氣中,MAPE%為10.689 6,RMSE%為1.896,誤差較模型1和模型2有很大提升.
表8 復(fù)雜天氣模型評(píng)估結(jié)果Tab.8 Evaluation results of complex weather model
表7 穩(wěn)定天氣模型評(píng)估結(jié)果Tab.7 Assessment results of stable weather model
根據(jù)以上情況分析,在復(fù)雜天氣情況下,誤差減少最為明顯,MAPE%最大達(dá)到34%.
光伏發(fā)電功率短期預(yù)測(cè)對(duì)電網(wǎng)穩(wěn)定地納電具有重要意義.因此,本文提出利用狼群算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò),即用狼群算法求得BP神經(jīng)網(wǎng)絡(luò)的最優(yōu)初始權(quán)值和閾值,并利用關(guān)聯(lián)規(guī)則算法選擇BP神經(jīng)網(wǎng)絡(luò)的輸入變量.通過(guò)仿真試驗(yàn)可知:利用關(guān)聯(lián)規(guī)則算法選取BP神經(jīng)網(wǎng)絡(luò)的輸入變量,可以得到與輸出結(jié)果關(guān)聯(lián)性強(qiáng)的因素,減少干擾因素,對(duì)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練更具針對(duì)性,從而提高BP神經(jīng)網(wǎng)絡(luò)的精準(zhǔn)度.本文利用狼群算法與BP神經(jīng)網(wǎng)絡(luò)相結(jié)合,利用狼群算法選取BP神經(jīng)網(wǎng)絡(luò)的最優(yōu)權(quán)值和閾值,可以避免神經(jīng)網(wǎng)絡(luò)因不當(dāng)?shù)某跏贾祵?dǎo)致陷入局部最優(yōu)解和收斂速度慢的問(wèn)題.