趙銘滕 朱永利
(華北電力大學(xué)控制與計算機(jī)工程學(xué)院 河北 保定 071003)
伴隨著智能電網(wǎng)的飛速發(fā)展,輸變電設(shè)備的增多,狀態(tài)監(jiān)測也逐漸推廣應(yīng)用在電網(wǎng)的電力設(shè)備上。眾多高壓電力設(shè)施可以通過許多手段來判別絕緣狀態(tài)和異常,而局部放電(Partial Discharge,PD)是其中重要評估根據(jù)之一[1]。局部放電是因為電場中部分場強(qiáng)過高引起絕緣介質(zhì)被擊穿或局部放電的現(xiàn)象。如果場強(qiáng)高于一定值,也可能會發(fā)生在液體中[2]。局部放電對電網(wǎng)安全和電力設(shè)備危害非常大,大部分電力設(shè)備如變壓器等故障都是由它引發(fā)的[3]。正因如此,近些年來局部放電一直得到電網(wǎng)的重視,對局部放電數(shù)據(jù)進(jìn)行分析,識別出放電類型,對判定最終的放電位置具有非比尋常的考量價值。目前對局部放電進(jìn)行識別首先要進(jìn)行的是模式構(gòu)造,其次是提取特征量,最后是設(shè)計分類器。模式構(gòu)造是第一步,它的構(gòu)造效率和正確性直接影響后續(xù)步驟和整個局部放電識別的性能。快速對PD數(shù)據(jù)進(jìn)行模式構(gòu)造,有利于快速提升對局部放電的識別速度,同時也對保障電網(wǎng)的運(yùn)行效率與安全具有重大的意義[4]。
Storm從2010年12月被提出到2014年9月正式加入Apache旗下,因為其高度可擴(kuò)展性[5]、易于使用和能提供低延遲保證數(shù)據(jù)處理等優(yōu)點而被廣泛使用。模式構(gòu)造相關(guān)論文大部分都是理論講解,即便涉及實驗,在Storm下進(jìn)行實驗并分析的也非常少。鑒于Storm的各種優(yōu)勢,針對傳統(tǒng)方法處理大量局部放電信號時的瓶頸問題,本文研究基于Strom的并行化方法,高效準(zhǔn)確地提取放電數(shù)據(jù)中的基本放電參數(shù)進(jìn)行模式構(gòu)造,生成局部放電相位(Phase Resolved Partial Discharge,PRPD)圖譜。
目前局部放電檢測可以分為兩大類:停電檢測和在線監(jiān)測[6]。兩大檢測類中主要的方法大致包括常規(guī)和寬頻帶脈沖電流法[7]、特高頻法[8]、光測量法和超聲波測量法[9]。局部放電主要的研究技術(shù)主要有局部放電源定位[10]、局部放電信號特征提取與模式識別[11]。
目前主要使用的是基于電測法的特征提取與模式識別,而模式構(gòu)造是特征提取必要的前期工作。局部放電的模式構(gòu)造使用主要模式大概分為以下幾種。
1.2.1基于局部放電時間分布模式
該模式主要是對單個局部放電脈沖波形或者單個周期的局部放電信號進(jìn)行波形的特征量提取,包括局部放電脈沖波形的時域特征[12]、基于各種小波變換的特征提取[13]等,該模式也被稱脈沖波形模式。雖然有實驗表明局部放電缺陷與其脈沖波形有直接關(guān)系,但是有許多其他因素也與波形有直接關(guān)系,如傳播路徑、檢測系統(tǒng)等[14]。因為本文的源數(shù)據(jù)類型和TRPD(Time Resolved Partial Discharge)的相關(guān)缺點,本文不考慮使用該識別方法。
1.2.2基于相位分布模式
該模式主要描述局部放電脈沖中φ、q與n之間的關(guān)系(φ、q、n分別表示局部放電脈沖對應(yīng)的工頻相位、放電量或放電幅值、放電率或放電次數(shù))。該模式與時間無關(guān),是局部放電分析中最常見的模式。因為局部放電的強(qiáng)隨機(jī)性,導(dǎo)致基礎(chǔ)參數(shù)分散,所以需要對較多周期的局放信號進(jìn)行統(tǒng)計分析以增加準(zhǔn)確性,所需信號量較多[15]。同時對應(yīng)的工頻電壓相位信息也是必不可少的。但是該模式具有特征提取方法簡單、參數(shù)符合標(biāo)準(zhǔn)、實用性較強(qiáng)、易于可視化等優(yōu)點[16]。鑒于該模式的優(yōu)點以及實驗本身的要求,本文選用相位分布模式進(jìn)行相關(guān)研究。
1.2.3基于脈沖序列分布模式
脈沖序列分布模式(Phase Resolved Pulse Sequence,PRPS)主要用來表示脈沖的周期與相位的具體情分布況,主要涉及到放電信號的幅值,相位以及放電周期[17]。本文并未使用該方法,就不再贅述。
雖然目前很多研究都是基于Hadoop進(jìn)行的,但是考慮到放電數(shù)據(jù)實時性與復(fù)雜性,以及Storm的編程方便性、更短耗時、更靈活等強(qiáng)大特點還是決定采用Storm進(jìn)行放電數(shù)據(jù)的處理。除此以外Storm在對突發(fā)事件的處理與增量方面也有很好的性能,可以補(bǔ)充實時性差方面的短板。其次使用Storm可以對未來的研究起到更好的鋪墊作用和輔助作用,使未來處理其他電力設(shè)備監(jiān)測狀態(tài)數(shù)據(jù)的實驗更加方便進(jìn)行。
在Storm中有在工作節(jié)點(Worker node)上運(yùn)行Supervisor守護(hù)進(jìn)程和在主控節(jié)點(Master node)上運(yùn)行的Nimbus進(jìn)程。主控節(jié)點Nimbus負(fù)責(zé)監(jiān)控各個節(jié)點的工作狀況以及向各個節(jié)點發(fā)送代碼和任務(wù)。工作節(jié)點是負(fù)責(zé)作業(yè)處理的節(jié)點,根據(jù)主控節(jié)點發(fā)送的要求控制相關(guān)工作進(jìn)程Worker的開關(guān)。此外主控節(jié)點的數(shù)量不能超過一個,但工作節(jié)點在集群中可以有很多。主控節(jié)點與工作節(jié)點之間還需要Zookeeper服務(wù)器端進(jìn)程節(jié)點作為中間的協(xié)調(diào)節(jié)點。Zookeeper是廣泛用于狀態(tài)監(jiān)控和配置管理的一種狀態(tài)協(xié)同服務(wù)。整個框架所用的外部資源都來自于Zookeeper。當(dāng)主控節(jié)點以及工作節(jié)點突然中斷時,Zookeeper可以保證它們重新啟動后依然能夠繼續(xù)運(yùn)行。以上三者關(guān)系的示意圖如圖1所示。

