邢毓華,李凡菲
(西安理工大學(xué)自動化與信息工程學(xué)院,陜西 西安 710048)
太陽能具有清潔、來源廣、可再生等優(yōu)點,近些年來成為重點開發(fā)的對象[1,2]。光伏充電站具有安全可靠、無噪聲、無污染、成本低等優(yōu)點,是未來充電站的主要發(fā)展方向之一[3,4]。隨著光伏充電站數(shù)量的急劇增加,其故障問題愈發(fā)突出,因而對故障的維修顯得格外重要。而不同技能的維修人員維修不同難度的設(shè)備所用的時間不相同,因此,對已發(fā)生故障的設(shè)備進行維修時間預(yù)測,及時得到反饋信息,可為故障設(shè)備的維修及維修人員的調(diào)度提供指導(dǎo)與依據(jù)。
當(dāng)前用于數(shù)據(jù)預(yù)測的模型主要有時間序列模型[5]、線性回歸模型[6]、灰色模型[7,8]、神經(jīng)網(wǎng)絡(luò)[9-12]等。由于神經(jīng)網(wǎng)絡(luò)具有良好的非線性及靈活性,能學(xué)習(xí)和儲存大量輸入輸出模式的映射關(guān)系,并且不需要描述這種映射關(guān)系的數(shù)學(xué)方程,因此在預(yù)測模型中應(yīng)用的最為廣泛。參考文獻[13]針對電力負荷預(yù)測方面的問題,提出了一種基于粒子群優(yōu)化算法,小波變換和神經(jīng)網(wǎng)絡(luò)的組合預(yù)測模型,來實現(xiàn)對風(fēng)力發(fā)電量的預(yù)測。參考文獻[14]采用BP神經(jīng)網(wǎng)絡(luò)預(yù)測了電動汽車的剩余電量,但最大預(yù)測誤差達到了57%,不能準確預(yù)測期望值。參考文獻[15]采用BP神經(jīng)網(wǎng)絡(luò)預(yù)測了光伏發(fā)電功率,預(yù)測的相對誤差在25%~30%。由于BP神經(jīng)網(wǎng)絡(luò)初始權(quán)值和閾值的不同,易導(dǎo)致計算不收斂或陷入局部極值點,從而使得預(yù)測誤差較大。而通過遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值[16-18],可有效避免算法陷入局部極值點,達到提高計算精度的目的。但是,當(dāng)采用遺傳算法優(yōu)化的神經(jīng)網(wǎng)絡(luò)算法(GA-BP)進行預(yù)測時,隱含層神經(jīng)元數(shù)的不同會導(dǎo)致預(yù)測精度的不同,即是對于不同的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),其最佳的隱含層神經(jīng)元數(shù)并不相同,在采用GA-BP算法時需要知道所用神經(jīng)網(wǎng)絡(luò)的最佳隱含層神經(jīng)元數(shù)。當(dāng)前關(guān)于GA-BP神經(jīng)網(wǎng)絡(luò)中隱含層神經(jīng)元數(shù)的確定并未有明確的計算公式,通常是采用經(jīng)驗公式來確定隱含層神經(jīng)元數(shù)[19-23],由于公式建立在經(jīng)驗之上,在不同的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)間存在一定的局限性,因此,找到最佳的隱含層神經(jīng)元數(shù)對預(yù)測精度的提高尤為重要。
為得到GA-BP神經(jīng)網(wǎng)絡(luò)最優(yōu)的隱含層神經(jīng)元數(shù),本文以某光伏充電站的設(shè)備維修為研究對象,以不同維修人員技能及不同維修設(shè)備難度下的維修時間為樣本,通過仿真的方法確定最佳隱含層神經(jīng)元數(shù),并通過對比BP與GA-BP神經(jīng)網(wǎng)絡(luò),說明GA-BP神經(jīng)網(wǎng)絡(luò)的優(yōu)越性,為光伏充電站設(shè)備維修時間預(yù)測提供有益指導(dǎo)。
BP神經(jīng)網(wǎng)絡(luò)預(yù)測維修時間的結(jié)構(gòu)圖如圖1所示,以維修人員技能及維修設(shè)備難度作為輸入層,以設(shè)備維修時間作為輸出層。
圖1 預(yù)測故障維修時間的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
該BP神經(jīng)網(wǎng)絡(luò)中,輸入層神經(jīng)元個數(shù)n1=2,輸出層神經(jīng)元個數(shù)n3=1。隱含層個數(shù)通常由經(jīng)驗式(1)確定,表達式如下
(1)
其中a為1~100間的整數(shù)。由于式(1)是經(jīng)驗公式,不能準確的說明問題,本文結(jié)合維修時間預(yù)測的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),研究隱含層神經(jīng)元數(shù)量對神經(jīng)網(wǎng)絡(luò)預(yù)測精度的影響,找到最優(yōu)的隱含層神經(jīng)元數(shù),以此改進神經(jīng)網(wǎng)絡(luò)算法。
輸入層與隱含層間的傳遞函數(shù)采用sigmoid函數(shù),表達式見式(2),隱含層與輸出層間采用線性傳遞函數(shù)purelin函數(shù)[24]。
(2)
分別用I、J、K表示輸入層、隱含層、輸出層,對應(yīng)的神經(jīng)元分別用i、j、k表示,輸入層與隱含層權(quán)值用Wij表示,隱含層與輸出層權(quán)值用Wjk表示,用u表示神經(jīng)元輸入,用v表示激勵輸出。假設(shè)訓(xùn)練樣本集X=[X1,X2,…,XN]中任一訓(xùn)練樣本Xm=[x1,x2]對應(yīng)的預(yù)測值為ym,期望值為zm,則有
(3)
第m個訓(xùn)練樣本Xm誤差為
(4)
對于N個樣本,總平均誤差為
(5)
GA-BP神經(jīng)網(wǎng)絡(luò)的具體步驟如下:
步驟1:染色體編碼。本文采用實數(shù)編碼的方式對染色體進行編碼,編碼長度為
S=I×J+J×K+J+K
(6)
步驟2:適應(yīng)度函數(shù)。以神經(jīng)網(wǎng)絡(luò)預(yù)測值和期望值之間絕對誤差平方和的倒數(shù)作為適應(yīng)度函數(shù),表達式如下
(7)
步驟3:選擇。采用比例選擇方法,選擇概率為
(8)
步驟4:交叉。采用實數(shù)交叉法,第k個基因gk和第l個基因gl在j位的交叉過程分別如下
gkj=gkj(1-b)+gljb
glj=glj(1-b)+gkjb
(9)
其中,b為[0,1]間的隨機數(shù)。
步驟5:變異。以一個比較小的變異概率選擇第i個個體的第j個基因gij進行變異,變異方程如下
(10)
其中,r1為[0,1]間的隨機數(shù),r2為隨機數(shù),gmax、gmin為gij的上、下限,s、smax為當(dāng)前迭代次數(shù)和最大進化次數(shù)。
步驟6:計算適應(yīng)度函數(shù),若滿足算法預(yù)設(shè)的結(jié)束條件,則將優(yōu)化后的神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值進行輸出,否則返回步驟3繼續(xù)進行迭代,直至滿足結(jié)束條件。
步驟7:以遺傳算法輸出的最優(yōu)權(quán)值和閾值作為神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值,得到維修時間預(yù)測模型。
以某光伏充電站為研究對象,該光伏充電站共有15個維修人員(分別用A1、A2、A3、…、A15表示),對光伏充電站常見的四大類故障(光伏陣列故障、蓄電池故障、光伏控制器故障、逆變器故障)進行維修。由于維修時間同維修人員的技能及故障類型的難度有關(guān),在采集數(shù)據(jù)時采用控制變量法,得到的樣本數(shù)據(jù)見表1。
表1 光伏充電站維修時間數(shù)據(jù)(單位:min)
根據(jù)表1中不同維修人員維修不同設(shè)備的時間,通過控制變量法可將維修人員技能及維修設(shè)備難度歸一化處理。將光伏陣列故障、蓄電池故障、光伏控制器故障、逆變器故障依次編號X1、X2、X3、X4。維修人員技能和維修設(shè)備難度表達式見式(11)、式(12)。
(11)
(12)
其中,TAm為維修人員Am的技能,tAm,Xn為維修人員Am維修故障Xn所用的時間,dn為維修故障Xn的難度。本文是通過維修人員的維修時間來衡量維修人員的技能,若維修人員Am處理完故障Xn所用的時間tAm,Xn越小,則由式(11)可知該維修人員的技能TAm就越高,通過式(11)就可以確定出這批維修人員的技能水平。故障類型的難度同樣根據(jù)維修人員的維修時間來衡量,若維修人員Am處理完故障Xn所用的時間tAm,Xn越大,則通過式(12)可知該故障的難度系數(shù)dn就越大,先確定一個基礎(chǔ)值,即假設(shè)故障X1的難度系數(shù)d1為0.88,通過式(12)即可得到其它故障的難度系數(shù),這樣就可以確定出不同故障的難度系數(shù)。由此可得維修人員技能和維修設(shè)備難度,見表2、表3??梢姡S修人員的維修時間與維修設(shè)備的難度成正比。
表2 維修人員技能
表3 維修設(shè)備難度
本文將總樣本集中的80%(48個)作為訓(xùn)練樣本集,剩余的20%(12個)作為測試樣本集,以驗證模型的準確度,并設(shè)定神經(jīng)網(wǎng)絡(luò)最大訓(xùn)練步數(shù)為2000,學(xué)習(xí)速率為0.01,動量因子為0.95,訓(xùn)練的目標(biāo)誤差為0.0005。遺傳算法初始的種群數(shù)目取50,最大進化次數(shù)取為200。交叉概率取為0.5,變異概率取為0.03,根據(jù)式(6)可知染色體長度取為21。
針對當(dāng)前僅憑借經(jīng)驗公式確定隱含層神經(jīng)元數(shù)的問題,本文將研究不同隱含層神經(jīng)元數(shù)下GA-BP神經(jīng)網(wǎng)絡(luò)的計算誤差,以此說明隱含層神經(jīng)元數(shù)對預(yù)測精度的影響。
分別取隱含層神經(jīng)元數(shù)n2=3、5、10、15、20、30,以確定最優(yōu)的隱含層神經(jīng)元數(shù)。圖2為不同隱含層神經(jīng)元數(shù)下GA-BP神經(jīng)網(wǎng)絡(luò)對12個樣本的預(yù)測曲線。當(dāng)n2=5時預(yù)測曲線與期望曲線最為接近,而其它情況下預(yù)測曲線與期望曲線的偏差均較大。
圖2 不同隱含層神經(jīng)元下GA-BP神經(jīng)網(wǎng)絡(luò)的預(yù)測情況
為定量分析隱含層神經(jīng)元數(shù)對預(yù)測精度的影響,根據(jù)仿真結(jié)果繪制隱含層神經(jīng)元數(shù)對GA-BP神經(jīng)網(wǎng)絡(luò)預(yù)測精度及計算時間的影響圖,如圖3。
圖3 GA-BP神經(jīng)網(wǎng)絡(luò)預(yù)測誤差隨隱含層神經(jīng)元數(shù)的變化關(guān)系
由圖可見,當(dāng)n2=3~6時GA-BP神經(jīng)網(wǎng)絡(luò)的計算誤差均較低,且當(dāng)n2=5時神經(jīng)網(wǎng)絡(luò)的計算精度最高,平均計算誤差僅為6.1%。隨著隱含層神經(jīng)元數(shù)的增加,計算誤差迅速增大,當(dāng)n2=11時,平均計算誤差高達73%;之后隨著n2的增加,平均計算誤差逐漸下降,在n2=20時達到極小值,約為19.4%,之后隨著隱含層神經(jīng)元數(shù)的增加平均計算誤差再次出現(xiàn)了上升。但是,隨著隱含層神經(jīng)元數(shù)量的增加,GA-BP神經(jīng)網(wǎng)絡(luò)的計算時間逐漸增大。綜合考慮,針對該結(jié)構(gòu)的GA-BP神經(jīng)網(wǎng)絡(luò)而言,隱含層神經(jīng)元數(shù)取n2=5最佳。
隱含層神經(jīng)元數(shù)取5時,對比BP與GA-BP神經(jīng)網(wǎng)絡(luò)的預(yù)測情況。圖4為GA-BP神經(jīng)網(wǎng)絡(luò)最大適應(yīng)度的變化關(guān)系圖,進化次數(shù)在155次時最大適應(yīng)度就已經(jīng)達到了最大值,以此時得到的初始權(quán)值和閾值作為BP神經(jīng)網(wǎng)絡(luò)的最優(yōu)初始權(quán)值和閾值,代入訓(xùn)練樣本即可對GA-BP神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練。
圖4 GA-BP神經(jīng)網(wǎng)絡(luò)最大適應(yīng)度變化過程
圖5為訓(xùn)練過程中BP及GA-BP神經(jīng)網(wǎng)絡(luò)的均方誤差的變化過程。對BP神經(jīng)網(wǎng)絡(luò)而言,當(dāng)訓(xùn)練步數(shù)達到最大訓(xùn)練步數(shù)2000時,計算得到的均方誤差約為0.024,并未達到設(shè)置的目標(biāo)誤差0.0005;而采用GA-BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練時,在680步均方誤差就下降到了0.0005,可見,GA-BP神經(jīng)網(wǎng)絡(luò)具有更好的收斂性及計算精度。
圖5 訓(xùn)練時均方誤差的變化過程
圖6為BP神經(jīng)網(wǎng)絡(luò)與GA-BP神經(jīng)網(wǎng)絡(luò)在訓(xùn)練過程的預(yù)測值同期望值的符合曲線,由圖可見,相對于BP神經(jīng)網(wǎng)絡(luò)而言,GA-BP神經(jīng)網(wǎng)絡(luò)的預(yù)測值更接近期望值。
圖6 訓(xùn)練時BP神經(jīng)網(wǎng)絡(luò)與GA-BP神經(jīng)網(wǎng)絡(luò)的預(yù)測
圖7顯示了訓(xùn)練時BP神經(jīng)網(wǎng)絡(luò)與GA-BP神經(jīng)網(wǎng)絡(luò)預(yù)測值對期望值的相對誤差。由圖可知,BP神經(jīng)網(wǎng)絡(luò)算法的相對誤差普遍為負值,基本在-10%~-30%范圍內(nèi),說明該算法對期望值的預(yù)測偏低,而GA-BP神經(jīng)網(wǎng)絡(luò)算法的相對誤差基本為正值,且基本在0%~20%范圍內(nèi),說明GA-BP神經(jīng)網(wǎng)絡(luò)算法對期望值的預(yù)測偏高但更為精確。因此,采用GA-BP算法預(yù)測維修時間更為準確。
圖7 訓(xùn)練時BP與GA-BP神經(jīng)網(wǎng)絡(luò)的預(yù)測誤差
為反映改進的GA-BP神經(jīng)網(wǎng)絡(luò)具有較高的預(yù)測精度,論文加入了灰色模型預(yù)測算法進行比較,圖8即為灰色模型預(yù)測算法的預(yù)測值同期望值的對比曲線。可見,預(yù)測值同期望值的偏差較大,結(jié)合圖可知,同BP神經(jīng)網(wǎng)絡(luò)及改進的GA-BP神經(jīng)網(wǎng)絡(luò)算法相比,灰色模型的預(yù)測精度更差。
圖8 灰色模型的預(yù)測結(jié)果
圖9為三種預(yù)測算法對12個測試樣本的預(yù)測情況。對測試樣本而言,GA-BP神經(jīng)網(wǎng)絡(luò)的預(yù)測精度明顯高于BP神經(jīng)網(wǎng)絡(luò)與灰色模型。采用灰色模型預(yù)測時,平均相對誤差為96.5%;采用BP神經(jīng)網(wǎng)絡(luò)預(yù)測時,平均相對誤差為63%;而采用改進的GA-BP神經(jīng)網(wǎng)絡(luò)預(yù)測時平均相對誤差僅為6.1%,較灰色模型降低了90.4%,較BP神經(jīng)網(wǎng)絡(luò)算法降低了57%。且改進后的GA-BP神經(jīng)網(wǎng)絡(luò)計算誤差可控,滿足該光伏充電站設(shè)備維修時間預(yù)測的精度要求。
圖9 三種預(yù)測算法的預(yù)測值與期望值對比
同時,采用topN標(biāo)準對實驗的預(yù)測準確度進行評估,分別以5%、10%、15%的相對誤差為設(shè)定誤差限,當(dāng)預(yù)測結(jié)果的相對誤差小于設(shè)定誤差限時,認為該預(yù)測結(jié)果正確,反之則判為錯誤。表4顯示了三種預(yù)測算法的準確度,同灰色模型和BP神經(jīng)網(wǎng)絡(luò)模型相比,相同誤差限內(nèi)改進的GA-BP神經(jīng)網(wǎng)絡(luò)具有更高的準確度。
表4 三種預(yù)測算法的準確度
本文考慮了維修人員技能、維修設(shè)備難度及隱含層神經(jīng)元數(shù)對神經(jīng)網(wǎng)絡(luò)預(yù)測精度的影響,建立了改進的GA-BP神經(jīng)網(wǎng)絡(luò)預(yù)測模型。采用控制變量法,調(diào)查了不同技能的維修人員維修不同難度的設(shè)備所花費的時間,通過仿真得到了該GA-BP神經(jīng)網(wǎng)絡(luò)的最優(yōu)隱含層神經(jīng)元數(shù)為5。最后比較了灰色模型、BP神經(jīng)網(wǎng)絡(luò)與GA-BP神經(jīng)網(wǎng)絡(luò)的預(yù)測精度,較BP神經(jīng)網(wǎng)絡(luò)而言,改進的GA-BP神經(jīng)網(wǎng)絡(luò)具有較高的預(yù)測精度,從對12個測試樣本的預(yù)測值來看,其與期望值的平均相對誤差約為6.1%,較灰色模型與BP神經(jīng)網(wǎng)絡(luò)算法分別降低了90.4%與57%,從topN標(biāo)準看,改進后的GA-BP神經(jīng)網(wǎng)絡(luò)的預(yù)測準確度遠高于灰色模型和BP神經(jīng)網(wǎng)絡(luò),可滿足該光伏充電站設(shè)備維修時間預(yù)測的精度要求,可用于該光伏充電站維修時間的預(yù)測。