?

基于滑動四分位和可行搜索圓算法的風速-功率異常數據清洗方法

2024-01-09 09:15白星振隋舒婷葛磊蛟朱愛蓮顧志成
關鍵詞:分散型滑動風電

白星振,隋舒婷,葛磊蛟,朱愛蓮,趙 康,顧志成

(1. 山東科技大學 電氣與自動化工程學院,山東 青島 266590;2.國網山東省電力公司 陽谷縣供電公司,山東 聊城 252300;3. 天津大學 智能電網教育部重點實驗室,天津 300072;4. 青島龍發熱電有限公司,山東 青島 266317)

風能作為一種環境友好且經濟實用的可再生能源,是國家“碳達峰、碳中和”的主力軍[1-3]。風電場建成投運后,根據實際運行條件下風速和功率數據得到的風電機組出力曲線不僅能夠表征風電機組的實際運行情況,也能夠衡量機組的出力水平[4]。良好的風電機組出力曲線對風速和功率數據的質量有很高要求,但受地理條件、運行環境、棄風限電等多因素影響,風電場數據采集與監視控制(supervisory control and data acquisition,SCADA)系統實時采集的風電場運行數據常存在較多的奇異數據,嚴重影響了風速和功率本應有的整體分布規律和對應關系,無法直接用于風電機組的性能分析和風電場調度管理,因此對采集的風電場運行數據進行識別和清洗[4-5]非常必要。

目前,針對風速-功率異常數據識別和清洗方面,國內外學者進行了一些研究。已有的數據清洗算法主要存在三類問題。一是奇異數據的漏檢,如文獻[4]采用最優組內方差算法識別異常數據,但僅能識別位于功率曲線下方的堆積型異常數據,且需要大量的迭代計算;文獻[5]采用基于密度的局部離群因子算法,能有效識別分散型異常數據,但不能識別成堆出現的異常數據。二是在識別異常數據的同時刪除了大量正常運行的數據,不能保證正常運行數據的完整性,如文獻[6]采用四分位法和k-means算法剔除異常數據,但沒有給出具體的剔除標準,會導致正常運行數據被誤刪,而且對于不同的棄風數據簇,聚類算法中k值的選取目前沒有統一的標準;文獻[7]基于Copula理論建立了風電機組的等效置信邊界模型,但需要多臺風機運行數據,數據需求量大,且數據刪除率高,常出現誤刪。三是清洗效率低下,如文獻[8]建立非線性模型判別異常數據,但清洗效率低且對樣本數據的需求量大;文獻[9]采用四分位法和基于密度的聚類算法確定出越限風功率數據的識別邊界,但算法本身存在較多控制參數且數據處理速度較慢。

綜上,現有的數據清洗算法主要存在數據刪除率高、異常數據漏檢、清洗效率低等問題。本研究提出一種基于滑動四分位和可行搜索圓(feasible search circle,FSC)算法的異常數據清洗方法,該方法首先刪除原始風速-功率數據中功率小于等于零的數據,然后利用滑動四分位算法清洗掉位于風功率曲線周圍的功率散點,最后利用FSC算法完成分布密集的異常數據簇的識別和清洗。實驗結果表明,本研究所提的基于滑動四分位和FSC算法的清洗方法能夠實現多類型異常數據的識別和清洗,具有運算簡單、清洗時間短、數據刪除率低的優點。

1 風速-功率歷史數據分析

標準風功率曲線是在標準工況下根據風電機組設計參數計算得出[10],較難體現風電機組的實際運行狀況。實際風電場運行環境下,風電機組SCADA系統采集到的實際風功率曲線數據主帶周圍分布著大量的異常數據點,除了由系統誤差和隨機誤差等原因產生的少量散點之外,大多數異常數據點是由機組非正常運行引起的。這些數據點一般不能用于功率曲線建立和機組性能分析,必須進行針對性剔除。異常數據可根據其空間分布特征分為兩大類:分散型異常數據和堆積型異常數據[17]。圖1為我國北方某個風電機組一年內的實測風速-功率曲線與標準功率曲線對比圖,圖1中(1)、(2)處為分散型異常數據,(3)、(4)處為堆積型異常數據。剔除上述兩大類異常數據點之后,保留的數據主帶是機組的常規發電狀態數據,能較好地反映風電機組的正常工作范圍和出力特性。因此,本研究的目的是實現異常數據的有效清洗。

2 異常數據的識別和分析

異常數據產生的原因及其在風功率曲線中存在的形式多樣,目前尚無一個算法實現多類型異常數據的完全識別和清洗,因此本研究根據異常數據的空間分布特點,采用滑動四分位算法處理分散型異常數據,采用FSC算法處理堆積型異常數據。