圖1 Nimbus、Zookeeper與Supervisor的關(guān)系示意圖
在Storm中,處理的數(shù)據(jù)大部分具有連續(xù)性或者實時性,其中處理數(shù)據(jù)基本的單元是經(jīng)過打包處理的拓?fù)渥鳂I(yè)。拓?fù)涫荰opology的直譯,任何語言的拓?fù)涠伎梢蕴峤坏絊torm上。Topology由Bolt 與Spout組成,其結(jié)構(gòu)如圖2所示。

圖2 Topology的結(jié)構(gòu)
Bolt與Spout這兩種組件是Storm下數(shù)據(jù)處理的的基本原語且分別負(fù)責(zé)數(shù)據(jù)的處理和消息的生產(chǎn)。Spout獲取外部數(shù)據(jù)同時發(fā)送Tuple元組到組件Bolt。Spout在發(fā)送時十分靈活,當(dāng)數(shù)據(jù)對可靠性有要求時可以使用可靠處理,當(dāng)數(shù)據(jù)少部分丟失且不影響整體處理時可以使用非可靠處理,這也是Spout的眾多優(yōu)點之一。Spout的簡單結(jié)構(gòu)如圖3所示。

圖3 Spout的簡單結(jié)構(gòu)
Bolt是拓?fù)涞幕咎幚韱卧瑫r也是框架中的編程單元,它不僅可以進(jìn)行簡單的流轉(zhuǎn)換或者復(fù)雜計算也可以向下游的Bolt發(fā)送元組,進(jìn)行數(shù)據(jù)處理。此外,數(shù)據(jù)處理進(jìn)程用術(shù)語Worker描述,在Topology中部分tasks通過Worker啟動的線程進(jìn)行執(zhí)行,同時這部分tasks也可以屬于不同的Topology。在一般情況下,Storm會合理地分配Worker以及給Worker分配的tasks。
放電量q、放電所在相位φ與放電次數(shù)n是構(gòu)成單個工頻周期內(nèi)PRPD模式的三個基本參數(shù)。由于局部放電的隨機(jī)性導(dǎo)致參數(shù)分散,所以先對工頻周期的放電量與放電次數(shù)進(jìn)行統(tǒng)計,再將其折算至一個單位時間或者工頻周期內(nèi),這樣可以更好地反映出它們的統(tǒng)計規(guī)律和放電特性。在放電量q、放電所在相位φ與放電次數(shù)n的基礎(chǔ)上,主要采用的圖譜有以下三種:
(1)q-φ統(tǒng)計圖:描述幅值與相位的關(guān)系,橫坐標(biāo)為相位,縱坐標(biāo)為信號幅值。以柱狀圖表示,反映最大放電幅值與相位分布的關(guān)系。
(2)n-φ統(tǒng)計圖:描述一段時間內(nèi)放電次數(shù)與相位的關(guān)系,橫坐標(biāo)為相位,縱坐標(biāo)為放電次數(shù)。以柱狀圖表示,反映放電次數(shù)與相位的分布關(guān)系。
(3) PRPD統(tǒng)計圖譜:描述相位分辯的局部放電,將帶有標(biāo)識的局放脈沖按照相位表現(xiàn)出來,同時以圖形顏色深淺來描述放電次數(shù)多少。該圖是一種平面點分布圖,橫向為相位,縱向為幅值,點的顏色深度表示放電脈沖的密度,根據(jù)點分布情況可以掌握信號主要集中的相位、幅值及放電次數(shù)。
除去信號采集、降噪等預(yù)處理,參數(shù)的提取是第一步,其結(jié)果會直接影響模式構(gòu)造的準(zhǔn)確性和效率。本文決定采用雙閾值過濾法用于基本參數(shù)的提取,因為該方法簡單有效且在Storm下易于實現(xiàn),通過使用代表放電幅值的垂直方向和代表放電幅值的水平方向相結(jié)合對局部極值點進(jìn)行雙重過濾來確定一次放電。圖中x為局部放電的監(jiān)測源序號,t是一個圖譜所需的信號個數(shù)(為了實驗的可靠性,一般在50以上),m為某監(jiān)測源當(dāng)前要繪制的圖譜序號,y為繪制圖譜時對信號的計數(shù)。該算法具體流程如圖4所示。其中參數(shù)提取和繪制圖譜兩個子過程中,每個子過程完成后都可以將結(jié)果保存至本地或者數(shù)據(jù)庫。

