姜 萍,郭歡歡,代金超
(河北大學(xué)電子信息工程學(xué)院,河北保定 071000)
近年來(lái),隨著光伏發(fā)電技術(shù)的飛速發(fā)展,光伏陣列也逐漸規(guī)?;?。然而光伏陣列設(shè)施往往建立在環(huán)境比較惡劣的條件下,難以避免地會(huì)發(fā)生一些故障,如開(kāi)路、短路、局部陰影問(wèn)題、老化問(wèn)題等。因此如何有效地對(duì)光伏組件的故障進(jìn)行檢測(cè),使光伏陣列運(yùn)行得更加穩(wěn)定、有效變得尤為重要[1-3]。
目前常用的光伏故障診斷方法主要包括;紅外圖像識(shí)別技術(shù)[4]、單刀多擲開(kāi)關(guān)結(jié)合傳感器[5]、支持向量機(jī)[6]、人工神經(jīng)網(wǎng)絡(luò)[7]、主成分分析法[8]等。隨著人工智能的快速發(fā)展,許多專家和學(xué)者把目光投向了模糊聚類、相關(guān)向量機(jī),并且在光伏診斷方法中機(jī)器學(xué)習(xí)、模糊神經(jīng)網(wǎng)絡(luò)等方法中取得了很好的效果,然而這些方法局限于小數(shù)據(jù)集的學(xué)習(xí)和訓(xùn)練,處理數(shù)據(jù)集特征能力不足,容易陷入局部最優(yōu)、提取特征困難等問(wèn)題。
在智能診斷算法當(dāng)中,深度學(xué)習(xí)網(wǎng)絡(luò)憑借其深度挖掘樣本的特征能力,分層處理樣本的特征信息等優(yōu)點(diǎn),已經(jīng)廣泛應(yīng)用于人臉識(shí)別[9]、功率預(yù)測(cè)[10]等領(lǐng)域,近幾年來(lái)也漸漸應(yīng)用于各種模型故障的診斷當(dāng)中。
然而在深度信念網(wǎng)絡(luò)訓(xùn)練中依然會(huì)遇到諸多的問(wèn)題,如DBN 網(wǎng)絡(luò)在訓(xùn)練和學(xué)習(xí)時(shí)其權(quán)值、偏置是隨機(jī)產(chǎn)生的,網(wǎng)絡(luò)參數(shù)會(huì)陷入局部最優(yōu)。文獻(xiàn)[11]采用改進(jìn)粒子群算法對(duì)深度信念網(wǎng)絡(luò)的權(quán)值進(jìn)行優(yōu)化,以此提高模型預(yù)測(cè)的能力;文獻(xiàn)[12]采用混沌免疫算法對(duì)DBN 網(wǎng)絡(luò)參數(shù)進(jìn)行優(yōu)化,并且引入了可變選擇算子,提高了網(wǎng)絡(luò)尋優(yōu)的收斂速度;文獻(xiàn)[13]提出利用布谷鳥(niǎo)搜索算法的全局尋優(yōu)能力優(yōu)化DBN 網(wǎng)絡(luò)的初始權(quán)值,解決了原始DBN 網(wǎng)絡(luò)的權(quán)值隨機(jī)初始化問(wèn)題。盡管這些智能算法對(duì)深度信念網(wǎng)絡(luò)權(quán)重進(jìn)行了優(yōu)化,卻缺乏對(duì)網(wǎng)絡(luò)神經(jīng)元的偏置優(yōu)化。為了提高DBN 網(wǎng)絡(luò)的有效性和穩(wěn)定性,需要同時(shí)對(duì)網(wǎng)絡(luò)的權(quán)重和偏置進(jìn)行優(yōu)化編碼。
本文采用一種新型的智能算法麻雀搜索算法來(lái)提高DBN 網(wǎng)絡(luò)的容錯(cuò)性,麻雀搜索算法在尋優(yōu)精度、收斂性、穩(wěn)定性和魯棒性等方面優(yōu)于其他智能算法[14],可以有效地避免陷入局部最優(yōu)。將麻雀搜索算法用于深度信念網(wǎng)絡(luò)中,對(duì)網(wǎng)絡(luò)權(quán)值和偏置的優(yōu)化起到了至關(guān)重要的作用,也提高了光伏陣列故障診斷的識(shí)別精度。
DBN 模型[15]是一種概率生成模型,由多個(gè)限制玻爾茲曼機(jī)堆疊而形成的網(wǎng)絡(luò)模型,既可以完成有監(jiān)督的數(shù)據(jù)分類和預(yù)測(cè),也可以實(shí)現(xiàn)無(wú)監(jiān)督的數(shù)據(jù)特征提取。本文利用DBN 網(wǎng)絡(luò)對(duì)光伏陣列采集的故障數(shù)據(jù)集進(jìn)行特征提取以及數(shù)據(jù)分類,DBN 故障診斷模型如圖1 所示,輸入端為標(biāo)況下光伏組件典型四種參數(shù),分別是開(kāi)路電壓Uoc、短路電流Isc、最大功率點(diǎn)電壓Um、最大功率點(diǎn)電流Im,輸出層分別為正常、短路、開(kāi)路、老化異常、局部陰影五種狀態(tài),經(jīng)歷隱藏層對(duì)數(shù)據(jù)的處理和模型的自學(xué)習(xí)過(guò)程后,最終由分類器實(shí)現(xiàn)數(shù)據(jù)的分類。
圖1 DBN 故障診斷模型
受限玻爾茲曼機(jī)(restricted Boltzmann machine,RBM)由兩層神經(jīng)網(wǎng)絡(luò)構(gòu)成:第一層是可見(jiàn)層,第二層是隱藏層。各層之間權(quán)值進(jìn)行無(wú)向全聯(lián)系,可用于對(duì)仿真模型計(jì)數(shù)統(tǒng)計(jì)。確定第一層狀態(tài)后,第二層神經(jīng)元不會(huì)受其他神經(jīng)元影響,訓(xùn)練可分為三部分:正向傳播、反向傳播、比較。RBM 結(jié)構(gòu)圖如圖2 所示。
圖2 RBM 結(jié)構(gòu)圖
[Y1,Y2……Ym]為第一層神經(jīng)元,m為可見(jiàn)層神經(jīng)元數(shù)量,Yi是可見(jiàn)層神經(jīng)元狀態(tài);[X1,X2,X3……Xn]第二層神經(jīng)元,n表示隱藏層神經(jīng)元數(shù)量,Xj是隱藏層神經(jīng)元的狀態(tài),可見(jiàn)層和隱藏層用二進(jìn)制數(shù)0 和1 來(lái)分別表示神經(jīng)元的斷開(kāi)和接通狀態(tài),可見(jiàn)層和隱藏層之間的能量函數(shù)可表示為式(1):
式中:Bi和Yi為第一層可見(jiàn)層偏置值和神經(jīng)元;Cj和Xj為第二層隱藏層偏置值和神經(jīng)元;Bi、Cj為基于二進(jìn)制狀態(tài)的數(shù)值;Wij為各層神經(jīng)單元的連接權(quán)值,可得到能量函數(shù)(Y,X)隱藏向量聯(lián)合概率分布為式(2):
式中:函數(shù)F是通過(guò)所有可能的可見(jiàn)層和隱藏層的向量求和而產(chǎn)生的,如式(3):
隨著可見(jiàn)層狀態(tài)確定,隱藏層的激活概率也能計(jì)算,得到第j個(gè)神經(jīng)元的激活條件概率為式(4):
本文選用ReLU 函數(shù),通過(guò)ReLU 函數(shù)求得激活概率值,相比于sigmoid 函數(shù)計(jì)算速度會(huì)更快,表達(dá)式為式(5):
式中:σ(x)為激活函數(shù)。
一旦隱藏層神經(jīng)元狀態(tài)確定后,隨機(jī)選擇二進(jìn)制數(shù)0 或1更新可見(jiàn)層的狀態(tài),可見(jiàn)層中第i個(gè)神經(jīng)元激活的條件概率可表示為式(6):
未被激活的概率則可表示為式(7):
(1)預(yù)訓(xùn)練階段:采用無(wú)監(jiān)督貪婪學(xué)習(xí)算法對(duì)RBM 網(wǎng)絡(luò)進(jìn)行逐層訓(xùn)練,將底層的原始數(shù)據(jù)轉(zhuǎn)化為更抽象的特性信息以初始化RBM 的參數(shù),將隱藏層輸出作為可見(jiàn)層輸入,保證訓(xùn)練過(guò)程中參數(shù)避免陷入局部最優(yōu)解,提高參數(shù)在訓(xùn)練過(guò)程中的抗振蕩性能;
(2)微調(diào)階段:預(yù)訓(xùn)練完成后,基本完成模型的建立,但是依然只能確定每個(gè)RBM 達(dá)到最優(yōu)狀態(tài),無(wú)法確保堆疊后的網(wǎng)絡(luò)參數(shù)最優(yōu)化,還需要把分類器輸出的參數(shù)矩陣進(jìn)行微調(diào),確保初始信息可以被放大,在此過(guò)程中采用BP 神經(jīng)網(wǎng)絡(luò)從上到下微調(diào)并監(jiān)督深度信念網(wǎng)絡(luò)的參數(shù)讓整個(gè)網(wǎng)絡(luò)由局部最優(yōu)狀態(tài)轉(zhuǎn)變成全局最優(yōu),整體結(jié)構(gòu)圖如圖3 所示。
圖3 DBN 網(wǎng)絡(luò)結(jié)構(gòu)圖
對(duì)于DBN 網(wǎng)絡(luò)在訓(xùn)練和學(xué)習(xí)過(guò)程中容易陷入局部最優(yōu)解且求解速度緩慢等問(wèn)題,采用近年來(lái)提出的麻雀搜索算法(SSA)來(lái)優(yōu)化DBN 網(wǎng)絡(luò)的權(quán)值和偏置,以提高DBN 網(wǎng)絡(luò)的識(shí)別精度和收斂速度。
SSA 算法是一種新型元啟發(fā)式算法。在麻雀的覓食行為中,分為發(fā)現(xiàn)者和加入者兩個(gè)角色,并加入觀察報(bào)警機(jī)制。發(fā)現(xiàn)者負(fù)責(zé)種群的搜索和覓食,為種群提供方向;新加入者可以跟隨發(fā)現(xiàn)者,獲取更佳的適應(yīng)值。當(dāng)種群發(fā)生危險(xiǎn)時(shí)可以進(jìn)行反向捕食行為,根據(jù)麻雀的這些覓食行為,得到發(fā)現(xiàn)位置更新公式(8):
式中:t為種群目前迭代次數(shù);N為最大迭代次數(shù);β 取值為(0,1]之間的隨機(jī)數(shù)為第i個(gè)麻雀第j維的位置;R2為[0,1]的隨機(jī)數(shù),表示種群的預(yù)警值;ST為[0.5,1]的隨機(jī)數(shù),代表種群的安全值。R2
式中:Xworst為目前全局最差的位置;A矩陣中的元素賦值-1 或1。當(dāng)i>n/2 時(shí),代表最差的追隨者需要前往更遠(yuǎn)的區(qū)域獲取更多的能量源。出現(xiàn)危險(xiǎn)時(shí),麻雀的反捕食行為公式為(10):
式中:α參數(shù)用來(lái)控制迭代步長(zhǎng),是一個(gè)服從正態(tài)分布的隨機(jī)數(shù);Xbest為種群最優(yōu)位置;K為[-1,1]之間的隨機(jī)數(shù);fg為最佳適應(yīng)度值;fw為最差適應(yīng)度值。
SSA-DBN 流程設(shè)計(jì)為:
(1)初始化種群數(shù)量:對(duì)DBN 網(wǎng)絡(luò)可見(jiàn)層權(quán)值和隱藏層進(jìn)行編碼操作,設(shè)置覓食種群中發(fā)現(xiàn)者和加入者個(gè)體的比例;
(2)選擇適應(yīng)度函數(shù):在對(duì)DBN 網(wǎng)絡(luò)進(jìn)行訓(xùn)練時(shí),可以采取合適的適應(yīng)度函數(shù)對(duì)動(dòng)量參數(shù)進(jìn)行優(yōu)化,可減小參數(shù)訓(xùn)練過(guò)程中的誤差,具體函數(shù)為式(11):
(3)覓食:在m維空間進(jìn)行覓食搜索,其中第j只麻雀最先找到食物的概率為式(12):
式中:Fitnessl為第l只麻雀的適應(yīng)度值,l取值范圍為[1,n]。
(4)種群飛行路線:種群根據(jù)飛行過(guò)程中食物的位置,選擇合適的飛行路線,對(duì)覓食路線中的慣性權(quán)重Z進(jìn)行優(yōu)化,可表示為式(13):
式中:R為最大迭代次數(shù);Zmax和Zmin分別為權(quán)重的最大和最小值;r為當(dāng)前的迭代次數(shù)。
(5)覓食位置調(diào)整:種群在靠近食物時(shí),發(fā)現(xiàn)者以新加入者目前所在位置附近能否發(fā)現(xiàn)更好的食物為依據(jù),以此來(lái)不斷調(diào)整飛行速度、方向和位置,可表示為式(14)和(15):
SSA 優(yōu)化后DBN 網(wǎng)絡(luò)的權(quán)值和偏置根據(jù)原始網(wǎng)絡(luò)結(jié)構(gòu)自行調(diào)節(jié),對(duì)各參數(shù)進(jìn)行微調(diào)如圖4 所示,最終構(gòu)建起應(yīng)用于光伏故障檢測(cè)的優(yōu)化SSA-DBN 模型。
圖4 SSA優(yōu)化DBN 網(wǎng)絡(luò)結(jié)構(gòu)圖
把麻雀搜索算法優(yōu)化DBN 網(wǎng)絡(luò)模型應(yīng)用到光伏組件的故障診斷模型當(dāng)中,以光伏組件的四個(gè)特征參數(shù)作為優(yōu)化網(wǎng)絡(luò)的輸入層,以最常見(jiàn)的五種光伏運(yùn)行狀態(tài)為輸出層,對(duì)不同類型的故障進(jìn)行輸出節(jié)點(diǎn)編碼如表1 所示。
表1 輸出編碼及運(yùn)行狀態(tài)
本文通過(guò)MATLAB 與PSIM 聯(lián)合仿真來(lái)模擬各類光伏故障運(yùn)行狀態(tài),首先在PSIM 軟件中對(duì)光伏組件進(jìn)行參數(shù)設(shè)置,然后模擬了四種故障類型如表2 所示。
表2 故障類型及對(duì)應(yīng)參數(shù)值
在PSIM 中設(shè)置接口模塊與Simulink 通訊,改變PSIM 內(nèi)部電氣參數(shù),以輻照度、溫度為輸入,輸出為組串一、二的電壓和電流值及相應(yīng)故障標(biāo)簽如圖5 所示。Simulink 模擬四種故障的過(guò)程:先采集光伏電站中光伏組件的輻照度、溫度;再設(shè)置各類故障參數(shù),改變故障類型實(shí)現(xiàn)模擬;加入示波器觀察輸入變化過(guò)程;最終得到10 萬(wàn)組正常和故障數(shù)據(jù)集,聯(lián)合仿真整體結(jié)構(gòu)見(jiàn)圖6。
圖5 PSIM整體故障模擬電路圖
圖6 聯(lián)合仿真整體結(jié)構(gòu)圖
根據(jù)仿真平臺(tái)實(shí)驗(yàn),可以獲取標(biāo)況下(G=1 000 W/m2,t=25 ℃)各個(gè)故障數(shù)據(jù)集,得到光伏陣列四個(gè)參數(shù)(Uoc、Isc、Um、Im)的典型值,以及在5 種運(yùn)行狀態(tài)下的P-U和I-U曲線,如圖7 和圖8 所示。
圖7 五種工作狀態(tài)下的P-U 曲線
圖8 五種工作狀態(tài)下的I-U 曲線
故障數(shù)據(jù)參數(shù)在取值范圍方面存在差異性,具有不同的度量尺度,因此在實(shí)驗(yàn)過(guò)程中其所占權(quán)值比例也存在差異,所以需要把原始數(shù)據(jù)進(jìn)行歸一化處理,可表示為式(16):
式中:M為原始數(shù)據(jù)為數(shù)據(jù)集參數(shù)量;Mσ為此特征的標(biāo)準(zhǔn)差;M*為歸一化處理后數(shù)據(jù)。不同量綱的參數(shù)進(jìn)行比較,可提高最優(yōu)解的速度和精度,加快求出最優(yōu)解。
為減少訓(xùn)練時(shí)間,從所得10 萬(wàn)組故障數(shù)據(jù)集中隨機(jī)選取20 000 組數(shù)據(jù)進(jìn)行訓(xùn)練,隨機(jī)選取500 組數(shù)據(jù)用來(lái)檢驗(yàn)?zāi)P偷臏?zhǔn)確性和有效性,具體設(shè)置如表3 所示。進(jìn)行15 次實(shí)驗(yàn),以減少偶然誤差,記錄訓(xùn)練模型所花費(fèi)的時(shí)間。
表3 數(shù)據(jù)集設(shè)置
DBN 故障診斷模型參數(shù)設(shè)置:輸入輸出神經(jīng)元個(gè)數(shù)分別為4 和5;迭代次數(shù)100;動(dòng)量參量取0.4~0.8 之間,取中間值0.6;學(xué)習(xí)率取0.1;隱藏層網(wǎng)絡(luò)層數(shù)采取20-30-50-30-20 的中凸形最佳結(jié)構(gòu)。
為充分表現(xiàn)SSA-DBN 算法的優(yōu)勢(shì),采用重構(gòu)誤差對(duì)其進(jìn)行評(píng)估,重構(gòu)誤差是一種最大似然估計(jì)方法,能夠反映受限玻爾茲曼機(jī)的學(xué)習(xí)效果,也是對(duì)模型進(jìn)行評(píng)價(jià)的重要指標(biāo),其定義如式(17)所示:
式中:k為樣本個(gè)數(shù);l為輸入維數(shù);vi,j為原始數(shù)據(jù)為受限玻爾茲曼機(jī)進(jìn)行一次采樣后得到的重構(gòu)數(shù)據(jù),三種算法的重構(gòu)誤差如圖9 所示。
圖9 重構(gòu)誤差曲線
根據(jù)圖9 分析可知,SSA-DBN 的重構(gòu)誤差明顯低于DCNN 模型和傳統(tǒng)DBN 網(wǎng)絡(luò);DCNN 模型的初始值和穩(wěn)定時(shí)的重構(gòu)誤差最高,迭代130 步后趨于穩(wěn)定,但仍有波動(dòng),幅度也較大;而原始DBN 的初始誤差要比DCNN 略低,經(jīng)歷90 個(gè)迭代步數(shù)后達(dá)到穩(wěn)定;相比這兩個(gè)算法來(lái)說(shuō),改進(jìn)后的DBN算法初始值為0.1 左右,起始值也最低,只經(jīng)歷10 次步數(shù)已達(dá)到穩(wěn)定。證明了SSA 在DBN 參數(shù)優(yōu)化方面取得了顯著的效果,不僅提高了收斂速度,也降低了重構(gòu)誤差。
將DCNN 算法、DBN 算法、SSA-DBN 算法進(jìn)行對(duì)比分析,見(jiàn)表4。
從表4 數(shù)據(jù)對(duì)比分析可知,在這三種算法中DCNN 算法各類型故障準(zhǔn)確率均值只有86.93%,在陰影故障方面表現(xiàn)稍好;其次是DBN 算法平均準(zhǔn)確率達(dá)到92.1%,各個(gè)故障類型均達(dá)到了90%以上,表現(xiàn)良好;最后是SSA-DBN 算法,光伏組件五種工作狀態(tài)的平均診斷準(zhǔn)確率達(dá)到97.71%,與原始DBN 算法相比提高5.61%,實(shí)驗(yàn)證明SSA-DBN 在故障診斷過(guò)程中達(dá)到了較好的全局尋優(yōu)效果。
表4 不同算法診斷準(zhǔn)確率 %
本文提出了一種麻雀搜索算法優(yōu)化DBN 網(wǎng)絡(luò)的光伏陣列故障診斷方法,通過(guò)仿真實(shí)驗(yàn)與傳統(tǒng)的深度學(xué)習(xí)網(wǎng)絡(luò)相比得出以下結(jié)論:
(1)通過(guò)SSA 算法對(duì)DBN 網(wǎng)絡(luò)的權(quán)值和偏置進(jìn)行優(yōu)化,避免模型訓(xùn)練過(guò)程中由于迭代更新而影響訓(xùn)練速度,同時(shí)也增強(qiáng)了對(duì)光伏故障數(shù)據(jù)集特征提取和分類的能力。
(2)優(yōu)化后的DBN 網(wǎng)絡(luò)重構(gòu)誤差明顯低于傳統(tǒng)DBN 網(wǎng)絡(luò)和深度卷積神經(jīng)網(wǎng)絡(luò),其故障診斷準(zhǔn)確率明顯高于另外兩種網(wǎng)絡(luò),SSA-DBN 模型不僅提高了收斂速度,也提高了光伏故障診斷精度。