2.1 滑動四分位法

四分位算法[9]通常用于處理分散型異常數據,該算法需要提前進行數據分區且受異常數據量的影響較大,一般不能單獨使用。本研究采用的滑動四分位法將滑動窗口[11]與四分位法結合。設原始數據集為:

W={(v1,p1),(v2,p2),…,(vn,pn)}。

(1)

式中:vi和pi分別表示第i個數據樣本的風速和功率值,數據按照功率升序排列,即pi

1) 計算樣本的第2分位數即中位數Q2。

(2)

2) 計算第1、3個分位數Q1和Q3。Q2將v分為兩部分(Q2不包含在兩部分數據之內),分別計算兩部分的中位數Q1、Q3。當L=4k+3(k=0,1,2,…)時,有

(3)

當L=4k+1(k=0,1,2,…)時,有

(4)

3) 計算第1分位數Q1和第3分位數Q3之間的差值IQR,稱作四分位距。

IQR=Q3-Q1。

(5)

根據四分位距確定樣本中數據的正常值范圍為[Q1-1.5IQR,Q3+1.5IQR],位于此范圍之外的數據稱為異常值。

滑動四分位算法中不同的L和m取值對應著不同的數據處理精度,通過窗口寬度和步長的設置,可以保證一次處理的數據量,靈活改變算法的精度,可較好地實現風功率曲線分散型異常數據點的剔除。

2.2 可行搜索圓法

經過滑動四分位算法初步識別之后,大部分位于風功率曲線周圍的無規律散點被清除,但位于曲線中部的橫向堆積型異常數據仍存在,該類數據多是由棄風限電等原因引起,對于此類異常數據,本研究提出可行搜索圓數據清洗算法。

棄風限電是指因當地電網接納能力不足、風電不穩定等原因造成的部分風機被迫降低出力或暫停出力的現象,棄風限電產生的原因是多方面的[12-14]。當風電場發生棄風限電時,風電機組的輸出功率將不再與風速呈對應關系,而是被限制在一定范圍內。此時,在同一風速范圍內,正常運行時的功率和發生棄風時的功率相差較大,所以通過棄風數據點偏離正常數據點的程度進行識別,故提出FSC算法??紤]到正常運行數據存在一定的波動范圍,發展軌跡不是單一的,故選用歐氏距離作為評判標準,以搜索圓的半徑閾值作為搜索的邊界值,搜索圓的圓心和半徑確定后,可在搜索圓的范圍內對正常數據進行全方位搜索,極大減少了漏判和誤判率。設經過四分位算法初步處理之后的數據樣本集合為:

(6)

設置一個長度為2的可變數據窗口[(a1,b1),(a2,b2)],將數據集的第一個數據點(風速數值最小的)看作正常數據點,并將其作為窗口的左端點,即:

(7)

將數據集的下一個數據點放在該數據窗口內,以窗口的左端點為圓心,閾值δ為半徑作圓,判斷數據集的下一個數據點是否在此圓包含的范圍內。若在,則該數據點屬于當前的數據窗口,為正常數據點,此時將窗口的左端點取出,用該點作為窗口的新的左端點判斷下一個數據點;若不在,則該點距離正常數據點較遠,視作異常數據點舍棄,繼續判斷接下來的數據點。

FSC算法示意圖如圖2所示,si、sj、sl分別是相鄰的3個數據點。假設si為正常點,則si∈D,D是長度為2的數據窗口,檢驗sj時,以si為圓心,δ為半徑作圓,比較si和sj之間的歐氏距離d1和δ之間的大小關系:

(8)

圖2 算法示意圖

(9)

進而判斷sj可加入窗口。此時,將si取出,用sj作為窗口的左端點,判斷接下來的數據點sl。此時,比較數據點sj和sl之間的歐氏距離d2和δ之間的大小關系,

(10)

由圖2可知,sl不可加入窗口,即sj不是棄風數據點,此時將sl舍去,繼續用sj判斷下一個數據點。

2.3 滑動四分位和FSC算法清洗流程

分析風電機組的實際運行情況發現,原始的風功率曲線中位于曲線中部的橫向堆積型異常數據十分常見,若直接在豎直方向(沿著風速變化的方向)使用滑動四分位算法進行數據清洗,四分位算法的內限會受到堆積型異常數據的嚴重影響,不僅無法正確識別異常數據,還會產生一系列新的異常數據點,影響總體的數據識別效果,不利于后續FSC算法半徑閾值的選取,而在水平方向(沿著功率變化的方向)使用滑動四分位算法可避免此類問題?;瑒铀姆治缓虵SC算法的具體步驟如下:

1) 數據預處理。將原始數據中風速位于切入風速和切出風速之間而功率小于等于零的數據點清除,此類數據在風功率曲線中表現為位于曲線底部的橫向密集數據帶,如圖1中的(4)處所示;

2) 在水平方向運用滑動四分位算法消除分散型異常數據。根據曲線周圍分散型異常數據的分布情況,定義合適寬度和步長的滑動窗口(選取方法見2.4節),對每個窗口中的數據采用四分位算法進行識別清洗,可消除功率曲線中的大部分分散型異常數據,避免了數據散點對后續堆積型異常數據的清洗產生干擾,方便FSC算法半徑閾值的確定;

3) 對經過滑動四分位算法處理之后的數據用FSC算法進行二次處理,將數據按照風速升序順序排列,將第一個數據點作為初始圓的圓心,依次沿著風速增大的方向進行異常點搜索,直至遍歷完所有數據點,即可得出正常數據集。

滑動四分位和FSC算法流程如圖3所示。

圖3 滑動四分位和FSC算法流程圖

2.4 閾值的選取

2.4.1 寬度和步長的選取

滑動四分位算法的滑動窗口區間的寬度和步長的閾值的選取參照式(11):

(11)

式中:Num為功率數據的總數,L和m需為整數,將風功率數據進行N等分。

2.4.2 半徑閾值的選取

良好的半徑閾值應能較完整地識別堆積型異常數據,半徑閾值的選取依賴于堆積型異常數據區間集合,堆積型異常數據區間的選取參考文獻[6],FSC算法半徑閾值的選取流程如下。

1) 確定閾值所在的區間[a,c]。求得堆積型異常數據區間集合為Z={U1,U2,…,Um},其中Um={(v1,p1),(v2,p2),…,(vn,pn)},且滿足vi

2) 求區間[a,c]的中點b,判斷當閾值為b時,經FSC算法處理之后的數據是否含有堆積型異常數據。若含有堆積型異常數據,則半徑閾值的最佳取值位于區間[a,b],若處理之后的數據不含有堆積型異常數據,則半徑閾值的最佳取值位于區間[b,c]。

3) 繼續在區間內進行二分搜索,直到找出最佳的半徑閾值,該閾值能基本實現堆積型異常數據的清洗。

以北方某風電場風電機組數據為例,對采用滑動四分位清洗過后的風速-功率數據進行堆積型異常數據區間的判斷,確定半徑閾值過程如圖4所示。

1) 半徑閾值的初始范圍為[200, 600],當半徑閾值為600時,FSC算法的處理效果如圖4(a)所示,圖中(1)處仍顯示異常數據簇,顯然不滿足清洗要求。

2) 計算初始區間的中點為400,當半徑閾值為400時,FSC算法的清洗效果如圖4(b)所示,仍有部分堆積型異常數據清洗不徹底,故可知最佳半徑閾值應位于區間[200, 400]。

3) 計算區間[200,400]的中點為300,當半徑閾值為300時,FSC算法的清洗效果如圖4(c)所示,仍存在少量異常數據點,故可知最佳半徑閾值位于區間[200, 300]。

4) 依次類推,重復上述步驟,最終取整數確定半徑閾值為230時,處理效果如圖4(d)所示,處理效果最為合適。

為了更好地說明本研究提出的半徑閾值確定方法的數據識別效果,對清洗過后的風功率數據采用bin算法[15]建模,以均方根誤差(root mean square error,RMSE)和平均絕對誤差(mean absolute error,MAE)作為評價指標,對比不同半徑閾值的建模誤差大小[16]。其中,每個bin區間的風速和功率均值分別為:

(12)

(13)

均方根誤差RMSE和平均絕對誤差MAE的計算式分別為:

(14)

(15)

表1 風電機組等值功率曲線的評價指標值

結合表1和圖4可知,當半徑閾值選擇為230時,通過bin算法建模得到的風功率曲線最接近于標準的風功率曲線,且建模的RMSE和MAE取得最小值。同時,比較圖4(c)和圖4(d)可知,只有少量異常數據點存在時,對功率曲線的建模影響很小,故為了方便計算,選取半徑閾值時可取近似。

3 實驗結果與分析

3.1 數據來源

為了說明本研究所提算法和流程的有效性,選取我國北方某風電機組的實際運行數據進行實驗驗證,取該風電機組2014年9月—2015年8月、2015年9月—2016年8月、2016年9月—2017年8月共3年的原始數據,數據每10 min記錄一個點。該風電機組的基本參數為:切入風速為3 m/s,切出風速為23 m/s,額定功率為1 500 kW,額定風速為12 m/s。該風電機組3年間每連續12個月的原始數據如圖5所示。

圖5 實測風速-功率散點圖

