封焯文, 朱世平, 趙志華, 孫銘仁, 董 密, 宋冬然
(1. 中國能源建設集團湖南省電力設計院有限公司, 湖南 長沙 410007; 2.中南大學自動化學院, 湖南 長沙 410083)
風能利用是國家發展綠色經濟的重要標志,其發展受到世界各國的重視。風電機組容量不斷增大,結構愈加柔性化,依靠人力運維的維護成本也越來越高。基于歷史數據對風機運行狀態進行分析可提高分析效率,節省大量人力物力。例如,基于風功率歷史數據可開展風電機組風速預測和功率曲線建模等工作[1]。然而,受環境變化和機組故障等異常因素影響,風電機組在實際運行過程中經常產生大量的異常功率數據,給后續數據挖掘工作造成干擾。因此,需要對風功率歷史數據中的異常數據進行準確識別和處理,進而獲得有效數據集。
目前,異常值檢測主要有三種基本方法:①基于風機運行機理簡單剔除;②基于突變點特征進行異常檢測,如密度、距離等;③基于概率模型建立邊界,剔除邊界外異常值,如設置閾值或建立風功率曲線等效模型等。文獻[2]提出將Thompson-tau與四分位法相結合建立邊界的清洗方法,該方法清洗時間短,在數據樣本較多下有較好的效果。文獻[3]提出了用于識別異常數據的云分段最優熵算法,通過比較每個數據的熵與閾值來判斷異常數據。異常數據點偏離正常數據集較遠時,導致數據集方差較大。文獻[4]提出最優組內方差算法,通過對比每個風速區間內數據點與前面數據點的方差來判斷異常點。然而,上述方法易受到偏離程度較大的點影響,難以去除正常數據集周圍的異常數據。文獻[5]提出基于密度的聚類算法(Density-Based Spatial Clustering of Applications with Noise,DBSCAN)進行異常值檢測,然而在異常數據聚集時識別效果不好。針對上述缺點,文獻[6]提出將DBSCAN與四分位法結合,獲得了較好的檢測結果。文獻[7]采用基于密度的局部離群因子(Local Outlier Factor,LOF)算法,把具有足夠高密度的區域劃分為簇,實現了分散型異常數據的有效識別。文獻[8]提出基于DBSCAN和LOF的DLOF算法,該方法相比于上述兩種算法精度更高,但是所需時間更長,因此不適用于處理實時數據。文獻[9]在檢測異常數據時同時考慮風向數據的正確性,將二維異常檢測擴展至三維,通過更多的判定條件達到更好的檢測效果。文獻[10]采用四分位法與變點分組算法結合的方法,但清洗后數據存在明顯的階梯狀使功率曲線模型失真。在更改分組寬度后雖然會得到改善,但對于不同的機組清洗效果差別較大,泛用性低。文獻[11]提出一種新穎的異常檢測方法,該方法將風速功率散點圖轉化為灰度圖像,通過判斷功率曲線的形狀來識別異常數據。文獻[12]結合風機運行過程與數據不確定性統計,提出一種基于置信等效邊界模型的風功率數據清洗方法,但需要針對不同數據集調整單一或混合模型。文獻[13]采用孤立森林(Isolated Forest,IF)算法,通過在二叉樹模型中分離單個數據所用的步數來計算該數據的異常評分,并結合等效邊界對異常數據進行識別。雖然上述方法已經較為成熟,但是目前對它們的清洗效果與優缺點還缺少整體認知。
因此,本文系統地對比研究了主流數據清洗方法,并得到了一些有益結論。本文其余部分安排如下:第2節詳述了異常數據產生原因,第3節介紹了四種數據清洗方法并給出了評價指標,第4節是方法應用與實例分析,第5節給出了結論。
在運行過程中,風電機組受到多種不利因素的影響會采集到大量異常數據。根據文獻[10],異常數據可分為四類,如圖1所示。