圖4 算法具體流程
變壓器局部放電類型中較為常見有匝間放電、油紙放電和尖端放電等。本文的實驗數(shù)據(jù)來源于某合作公司對放電類型進(jìn)行監(jiān)測得到的基本參數(shù)(放電次數(shù))。源數(shù)據(jù)監(jiān)測周期一般為一個周期,約20 ms。通道個數(shù)為4,每個通道包含點個數(shù)為10萬。源數(shù)據(jù)一般格式為二進(jìn)制,int16即每16個字節(jié)代表一個數(shù)。
本文實驗使用最經(jīng)典的虛擬機(jī)配置,使用三臺虛擬機(jī)組成集群,其中除了一個主節(jié)點外其余的均為從節(jié)點。將虛擬機(jī)master作為主控節(jié)點,worker01和worker02作為工作節(jié)點。Storm使用的版本為1.0.1,ZooKeeper使用的版本為3.4.8,構(gòu)建于其中3臺虛擬機(jī)之上。搭建步驟如下:1) 在各個節(jié)點上安裝 Storm需要JDK(Java Development Kit)等相關(guān)資源,安裝結(jié)束需要檢測java-version的一致性,如果版本一致的話,則可以順利進(jìn)行下一步安裝。2) 搭建ZooKeeper,搭建成功的標(biāo)志就是集群的各臺機(jī)器可以實現(xiàn)相互通信。其中比較重要的一條是如須關(guān)閉防火墻,三臺機(jī)器的防火墻必須全部關(guān)閉,而且必要的時候禁止防火墻開機(jī)的時候自動啟動,否則會出現(xiàn)ZooKeeper配置搭建已經(jīng)完成,但無法使用或者使用異常,甚至導(dǎo)致機(jī)器間無法通信。搭建成功后運(yùn)行,在每臺虛擬機(jī)中輸入指定命令就會顯示其擔(dān)任的身份。3) 在所有節(jié)點上下載并解壓Storm,修改配置文件,然后啟動后臺進(jìn)程。Storm是否運(yùn)行正常可以通過UI界面的顯示來判斷,成功搭建后部分顯示結(jié)果如圖5所示。

