王德文,劉曉建
(華北電力大學(xué) 控制與計(jì)算機(jī)工程學(xué)院,河北 保定 071003)
電力設(shè)備是電力系統(tǒng)的基本組成部分,電力設(shè)備故障將直接影響智能電網(wǎng)的安全運(yùn)行。數(shù)據(jù)挖掘是實(shí)現(xiàn)電力設(shè)備故障診斷的關(guān)鍵技術(shù)之一,是分析電力設(shè)備運(yùn)行狀態(tài)的主要方法。為了保證電力設(shè)備的安全運(yùn)行,各種故障診斷方法得到應(yīng)用。文獻(xiàn)[1]根據(jù)模糊粗糙集算法建立信息決策系統(tǒng),解決變壓器故障診斷問(wèn)題。文獻(xiàn)[2]根據(jù)神經(jīng)網(wǎng)絡(luò)算法建立了一個(gè)針對(duì)斷路器的快速智能診斷系統(tǒng),利用斷路器狀態(tài)特征量進(jìn)行故障類型的識(shí)別。這些方法都是在單機(jī)環(huán)境下進(jìn)行的,在現(xiàn)有的數(shù)據(jù)級(jí)別范圍內(nèi)能達(dá)到較快的故障診斷速度,但沒(méi)有考慮海量數(shù)據(jù)對(duì)診斷速度的影響。
智能電網(wǎng)中電力設(shè)備狀態(tài)信息數(shù)據(jù)具有分布廣、種類多、數(shù)據(jù)量巨大的特征。隨著智能電網(wǎng)的發(fā)展,電力設(shè)備故障診斷速度的提高將會(huì)成為智能電網(wǎng)建設(shè)的瓶頸。
a.數(shù)據(jù)分布廣。我國(guó)現(xiàn)有電網(wǎng)分布在不同地域,電力設(shè)備分布點(diǎn)多面廣,造成電力設(shè)備狀態(tài)信息數(shù)據(jù)分布廣泛。
b.數(shù)據(jù)種類多。智能電網(wǎng)中電力設(shè)備狀態(tài)信息數(shù)據(jù)不但包含電力設(shè)備在線狀態(tài)數(shù)據(jù),而且包含電力設(shè)備運(yùn)行情況記錄數(shù)據(jù)、電力設(shè)備故障診斷數(shù)據(jù)、電力設(shè)備檢修試驗(yàn)數(shù)據(jù)、電力設(shè)備缺陷信息數(shù)據(jù)等[3]。
c.數(shù)據(jù)量巨大。例如,輸電線路中絕緣子泄漏電流數(shù)據(jù)采樣頻率高,假設(shè)10 ms采集一次數(shù)據(jù),一個(gè)桿塔在一個(gè)月內(nèi)的數(shù)據(jù)量就達(dá)到了2.5億條[4];智能電網(wǎng)中斷路器數(shù)量較多,斷路器振動(dòng)信號(hào)數(shù)據(jù)采集頻率高,產(chǎn)生的數(shù)據(jù)量巨大[5]。
針對(duì)智能電網(wǎng)中電力設(shè)備狀態(tài)信息數(shù)據(jù)的特點(diǎn),需要引入新的快速計(jì)算技術(shù)以解決傳統(tǒng)故障診斷方法計(jì)算能力不足的問(wèn)題。電力設(shè)備并行故障診斷被提出,且在智能電網(wǎng)中具有重要的研究?jī)r(jià)值。
MapReduce是一個(gè)針對(duì)大數(shù)據(jù)并行運(yùn)算的軟件框架,最大的優(yōu)勢(shì)在于隱藏繁瑣的底層細(xì)節(jié),簡(jiǎn)化并行程序的設(shè)計(jì)與開(kāi)發(fā)工作[6-8]。文獻(xiàn)[9]初步設(shè)計(jì)了電力系統(tǒng)仿真計(jì)算云,采用并行計(jì)算技術(shù)對(duì)電力系統(tǒng)中海量電網(wǎng)數(shù)據(jù)進(jìn)行高效仿真計(jì)算。文獻(xiàn)[10]設(shè)計(jì)了基于MapReduce的MPApriori算法,在Hadoop平臺(tái)上實(shí)現(xiàn)了對(duì)海量WAMS電網(wǎng)數(shù)據(jù)的并行數(shù)據(jù)挖掘,且并行數(shù)據(jù)挖掘效率高于傳統(tǒng)數(shù)據(jù)挖掘平臺(tái)??傊谥悄茈娋W(wǎng)中借助MapReduce的高性能的計(jì)算能力,能夠使并行故障診斷算法高效地執(zhí)行。
本文提出采用MapReduce技術(shù)對(duì)智能電網(wǎng)中海量電力設(shè)備進(jìn)行并行故障診斷的方法。以對(duì)智能電網(wǎng)中海量變壓器油中溶解氣體分析(DGA)數(shù)據(jù)用樸素貝葉斯算法進(jìn)行故障診斷為例,給出了基于Map-Reduce的算法并行化過(guò)程。最后,通過(guò)Hadoop平臺(tái)對(duì)變壓器進(jìn)行并行故障診斷實(shí)驗(yàn),實(shí)現(xiàn)了對(duì)智能電網(wǎng)中海量電力設(shè)備狀態(tài)信息數(shù)據(jù)的快速故障診斷。
基于MapReduce框架的并行故障診斷算法主要為回歸、聚類與分類等算法。目標(biāo)是對(duì)智能電網(wǎng)中變壓器、斷路器、輸電線路等電力設(shè)備產(chǎn)生的海量狀態(tài)信息數(shù)據(jù)進(jìn)行并行故障診斷,解決傳統(tǒng)單機(jī)環(huán)境下對(duì)海量狀態(tài)數(shù)據(jù)計(jì)算能力不足的問(wèn)題。
本文中智能電網(wǎng)電力設(shè)備并行故障診斷以產(chǎn)生的海量變壓器DGA數(shù)據(jù)為例,也可以對(duì)智能電網(wǎng)中斷路器狀態(tài)數(shù)據(jù)、輸電線路波形數(shù)據(jù)等海量電力設(shè)備狀態(tài)數(shù)據(jù)進(jìn)行故障診斷。變壓器中應(yīng)用的故障診斷算法很多,如貝葉斯算法、粗糙集理論算法、支持向量機(jī)算法等,其中貝葉斯算法在變壓器故障診斷中應(yīng)用比較普遍[11-15]。
對(duì)變壓器海量DGA數(shù)據(jù)的故障診斷以并行樸素貝葉斯分類算法為例。樸素貝葉斯算法具有方法簡(jiǎn)單、準(zhǔn)確率高與速度快的優(yōu)勢(shì),雖然原理比較簡(jiǎn)單,但是具有很好的實(shí)際應(yīng)用效果。目前,使用樸素貝葉斯分類算法對(duì)變壓器進(jìn)行故障診斷的研究很多是單機(jī)情況下進(jìn)行的,將來(lái)智能電網(wǎng)中需要用到并行化的樸素貝葉斯算法對(duì)海量狀態(tài)數(shù)據(jù)進(jìn)行快速故障診斷。
Hadoop是一個(gè)方便對(duì)大數(shù)據(jù)集進(jìn)行計(jì)算的分布式平臺(tái),它在集群中通過(guò)并行的工作方式加快計(jì)算速度。Hadoop集群由負(fù)責(zé)資源調(diào)度與管理文件目錄結(jié)構(gòu)的NameNode和若干負(fù)責(zé)管理數(shù)據(jù)存儲(chǔ)的DataNode構(gòu)成。MapReduce是Hadoop的一個(gè)子項(xiàng)目,用于大數(shù)據(jù)集的并行計(jì)算,可以為電力設(shè)備的故障診斷領(lǐng)域提供高效的并行計(jì)算能力與簡(jiǎn)單、通用的并行算法設(shè)計(jì)環(huán)境。MapReduce的執(zhí)行流程如圖1所示。
圖1 MapReduce執(zhí)行流程Fig.1 Flowchart of MapReduce execution
MapReduce運(yùn)行模式可以自動(dòng)處理數(shù)據(jù)的分割、負(fù)載均衡、容錯(cuò)處理等問(wèn)題。MapReduce程序設(shè)計(jì)過(guò)程中只需將數(shù)據(jù)并行計(jì)算問(wèn)題分解成許多可并行執(zhí)行的子問(wèn)題,并設(shè)計(jì)對(duì)應(yīng)的Map函數(shù)與Reduce函數(shù),就能將程序運(yùn)行在分布式系統(tǒng)上。
MapReduce模型中輸入數(shù)據(jù)文件分割成許多相同大小的數(shù)據(jù)片段,并保存在Hadoop集群中不同的存儲(chǔ)節(jié)點(diǎn)。數(shù)據(jù)片段通過(guò)執(zhí)行設(shè)計(jì)的Map函數(shù),得出運(yùn)算結(jié)果〈key,value〉,通過(guò)排序、合并,將 key 值一樣的運(yùn)算結(jié)果傳送到相同的Reduce函數(shù)進(jìn)行數(shù)據(jù)歸并。最后根據(jù)Reduce函數(shù)得到結(jié)果,并將最終計(jì)算結(jié)果數(shù)據(jù)保存在分布式集群上。MapReduce模型使許多種計(jì)算在此框架下達(dá)到相當(dāng)高的執(zhí)行效率,并且還具有可擴(kuò)展的特點(diǎn),對(duì)大規(guī)模數(shù)據(jù)的計(jì)算優(yōu)勢(shì)更加明顯。
以MapReduce為基本的模型,對(duì)樸素貝葉斯算法進(jìn)行并行化操作。以智能電網(wǎng)中海量變壓器DGA數(shù)據(jù)為例對(duì)變壓器進(jìn)行故障診斷。首先對(duì)變壓器DGA數(shù)據(jù)進(jìn)行預(yù)處理使其轉(zhuǎn)化成Bayes M/R job讀入數(shù)據(jù)要求的格式,即每一行為1個(gè)變壓器DGA數(shù)據(jù)樣本,第1個(gè)字符是變壓器故障類別,剩余的是離散化后的DGA數(shù)據(jù),DGA屬性數(shù)據(jù)之間用空格分開(kāi)。
利用4個(gè)MapReduce作業(yè)類執(zhí)行算法的訓(xùn)練過(guò)程,目標(biāo)是得出4個(gè)值的輸出結(jié)果:計(jì)算每個(gè)故障類中DGA數(shù)據(jù)屬性特征詞出現(xiàn)的頻率值,計(jì)算變壓器故障類中的詞頻反文檔頻率(TFIDF)值,對(duì)故障類中的TFIDF值進(jìn)行求和,計(jì)算變壓器各故障類中屬性特征詞出現(xiàn)的概率。其中前一個(gè)作業(yè)類的運(yùn)算結(jié)果數(shù)據(jù)作為后一個(gè)作業(yè)類的輸入數(shù)據(jù)。訓(xùn)練過(guò)程結(jié)束后得出貝葉斯分類模型并保存在分布式集群中,并行化的樸素貝葉斯算法處理DGA數(shù)據(jù)訓(xùn)練集的過(guò)程如下。
a.第1個(gè)MapReduce過(guò)程。Map函數(shù)接收來(lái)自訓(xùn)練文檔的DGA樣本數(shù)據(jù)塊,讀取每個(gè)DGA數(shù)據(jù)中的屬性特征詞,計(jì)算在每個(gè)屬性特征詞在所在故障類中出現(xiàn)的詞頻(TF)值。Reduce函數(shù)統(tǒng)計(jì)Map的數(shù)據(jù)結(jié)果,統(tǒng)計(jì)出訓(xùn)練數(shù)據(jù)集中每個(gè)變壓器故障類的樣本數(shù)據(jù)總數(shù)、TF值與故障數(shù)據(jù)中出現(xiàn)屬性特征詞的樣本數(shù)據(jù)總數(shù)。
b.第2個(gè)MapReduce過(guò)程。根據(jù)第1個(gè)MapReduce的輸出結(jié)果計(jì)算每個(gè)變壓器故障類中每個(gè)特征屬性的TFIDF值。Map過(guò)程計(jì)算每個(gè)特征屬性的反文檔頻率(IDF)值。Reduce過(guò)程根據(jù)TF值乘以IDF值計(jì)算每個(gè)變壓器故障類中特征屬性的TFIDF結(jié)果,同時(shí)計(jì)算訓(xùn)練文檔特征屬性總數(shù)。
c.第3個(gè)MapReduce過(guò)程。Map函數(shù)調(diào)用每個(gè)故障類的樣本數(shù)據(jù)總數(shù)與訓(xùn)練集DGA數(shù)據(jù)總數(shù)計(jì)算各故障類的先驗(yàn)概率。Reduce函數(shù)進(jìn)行匯總,計(jì)算每個(gè)變壓器故障類中所有特征屬性的TFIDF總和,計(jì)算變壓器故障類的先驗(yàn)概率。
d.第4個(gè)MapReduce過(guò)程。通過(guò)計(jì)算得到變壓器各故障類中特征屬性出現(xiàn)的概率,最終得出貝葉斯分類模型。
并行化的樸素貝葉斯算法對(duì)DGA數(shù)據(jù)測(cè)試集的故障診斷過(guò)程中,先對(duì)變壓器DGA測(cè)試集進(jìn)行預(yù)處理,將其組織成Bayes模型輸入文本格式,然后用1個(gè)MapReduce過(guò)程完成對(duì)測(cè)試集的故障診斷。Map函數(shù)計(jì)算待測(cè)試的變壓器DGA數(shù)據(jù)中屬性特征詞出現(xiàn)的次數(shù),并加載訓(xùn)練過(guò)程得到的貝葉斯分類模型計(jì)算出測(cè)試集所屬的故障類型。Reduce函數(shù)進(jìn)行歸并,最終獲得診斷結(jié)果。樸素貝葉斯算法并行化流程圖如圖2所示。
圖2 貝葉斯算法并行化流程圖Fig.2 Flowchart of Bayesian algorithm parallelization
本文在實(shí)驗(yàn)室構(gòu)建了一個(gè)電力設(shè)備狀態(tài)信息并行故障診斷實(shí)驗(yàn)平臺(tái)。實(shí)驗(yàn)環(huán)境由10臺(tái)配置相同的普通PC機(jī)組成,其中一臺(tái)PC機(jī)作為NameNode,其他PC機(jī)均作為DataNode。每臺(tái)PC機(jī)CPU均為雙核 Interi5-2400,主頻 3.10 GHz,4.00 GB 內(nèi)存,80 GB硬盤。Hadoop所用版本為0.20.2。
實(shí)驗(yàn)中以額定電壓在220 kV及以下的變壓器作為研究對(duì)象。根據(jù)相關(guān)文獻(xiàn)和電力公司中有關(guān)變壓器的歷史資料收集到具有明確故障的237條變壓器故障數(shù)據(jù)與369條健康狀態(tài)下運(yùn)行的變壓器數(shù)據(jù)[16-18]。實(shí)驗(yàn)過(guò)程經(jīng)過(guò)反復(fù)多次的測(cè)試,取平均值作為最終實(shí)驗(yàn)結(jié)果。
根據(jù)IEC標(biāo)準(zhǔn)和我國(guó)電力行業(yè)標(biāo)準(zhǔn)DL/T722—2000[19],變壓器故障類型如表1所示,部分變壓器故障數(shù)據(jù)如表2所示(φ表示氣體含量)。
樸素貝葉斯分類算法是一種符號(hào)化分析算法,算法中的屬性值都看作定性數(shù)據(jù),因此需要對(duì)變壓器DGA數(shù)據(jù)屬性值進(jìn)行離散化處理??紤]到在實(shí)際變壓器故障診斷中,不同氣體含量值和氣體間比值,其定量標(biāo)準(zhǔn)差異很大。所以,可行的離散化方法是依據(jù)一定的規(guī)則,對(duì)不同屬性值設(shè)定閾值進(jìn)行分段,每一段作為定性數(shù)據(jù),從而保證變壓器故障診斷順利進(jìn)行。 根據(jù) DL /T722—2000[19]和相關(guān)文獻(xiàn)[20-21]以及專家經(jīng)驗(yàn),變壓器DGA數(shù)據(jù)離散化如表3所示。
表1 變壓器故障種類Table 1 Categories of transformer fault
表2 部分變壓器故障樣本Table 2 Partial of transformer fault samples μL /L
表3 DGA數(shù)據(jù)離散化Table 3 Discretization of DGA data μL /L
本實(shí)驗(yàn)變壓器DGA樣本數(shù)據(jù)的訓(xùn)練集與測(cè)試集按2∶1隨機(jī)劃分,在小規(guī)模DGA數(shù)據(jù)集的情況下,在集群上應(yīng)用并行化的樸素貝葉斯分類算法對(duì)變壓器進(jìn)行故障診斷,實(shí)驗(yàn)結(jié)果如表4所示。
表4 變壓器故障診斷結(jié)果Table 4 Result of transformer fault diagnosis
如表4所示,依據(jù)文獻(xiàn)[21],本實(shí)驗(yàn)對(duì)存在故障的變壓器的診斷準(zhǔn)確率是正常的故障診斷率,在變壓器數(shù)據(jù)樣本充足的情況下診斷正確率會(huì)進(jìn)一步提升。并行化的樸素貝葉斯算法對(duì)變壓器DGA數(shù)據(jù)顯示出了預(yù)期的診斷效果,并對(duì)算法的診斷結(jié)果取得了初步驗(yàn)證。
本實(shí)驗(yàn)要在Hadoop實(shí)驗(yàn)平臺(tái)上模擬對(duì)智能電網(wǎng)中海量變壓器在線監(jiān)測(cè)DGA數(shù)據(jù)集的故障診斷,必須增大測(cè)試集的數(shù)據(jù)規(guī)模。由于條件限制無(wú)法得到大規(guī)模測(cè)試數(shù)據(jù),實(shí)驗(yàn)中采取隨機(jī)復(fù)制已有數(shù)據(jù)集的方法,來(lái)得到大規(guī)模的測(cè)試數(shù)據(jù)。在實(shí)驗(yàn)中,測(cè)試在相同大小DGA數(shù)據(jù)集下樸素貝葉斯算法在Hadoop平臺(tái)與單機(jī)平臺(tái)上的運(yùn)行時(shí)間,實(shí)驗(yàn)結(jié)果如表5所示。
表5 測(cè)試時(shí)間對(duì)比Table 5 Comparison of test time
由表5可見(jiàn),當(dāng)測(cè)試的變壓器DGA數(shù)據(jù)集規(guī)模較小時(shí),集群的運(yùn)行時(shí)間大于單機(jī)運(yùn)行時(shí)間,這是因?yàn)樗惴ǖ膱?zhí)行過(guò)程中集群計(jì)算節(jié)點(diǎn)之間需要信息交互,消耗了一定的時(shí)間,而這部分時(shí)間占總運(yùn)行時(shí)間的比例較大,導(dǎo)致集群的運(yùn)行時(shí)間大于單機(jī)環(huán)境下;當(dāng)測(cè)試數(shù)據(jù)規(guī)模逐漸增加時(shí),集群的計(jì)算時(shí)間效率越來(lái)越高于單機(jī)環(huán)境下,體現(xiàn)了Hadoop集群對(duì)大數(shù)據(jù)集進(jìn)行運(yùn)算的優(yōu)越性。
加速比為處理相同數(shù)據(jù)規(guī)模時(shí)處理器數(shù)量從p增加為q時(shí)集群的加速效果,是評(píng)判一個(gè)算法并行化效果的重要指標(biāo)[22]。本實(shí)驗(yàn)主要測(cè)試并行化的樸素貝葉斯算法處理不同大小DGA數(shù)據(jù)集時(shí)的加速比,結(jié)果如圖3所示。
圖3 加速比測(cè)試結(jié)果Fig.3 Result of speedup ratio test
從圖3中可知,并行化的樸素貝葉斯算法的加速比是接近線性的,這是由于相同數(shù)據(jù)規(guī)模下集群規(guī)模越大,算法的計(jì)算時(shí)間越短。隨著DGA數(shù)據(jù)集規(guī)模的增大,樸素貝葉斯算法加速比性能會(huì)越來(lái)越好,也說(shuō)明并行計(jì)算方法能夠很好地解決大規(guī)模數(shù)據(jù)情況下計(jì)算時(shí)間過(guò)長(zhǎng)的問(wèn)題。在相同的DGA數(shù)據(jù)規(guī)模下,隨著集群計(jì)算節(jié)點(diǎn)規(guī)模的增加,加速比的增長(zhǎng)速率逐漸減緩,這是由于集群規(guī)模的擴(kuò)大導(dǎo)致計(jì)算節(jié)點(diǎn)之間通信量增加,減緩了加速比的增長(zhǎng)速率??紤]到16 GB大小的DGA數(shù)據(jù)集相對(duì)于集群而言并不是很大,集群性能沒(méi)有得到全面的體現(xiàn),圖中曲線并沒(méi)有靠近對(duì)角線,這再次說(shuō)明集群更適合大規(guī)模數(shù)據(jù)集。
本文針對(duì)傳統(tǒng)電力設(shè)備故障診斷算法在對(duì)海量狀態(tài)數(shù)據(jù)進(jìn)行計(jì)算時(shí)出現(xiàn)的計(jì)算能力不足的問(wèn)題,研究了MapReduce并行計(jì)算框架。利用Hadoop/MapReduce平臺(tái)給出了樸素貝葉斯算法的并行故障診斷過(guò)程,實(shí)現(xiàn)了以變壓器為例的電力設(shè)備快速并行故障診斷。實(shí)驗(yàn)表明,當(dāng)變壓器DGA數(shù)據(jù)集達(dá)到一定規(guī)模后,Hadoop集群可以對(duì)變壓器進(jìn)行快速并行故障診斷,并顯示出了較好的加速比性能。
目前,本文只是對(duì)電力設(shè)備的并行故障診斷做了實(shí)驗(yàn),后期工作將逐步應(yīng)用到電力設(shè)備的故障診斷中,并對(duì)現(xiàn)有的診斷方法進(jìn)行改進(jìn),進(jìn)一步提高故障診斷的速度與精度。