閆亞男,韓長霖,陳小松,郭 潔,李亦凡
(1.北京中水科水電科技開發有限公司,北京 100038;2.中國水利水電科學研究院,北京 100038)
隨著我國水電建設以及裝備制造水平的提高,大型水電機組的運維工作逐漸向智能智慧運維方式轉變[1-2]。水電設備運行故障智能診斷和預警是運維工作重點之一。在水電設備運行狀態參數采集,遙測量是水電廠安全運行維護的重點研究類型之一[3]。遙測是指通過傳感技術實現目標參數的遠距離測量,如推力軸瓦溫度、振動擺度、油位等,采集的數據屬于連續型時間序列數據[4-5]。然而,數據采集傳感器損壞、電磁信號干擾、運行或通訊設備故障等均會產生部分沖突、異常或缺失的數據,嚴重影響數據整體質量,給后續模型準確度造成極為不利的影響[6]。這些“不合格”數據只有經過合理清洗后,數據質量滿足分析模型的構建,才能發揮出數據真正價值,輔助后續決策與分析[7]。
針對水電廠設備運行數據的清洗,主要歸納為異常值識別、缺失重構和隨機擾動濾波。異常數據主要指由于外界干擾、測量儀器自身問題或數據傳輸問題等造成的違反規則的值,或是超出指定集合范圍的值[8-9]。用于識別異常值的方法分為數學方法、組合模型法以及人工智能法等[6]。水電工程上常用人為經驗、狀態估計、描述統計等傳統手段對異常數據進行識別[9],如均值方差法、3σ原則法、箱型圖等。隨著人工智能技術的成熟,基于密度模式的空間數據聚類(Density-based Spatial Clustering of Applications with Noise,DBSCAN)[10]、K-means聚類、孤立森林等算法逐漸在異常值檢測中使用[6]。目前新能源領域數據清洗研究較多,水電行業較少。如臧鵬等提出了基于K-means的功率特性測試數據清洗方法,成功應用于風電功率曲線模擬流程中數據預處理中,提升了功率曲線模擬的準確性[11];王一妹等人提出的基于多階段遞進識別風電機組異常運行數據清洗方法[12]等。但上述異常值清洗方法均未考慮時間序列在時序上因果相關的特性[13],導致其在水電遙測數據的異常值檢測中存在不足。
缺失數據的主要原因是SCADA(Supervisory Control and Data Acquisition)采集過程中錄入系統時波動、數據傳輸丟失或手工遺漏造成的數據部分缺失。對于缺失值的處理,除了直接刪除缺失嚴重的特征外,還可以選擇合適的填充方法。常見方法包括填充默認值、均值、眾數等[14]。隨著數據挖掘算法的發展,把缺失值作為新的標簽通過模型來預測的方式也是提高數據質量的可靠方法,包括邏輯回歸、時間序列預測[15]、隨機森林預測[16]等。如Little等[17]用貝葉斯邏輯回歸法進行多重插補;李建強等[18]針對電站數據庫存在數據缺失的問題,提出了支持向量回歸與遺傳算法優化的模糊聚類填補算法,成功用于火電站機組運行數據的填補。上述方法很少考慮到兩個相鄰數據間的時序信息。
數據波動不穩定是指在高頻地數據采集方式及傳感器自身隨機誤差的影響下時間序列數據常具有小幅度波動性,數據看起來幾乎是雜亂無章的[14]。由隨機擾動性產生的數據是正常的,但影響變量的真值,不利于趨勢分析,需要對其進行濾波降低隨機擾動性。常用濾波方法有均值平滑、回歸法、小波去噪等[14]。近年來,卡爾曼濾波法[19],通過提供高效、可計算的方法來估計過程狀態,其不僅可以計算出信號的過去和當前狀態,而且可以預測信號下一步的狀態,應用廣泛且功能強大。如,程麗等[20]引入了卡爾曼濾波法去除由于算法特性產生的噪聲,數據優化后,曲線更為光滑且與實際沖擊時程曲線的擬合度更高;譚宇航等[21]將卡爾曼濾波應用到水輪機調節系統中,利用其的自適應性和預測精度高的特點,大幅提高了水輪機發電機組在干擾環境下頻率測量的準確性。
綜上所述,現階段亟需水電遙測量的完整數據清洗框架研究。本文提出融合時間序列特性的改進水電遙測數據清洗框架,旨在達到精確清洗數據的目的,使數據能更加清晰地反應設備運行趨勢,更加準確的預測未來,并且為水電智慧化建設高級應用發展提供更有力的支持。
遙測量時間序列有著嚴格的時間先后順序,在此基礎上建模時,獲得的樣本不在具有從總體中隨機抽取的性質。在應用異常檢測算法時,需要結合時間因素對建模過程進行優化。本文考慮到基礎數據的時間特性,優化了距離(相似度)的度量方法,利用DBSCAN[10]算法開展遙測量異常數據識別,并將異常點數據作為缺失值來進行后續處理。
DBSCAN是一種具有噪聲的基于密度的聚類算法[10,22],該算法假定類別可以通過樣本分布的緊密程度決定,同一類別樣本之間是緊密相連的。通過將所有各組緊密相連的樣本劃為各個不同的類別,則得到了最終的所有聚類類別結果,沒有被歸為一類的數據為噪聲點[22]。
歐氏距離[10]是常用的距離計算方法,針對一維數據的聚類,距離計算如式(1)所示,其中xi,xj分別是數據集中的值。
(1)
然而,將上述距離計算方法應用于水電遙測時間序列數據的DBSCAN聚類時,會因未考慮時間順序特性而造成誤差。圖1為多種距離計算方法與DBSCAN相結合的時間序列異常值檢測結果,研究模擬了一段包含異常數據的時間序列,共計100個點,其中正常數據89個,異常數據11個,如圖1a所示。如果利用式(1)距離計算方法,即將樣本統一投影到縱軸上,異常點與正常數據點是距離可達的,應用DBSCAN算法識別不出異常值位置(見圖1b),通過調整參數閾值,得到的結果也較差。