圖1 異常數據分布情況Fig.1 Abnormal data distribution
針對這四類異常數據,各自的分布特征以及產生原因可表述如下。
(1)聚集分布在曲線底部的數據。曲線底部有大量功率為0或負值的點,這些異常數據的可能原因是機組故障導致機組處于計劃或非計劃關閉狀態。采集到的功率值小于零的情況,這是由風電機組此時處于停機狀態,而機組測控系統自耗電所導致。
(2)零散或聚集分布在曲線中部的數據。此時風電機組可以正常運作,但由于電網消納能力不足、風力發電不穩定、建設工期不匹配等原因而出現棄風限電,使得此時的輸出功率低于額定功率。
(3)零散分布在曲線四周的數據。功率曲線數據呈現零散或聚集性的隨機分布,源于信號噪聲、傳感器失靈等因素影響產生的分布隨機不固定偏差。
(4)零散或聚集分布在曲線的頂部的數據。由于機艙風速傳感器或通訊故障,導致監控系統采集的風速測量數據異常。
基于風機運行機理簡單剔除的方法通常與基于突變點特征進行異常檢測或基于概率模型建立邊界剔除邊界外異常值的方法結合使用。因此,本文選擇基于突變點特征異常檢測的DBSCAN與LOF方法,以及基于概率模型建立邊界,剔除邊界外異常值的Thompson-tau四分位法與IF四種方法進行對比研究。考慮正常數據集中于功率曲線周圍,而異常數據通常偏離功率曲線,清洗后的數據與參考功率曲線之間的誤差,即清洗結果在功率曲線周圍的集中程度,能間接反映清洗效果。因此,本文采用基于標準功率曲線的評價指標,用于評價不同異常值檢測方法的優劣。
3.1.1 DBSCAN
基于密度的聚類算法(DBSCAN)通過判斷點P周圍半徑為eps內點的個數是否小于某個值minpts,從而判斷點P是否為核心對象。
若集合中存在一點O同時在核心對象p和q的鄰域內,則核心對象p和q密度相連。DBSCAN的目的便是找到所有密度相連的數據點,以此建立正常數據集[5,6]。
3.1.2 LOF
局部離群因子算法(LOF)將與點P第K遠的點之間的距離定義為點P的第K距離記為Nk(P)。第K距離內的所有點為點P的第K鄰域。定義點P的局部可達密度為:
(1)
式中,D(O,P)為P第K鄰域內點O與P的距離。由式(1),得到所有點第K鄰域的局部可達密度,并據此計算點P的局部離群因子:
(2)
式中,lrdk(O)為點P第K鄰域內某一點O的第K鄰域局部可達密度。若點P局部離群因子接近1則說明點P與周圍點的密度接近,如果大于1點P周圍點的密度小于其他點即異常值。因此若LOFk(P)大于1,則點P為稀疏點即異常點[7]。
3.1.3 Thompson-tau四分位法
Thompson-tau四分位法將風速分區,分別計算每個區間的功率平均值Pi與標準差Si。由功率平均值Pi得到每個區間功率樣本數據偏差的絕對值δi,j=∣Pi,j-Pi∣。當區間內某個數據點偏差絕對值較大時,表明該點在此區間內過大或過小,由此判斷該點是否為異常點。Thompson-tau法中τ值的計算如下:
(3)
式中,t為功率樣本數據的t分布值;α為顯著性水平,其值影響功率數據的充裕度,通常取顯著水平α=0.01。
當某一點δi,j>τSi時,該點為異常數據;反之,該點為正常數據。在第一步使用Thompson-tau判斷后,再結合四分位法進行二次檢測。首先找到每個風速區間內功率數據的上四分位數Q3,i與下四分位數Q1,i,然后得到四分位距Ii=Q3,i-Q1,i。四分位法中四分位上限Wu,i與下限Wd,i計算公式為:
(4)
功率在四分位上下限之間的數據為最后的正常數據[2]。
3.1.4 孤立森林
孤立森林算法(IF)的主要思想是:給定n個樣本數據X={X1…Xn},特征維度為d,隨機選擇特征q和其分隔值p,遞歸分割數據集X來構建孤立樹,直到無法繼續分割或達到預設最大高度。
孤立樹中樣本點x的路徑長度h(x)定義為從iTree的根節點到葉子節點所經過的邊的數量。由n個樣本組成的數據集,生成模型樹的平均路徑長度c(n)定義如式(5)所示,其中H(i)為調和數,通常設置為ln(i)+ 0.577 215 664 9。
(5)
樹中每個樣本x的異常得分定義為:
(6)
當E(h(x))接近0時,s靠近1,即x的異常得分接近1時樣本x被判定為異常。當E(h(x))接近n-1時,s靠近0,樣本x被判定為正常[13]。
由圖1中異常數據分布可知,正常數據集中在功率曲線周圍,異常值明顯偏離功率曲線。因此,通過比較不同方法清洗后的結果與廠家提供的標準功率曲線之間的誤差能夠判斷不同清洗方法的性能[14]。清洗后的數據在標準功率曲線周圍集中程度高,表明清洗效果好;反之,清洗效果差。
針對標準功率曲線中0.5 m/s的區間(區間按照廠商提供的標準功率曲線上的數據點的風速間隔來選擇)劃分清洗后的數據集,計算每個區間內數據與標準功率曲線之間的離散程度:
(7)
(8)
式中,AADi與RMSEi分別為第i個風速區間的平均絕對誤差和均方根誤差;Ni為第i區間內數據量;Pi為第i區間標準功率曲線的值;Pi,j為第i區間內第j個功率數據。
本節選擇3個風場實際風電機組運行數據進行方法應用,并基于所提出的評價指標對不同異常值檢測方法進行性能對比。具體為:扶余三井子風場#2機組,青徑云霄風場#11機組與祥云天峰山風場#5機組,采樣間隔均為10 min。本次實驗軟件平臺為Matlab2020a,硬件平臺為CPU:AMD 4800U 主頻1.8 GHz,內存16 G。
不同清洗方法效果可能受數據樣本量的影響。當樣本量過少時,數據無法體現風電機組的風速-功率分布特性[15];反之,清洗時間長且清洗效果不會有明顯提升。在參考其他風功率數據清洗的文獻后,本文研究選擇了半年的數據樣本。3個風場不同風電機組歷史數據原始散點如圖2(a)~圖2(c)所示,其中灰色數據點為原始數據散點圖,曲線為廠家提供的標準功率曲線。從圖2可見,三臺機組異常數據分布差異明顯。

