天天看點

應用MaxCompute實作變壓器局部放電相位分析

應用maxcompute實作變壓器局部放電相位分析

<b>1 </b><b>引言</b>

随着智能電網建設的不斷推進,智能化電力一次裝置和正常電力裝置的線上監測都得到了較大發展并成為趨勢,監測資料日益龐大,電力裝置線上監測系統在資料存儲和處理方面面臨巨大的技術挑戰。

局部放電是高壓裝置的重要監測内容。局部放電相位分析方法是目前成熟且應用廣泛的宏觀特征提取方法。随着傳感器技術的進步,局部放電的檢測方法呈現多樣化,局部放電信号的頻率高且頻帶較寬,這就要求信号采樣率高,可以達到khz甚至mhz(每秒采樣百萬次),加之需要監測的裝置衆多,是以監測資料量呈現海量化,傳統的基于單機的存儲和相位分析已經難以滿足目前海量資料的計算需求,迫切需要大資料處理技術的支援。

筆者在前期的研究中,使用了實驗室自建的hadoop平台,遇到的問題主要包括:1)受資金限制,叢集規模較小,存儲和計算資源有限。2)叢集維護困難;3)服務僅在機關内網可用;4)前期需要購買硬體資金投入高,裝置的使用率又很低。5)并行程式架構限制:hadoop的mapreduce在每一輪操作之後,資料必須存儲到分布式檔案系統上或者hbase,接下去的map任務執行了備援的io操作,導緻性能下降。

公有雲計算平台以按需租用的方式,将使用者從硬體采購、組網、平台搭建、系統軟硬體維護中解脫出來,将存儲資源、計算資源以web service的方式封裝,并對外售賣,使使用者可以專心于建構系統的業務邏輯。筆者嘗試利用阿裡雲maxcompute存儲變壓器局部放點資料,并加速相位分析過程。實驗結果表明,該方法相比于hadoop mapreduce在計算效率上明顯提升,并在資料可靠性、服務可用性以及成本方面具有明顯優勢。

<b>2 </b><b>局部放電資料的maxcompute表存儲</b>

局部放電相位分析将多個工頻周期内監測所得的局部放電參數(放電次數n、視在放電量q或放電幅值,及放電所在相位Φ)折算到一個工頻周期内,計算其統計規律性,擷取放電譜圖,統計放電特征,用于模式識别。

maxcompute以表(table)為基本單元存儲資料,與hadoop的檔案系統(hdfs)以檔案為機關存儲資料有明顯差别,表的模式不能直接套用hdfs檔案的格式,需要重新設計存儲模式。局部放電信号采樣資料(二進制dat檔案)在上傳至maxcompute前,需要轉換成文本檔案格式(.csv檔案),再使用tunnel工具将本地資料上傳至maxcompute表。

如果使用hdfs檔案存儲,可以每行存儲一個工頻周期的采樣資料(本文中,含80萬個采樣點),之後執行mapreduce分析任務時,可以将一行資料作為map函數的輸入。但是maxcompute表的列數和表格單元的資料類型存在限制,列的數量不能超過1024列,表格單元的資料類型目前僅支援6種資料類型(bigint,double,string,boolean,datetime,decimal),是以無法在一行記憶體儲80萬個采樣值。這就需要重新設計表結構。本文中,設計了表mpd,用于存儲原始采樣資料,如圖1所示。mpd采用2級分區,其中第1級分區名名稱是deviceid,表示裝置id。第2級分區是采集時間。

應用MaxCompute實作變壓器局部放電相位分析

圖1 mpd表結構

maxcompute支援分區,這裡以分區鍵作為檢索條件,可以大幅減少資料搜尋範圍,并能快速定位到所需資料,有效提升通路性能,并節省費用。

局部放電資料分析過程中,需要産生中間結果資料,是以又設計了基本參數nqf表和放電譜圖pt表,表模式如下:

表1 nqf表

sampleid

time

phase

max

樣本id

時間

相位

峰值(統計得到)

其中,sampleid表示用于完成一次特征計算的譜圖資料的編号。

表2 pt表

wid

totalq

averageq

nums

窗編号

放電總量

平均放電量

放電次數

峰值

相位分析最終産生的結果是放電波形資料的統計特征,包含:正負半周期譜圖偏斜度sk、陡峭度ku、局部峰點數pe、互相關系數cc等,如表3所示。

表3 統計特征表

skn

skq

kun

kuq

pen

peq

cc

qf

mcc

這些特征的含義在此不做過多解釋,請查閱相關文獻。

<b>3 </b><b>使用mr2完成放電資料的相位分析</b>

mr2是maxcompute的擴充mapreduce模型,可以在reduce後面直接執行下一次的reduce操作,而不需要中間插入一個map操作,這可以有效減少磁盤io。可以支援map後連接配接任意多個reduce操作,比如map-reduce-reduce…。

相位分析過程需要多個mapreduce任務串聯完成,如圖2所示。

應用MaxCompute實作變壓器局部放電相位分析

圖2 相位分析mapreduce任務關系

格式轉換是為了将采樣資料上傳至odps表而做的資料預處理,主要任務是将二進制采樣資料轉換成tunnel能夠使用的文本格式。