圖1 多種距離計算方法與DBSCAN相結合的時間序列異常值檢測
本文首先嘗試通過時間序列一階差分平穩化的方式,得到相鄰序列元素的變化值,在此基礎上利用DBSCAN檢測異常值,結果如圖1c所示,表明該方法從一定程度上提高了異常值的檢出率,但是對于連續異常值的檢測精度較低,比較適合單一突變類型的異常值檢測。
為了解決上述問題,本文提出了一種簡單易行的策略,即把序號化的時間索引作為新的維度添加到數據中,從而將一維時間序列轉換為兩維數據集。并且為了避免數據值與序號值量綱的差異,對數據值與序號值進行歸一化處理,然后采用歐式距離進行相似度度量。如時間序列TS={(tst,i,tsv,i)|i=1,2,3,…,n},tst,i代表第i個序列元素的時標,tsv,i代表第i個序列元素的值。新的距離計算方法為
(2)
式中,index(tst,i)′代表第i個時序元素tsi的時標先經過序號化再歸一化后的值,ts′v,i代表第i個時序元素tsi的歸一化值。
采用新的距離計算方法,對模擬數據(見圖1a)進行了異常值檢測。結果表明使用本文提出的針對時間序列內部元素的距離計算優化方法準確地檢測出了異常值的位置(見圖1d)。新策略將時間序列順序特性融入距離計算中,不僅解決了應用傳統方法難以識別值域范圍內異常值的問題,而且改善了僅利用時序變化值難以識別連續異常的情況。
通過將一維時間序列切割為多段子序列,組成多段時間序列樣本集,進而將缺失值填充問題轉化為數據預測問題進行解決,開展基于隨機森林與時間序列分析的缺失值填充。
隨機森林是一個由多個隨機決策樹組成Bagging框架的集成算法,其輸出的類別是根據決策樹輸出類別標簽的眾數而定,不僅適用于回歸問題也可以用于分類[16,23]。
基于隨機森林與時間序列分析的缺失值填充的具體流程為:
(1)利用時間序列數據在時序上的因果關聯特性,選用寬度為W的時間窗口對一維時序數據(長度L)進行截取,得到由L/W個子序列組合形成矩陣數據[L/W,W],缺少項設為缺失值。
(2)將矩陣中已知變量數據當作特征,將缺失值的變量作為標簽,其中標簽變量中有數值的數據為訓練集,而缺失部分作為測試集。
(3)通過隨機森林預測算法進行填充缺失值。
(4)將填充缺失值后的矩陣數據,轉換為帶時標的一維時間序列數據。
本文設計了一種融合時間序列特性的水電遙測數據清洗框架,在上述異常值檢測、缺失值填充的基礎上,考慮高頻采樣數據的隨機擾動性,引入卡爾曼濾波技術,進一步提升數據質量,從而構建完整、有效、可信的數據集,為后續趨勢分析等高級應用打下堅實基礎。整體數據清洗流程框架如圖2所示。
研究將從水電監控系統獲取的指定時間段內的遙測點歷史數據作為待清洗數據集。由于期間存在開停機狀況,剔除停機狀態歷史數據后,待清洗數據集并非是時間序列連續的一串數據,而是由若干段時間序列構成。應用上述數據清洗框架(見圖2)對水電機組遙測量數據進行清洗的具體流程如下:

圖2 融合時間序列特性的水電遙測數據清洗框架
(1)針對每段時間序列,利用優化距離計算的DBSCAN方法進行異常值檢測,并將檢測結果作為缺失值待后續處理。
(2)遍歷每個子時間序列,剔除缺失值連續時長超規定的數據段,得到由系列新子時間序列構成的數據集。研究將缺失值連續時間過長的情況,認定為無效數據段,剔除比嘗試數據填充對后續研究更有意義。
(3)開展結合隨機森林預測和時間序列分析方法進行缺失值填補。
(4)經過異常值識別和缺失值補償的水電遙測數據,受高頻地數據采集方式及傳感器自身誤差的影響,還會具有小幅抖動性。為了避免這種數據特性給后續趨勢分析造成負面影響,本文利用卡爾曼濾波技術對數據進行了進一步的清洗。卡爾曼濾波[19,24-25]是一種利用線性系統狀態方程,通過系統輸入輸出觀測數據,對系統狀態進行最優估計的算法。由于觀測數據中包括系統中的噪聲和干擾的影響,所以最優估計也可看作是濾波過程[24]。
以某水電廠1號機組下導油槽油位(壓力式)歷史數據為研究樣本,對本文提出的數據清洗框架展開了適用性研究。選取該測點在2019年11月21日~11月24日內的分鐘級數據作為待清洗數據,共計5 760條數據記錄,如圖3所示。圖4為影響下導油槽油位數據質量的主要因素有異常值(圖3中方框部分)、缺失值(系統默認為0),以及圖5的數據噪聲抖動(圖3橢圓部分)。

圖3 2019年11月21~至11月24日內某水電廠1號機組下導油槽油位數據

圖4 異常值示意

圖5 隨機擾動性示意
在數據清洗過程中,異常值檢測結果如圖6所示(剔除0值)。距離優化的DBSCAN方法較好地將異常值檢測出來。與傳統的閾值法相比,油位位于570~630 mm內的異常值很難檢測出來,而利用優化方法可以根據數據的密度關聯分布特征,準確識別出異常點。

圖6 異常值檢測結果
完成異常值識別后,將異常點合并為缺失值,開展基于隨機森林與時間序列分析的缺失值填充,結果如圖7所示。該方法較好地對缺失值進行了填補,對于發生在工況改變的缺失值,能利用學習出的數據運行規律,依然準確地對其進行填充。針對低頻、高變率的數據,簡單的統計填充,不能獲得準確填充效果,應用本文方法依然可以保持較好的填充精度。

圖7 異常值識別后缺失值填充效果
異常值與缺失值均被準確清洗,數據質量得到了較大提升。但數據的抖動現象很明顯(見圖5),抖動區間達到15 mm,嚴重影響后續數據趨勢分析的準確性。研究進一步應用卡爾曼濾波算法,對數據進行清洗,得到結果如圖8所示。數據的抖動噪聲較好地被濾除,有益于后續構建數據趨勢分析與預測模型,可以提升模型構建的效率。

圖8 本文框架清洗效果
針對水電遙測量數據質量常見問題,融合時間序列特性,本文設計了涵蓋異常值剔除、缺失值填充和噪聲濾波的數據清洗框架。該框架優化了聚類算法在時序數據異常值檢測中的應用不足,并結合隨機森林與時間序列預測的優勢,提升了缺失值填充的精度,同時采用卡爾曼濾波降低了數據的隨機擾動性。通過實測數據驗證了方法的穩定性和有效性,清洗后的數據質量得到了較大程序的提升,為后續水電設備故障診斷與預警構建可靠數據基礎,具有重要的應用及推廣意義。此外,遙信量也是水電設備運行數據類型之一,對其的數據清洗研究將在后續工作中展開。