高 鵬 房 俊 韓燕波 王嘉怡
(1.北方工業大學大規模流數據集成與分析技術北京市重點實驗室 北京 100144)
(2.北方工業大學數據工程研究院 北京 100144)
電能質量的合格與否是電力系統能否正常運行的一個重要標志,電網公司建設了電能質量監測系統實現對電網電能質量數據的持續監測和收集。如何基于海量電能質量監測數據進行分析和預測,提前發現問題,并反饋到運檢部門,是當前電網電能質量問題的研究熱點。
電氣化鐵路是影響電網電能質量的主要干擾源之一。電氣化鐵路負荷具有非線性、波動性以及不對稱性的特點,其產生的諧波電流經過牽引變壓器注入電力系統,電壓波形發生畸變,造成電網三相電壓不平衡,出現諧波和負序電流超標等電能質量問題。快速準確預測電鐵電能質量對于保障電網穩定運行具有重要意義。
在電鐵電能質量預測方面,已經有秦庭浩等學者將Monte Carlo方法應用于新建牽引站影響分析,即通過已有牽引站負荷電流數據進行新建牽引站負荷電流數據的預測,從而得到新建牽引站對電力系統可能產生的影響。本文將運用時間序列分析方法探究已有電氣化鐵路對公用電網電能指標數據所造成的影響。
用于采集數據的監測點掛載在電氣化鐵路沿線的牽引站上,同一個牽引站下會掛載兩個監測點,分為主供監測點和備用監測點,數據會由主供監測點采集,所以,可以形象的說主供監測點處于“激活”的狀態,備用監測點處于“沉寂”的狀態,所以,要對電氣化鐵路進行趨勢預測,首先要區分主供/備用監測點,在此基礎上預測主供監測點的電能質量趨勢。
針對上述分析,本文提出電氣化鐵路電能質量趨勢的漸進式預測方法,第一步,基于Kmeans聚類算法,根據有功功率判斷某一天牽引站下的主供與備用監測點;第二步,得到主供監測點各指標數據,通過時間序列分析方法ARIMA 分析主要指標(諧波電壓、諧波電流、負序電壓、負序電流)的趨勢。
目前,對于電能質量分析預測領域國內已有許多相關研究。在電氣化鐵路電能質量方面,文獻[1]對電氣化鐵路的接線類型、運行原理及電能質量特性進行了分析,指出諧波和負序是電氣化鐵路負荷的主要電能質量特性,會使電網電壓波形發生畸變并且造成電網三相電壓不平衡,從而影響電網電能質量的穩定。
在電能質量大數據方面,文獻[2]提出一種基于分布式文件系統的海量電能質量監測數據管理方法,該方案將不同電能質量指標的歷史監測數據分別壓縮后存儲在文件中,利用現有監測子站以及相關系統的分布式異構服務器作為文件服務器以存儲數據文件。這種方案容錯性和伸縮性較差,成本較高。文獻[3]提出一種電能質量大數據存儲分析原型系統,系統基于開源大數據處理技術Hadoop 和HBase 構建為支持高效存儲和分析海量數據的云平臺,并設計基于MapReduce并行框架的電能質量數據統計方法。但是MapReduce 作為一種批處理的大數據處理框架,通過map 和reduce 操作在磁盤中處理數據,這就帶來了速度較慢且不適合進行迭代式運算的問題,相比之下,Spark在內存中處理數據,更適合進行迭代式的機器學習算法。
在電能質量預測方面,文獻[6]針對電氣化鐵路牽引負荷具有的非線性、單相獨立性和隨機波動性的特點,提出一種基于MonteCarlo 抽樣的電鐵電能質量預測方法。該文主要關注點為利用已有牽引變電所實際數據來預測分析新建電氣化鐵路對電網電能質量的影響,將目光放在新建電鐵資料匱乏的問題上,沒有考慮電能質量數據的時間關聯性。文獻[10]提出了適合于配電網的基于線性回歸模型、隨機時間序列模型和灰色模型的優選組合預測模型,預測電能質量的未來狀況。其中的隨機事件序列模型考慮了電能質量數據在時間上的關聯性,反映了電能質量近期變化的連續性。文獻[12]提出了一種對電能質量穩態指標的預測方法,利用了ARIMA 時間序列算法以及神經網絡預測模型。
在時間序列分析方面,文獻[13]構建了基于Hadoop 的氣象數據挖掘平臺,并在該平臺上設計實現了基于ARIMA 算法的氣象預測系統,該平臺的預測誤差總體不超過25%。
電鐵牽引站監測點上安裝有指標傳感器,可以采集主要指標的數據,但是在真實環境中,由于氣候、環境以及設備狀態等因素,導致數據的采集會存在一些問題,例如記錄的數據丟失、數據時間點順序錯誤、數據精度產生偏差等。因此,在對數據進行分析之前,需要對其進行預處理。
對于數據缺失的問題,一般常用的做法如下。
1)均值替換法:這種方法需要根據變量是數值型或非數值型分開處理。本文的電能質量數據為數值型,取其他所有數據的平均值來填充該缺失的變量值。假設數據序列為{x1,x2,x3,…,xn},則其均值為

