周 曉,朱晗雨
(武漢理工大學(xué) 機電工程學(xué)院,湖北 武漢 430070)
高壓輸電線路電力故障診斷主要是指通過線路狀態(tài)信息進行分析判斷準確識別故障類別[1],而高壓輸電線路合閘故障診斷對于整個電力系統(tǒng)能夠穩(wěn)定運行具有重要意義,該技術(shù)不僅能夠降低電網(wǎng)運行風(fēng)險,滿足日常用電需要,也提升了高壓輸電線路的可靠性[2]。目前,高壓輸電線路合閘故障診斷方法有基于信號分析技術(shù)的方法以及基于數(shù)據(jù)挖掘技術(shù)的方法等。
基于信號分析的電力系統(tǒng)故障診斷技術(shù)主要通過小波變換(wavelet transform, WT)和S變換等傳統(tǒng)方法對電力波形進行分解,并在此基礎(chǔ)上根據(jù)數(shù)據(jù)特點進行優(yōu)化從而實現(xiàn)故障診斷的目的?;谛〔ㄗ儞Q的故障診斷方法[3-4]首先將采集到的電力波形數(shù)據(jù)進行小波分解,提取到波形信息的高頻小波系數(shù),然后分析小波系數(shù)從而預(yù)測系統(tǒng)的故障時間點,然后結(jié)合故障發(fā)生的時間點,采用基于模極大值的奇異性檢測方法分析系統(tǒng)的故障位置,該方法對于暫態(tài)信號的處理效果較好,但是難以選取合適的小波基函數(shù)?;赟變換的故障診斷方法[5]通過獲取的時頻特性和系統(tǒng)狀態(tài)信息熵進行電力系統(tǒng)故障診斷,該方法對系統(tǒng)的變化敏感度高,抗干擾能力強,但是對于高頻信號的分析能力不如小波變換。
數(shù)據(jù)挖掘技術(shù)利用各類機器學(xué)習(xí)算法分析高壓輸電線路合閘故障數(shù)據(jù)從而實現(xiàn)故障診斷的目的,目前圍繞數(shù)據(jù)挖掘技術(shù)開展研究的方法主要分為有監(jiān)督學(xué)習(xí)算法和無監(jiān)督學(xué)習(xí)算法。文獻[6]提出了一種基于Logistic回歸深度學(xué)習(xí)的故障診斷模型,解決SCADA(supervisory control and data acquisition)系統(tǒng)中故障診斷標準模塊誤報率過高的問題。文獻[7]使用貝葉斯網(wǎng)絡(luò)依據(jù)歷史數(shù)據(jù)庫中的真實數(shù)據(jù)對模型進行訓(xùn)練,完成了電力系統(tǒng)故障的診斷研究。文獻[8]提出了基于自適應(yīng)神經(jīng)模糊推理方法的光伏發(fā)電站模塊故障診斷方法。
由于電力負荷數(shù)據(jù)量爆炸性增長,數(shù)據(jù)特征關(guān)系極其復(fù)雜,以往的統(tǒng)計學(xué)分析以及數(shù)據(jù)挖掘技術(shù)已經(jīng)無法滿足當(dāng)下的高壓輸電線路故障數(shù)據(jù)分析要求。伴隨著大數(shù)據(jù)技術(shù)的高速發(fā)展,陸續(xù)出現(xiàn)了各種各樣的大數(shù)據(jù)處理框架如Hadoop、Spark和Flink[9-10]。這些大數(shù)據(jù)處理系統(tǒng)提供了可靠、穩(wěn)定的數(shù)據(jù)分析流程,為大規(guī)模的電力系統(tǒng)故障診斷分析提供了有利的工具。文獻[11]通過構(gòu)建基于大數(shù)據(jù)的電力計量裝置解決了傳統(tǒng)電力計量智能診斷方法效率低下,準確性不高的問題。文獻[12]搭建Hadoop大數(shù)據(jù)處理分析平臺,結(jié)合MapReduce并行式計算框架的特點設(shè)計了PCA-SVM(principal component analysis-support vector machine)算法,實現(xiàn)了基于數(shù)據(jù)的高壓輸電線路合閘故障診斷。文獻[13]設(shè)計了一種基于大數(shù)據(jù)分析平臺的聚類算法,該方法根據(jù)未標記的數(shù)據(jù)自動選擇聚類值,解決了輸電塔故障預(yù)測的問題。目前依靠成熟的大數(shù)據(jù)技術(shù)可以對海量電力數(shù)據(jù)進行挖掘從而精準定位故障類別。
筆者以高壓輸電線路合閘故障數(shù)據(jù)為分析對象,著重分析挖掘數(shù)據(jù)中隱含的規(guī)律,通過多種數(shù)據(jù)特征提取策略對數(shù)據(jù)進行處理,并結(jié)合數(shù)據(jù)具有連續(xù)性、時序邏輯性等特點提取數(shù)據(jù)特征并構(gòu)建故障數(shù)據(jù)集,然后利用遺傳算法改進的K-means算法進行高壓輸電線路合閘故障診斷。在此基礎(chǔ)上,通過Hadoop并行式計算框架對算法進行加速,通過并行計算的方式解決算法在高壓輸電線路合閘故障數(shù)據(jù)量較大的情況下收斂速度慢的問題。
高壓輸電線路合閘狀態(tài)數(shù)據(jù)通過故障錄波器實時監(jiān)測故障前后時刻的電力負荷狀態(tài),采集該信息并以時間序列的形式存儲在數(shù)據(jù)庫中,以時序波形信號存在的電力數(shù)據(jù)中蘊含了大量有價值的信息[14],但是通常都無法直接利用機器學(xué)習(xí)的方法對其進行分析,而且故障錄波器采集到的數(shù)據(jù)通常存在各種噪聲,若不進行特征提取直接通過機器學(xué)習(xí)算法進行數(shù)據(jù)挖掘,得到的結(jié)果往往也不盡人意,因此需要對波形信號進行特征工程和預(yù)處理操作,具體流程如圖1所示。
圖1 特征工程流程示意圖
真實工況下的電力信號由于周圍環(huán)境的影響在采集的過程中可能會攜帶大量噪聲,這對于后續(xù)信號特征提取會有極大的負面作用。因此對信號進行噪聲濾波處理是必要的,通過濾波能夠?qū)⒂杏眯盘柵c噪聲分離提高信號的信噪比,并提升分析精度。筆者通過使用算術(shù)平均濾波法對原始信號進行濾波處理,濾波效果如圖2所示。
圖2 竄入波形濾波對比示意圖
根據(jù)故障類型的不同可以將數(shù)據(jù)分為兩個大類,分別為兩段式波形和三段式波形。為了使特征提取過程中得到的特征屬性更能反映故障發(fā)生時刻前后的波形變化,設(shè)計了一種分段信息提取方案,將每一條樣本數(shù)據(jù)劃分為5段,分別是波形起始階段、故障發(fā)生時刻前、故障發(fā)生時刻、故障時刻后與波形結(jié)束階段。第一段長度為2周期;第二段長度為2周期;第四段長度為2周期;第五段長度為2周期;第三段為不包含以上4段的所有周期內(nèi)的數(shù)據(jù),周期長度依據(jù)數(shù)據(jù)采樣率而定,如圖3所示。
圖3 波形分段示意圖
由于每種類型的故障在某個時間段的波形特點都與其他類型不同,因此圖3所示的分段提取特征方式能夠有效地將各類合閘故障區(qū)分開。
時域分析是對以時間序列表示的信號進行信號提取、波形特征計算的信號處理方法,常用的時域故障特征參數(shù)有均值、方差、波形指標等。頻域分析法是研究控制系統(tǒng)的常用方法,頻率特性表示不同函數(shù)對于系統(tǒng)輸入輸出的影響程度。時頻域特征提取過程獲取的特征值包含各類故障數(shù)據(jù)的特點,為故障診斷提供了有效信息,同時也為數(shù)據(jù)樣本集的構(gòu)建提供了數(shù)據(jù)支撐。圖4為時頻域轉(zhuǎn)換對比圖。
圖4 時頻域轉(zhuǎn)換對比圖
傳統(tǒng)的K-means算法是無監(jiān)督的聚類算法,算法原理是基于數(shù)據(jù)樣本集,按照樣本之間的距離將數(shù)據(jù)集劃分為不同的簇,劃分的原則是讓簇內(nèi)的點緊密靠近,簇與簇之間則最大程度分散。假設(shè)簇劃分為(c1,c2,…,ck),則算法的目標是最小化平方誤差E,其計算公式為:
(1)
式中:xi為第i個樣本;μi為ci的質(zhì)心;k為聚類數(shù)。
(2)
K-means算法在執(zhí)行前需要確定k,該值的變動對算法最終結(jié)果影響較大。通常使用該算法進行數(shù)據(jù)分析時,k值都是依靠研究人員對數(shù)據(jù)的經(jīng)驗或者交叉驗證方法來確定。在確定k之后,還需要選擇k個初始聚類質(zhì)心,若聚類質(zhì)心選擇不當(dāng)也會對結(jié)果產(chǎn)生較大影響。這種隨機取值方式會造成極大的誤差,因此,筆者利用遺傳算法的自動尋優(yōu)特性對K-means算法進行優(yōu)化。
遺傳算法(genetic algorithm,GA)求解問題時,問題的每一個可能解都會被編碼為一條“染色體”,也可以稱為個體,若干個體構(gòu)成群體。算法初始階段,會隨機產(chǎn)生一些初始解,計算每一個個體的適應(yīng)度值,該值是算法迭代的關(guān)鍵。筆者采用的遺傳算法步驟如下:
(1)編碼方式。染色體的基因編碼用初始聚類質(zhì)心在數(shù)據(jù)集中的編號表示,每個染色體代表一個可行解,染色體長度為聚類數(shù)量,例如染色體{2,4,9,12,15,20,70,90,130}表示編號為2、編號為4、編號為9、編號為12、編號為15、編號為20、編號為70、編號為90以及編號為130的樣本被選定為中心。
(2)適應(yīng)度函數(shù)。由于本文采用遺傳算法是對K-means做優(yōu)化改進,而K-means算法的最優(yōu)結(jié)果具有相同類別的數(shù)據(jù)緊密,不同類別的數(shù)據(jù)松散的特點,因此設(shè)計了如下適應(yīng)度函數(shù):
(3)
(3)選擇算子。采用輪盤賭的方式對個體的適應(yīng)度函數(shù)值度量的優(yōu)劣性進行判斷,該個體在下一代中是否該淘汰。適應(yīng)度較大的個體存活幾率較大,適應(yīng)度較小的個體在迭代結(jié)束后被淘汰的機率較大。選擇概率的計算公式為:
(4)
(5)變異算子。通過變異概率改變個體基因,從而形成新個體。
基于上述步驟,筆者設(shè)計的基于遺傳算法的初始聚類質(zhì)心尋優(yōu)主要流程如圖5所示。
圖5 基于遺傳算法的初始聚類質(zhì)心尋優(yōu)流程圖
基于遺傳算法的初始聚類質(zhì)心尋優(yōu)步驟如下:
(1)確定算法初始值,主要包括種群內(nèi)個體數(shù)量p,一般取20~100,最大遺傳迭代次數(shù)N,一般取100~500,交叉概率pc,一般取0.4~0.99,變異概率pm,一般取0.001~0.1以及最優(yōu)解的適應(yīng)度閾值θ;
(2)初始化種群,首先在樣本集中隨機選取9個樣本作為初始染色體的等位基因編碼值,重復(fù)該操作p次,生成初始種群;
(3)對種群中的每一個個體進行K-means聚類,并根據(jù)適應(yīng)度函數(shù)評價聚類結(jié)果適應(yīng)度;
(4)判斷結(jié)果是否滿足最大迭代次數(shù)或最優(yōu)解的適應(yīng)度函數(shù)值是否超過閾值θ,若不滿足則進行選擇操作、交叉操作、變異操作、產(chǎn)生新種群,并重復(fù)執(zhí)行步驟(3);若滿足則輸出最優(yōu)結(jié)果。
通過Hadoop平臺對算法進行加速處理,需要算法與MapReduce并行框架相結(jié)合。筆者設(shè)計的GA-K-means聚類算法本質(zhì)是一個兩段式求解問題,首先通過遺傳算法自動獲取到最優(yōu)的初始聚類質(zhì)心,然后通過該質(zhì)心進行正常的K-means聚類。因此通過Hadoop平臺對遺傳算法和K-means算法進行加速優(yōu)化的過程主要分為兩步,首先針對遺傳算法進行并行化設(shè)計,在保證算法運行效率的前提下獲取最優(yōu)的聚類質(zhì)心,在此基礎(chǔ)上針對K-means算法進行并行化設(shè)計,得到最終的高壓輸電線路合閘故障聚類結(jié)果。
在進行遺傳算法并行化設(shè)計的過程中,需要將迭代過程根據(jù)MapReduce框架特點設(shè)計為任務(wù)流的形式。圖6為遺傳算法并行化流程圖。
圖6 遺傳算法并行化流程
遺傳算法的并行化流程如下:
(1)Mapper任務(wù)設(shè)計。設(shè)置Map任務(wù)數(shù)量,讀取全局初始質(zhì)心文件。輸出自定義數(shù)據(jù)格式:Mapper任務(wù)通常以
(2)Reducer任務(wù)設(shè)計。Reducer函數(shù)首先將各個Mapper任務(wù)執(zhí)行完成的結(jié)果拉取到本地節(jié)點中,以Mapper任務(wù)輸出的數(shù)據(jù)格式進行解析并執(zhí)行個體的適應(yīng)度計算。然后根據(jù)函數(shù)終止條件判斷是否輸出最優(yōu)結(jié)果,如果當(dāng)前結(jié)果不滿足終止條件,則對個體進行選擇、變異、交叉操作,產(chǎn)生新種群并將新種群的所有個體信息更新到全局文件中。
由并行化遺傳算法計算得到的最優(yōu)初始聚類質(zhì)心,基于此質(zhì)心對所有的高壓輸電線路合閘故障特征數(shù)據(jù)進行并行化K-means聚類。圖7為并行化K-means算法流程圖。
圖7 K-means算法并行化流程圖
針對K-means算法的并行化設(shè)計主要分為Mapper部分和Reducer部分,在提交任務(wù)之前首先初始化算法運行參數(shù),包括最大迭代次數(shù)N,誤差閾值σ。
(1)Mapper任務(wù)設(shè)計。每個Mapper任務(wù)會讀取不同的數(shù)據(jù)切片以及全局初始聚類質(zhì)心,針對讀取到的每一個數(shù)據(jù)樣本進行一次距離計算并劃分到距離最近的樣本點所屬類別中。當(dāng)Mapper任務(wù)內(nèi)的所有數(shù)據(jù)都完成計算之后,將聚類得到的類別與數(shù)據(jù)信息封裝為符合Mapper輸出要求的數(shù)據(jù)格式,如<聚類類別,數(shù)據(jù)信息>的鍵值對形式。
(2)Reducer任務(wù)設(shè)計。在優(yōu)化聚類質(zhì)心的迭代過程中,每一個Reducer任務(wù)會將所有Mapper任務(wù)的輸出拉取到本地節(jié)點中進行計算。通過<聚類類別,數(shù)據(jù)信息>的形式解析每個類別的數(shù)據(jù)量大小并以此為基礎(chǔ)進行誤差計算,判斷當(dāng)前的質(zhì)心是否滿足了迭代終止條件,如果不滿足條件則更新質(zhì)心并將新的聚類質(zhì)心結(jié)果寫入到全局文件,然后開始下一輪迭代任務(wù);如果滿足迭代條件,則終止迭代任務(wù),直接執(zhí)行最終的聚類任務(wù)。
實驗主要是對比分析基于K-means算法的故障診斷方法以及筆者提出的GA-K-means算法,然后分析優(yōu)化改進后的并行化算法相較于串行算法的加速性能。筆者使用的實驗數(shù)據(jù)來自于各地高壓輸電線路合閘實時數(shù)據(jù),一共有9種故障類型,數(shù)據(jù)樣本如表1所示。
表1 高壓輸電線路合閘故障數(shù)據(jù)樣本
為了對所提出的基于K-means的高壓輸電線路合閘故障的有效性進行驗證,筆者在硬件環(huán)境為Inter(R)Core(TM)i5-8300H CPU@2.30GHz, 16 GB 內(nèi)存,軟件環(huán)境為Python 3.6 的機器上進行實驗。本次實驗分為3個部分,分別是基于K-means算法的高壓輸電線路合閘故障分類實驗、文獻[15]設(shè)計的DGK-K-means算法以及筆者設(shè)計的GA-K-means分類算法。
實驗一使用傳統(tǒng)的K-means算法對上述數(shù)據(jù)集中的訓(xùn)練集進行聚類,初始參數(shù)設(shè)置:最大迭代次數(shù)Maxgen=200,最小誤差σ=0.01;
實驗二使用DGK-K-means算法對訓(xùn)練集進行聚類,該算法利用高斯核密度確定初始聚類質(zhì)心。初始參數(shù)設(shè)置:平均類內(nèi)最大相似度AMS為20,終止條件為AMS≤4;
實驗三使用GA-K-means算法進行聚類,遺傳算法初始參數(shù)設(shè)置為:最大迭代次數(shù)N為200,種群內(nèi)個體數(shù)量p為30,交叉概率pc為0.7,變異概率pm為0.08;K-means算法初始參數(shù)設(shè)置為:最大迭代次數(shù)Maxgen為200,最小誤差σ為0.01。
每個實驗得到最終的算法模型后在相同的測試集上進行準確率測試,每組實驗分別重復(fù)運算3次,然后取3次的準確率均值比較3個算法的性能,測試結(jié)果如表2所示。
表2 試驗結(jié)果對比
從表2可知,傳統(tǒng)的K-means算法由于隨機選取初始聚類質(zhì)心導(dǎo)致分類準確率較低,而DGK-K-means算法與GA-K-means算法選取了較優(yōu)的聚類質(zhì)心,因此極大提高了準確率。同時由于初始聚類質(zhì)心的選取比傳統(tǒng)算法更合理,因此K-means迭代次數(shù)也隨之減少。然而DGK-K-means算法和GA-K-means算法對于最優(yōu)初始聚類質(zhì)心的選取依賴額外的優(yōu)化算法,且優(yōu)化算法的計算量較大,平均運行時間更長。相比于傳統(tǒng)K-means算法,GA-K-means保證了準確率和穩(wěn)定性,且與DGK-K-means相比,通過遺傳算法獲取的初始聚類質(zhì)心效果更優(yōu),能夠獲取更高的準確率。
為了客觀評價上述3個算法的聚類效果,筆者采用輪廓系數(shù)、CH(calinski-harabaz)指標以及DB(davies-bouldin)指數(shù)作為聚類質(zhì)量評價標準,3種指標都代表聚類結(jié)果簇的凝聚度,其中輪廓系數(shù)越接近1,表示聚類效果越好;CH指標越大,表示聚類效果越好;DB指數(shù)越小,表示聚類效果越好。聚類結(jié)果評價如表3所示。
表3 聚類結(jié)果評價
從表3可知,GA-K-means算法的聚類效果要優(yōu)于K-means算法和DGK-K-means算法。
并行化加速實驗的軟件環(huán)境為Hadoop平臺,Hadoop集群中配置5臺機器,其中一臺為管理節(jié)點,4臺為工作節(jié)點,所有節(jié)點都為騰訊云服務(wù)器,具體配置如表4所示。
表4 Hadoop集群配置表
并行式GA-K-means算法準確度測試仍然采用和串行算法一致的方法,每組試驗運算3次,取3次的準確率均值作為衡量的標準,具體結(jié)果如表5所示。
表5 并行算法準確率測試
算法并行化對結(jié)果準確率并無影響,并行式GA-K-means算法在對數(shù)據(jù)進行加速的情況下,仍然能保證穩(wěn)定的準確率。圖8為并行化GA-K-means算法的集群加速比測試結(jié)果示意圖。算法具體運行時間如表6所示。
圖8 節(jié)點加速比測試結(jié)果
表6 并行算法運行時間
隨著Hadoop平臺節(jié)點數(shù)的不斷增加,算法的數(shù)據(jù)處理效率也不斷上升,但是算法的加速增長率卻逐漸下降,這是因為節(jié)點增加導(dǎo)致計算資源增加,Mapper任務(wù)與Reducer任務(wù)之間的通信復(fù)雜度升高,并且數(shù)據(jù)切片更加細化,加速效果逐漸減弱,因此算法性能增長速率逐漸下降。
筆者基于高壓輸電線路合閘故障數(shù)據(jù)特點以及K-means算法對高壓輸電線路合閘故障展開研究。針對K-means算法的缺點進行改進,提出了基于遺傳算法的K-means聚類算法,解決了初始聚類質(zhì)心不穩(wěn)定的問題,然后針對算法迭代次數(shù)過多、運行速度慢會影響實際工況數(shù)據(jù)處理效率問題,設(shè)計了兩段式的并行化優(yōu)化算法,提升運行效率。通過分析實驗結(jié)果可知,所設(shè)計的并行式GA-K-means算法不僅彌補了傳統(tǒng)K-means算法的不足,并且在保證算法運行效率的基礎(chǔ)上,還能夠?qū)⒎诸悳蚀_率穩(wěn)定在91%。