高文俊,薛斌斌,龐振江
(北京智芯微電子科技有限公司,北京 102299)
我國電網(wǎng)從“信息化”向“智能化”發(fā)展是未來的必然趨勢[1]。智能電表是智能電網(wǎng)數(shù)據(jù)采集的基本設(shè)備之一,承擔(dān)著原始電能數(shù)據(jù)采集、計(jì)量和傳輸?shù)娜蝿?wù),是實(shí)現(xiàn)信息集成、分析優(yōu)化和信息展現(xiàn)的基礎(chǔ)。近年來,隨著智能電網(wǎng)信息采集系統(tǒng)的建設(shè),智能電表已經(jīng)獲得了大范圍的推廣和應(yīng)用。如此大規(guī)模的智能電表一旦出現(xiàn)故障,會(huì)影響到電網(wǎng)的控制和管理,與人民的切身利益和社會(huì)的和諧穩(wěn)定密切相關(guān)[2-3]。
目前,國內(nèi)主要是通過定期巡檢的方式確定電表的故障信息,并作進(jìn)一步處理。但是該方法需要耗費(fèi)大量的人力、物力和時(shí)間資源,并且需要巡檢人員具備一定的專業(yè)知識(shí)[4]。隨著我國科技的快速發(fā)展,越來越多的智能電表數(shù)據(jù)被采集和存儲(chǔ),采用數(shù)據(jù)挖掘的方法對智能電表的故障數(shù)據(jù)進(jìn)行特征提取,捕捉各特征間的影響規(guī)律,實(shí)現(xiàn)對智能電表的故障預(yù)測成為未來發(fā)展的重要方向[5]。
近年來,關(guān)于智能電表的故障預(yù)測研究仍處于初步階段。文獻(xiàn)[6]采用一種基于聚類分析和云模型的智能電表故障分類方法,但是聚類的方法很難定義故障的種類。文獻(xiàn)[7]采用基于評分搜索的方法構(gòu)建了貝葉斯網(wǎng)絡(luò)結(jié)構(gòu),在此基礎(chǔ)之上對智能電表的故障進(jìn)行預(yù)測和決策分析。但是貝葉斯網(wǎng)絡(luò)對輸入數(shù)據(jù)的表達(dá)形式敏感,當(dāng)屬性個(gè)數(shù)較多或?qū)傩灾g相關(guān)性較大,數(shù)據(jù)量較大時(shí),分類效果會(huì)受到影響。文獻(xiàn)[8]通過人為刪除重復(fù)數(shù)據(jù)與無關(guān)數(shù)據(jù),補(bǔ)全數(shù)據(jù)中的缺失值,獲得預(yù)測數(shù)據(jù)和特征數(shù)據(jù),采用神經(jīng)網(wǎng)絡(luò)的方法對智能電表的故障類型進(jìn)行分析。該方法可以良好地針對海量數(shù)據(jù)進(jìn)行建模,但是需要先對數(shù)據(jù)的輸入特征和無關(guān)數(shù)據(jù)進(jìn)行人為處理,人為選擇的相關(guān)特征很有可能會(huì)舍棄掉一部分有用的數(shù)據(jù)信息,使故障預(yù)測精度受到影響。
卷積神經(jīng)網(wǎng)絡(luò)相比于傳統(tǒng)的BP 神經(jīng)網(wǎng)絡(luò)、SVM 等算法[9-10],更適用于高維數(shù)據(jù),具有更強(qiáng)的特征捕捉能力,目前在諸多工業(yè)領(lǐng)域都有良好的表現(xiàn)[11-13]。
考慮到智能電表故障呈現(xiàn)出的動(dòng)態(tài)性、復(fù)雜性、多面性等特點(diǎn),本文提出了一種基于時(shí)空卷積神經(jīng)網(wǎng)絡(luò)的智能電表故障預(yù)測模型,該模型將時(shí)間信息融入特征變量中,構(gòu)建具有時(shí)空特性的輸入矩陣,并與卷積神經(jīng)網(wǎng)絡(luò)相結(jié)合,實(shí)現(xiàn)對智能電表故障的準(zhǔn)確預(yù)測。通過實(shí)例驗(yàn)證,本文提出的模型具有較高的預(yù)測精度,對于實(shí)現(xiàn)智能電表的故障預(yù)測是合理有效的。
考慮到智能電表故障呈現(xiàn)出的動(dòng)態(tài)性、復(fù)雜性、多面性等特點(diǎn),本文提出基于ST-CNN 的智能電表故障預(yù)測方法,其預(yù)測流程如圖1 所示。
圖1 智能電表故障預(yù)測流程
首先對智能電表歷史數(shù)據(jù)做預(yù)處理,包括基于中值濾波的異常值處理和歸一化;然后基于滑動(dòng)窗口將時(shí)間信息融入輸入數(shù)據(jù)中,構(gòu)建具有時(shí)空特性的輸入矩陣;并與CNN 相結(jié)合建立智能電表故障辨識(shí)模型,通過超參數(shù)優(yōu)化的方法保證模型性能達(dá)到預(yù)設(shè)要求;最后,在此基礎(chǔ)之上,對實(shí)時(shí)數(shù)據(jù)進(jìn)行故障預(yù)測,并與現(xiàn)場消缺反饋相結(jié)合,補(bǔ)充歷史故障庫,實(shí)現(xiàn)預(yù)測模型的實(shí)時(shí)優(yōu)化與校正。
1.1.1 數(shù)據(jù)預(yù)處理
考慮到采集數(shù)據(jù)中異常值的存在會(huì)對模型精度造成影響,本文采用中值濾波的方法對特征變量進(jìn)行異常值剔除。
設(shè)o=(o1,…,oi,…,on)為智能電表某變量的時(shí)間序列數(shù)據(jù),on表示第n 時(shí)刻該變量的值。設(shè)窗口長度為2K+1,K 為整數(shù)。那么對oi進(jìn)行中值濾波就是從變量o中抽取出2K+1 個(gè)數(shù),表示為:oi-K,…,oi,…,oi+K,其中,i為窗口的中心位置;再將抽出的2K+1 個(gè)數(shù)按照數(shù)值大小進(jìn)行排列,選取中間位置的數(shù)據(jù),數(shù)學(xué)表達(dá)式如式(1)所示:
1.1.2 基于滑動(dòng)窗口的輸入矩陣構(gòu)建
現(xiàn)有智能電表故障預(yù)測研究往往忽略特征變量的時(shí)間特性,時(shí)間序列數(shù)據(jù)可以包含更多的有效信息,提高故障預(yù)測的實(shí)時(shí)性和準(zhǔn)確性[14]。本文采用滑動(dòng)窗口的方法對每個(gè)特征變量的時(shí)間信息進(jìn)行選擇,獲得輸入矩陣,如圖2 所示。
圖2 基于滑動(dòng)窗口的輸入矩陣構(gòu)建
1.1.3 基于CNN 的故障預(yù)測模型建立
CNN 是一種人工神經(jīng)網(wǎng)絡(luò),不同于MLP,它考慮了輸入數(shù)據(jù)的空間關(guān)系,可以更好地捕捉多變量間的非線性相關(guān)性[15]。本文結(jié)合智能電表故障預(yù)測模型,介紹CNN 算法的基本思想。
本文采用的CNN 結(jié)構(gòu)為2 個(gè)卷積層、2 個(gè)池化層和1 個(gè)全連接層,如圖3 所示。
圖3 本文所用CNN 網(wǎng)絡(luò)結(jié)構(gòu)
已知構(gòu)建的輸入矩陣X 為輸入變量,對應(yīng)的故障類別Y 為輸出變量。CNN 的訓(xùn)練過程主要包括正向傳播和反向傳播。
(1)正向傳播:
卷積層C1的傳播過程如下式所示:
式中,fC2(·)表示ReLU 激活函數(shù)。
池化層P2的傳播過程如下式所示:
全連接層的作用則是對提取的特征進(jìn)行非線性組合以得到輸出,特征圖在全連接層中會(huì)失去空間拓?fù)浣Y(jié)構(gòu),被平鋪(Flatten)為向量,如下所示:
則全連接層輸入為XFC-1,全連接層的正向傳播過程可以表示為:
式中,WFC表示全連接層權(quán)重,bFC表示全連接層偏置,表示預(yù)測的故障結(jié)果,fFC(·)表示sigmoid 激活函數(shù),fFC(x)=
(2)反向傳播
損失函數(shù)如下式:
式中,N 表示訓(xùn)練樣本個(gè)數(shù),Y^表示模型預(yù)測結(jié)果,Y 表示實(shí)際結(jié)果。
CNN 的反向傳播就是對參數(shù)WFC、bFC、的迭代更新,本文選用Adam 優(yōu)化方法對模型參數(shù)進(jìn)行更新[16]。
1.1.4 模型性能評價(jià)標(biāo)準(zhǔn)
本文采用準(zhǔn)確率(Accuracy)、精確率(Precision)、召回率(Recall)和綜合評價(jià)指標(biāo)F1 共同作為智能電表故障辨識(shí)模型的評價(jià)標(biāo)準(zhǔn)。
分類評價(jià)指標(biāo)的定義:TP(True Positive)表示將正類預(yù)測為正類數(shù),TN(True Negative)表示將負(fù)類預(yù)測為負(fù)類數(shù),F(xiàn)P(False Positive)表示將負(fù)類預(yù)測為正類數(shù),F(xiàn)N(False Negative)表示將正類預(yù)測為負(fù)類數(shù)。
準(zhǔn)確率(Accuracy)的計(jì)算公式如式(11)所示:
精確率(Precision)的計(jì)算公式如式(12)所示:
召回率(Recall)的計(jì)算公式如式(13)所示:
綜合評價(jià)指標(biāo)(F1)的計(jì)算公式如式(14)所示:
由節(jié)1.1 可知基于ST-CNN 智能電表故障預(yù)測的具體流程,本節(jié)對基于ST-CNN 的智能電表故障預(yù)測算法進(jìn)行具體描述。
(1)通過智能電表故障庫獲得故障相關(guān)特征變量o=(o(1),o(2),…,o(s)),輸出故障類別Y。其中,s 表示特征變量個(gè)數(shù)。
(3)將時(shí)間信息融入到x 中,根據(jù)式(3)構(gòu)建輸入矩陣X。
(4)將X 作為輸入,根據(jù)式(4)~式(9)進(jìn)行CNN 前向傳播,得到輸出結(jié)果。
(5)根據(jù)式(10)計(jì)算模型損失函數(shù),并采用Adam 優(yōu)化算法對模型參數(shù)進(jìn)行更新,得到智能電表故障辨識(shí)模型。
(6)根據(jù)式(11)~式(14)建立模型評價(jià)標(biāo)準(zhǔn),當(dāng)該4 個(gè)標(biāo)準(zhǔn)均大于85%時(shí),保存模型參數(shù),獲得智能電表故障預(yù)測模型;如果不滿足預(yù)設(shè)要求則繼續(xù)進(jìn)行參數(shù)優(yōu)化,直至滿足要求為止。
(7)對于實(shí)時(shí)數(shù)據(jù),根據(jù)式(1)~式(3)構(gòu)建輸入矩陣,并放入訓(xùn)練好的故障預(yù)測模型中,對故障類別進(jìn)行實(shí)時(shí)預(yù)測。
(8)現(xiàn)場人員根據(jù)預(yù)測結(jié)果進(jìn)行實(shí)時(shí)消缺和反饋,并將數(shù)據(jù)放入歷史故障庫,對故障預(yù)測模型進(jìn)行實(shí)時(shí)的參數(shù)更新。
本文選擇某公司智能電表故障庫中的故障數(shù)據(jù),故障類別共8 類,分別是:正常、采集異常、電表示值不平、電表飛走、電表反向有功示值異常、電表倒走、電表時(shí)間異常和電表潛動(dòng)異常。
智能電表故障相關(guān)數(shù)據(jù)共8 種:包括總電量數(shù)、峰段電量數(shù)、平段電量數(shù)、谷段電量數(shù)、電流、電壓、電表時(shí)間、終端時(shí)間。
數(shù)據(jù)的采樣頻率為每秒1 個(gè)點(diǎn),選擇智能電表分別處于8 類故障時(shí),運(yùn)行30 min 的數(shù)據(jù)作為原始數(shù)據(jù),共14 400 個(gè)點(diǎn)。選擇前20 min 的連續(xù)數(shù)據(jù)為訓(xùn)練原始數(shù)據(jù),共9 600 個(gè);選擇后10 min 連續(xù)數(shù)據(jù)作為預(yù)測原始數(shù)據(jù),共4 800 個(gè)。
滑動(dòng)窗口的大小選擇為1 min,即60 個(gè)連續(xù)數(shù)據(jù)點(diǎn),步長選擇為1。選擇8 個(gè)與智能電表故障相關(guān)的變量,所以,輸入矩陣可以構(gòu)建為60×8 的矩陣。
將每個(gè)輸入矩陣與對應(yīng)的故障類別作為一個(gè)樣本,獲得樣本數(shù)據(jù)共14 280 個(gè),其中訓(xùn)練樣本9 540 個(gè),預(yù)測樣本4 740 個(gè)。
本文采用的時(shí)空卷積神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)見表1 所示,共采用2 個(gè)卷積層、2 個(gè)池化層、1 個(gè)全連接層。學(xué)習(xí)率設(shè)置為0.001,第一次估計(jì)的指數(shù)衰減率為0.9,第二次估計(jì)的指數(shù)衰減率為0.999,訓(xùn)練輪數(shù)設(shè)置為1 000 次。
表1 時(shí)空卷積神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)
本文采用的核函數(shù)是3×3,這是因?yàn)?×3 是最小的能夠捕獲像素八鄰域信息的尺寸,而且多個(gè)3×3 的卷積層比一個(gè)大尺寸卷積層使用了更多的非線性激活函數(shù),判決性更強(qiáng),同時(shí)使用的參數(shù)更少,模型復(fù)雜度更低。
本文采用3×3 核函數(shù)堆疊的方法對模型結(jié)構(gòu)進(jìn)行試湊,當(dāng)模型具有2 層卷積層時(shí),模型精度已經(jīng)可以滿足故障預(yù)測的需求,過高的層數(shù)在模型精度提升并不大,同時(shí)會(huì)造成大量的計(jì)算冗余。
本文將目前智能電表故障預(yù)測常用的BP 神經(jīng)網(wǎng)絡(luò)、隨機(jī)森林、SVM 和樸素貝葉斯模型與本文方法作對比,結(jié)果如圖4 所示。
圖4 智能電表故障預(yù)測多模型對比
表2 給出了本文方法與其他4 個(gè)常用模型的預(yù)測結(jié)果對比。從表2 可以看出,本文方法與其他4 個(gè)模型相比,無論是在準(zhǔn)確率、精確率、召回率,還是F1 評價(jià)指標(biāo),都是表現(xiàn)最好的模型,這也說明了本文算法的有效性。
表2 智能電表故障預(yù)測多模型對比(%)
從表2 可以看出,樸素貝葉斯的召回率高于SVM,但是精確率低于SVM,隨機(jī)森林的召回率高于SVM,但是精確率低于SVM。這說明采用4 種不同的評價(jià)標(biāo)準(zhǔn),從不同的角度對模型進(jìn)行綜合判斷才能更準(zhǔn)確地對模型性能進(jìn)行評價(jià)。
表3 給出了本文所采用的方法在8 種故障的預(yù)測結(jié)果。從表3 可知,采集異常與電表示值不平這2 類故障預(yù)測準(zhǔn)確率較低,其他故障的預(yù)測準(zhǔn)確率相差不多,其中,電表反向有功示值異常預(yù)測準(zhǔn)確率最好。
表3 本文方法各故障的預(yù)測結(jié)果 (%)
導(dǎo)致某類故障預(yù)測準(zhǔn)確率較低的原因有很多,后續(xù)可以針對預(yù)測準(zhǔn)確率低的故障開展詳細(xì)研究,找到準(zhǔn)確率低的具體原因,通過輸入特征的修改和模型結(jié)構(gòu)參數(shù)的調(diào)整提高模型的整體性能。
本文采用滑動(dòng)窗口的方法將時(shí)間信息融入輸入變量中,并結(jié)合CNN 捕捉數(shù)據(jù)的時(shí)空特性,提高了模型的精度和實(shí)時(shí)性。仿真結(jié)果表明,本文提出基于ST-CNN智能電表故障預(yù)測模型的準(zhǔn)確率、精確率、召回率、F1均高于其他4 種對比模型。準(zhǔn)確的預(yù)測智能電表故障不僅可以為現(xiàn)場運(yùn)維人員提供數(shù)據(jù)參考,同時(shí)也可為電網(wǎng)的控制和管理提供理論和技術(shù)支持。