圖2 原始數據散點圖Fig.2 Scatter plot of raw data
根據經驗與現有文獻[2,5,6,7,13],將四種方法的參數限定在一定范圍內,然后在范圍內多次實驗得到每種方法的最優參數。四種方法的參數分別設置為:Thompson-tau四分位法風速區間長度取0.1 m/s[2]。DBSCAN中兩次四分位法區間間隔分別取0.1 m/s和1.25%額定功率,minpts設置為5,eps設置為2.5%額定功率[5]。LOF中第K距離選擇10,LOF閾值選擇1.5。IF異常數據量設定為20%,樹的數量為100,樹枝為256。
清洗結果分別如圖3~圖5所示。其中,淺灰色點為原始數據集,灰色點為剔除異常數據后的正常數據集。不同清洗方法之間的效果差異明顯。

圖3 三井子#2機組清洗結果Fig.3 Cleaning results of #2 plant in Sanjingzi wind farm

圖4 云霄風場#11機組清洗結果Fig.4 Cleaning results of #11 plant in Yunxiao wind farm

圖5 天峰山#5機組清洗結果Fig.5 Cleaning results of #5 plant in Tianfengshan wind farm
從圖3和圖5可見,三井子#2機組和天峰山#5機組異常數據分布廣,同一風速區間下有多個異常數據與正常數據偏差較大,并且有很多聚集的異常數據,Thompson-tau四分位法(后文簡稱T-四分位法)、DBSCAN和LOF無法完全準確識別這些異常數據。T-四分位法需要計算一段風速區間內功率的上下邊界,當區間內有多個異常數據與正常數據相差較大時,下四分位數變小,上四分位數變大,相同顯著性水平下數據區間變大。因此,功率的邊界范圍被拉大,導致部分異常數據落入邊界內而被誤識別為正常數據。LOF與DBSCAN都通過判斷數據周圍的密度來區分異常數據和正常數據,其中LOF計算局部離群因子時不但要計算自身的密度,還要計算周圍數據點的密度,因此若一個區域內異常數據與正常數據密度的差距不明顯就會有大量異常數據誤識別為正常數據或大量正常數據被誤刪除,所以這兩種算法更適合處理異常數據分布稀疏的情況(見圖4)。而當異常數據在一定區域內分布密集時,這兩種方法無法區分異常數據和正常數據的密度差別。IF在二叉樹中對原數據集進行多次劃分將所有數據分離,偏離較遠的數據在樹中的孤立程度十分明顯。但是從圖4可見,邊緣的正常數據也容易被孤立而出現誤刪除。
不同清洗方法的數據刪除率和清洗時間如表1~表3所示。其中數據刪除率D%為:

