陳智雨,陸金桂
(南京工業(yè)大學(xué) 機(jī)械與動(dòng)力工程學(xué)院,江蘇 南京 211816)
光伏發(fā)電系統(tǒng)的出力具有不確定性和不連續(xù)性[1],其受到很多因素的影響,如太陽(yáng)光照強(qiáng)度、光伏陣列的轉(zhuǎn)換效率、安裝角度、溫度以及其他一些因素都會(huì)對(duì)光伏陣列的輸出特性產(chǎn)生影響。隨著光伏發(fā)電容量越來(lái)越大,為了減少并網(wǎng)光伏對(duì)電網(wǎng)的沖擊,對(duì)其發(fā)電量進(jìn)行預(yù)測(cè),可以提高電網(wǎng)的穩(wěn)定性和安全性[2-3]。
常用的預(yù)測(cè)方法有時(shí)間序列法、支持向量機(jī)、神經(jīng)網(wǎng)絡(luò)、馬爾可夫鏈等[4]。目前常用的方法大多采用BP神經(jīng)網(wǎng)絡(luò)對(duì)光伏發(fā)電進(jìn)行預(yù)測(cè),但單純的BP算法易陷入局部最優(yōu),無(wú)法獲得最優(yōu)解。本文引入相似日概念,采用ACO-BP算法對(duì)光伏發(fā)電功率建立神經(jīng)網(wǎng)絡(luò)模型,進(jìn)行光伏發(fā)電功率預(yù)測(cè)。
對(duì)于具體的光伏發(fā)電系統(tǒng)來(lái)說(shuō),其所有的歷史數(shù)據(jù)都來(lái)源于同一個(gè)發(fā)電系統(tǒng),所以它發(fā)電功率的歷史時(shí)間序列具有高度的自相關(guān)性[5]。因此,如果利用歷史數(shù)據(jù)來(lái)預(yù)測(cè)發(fā)電功率會(huì)使得到的數(shù)據(jù)更加準(zhǔn)確。
研究以某大學(xué)浦江宿舍光伏發(fā)電系統(tǒng)為例,總?cè)萘繛?00kW,發(fā)電供浦江宿舍片區(qū)38盞(60W/盞)LED路燈照明和太陽(yáng)能-空氣源熱泵熱水系統(tǒng)用電設(shè)備使用。
首先確定預(yù)測(cè)日的天氣類型、日最高溫度、日最低溫度以及日平均溫度,在歷史數(shù)據(jù)中篩選出和預(yù)測(cè)日相同天氣條件的歷史記錄,形成樣本集A。計(jì)算預(yù)測(cè)日和樣本集A中歷史記錄的最高溫度、最低溫度和日平均溫度的歐式距離dk,dk的計(jì)算公式見(jiàn)式(1)。
(1)
式中:Y1、Y2、Y3分別為預(yù)測(cè)日的最高溫度、最低溫度和日平均溫度;Xk1、Xk2、Xk3分別為樣本集A中第k條歷史記錄的最高溫度、最低溫度和日平均溫度。將歐氏距離集{d1,d2,…,dn}按照值的大小升序排序,將排序的歐氏距離前k(1 傳統(tǒng)的BP 神經(jīng)網(wǎng)絡(luò)訓(xùn)練采用的是誤差反向傳播學(xué)習(xí)算法,它的優(yōu)化目標(biāo)函數(shù)相對(duì)復(fù)雜,較容易出現(xiàn)陷入局部最優(yōu)、收斂速度慢等問(wèn)題[6]。由于BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練算法實(shí)質(zhì)上是對(duì)其網(wǎng)絡(luò)權(quán)值和閾值進(jìn)行迭代調(diào)整,因此用蟻群優(yōu)化算法替代BP算法完成對(duì)神經(jīng)網(wǎng)絡(luò)權(quán)閾值的迭代調(diào)整,并最終完成神經(jīng)網(wǎng)絡(luò)的訓(xùn)練。 a) ACO-BP算法基本思路 蟻群算法解決優(yōu)化問(wèn)題的基本思路為: 用螞蟻的行走路徑表示待優(yōu)化問(wèn)題的可行解,整個(gè)螞蟻群體的所有路徑構(gòu)成待優(yōu)化問(wèn)題的解空間。路徑較短的螞蟻釋放較多的信息素。經(jīng)過(guò)一定時(shí)間,信息素濃度在較短的路徑上累計(jì)較高,所有選擇此路徑的螞蟻也逐漸增多,最終,整個(gè)蟻群會(huì)在正反饋的作用下集中在最佳路徑上,此時(shí)對(duì)應(yīng)的便是待優(yōu)化問(wèn)題的最優(yōu)解。 首先根據(jù)權(quán)值和閾值的取值范圍,將值的定義域劃分成S個(gè)等長(zhǎng)區(qū)間,即每個(gè)區(qū)間的長(zhǎng)度被作S等分,將區(qū)間的臨界值或選擇區(qū)間中的隨機(jī)值作為候選值。確定參數(shù)個(gè)數(shù)n,包括網(wǎng)絡(luò)中所有的權(quán)閾值。每個(gè)參數(shù)Pi(i=1,2,…,n)對(duì)應(yīng)一個(gè)有S個(gè)元素的集合IPi,這些元素為Pi的可能取值。 b) 具體步驟 1) 參數(shù)初始化:將所有權(quán)值和閾值進(jìn)行S等分,所有區(qū)間初始信息素0,信息素殘留系數(shù)λ,信息素濃度Q,當(dāng)前區(qū)間信息表為Tabu,最大迭代次數(shù)C,網(wǎng)絡(luò)全局誤差E,最大學(xué)習(xí)次數(shù)N; 2) 權(quán)值和閾值選擇:蟻群m只螞蟻,對(duì)于螞蟻k依據(jù)概率公式(2)的尋路規(guī)則進(jìn)行選擇節(jié)點(diǎn)所在區(qū)間,蟻群迭代一次則完成一次解的構(gòu)造: (2) 式中τj(Ipi)為集合IPi中第j個(gè)元素的信息素值; 3) 蟻群尋優(yōu)判斷:蟻群迭代一次得到的構(gòu)造解,則是當(dāng)前迭代后得到誤差最小的一組解,計(jì)算誤差Ec,判斷是否達(dá)到蟻群要求,若是則轉(zhuǎn)到4),否則轉(zhuǎn)到5); 4) 網(wǎng)絡(luò)訓(xùn)練:將蟻群迭代得到的最優(yōu)構(gòu)造解,作為初始權(quán)值和閾值,選取數(shù)據(jù)集對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,直到滿足結(jié)束條件即最大學(xué)習(xí)次數(shù),完成學(xué)習(xí)。否則,繼續(xù)學(xué)習(xí); 5) 更新信息素:根據(jù)式(3)、式(4)、式(5)對(duì)所有區(qū)間信息素全局更新,并重置信息表: τj(IPi)(t+h)=ρτj(IPi)(t)+Δτj(IPi) (3) (4) (5) 其中:Q為信息素固定值; ek為第k只螞蟻對(duì)應(yīng)的神經(jīng)網(wǎng)絡(luò)輸出誤差; 6) 蟻群遍歷:重復(fù)步驟 2)到步驟 3)。 其算法如圖1所示。 圖1 ACO-BP算法流程圖 人工神經(jīng)網(wǎng)絡(luò)(artificial neural network, ANN)被視為預(yù)測(cè)太陽(yáng)輻射強(qiáng)度和光伏發(fā)電系統(tǒng)輸出功率的一種有效方法。BP 神經(jīng)網(wǎng)絡(luò)能夠?qū)W習(xí)、處理大量的輸入-輸出模式映射關(guān)系,而不需要提前明確對(duì)應(yīng)的映射關(guān)系,是目前應(yīng)用廣泛的神經(jīng)網(wǎng)絡(luò)模型之一[7]。本文提出的光伏發(fā)電功率神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型結(jié)構(gòu)如圖2所示。 圖2 光伏發(fā)電功率預(yù)測(cè)神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)圖 1) 輸入層與輸出層 預(yù)測(cè)模型的輸入變量為相似日6∶00-19∶00每小時(shí)的輸出功率、日平均溫度、日最高溫度,日最低溫度以及預(yù)測(cè)日的天氣數(shù)據(jù),輸入層節(jié)點(diǎn)數(shù)為20個(gè);輸出層的變量為預(yù)測(cè)日6∶00-19∶00期間每小時(shí)的輸出功率平均值,因此輸出層的節(jié)點(diǎn)數(shù)為14個(gè)。 2) 隱含層層數(shù)及節(jié)點(diǎn)數(shù) 增加隱含層數(shù)可以降低神經(jīng)網(wǎng)絡(luò)訓(xùn)練誤差,過(guò)多的隱含層數(shù)會(huì)使模型結(jié)構(gòu)變得復(fù)雜化,出現(xiàn)“過(guò)擬合”現(xiàn)象,降低估算精度。本文選用一個(gè)隱含層的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)完成對(duì)光伏發(fā)電功率的預(yù)測(cè)。 神經(jīng)網(wǎng)絡(luò)隱含層節(jié)點(diǎn)數(shù)按目前常用經(jīng)驗(yàn)公式進(jìn)行計(jì)算,本文采用的計(jì)算公式如式(6)所示。 (6) 式中:N為隱含層節(jié)點(diǎn)數(shù);m為輸入層節(jié)點(diǎn)數(shù);n為輸出層節(jié)點(diǎn)數(shù);a為在區(qū)間[0,10] 內(nèi)的常數(shù)。 為進(jìn)一步提高神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)的準(zhǔn)確性,本文選取5個(gè)樣本日對(duì)隱含層節(jié)點(diǎn)數(shù)進(jìn)行數(shù)值實(shí)驗(yàn),計(jì)算其平均相對(duì)誤差,確定最佳的隱含層節(jié)點(diǎn)數(shù)為9。 為了更好地對(duì)BP神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練和驗(yàn)證,避免直接使用原始數(shù)據(jù)進(jìn)行訓(xùn)練而引起神經(jīng)元過(guò)飽和,在構(gòu)造神經(jīng)網(wǎng)絡(luò)模型之前將訓(xùn)練樣本數(shù)據(jù)和預(yù)測(cè)樣本數(shù)據(jù)進(jìn)行歸一化處理。本文選擇單極性Sigmoid函數(shù)作為隱含層和輸出層的激活函數(shù),歸一化公式如式(7)所示。 (7) 式中Xn、Xmax、Xmin分別為原始輸入數(shù)據(jù)、原始輸入數(shù)據(jù)中的最大值、最小值。 為驗(yàn)證ACO-BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型的準(zhǔn)確性,將粒子群算法(PSO)也引入BP模型參數(shù)的選取中,將PSO-BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型的預(yù)測(cè)結(jié)果與ACO-BP相比較,驗(yàn)證ACO-BP模型的優(yōu)越性。 根據(jù)本文的分析,需要對(duì)日照類型進(jìn)行分類。按照相似日將這些歷史數(shù)據(jù)分為晴天、陰天和雨天不同組的數(shù)據(jù),并將每日的平均溫度、日最高溫度和日最低溫度作為輸入量輸入模型。研究取各種天氣類型相似日中的一天(非樣本數(shù)據(jù))作為預(yù)測(cè)日,并用ACO-BP預(yù)測(cè)模型進(jìn)行功率預(yù)測(cè)。為方便分析,同時(shí)采用傳統(tǒng)BP算法和PSO-BP算法訓(xùn)練的模型預(yù)測(cè),對(duì)3個(gè)預(yù)測(cè)日:2018年9月29日(晴)、2018年9月6日(陰)和2018年9月20日(雨)進(jìn)行光伏發(fā)電功率預(yù)測(cè),最終得出如圖3、圖4和圖5所示的結(jié)果。 圖3 9月29日晴 圖4 9月6日陰 圖5 9月20日雨 從上述功率預(yù)測(cè)圖中可看出: 1) 在晴天天氣類型下,3種模型的預(yù)測(cè)效果相比于其他天氣類型要高。晴天天氣下,太陽(yáng)輻射強(qiáng)度較高,而其他天氣因?yàn)槿照疹愋筒煌?、日最高最低溫度和平均溫度的不同等原因,增加了光伏系統(tǒng)發(fā)電功率預(yù)測(cè)的不確定和隨機(jī)性,導(dǎo)致模型的預(yù)測(cè)精度降低。 2) 在3種天氣類型下,ACO-BP神經(jīng)網(wǎng)絡(luò)模型預(yù)測(cè)結(jié)果與實(shí)際光伏發(fā)電功率的吻合度相比于BP神經(jīng)網(wǎng)絡(luò)和PSO-BP神經(jīng)網(wǎng)絡(luò)都要高。 針對(duì)構(gòu)造的預(yù)測(cè)模型,采用平均絕對(duì)百分比誤差MAPE對(duì)其預(yù)測(cè)的發(fā)電結(jié)果進(jìn)行分析,評(píng)估整體的預(yù)測(cè)能力,其計(jì)算式(8)如下: (8) 式中:Pact,i為光伏陣列發(fā)電量實(shí)際值;Pfore,i為光伏陣列發(fā)電量預(yù)測(cè)值;N為預(yù)測(cè)樣本數(shù)量。對(duì)圖3中晴天的光伏陣列發(fā)電預(yù)測(cè)及實(shí)際值進(jìn)行預(yù)測(cè)誤差指標(biāo)分析,其預(yù)測(cè)結(jié)果如表1所示,誤差結(jié)果如表2所示。 表1 2018年9月29日預(yù)測(cè)值和實(shí)際值 單位:W 從表2中可以看出:ACO-BP預(yù)測(cè)模型比其他兩種模型預(yù)測(cè)得效果要好。在晴天天氣類型下,其預(yù)測(cè)精度相比于BP預(yù)測(cè)模型高34.21%,相比于PSO-BP預(yù)測(cè)模型高10.73%;在陰天天氣類型下,其預(yù)測(cè)精度相比于BP預(yù)測(cè)模型高29.97%,相比于PSO-BP預(yù)測(cè)模型高12.63%;在雨天天氣類型下,其預(yù)測(cè)精度相比于BP預(yù)測(cè)模型高31.04%,相比于PSO-BP預(yù)測(cè)模型高9.67%。 表2 各種天氣類型下每個(gè)模型的預(yù)測(cè)誤差 單位:% 本文采用蟻群算法,利用其優(yōu)秀的全局尋優(yōu)能力,對(duì)神經(jīng)網(wǎng)絡(luò)初始權(quán)閾值進(jìn)行了優(yōu)化,在一定程度上避免了BP神經(jīng)網(wǎng)絡(luò)易陷入局部最優(yōu)的問(wèn)題,并將改進(jìn)的ACO-BP模型用于光伏發(fā)電功率預(yù)測(cè)。從預(yù)測(cè)結(jié)果表明:結(jié)合了蟻群算法與 BP 神經(jīng)網(wǎng)絡(luò)的優(yōu)點(diǎn),ACO-BP神經(jīng)網(wǎng)絡(luò)模型相比于傳統(tǒng)BP模型有更好的預(yù)測(cè)效果。通過(guò)與PSO-BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)結(jié)果對(duì)比發(fā)現(xiàn):ACO-BP神經(jīng)網(wǎng)絡(luò)光伏系統(tǒng)發(fā)電功率預(yù)測(cè)模型的預(yù)測(cè)性能略優(yōu)于PSO-BP神經(jīng)網(wǎng)絡(luò),驗(yàn)證了本模型的合理性和準(zhǔn)確性,方便電網(wǎng)調(diào)度機(jī)構(gòu)制定更加合理的光伏發(fā)電運(yùn)行方式,加強(qiáng)光伏發(fā)電并網(wǎng)的能力。3 ACO-BP算法
4 ACO-BP預(yù)測(cè)模型設(shè)計(jì)
4.1 BP神經(jīng)網(wǎng)絡(luò)
4.2 預(yù)測(cè)模型設(shè)計(jì)
4.3 數(shù)據(jù)歸一化處理
5 預(yù)測(cè)結(jié)果分析
5.1 預(yù)測(cè)結(jié)果
5.2 不同天氣類型誤差比較
6 結(jié)語(yǔ)