子任務1用于提取基本統計參數n-q-φ,需要掃描mpd表指定分區,找到放電過程,并記錄放電相位和幅值。mapper函數對逐條輸入的采樣資料,根據預先設定的縱向門檻值進行資料篩選,并将大于門檻值的采樣點輸出至combiner。combiner是本地(與mapper在相同的節點)執行的彙總,對mapper的輸出結果集合,尋找峰值點,并輸出至reducer進行彙總。combiner有效的分擔了reducer的資料彙總工作,并且減少了reducer所在節點傳輸的資料量,可以有效提升并行計算過程的速度。reducer函數負責彙總由combiner輸出來的極值點,并使用預先設定的橫向門檻值進行極值點的篩選。如果兩個極值點距離“很近”(相位差小于橫向門檻值),則認為是同一次放電。輸出的結果存儲于nqf表。

子任務2接收nqf表的資料作為輸入,計算放電譜圖和統計特征。為了加快計算速度,設計了map-reduce1-reduce2模式的計算過程,使譜圖資料作為中間結果緩存在maxcompute分布式記憶體中,節約了磁盤讀取的開銷。reduce1和reduce2的連接配接使用了maxcompute提供的pipeline完成。子任務2最終的輸出是統計特征表,可以用于後續的模式識别任務,模式識别可以寫程式完成,或者使用阿裡雲機器學習平台去完成。

<b>4 </b><b>實驗分析</b>

在實驗室完成了電暈放電、懸浮放電、氣泡放電和油中放電實驗。局部放電信号采集儀器采用twpd-2f局部放電綜合分析儀,最大采樣頻率為40mhz,采集信号的有效頻帶為40k~300khz。

為驗證所設計的分析算法性能和穩定性,選取了不同大小的資料集,如表4所示。資料集1x表示1倍資料,包含50個檔案(50條局放資料),本文中選用50條局放資料進行1次統計特征的提取。

表4 實驗用資料集

資料集id

記錄數(dat檔案數)(條)

dat(gb)

csv(gb)

maxcompute

table(gb)

table記錄數(萬條)

壓縮比

1x

50

0.305

0.898

0.203

4000

4.421

2x

100

0.61

1.75

0.425

8000

4.118

4x

200

1.22

3.5

0.852

16000

4.108

8x

400

2.44

7

1.523

32000

4.596

16x

800

4.88

14

3.447

64000

4.061

32x

1600

9.76

28

6.394

128000

4.379

64x

3200

19.52

56

12.688

256000

4.414

128x

6400

39.04

112

25.972

512000

4.312

256x

12800

78.08

224

51.952

1024000

4.427

分别在單機環境下、實驗室自建的hadoop平台(6個計算節點)下和maxcompute平台下完成放電資料的相位分析,(分别命名為s-prpd、hadoop-prpd、odps-prpd),測量算法執行的時間、使用的硬體資源(cpu、記憶體)進行性能對比,如圖3、圖4、圖5所示。

應用MaxCompute實作變壓器局部放電相位分析

圖3 相位分析執行任務執行時間

在圖3中,s-prpd算法在單機環境下運作,執行時間随資料量增加急劇增長。隻完成了4x資料集的分析任務(更大資料量耗時太長)。hadoop-prpd算法在自建hadoop平台下執行。受存儲容量和計算性能影響,實驗隻完成了16x資料集的分析任務,算法執行時間緩慢增長。odps-prpd算法運作在maxcompute平台下,完成了256x資料集的分析(還可以更大),運作時間平穩,在資料規模成倍增長情況下,整體運作時間增長很少或不增長,甚至,在分析8x資料集時出現負增長。主要歸因于odps硬體的彈性伸縮,如圖4和圖5所示。

應用MaxCompute實作變壓器局部放電相位分析

圖4 cpu核心數的消耗

應用MaxCompute實作變壓器局部放電相位分析

圖5 記憶體消耗

從圖3和圖4中可以看出,随着資料規模的增長,odps-prpd使用的硬體資源總體呈現線性增長的趨勢。資料規模越大,為其配置設定的硬體資源越多,但也不是嚴格的線性關系。maxcompute為并行任務配置設定的硬體資源有一個複雜的算法實作,目前阿裡雲尚未公開,使用者暫不能控制資源的配置設定。雖然底層細節對使用者透明,但是這種彈性伸縮的性質還是能夠強有力的為大資料分析助力。當資料規模達到51gb(256x)時,使用的cpu核心數達到了1093,記憶體達到了1639gb。這種硬體條件是目前很多數自建資料處理平台難以達到的。

      最後來說一下成本費用。maxcompute采用租用的方式,無需自行購買硬體裝置和軟體,相對自建hadoop或者其他大資料分析平台,前期投入成本極低。maxcompute以項目(project)為機關,對存儲、計算和資料下載下傳三個方面分别計費。資料上傳目前暫不收取費用。存儲價格目前是0.0008元/gb/小時,計算費用是0.3元/gb。計算費用中,目前僅開放了sql的計費,執行mapreduce暫時是免費。是以,本文實驗實際産生的費用隻有存儲費用,做幾天的實驗,隻花了幾元錢。