由圖5可知,該風電場的風電機組3年來的風功率實測數據中存在不同類型的異常數據,但具體分布位置和數量有明顯差別。其中,圖5(a)中風功率實測數據中兩類異常數據均比較典型,圖5(b)中風功率實測數據中主要為分散型異常數據,圖5(c)中風功率實測數據中主要為堆積型異常數據。

3.2 數據清洗測試

對圖5(a)、5(b)、5(c)風電機組的風速-功率實測數據運用滑動四分位算法進行預處理,窗口寬度、步長分別取為40、40,41、41,20、20,初步處理效果如圖6所示。

圖6 風功率數據初步處理效果圖

由圖6可知,原始數據經過滑動四分位算法首次處理之后,分散型異常數據基本被剔除,但位于曲線中部橫向分布的堆積型異常數據并未被識別,接下來用FSC算法進行下一步處理。按照2.4節所述最佳閾值的選取規則,將半徑閾值分別設置為230、200、120,清洗結果與原始數據對比如圖7所示。由圖7可知,本研究提出FSC算法能夠進一步完成堆積型異常數據的清洗。

圖7 FSC算法數據清洗效果圖

3.3 算法對比分析

采用本研究所提算法與Thompson tau-四分位算法[17]、LOF算法[18]分別對該風電機組前述數據進行分析,比較3種算法在清洗效果、數據刪除率、清洗時間等方面的差距。對比分析時,Thompson tau-四分位算法的舍棄水平設置為0.01;為便于比較,LOF算法的鄰域點的個數為20,且LOF算法的數據刪除率設置為與本研究算法相同。表2統計了3種方法對該機組3年內的數據刪除率、清洗效率情況,Thompson tau-四分位算法、LOF算法的數據清洗效果分別如圖8、圖9所示。

表2 不同方法的數據清洗效果

圖8 Thompson tau-四分位算法清洗效果

圖9 LOF算法清洗效果

由表2可知,3種算法的數據刪除率、算法效率存在較大差距,具體表現為:

1) 數據刪除率。用本研究算法對2014年9月—2016年8月數據進行處理,數據刪除率分別為7.24%和9.59%,而采用Thompson tau-四分位算法處理,數據刪除量分別為21.49%和21.06%,表明Thompson tau-四分位算法在處理這兩年的數據時存在過識別現象,一部分正常數據被誤刪。結合圖7(c)和圖8(c)可知,Thompson tau-四分位算法無法準確識別2016年9月—2017年8月的堆積型異常數據。

2) 算法效率。本研究算法對該風電機組3年的數據清洗時間均在5 s左右,Thompson tau-四分位算法的清洗時間約為2~3 min,LOF的清洗時間約為30 s,表明本研究算法效率比Thompson tau-四分位算法和LOF算法均有很大提升。

此外,對比圖7、圖8可知,Thompson tau-四分位算法可以處理分散型異常數據,但當堆積型異常數據過多時,該算法將失去使用價值。

由表2和圖7、圖9可知,LOF算法和本研究算法在異常數據識別率相同的情況下,LOF算法對于該風電機組2014年9月—2015年8月實測風功率數據中存在的分散型異常數據處理效果尚可,但基本無法識別該風電機組產生的堆積型異常數據。該風電機組2015年9月—2016年8月產生的異常數據多為分散型異常數據,故LOF算法基本能保留完整的數據主帶,但對于以堆積型異常數據為主的2015年9月—2016年8月實測風功率數據處理效果欠佳。

4 結論

本研究分析了風電機組風速-功率異常數據的來源及分布特征,提出基于滑動四分位和FSC算法的風速-功率異常數據清洗方法,首先采用滑動四分位算法實現了數據散點的清洗,然后針對滑動四分位算法不能有效清洗的橫向堆積型異常數據提出了FSC算法。驗證結果表明,本研究提出的基于滑動四分位和FSC算法的風速-功率異常數據清洗方法,通過設置算法半徑閾值,能夠很好地識別并清洗風電機組產生的異常數據,清洗效果不受堆積型異常數據的影響。同時,該方法考慮了風功率數據的運行主帶,在實現異常數據清洗的同時盡可能地保留了正常運行的數據點,清洗效率較高,具有一定的實際應用價值。

猜你喜歡
分散型滑動風電
一種新型滑動叉拉花鍵夾具
海上風電躍進隱憂
分散式風電破“局”
Big Little lies: No One Is Perfect
壓力分散型預應力錨索在邊坡工程中的運用
風電:棄風限電明顯改善 海上風電如火如荼
日本文化產業的立法模式及其對我國的啟示
重齒風電
高分散型三聚氰胺氰尿酸鹽阻燃硅橡膠的研究
滑動供電系統在城市軌道交通中的應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合