2)回歸替換法:這種方法首先需要選擇若干個預測缺失值的自變量,然后建立回歸方程估計缺失值,即用缺失數據的條件期望值對缺失值進行替換。
3)多重替代法:這種方法并不是用單一值來替換缺失值,而是產生缺失值的一個隨機樣本多次替換缺失值,然后用標準的統計分析過程對多次替換后的若干個數據集進行分析,經過綜合后得到總體參數的估計值。
針對電能質量數據的時間序列性特點,以及考慮到方法的便捷性,本文對缺失的數據以及其他異常數據采用均值替換法進行填補,若只有少量個別的數據出現問題,則利用其相鄰數據平均值進行填補,如果是一段時間內的數據都出現了問題,則利用同期的歷史數據平均值進行填補。
對于電能質量數據,每個監測點及每種指標都有其不同的值范圍,使用時將需進行校驗,并對不符合條件的數據進行更正,處理方法與缺失數據相同。
基于上述描述,為了監控電氣化鐵路對于電網電能質量的影響,本文提出一種基于時間序列分析的電氣化鐵路指標趨勢預測方法,見圖1。

圖1 電能質量趨勢分析流程圖
如圖1所示,本文的方法主要分為以下步驟:
步驟1:對原始電能質量數據提取需要的指標數據,并進行預處理;
步驟2:計算主供監測點,使用KMeans 聚類算法對有功功率數據進行聚類,聚類中心數k 設置為2,并求出劃分主供備用監測點的閾值;
步驟3:時間序列預測分析,使用基于ARIMA算法的方法構建模型,并對電能質量主要指標數據進行預測;
步驟4:得到預測模型的誤差率,量化模型的準確率,從而可迭代使用此模型。
其中步驟2 和步驟3 是關鍵的步驟,下面分別對這兩個步驟的原理和實現進行詳盡描述。
如圖2 為某電鐵牽引站下的Ⅰ線,Ⅱ線監測點于2017 年2 月1 日的有功功率數據,數據按照分鐘級采集,其中,Ⅰ線的監測點id 為0601200431,Ⅱ線的監測點id為0601200441。
由圖可得,Ⅰ線的數據變化幅度及數值大小遠遠超過Ⅱ線,即有不同的均值。故本文取某牽引站下Ⅰ線,Ⅱ線監測點2 月所有的數據進行KMeans聚類得到其各自的聚類中心ρ1及ρ2,而后得到其均值,即為主供備用的閾值。得到閾值后,將兩個監測點每天的數據分別與其進行比較,若某監測點某一時間超過該閾值,即可認為該監測點在此天為主供監測點。

圖2 有功功率數據圖
KMeans 聚類算法是最常用的劃分聚類算法,它把給定的數據劃分為K 個聚類,每個聚類用聚類中心來代替。相同聚類中數據的某些特性極為相似,相反,不同聚類中數據的某些特性會由明顯的不同。聚類中心以及分配給它的數據點就代表一個新的聚類,一旦全部數據點都被分配了,每個聚類的聚類中心會根據聚類中現有的數據點被重新計算,這個過程不斷重復直到滿足某個終止條件為止。下面是算法的基本步驟:
步驟1:從數據中隨機抽取k 個點作為初始聚類的中心,由這個中心代表各個聚類;
步驟2:計算數據中所有的點到這k 個點的距離,將點歸到距離其最近的聚類里,一般可以使用歐式距離和馬式距離。歐式距離的優點是比較簡單,且能體現算法的性能,缺點是會將樣本的不同屬性之間的差別等同看待。本文實驗中歐式距離即可滿足要求,距離公式為
步驟3:調整聚類中心,即將聚類的中心移動到聚類的幾何中心(即平均值)處,這就是Kmeans中mean 的含義;
步驟4:重復步驟2 及步驟3,直到聚類的中心不再移動,此時算法收斂。
時間序列分析法是通過編制和分析時間序列,根據時間序列所反映出來的發展過程、方向和趨勢,進行類推或延伸,借以預測下一段時間可能到達的水平。若時間序列已為平穩狀態,可用自回歸滑動平均模型(ARMA)及其特殊情況的自回歸模型(AR)、滑動平均模型來進行擬合(MA)。但是在實際的電能質量數據中,時間序列往往都是非平穩的,這就需要使用ARIMA 模型,與ARMA 模型相比加入了差分的過程。ARIMA 模型全稱為差分自回歸移動平均模型,模型記為ARIMA(p,d,q),其表示式如下:式中,Φ(L)為p 階自回歸算子,Θ(L)為q 階移動平均算子,θ0為漂移項,是對yt進行d次差分。