表1 三井子風場#2機組數據清洗結果Tab.1 Cleaning results of #2 plant in Sanjingzi wind farm

表2 云霄風場#11機組數據清洗結果Tab.2 Cleaning results of #11 plant in Yunxiao wind farm

表3 天峰山風場#5機組數據清洗結果Tab.3 Cleaning results of #5 plant in Tianfengshan wind farm
(9)
式中,S0為原數據集的數據量;S1為使用數據清洗方法剔除異常數據后剩余數據集的數據量。
根據表1~表3可知,IF的數據刪除率最低,對原數據集完整性的破壞最小。T-四分位法的清洗時間最短。雖然DBSCAN和LOF都是基于密度的方法,但DBSCAN的時間復雜度通常小于O(N2),LOF的時間復雜度為O(N3)。因此,LOF的清洗時間遠大于DBSCAN。
四種方法具有不同的數據刪除率。對于三井子風場#2機組與天峰山風場#5機組,DBSCAN與LOF的數據刪除率較高,分別在46%與40%左右。這兩種方法的數據刪除率明顯高于T-四分位法與IF,原因在于這兩臺機組的異常數據分布范圍廣,且密度較大。由前文分析可知,DBSCAN與LOF對這類異常數據分布情況的清洗效果較差;為了獲得更好的異常數據清洗效果,只能將閾值的范圍設置得更小,進而導致了更多正常數據被誤刪除。在云霄風場#11機組上,LOF的數據刪除率遠高于其他三種方法,主要原因是該機組異常數據分布更稀疏。根據前文分析,LOF在計算局部離群因子時更易受到數據疏密程度的影響;要獲得和DBSCAN相近的清洗效果,閾值的設定要比DBSCAN更嚴格,這就導致了LOF的數據刪除率更大。為進一步分析四種方法的清洗效果,4.3節對比分析了不同方法下的檢測精度。
檢測并剔除異常數據后,分別計算不同方法清洗結果與標準功率曲線之間的離散程度,以此評價不同方法清洗性能。基于式(7)和式(8),得到計算結果如表4~表6所示。

表4 三井子風場#2機組清洗結果與標準功率曲線的誤差Tab.4 Error between cleaning result and ideal power curve of #2 plant in Sanjingzi wind farm

表5 云霄風場#11機組清洗結果與標準功率曲線的誤差Tab.5 Error between cleaning result and ideal power curve of #11 plant in Yunxiao wind farm

表6 天峰山風場#5機組清洗結果與標準功率曲線的誤差Tab.6 Error between cleaning result and ideal power curve of #5 plant in Tianfengshan wind farm
由表4~表6能夠明顯看出,由IF得到的三臺機組的清洗結果與標準功率曲線的誤差也是最小的,即異常數據清洗更徹底。LOF和T-四分位法的誤差明顯高于另外兩種方法。
綜合來看,IF雖然誤刪除了部分邊緣的正常數據,但在四種方法中數據刪除率最低,對機組數據完整性的破壞最小,清洗后的結果與標準功率曲線之間誤差最小,在標準功率曲線附近最集中,并且對不同機組通用性高;T-四分位法更適用于對時間敏感的情況;DBSCAN與LOF在異常數據分布稀疏時有更好的效果。
本文基于實際機組運行數據對現有的四種方法開展了對比研究,并得出各自優缺點:
(1)IF算法具有最好的清洗效果,其次是DBSCAN;Thompson-tau四分位法程序運行時間最短;LOF檢測效果最差。
(2)DBSCAN與LOF等基于突變點特征檢測的方法受到異常數據分布情況影響較為嚴重,這兩種適用于異常數據分布稀疏的情況。
(3)IF與Thompson-tau四分位法等基于建立等效邊界的方法會受到邊界數據的影響。Thompson-tau四分位法容易受到偏離程度大的異常數據影響,從而使閾值被拉大,導致部分異常數據落入閾值中,適用于對時間敏感或異常數據距功率曲線較近的情況。IF對密集的異常數據具有良好的分離效果,并且對于不同機組的通用性高,但易將邊緣的正常數據誤刪除,適用于大多數異常數據清洗的場合。