圖5 Storm搭建完成后部分UI界面
算法利用StormSubmitter來提交拓?fù)洌渲袇?shù)主要有名稱、配置對象和拓?fù)浔旧怼pout從本地文件夾中讀取二進(jìn)制文件并發(fā)送字節(jié)流,每個字節(jié)流包含200 000 B。解析字節(jié)流信號,發(fā)送int16數(shù)組信號,串行解析200 000 B耗時約150 ms。掃描放電波形統(tǒng)計基本放電參數(shù)、放電幅值Q、放電次數(shù)N、放電數(shù)據(jù)datalist。對PD信號進(jìn)行基本參數(shù)提取,發(fā)送譜圖和基本參數(shù)的統(tǒng)計量。
本次實驗的主要目標(biāo)是測試Storm在模式構(gòu)造時對數(shù)據(jù)處理的性能,借助流式處理平臺提高模式構(gòu)造的速度和效率,測試的指標(biāo)為吞吐量和處理延遲。
3.4.1吞吐量
吞吐量在本實驗中是指單位時間內(nèi)所能處理的放電數(shù)據(jù)總量。本實驗主要測試的是模式構(gòu)造模塊與源組件FileFromDirSpout以及數(shù)據(jù)處理組件BinaryDecimalBolt的線程數(shù)之間的關(guān)系。保持工作進(jìn)程和組件并發(fā)數(shù)不變,改變工作進(jìn)程。將固定工作進(jìn)程設(shè)置為3,組件并發(fā)設(shè)計為(2,3),發(fā)送間隔為0 ms,計算模式構(gòu)造模塊的吞吐量如表1所示。

表1 不同工作節(jié)點數(shù)下的吞吐量
從表1中可以看出吞吐量隨節(jié)點的增加呈現(xiàn)上升趨勢。本次實驗因為選擇的工作節(jié)點較為理想,吞吐量不斷增加,但是一直增加工作節(jié)點吞吐量不一定會一直增加。對于拓?fù)涑绦騺碚f,其性能還與其他因素有關(guān),本文使用的虛擬機(jī)較少所以對于其他因素就不多做研究。
3.4.2數(shù)據(jù)延遲測試
處理延遲一般指的是Storm中單個元組從發(fā)送開始到其被完全處理的總時間。本實驗主要測試的是模式構(gòu)造模塊的處理延遲,其實數(shù)據(jù)處理的延遲是與處理模塊里面的并行任務(wù)數(shù)量有關(guān)系的。并行任務(wù)數(shù)量多,則Tuple的等待時間就短,處理延遲就小。首先將Spout的數(shù)目設(shè)置為2,將Bolt的數(shù)目設(shè)置為2和5,統(tǒng)計計算前100個元組的處理延遲,結(jié)果如圖6和圖7所示。

圖6 Bolt的數(shù)目為2時處理延遲情況

圖7 Bolt的數(shù)目為5時處理延遲情況
數(shù)據(jù)太多會導(dǎo)致模塊無法及時處理數(shù)據(jù),則數(shù)據(jù)積累的數(shù)量會逐漸增多,最后導(dǎo)致處理延遲的上漲。當(dāng)本文將Bolt的數(shù)目設(shè)置為5時,會發(fā)現(xiàn)大部分處理的延遲都非常小,可以降低到毫秒級。所以,本文可以得到,只要對任務(wù)所在的各個組件的數(shù)目進(jìn)行合理的設(shè)置,就可以有效地提高處理性能。
本次實驗的主要目標(biāo)是測試Storm在模式構(gòu)造時對數(shù)據(jù)處理的性能,借助流式處理平臺提高模式構(gòu)造的速度和效率。繪制的部分圖譜如圖8-圖10所示。

圖8 n-φ統(tǒng)計圖

圖9 q-φ統(tǒng)計圖

圖10 PRPD統(tǒng)計圖譜
本文對局部放電數(shù)據(jù)進(jìn)行分析,提出了基于雙閾值過濾法的參數(shù)提取算法和基于Storm的放電相位分布(PRPD)模式構(gòu)造。首先搭建了Storm集群,然后設(shè)計并編程實現(xiàn)了基于雙閾值過濾法的參數(shù)提取算法,完成了局部放電信號中參數(shù)檢測,為模式構(gòu)造提供了基礎(chǔ),得到了模式構(gòu)造的實驗圖譜。最后通過分析吞吐量與數(shù)據(jù)延遲表明該算法不但具有較高的效率,而且適合在Storm下實現(xiàn)。