ARIMA 模型的建模思想可描述為:對一列原始數據,首先應當先判斷該序列是否為平穩序列,若不是,則用平滑法或差分法對原始數據進行平文化,再對序列進行建模。模型建立的主要步驟為7步,如圖3 所示

圖3 ARIMA 模型建模步驟
步驟1:數據預處理,將缺失或者異常數據以兩側值均值替代;
步驟2:判斷序列是否有趨勢,若有,則進行步驟3,若無,則進行步驟4;
步驟3:平穩化,對不平穩的序列進行差分消除趨勢,使其平穩化。
步驟4:模式識別,判斷使用的模型種類,待選模型有AR(p)、ARMA(p,q)、MA(q)三種模型,并確定模型的階次,即初步確定p、q 或者p 和q 的值。判斷的依據是已平穩時間序列的樣本平均值、自相關系數以及偏相關系數;
步驟5:參數估計,運用AIC 準則確定模型參數;
步驟6:預測及評價,評價采用百分比絕對誤差(MAPE)方法;
步驟7:將預測結構圖形化以展示效果。
這里取2017 年2 月2 日及2017 年2 月3 日某牽引站Ⅰ線監測點的諧波電流指標數據作圖,如圖4、圖5。

圖4 2017-02-02 諧波電流

圖5 2017-02-03 諧波電流
由兩圖對比可見,數據變化規律比較一致,在凌晨0 到6 時數值和波動較小,6 時以后開始出現較大波動,且在下午12 到22 時達到高峰,隨后波動逐漸降低,且該序列不是平穩時間序列,故可以使用ARIMA 模型進行建模。
Spark 大數據處理框架對KMeans 算法進行了并行化,其中用到最核心的概念是RDD(Resilient Distributed Datasets),它表示被分區、不可變且能夠被并行操作的數據集合。RDD 中的數據是分區存儲的,它將邏輯上一個整體的數據劃分為不同的分區(partition),這些分區分布在不同的節點。運用該算法的代碼如下所示:
JavaRDD<String>data=sc.textFile(filePath);
//然后需要將其轉為向量形式:
JavaRDD<Vector>parseData = data.map(new Function<String,Vector>(){
Public Vector cal(lString s){
String[]sarray=s.spli(t“”);
double[]values = new double[sarray.length];for(int i=0;i<sarray.length;i++){
values[i]= Double.parseDouble(srray[i]);if(values[i]<0){
values[i]=-values[i];
}
}
return Vectors.dense(values);
}
});
//然后對其進行聚類,如下代碼所示:
int numClusters = 2;//設置聚類中心數,這里為2 int numIterations=20;//迭代20 次
int runs=10;//運行10 次,選出最優解
final KMeansModel clusters = KMeans.train(parseData.rdd(),numClusters,numIterati ons,runs)//進行KMeans 聚類
//得到聚類中心
for(Vector center:clusters.clusterCenters()){System.out.println(center)
}
為了驗證上述電能質量趨勢預測方法的有效性,本文基于真實監測數據并對照日志記錄進行實驗,驗證方法的可行性。
集群由10 臺配置相同的服務器組成,每臺服務器CPU 為雙核Inter i5,主頻3.10GHz,32.00GB內存。集群使用的Hadoop 版本為cloudera CDH 5.7.0,Spark 版本為1.6.0,機器名為bigdata1~bigdata10,其中bigdata3 作為主節點,其余為從節點。
實驗中采用的數據為某電鐵某牽引站下Ⅰ線,Ⅱ線監測點2017 年2 月的真實數據,采集間隔為每分鐘一次。
實驗以某電鐵某牽引站下Ⅰ線,Ⅱ線監測點2017-02-01 至2017-02-20 的有功功率歷史數據作為訓練樣本集,訓練KMeans 算法得到該牽引站的主供備用監測點閾值。采用2017-02-21 至2017-02-28 的有功功率歷史數據作為驗證集,驗證該閾值的準確率。因為數據量較大,傳統單機版KMeans 算法的運行效率滿足不了要求,故采用Spark MLlib 機器學習包中的KMeans 算法。
方法分為以下幾個步驟:
步驟1:從HBase 數據庫中將訓練集數據寫入txt 文件,將其讀入Spark 并轉為Vector 向量數據類型;
步驟2:參數選擇,確定要劃分的簇數k 為2,maxInterations 表示方法單次運行的最大迭代次數,runs 表示算法被運行的次數,Kmeans 算法不保證能返回全局最優的聚類結果,所以在目標數據集上多次跑Kmeans 算法,有助于返回最佳聚類結果。通過多次實驗確定迭代為20 次,且運行10 次時結果和效率都能滿足要求;
步驟3:訓練模型,求出兩個聚類中心,并求其均值作為閾值;
步驟4:將兩監測點驗證集數據分別與該閾值進行比較,若某監測點一天某一時間點的數據超出該閾值,則該監測點為主供監測點。
最終經訓練集訓練得到的閾值t=1654.003,驗證集實驗結果如下表1 所示,其中水鐵Ⅰ線id 為0601200431,水鐵Ⅱ線id 為0601200441。

表1 主供監測點驗證集實驗結果
其中“實際主供”是根據當天實際日志得出。從表中可看出,在驗證集中,通過計算得到的主供監測點能夠很好地與實際主供監測點對應,準確率達到100%。故本文提出的方法能有效解決確定電氣化鐵路牽引站主供監測點的目的。
運用所述時間序列趨勢分析方法,根據ARIMA 模型的建模步驟及其流程圖,本文取2017 年2 月1 日某電鐵某牽引站主供監測點Ⅰ線的諧波電流指標進行時間序列的建模分析,可視化結果如圖6 所示。

圖6 2017-02-01Ⅰ線主供監測點諧波電流
首先判斷模型是否平穩,時間序列模型建立在隨機序列平穩性假設之上。由圖6 可以看出,該折線圖向右上方傾斜、說明此時間序列存在增長趨勢,且存在異方差性,異方差是相對于同方差假設而言的,即是指方差隨著時間有變化,而不再是一個常數。平穩性可以通過ADF(單位根檢驗)來判斷[15],檢驗結果如表2 所示。

表2 原始數據集ADF 檢驗
ADF=-2.472211 均大于臨界值1%,5%和10%,所以該序列為非平穩序列,需要進行一階差分以消除趨勢。一階差分的基本原理可用以下公式表明:

經過一階差分后的序列如圖7 所示。

圖7 一階差分后的原始序列
再對一階差分后的數據進行ADF 檢驗,如表3 所示。

表3 一階差分數據集ADF 檢驗
ADF=-8.525411 均小于臨界值1%,5%和10%,所以經過一階差分的序列為平穩序列,差分消除了原序列的趨勢。
對原始序列平穩化后,通過計算該序列的自相關系數與偏自相關系數初步確定p 和q 的值。自相關系數表示時間序列滯后k 個時間段間的兩個項間的相關程度,取值越接近1,相關程度越高。偏自相關系數是在消除其他變量影響的條件下,計算某兩變量之間的相關系數。現計算該序列的自相關系數與偏自相關系數,如下圖8 所示。

圖8 一階差分序列的AC 與PAC 系數
由圖中我們可以看到,自相關系數AC 與偏自相關系數PAC都是拖尾的,也就是說,AC和PAC表現為向零衰減的趨勢,但永遠不會等于零,且自相關系數AC 在1-2 階都是顯著的,偏自相關系數PAC 在1-3 階都很顯著,所以我們初步建立的模型為ARIMA(3,1,2)。
得到適當的p 和q 值后,根據AIC 準則,即最小信息準則確定模型的參數[16]。對不同的p 和q計算AIC 值,一般而言,選擇其中最小的p 和q 值作為模型的最終參數。本文得到的p、q 值如表4所示。

表4 不同p、q 的AIC 值
由表4 所示,當p=1,q=1 時AIC 值最小,故本文確定模型為ARIMA(1,1,1)為預測模型。根據上述得到的模型進行預測,預測模型見圖9。

圖9 預測結果
其中名為REAL 的深色折線為真實數據,名為FORECAST 的淺色折線為預測數據。

本文采用百分比絕對誤差(MAPE)來衡量預測準確率,計算公式為其中xt為真實值,x′t為預測值。
如圖所示,預測數據能較好地擬合真實數據,這里通過MAPE 方法誤差率為27.29%,能夠滿足工程要求。
本文針對電氣化鐵路對電網電能質量的影響問題,提出了針對主供監測點的電能質量趨勢分析方法,方法主要分為兩個部分,第一是利用監測點的有功功率指標進行主供監測點的識別,采用的是KMeans 聚類的方法,第二是利用時間序列分析模型ARIMA,對先前得到的主供監測點的多個主要指標進行建模,對其進行預測。最后本文利用實際監測點的監測數據進行了實驗驗證,結果表明該方法的誤差率在合理范圍之內,可以在實際的工程中進行應用。接下來的工作將針對如何提高準確率及效率進行更進一步的研究與探索,在第一階段可以對KMeans 初始化聚類中心的選擇進行優化,第二階段可以選用不同的方法(比如BP 神經網絡)進行預測并對比其效果。