郭慧軍,李永亭*,齊詠生,劉利強
(1.內蒙古工業大學電力學院,內蒙古 呼和浩特 010080;2.內蒙古自治區機電控制重點實驗室,內蒙古 呼和浩特 010051)
風功率關系曲線是風電機組發電性能的一個重要參數,因為風機運行的不穩定性,導致風機的發電功率不穩定,故而風電并網對電力系統有一定的影響,研究造成的負面影響離不開對風電機組運行狀態的有效分析和評估[1]。風電機組的歷史數據是風電機組功率預測、風電機組控制策略、風電機組性能評估的基礎[2],但是風電機組在實際運行過程中,由于運行環境影響、數據采集、傳輸時的誤差以及設備發生故障等因素,運行期間會產生大量的異常數據。這些受到擾動和異常的數據無法準確反映風電機組的真實運行狀態,如果直接使用這些數據進行后續分析,必然會影響風電機組的運行狀態和運行特性的分析結果,為此,必須對風電機組運行數據進行清洗。
當前,關于風電機組運行數據的清洗研究已有許多報道,如文獻[3]和文獻[4]采用數理統計中的四分位方法剔除異常數據,取得一定的效果,但是當異常數據過多時,確定異常值上下限會受到影響,識別效果變差。文獻[5]基于密度的離群因子(LOF)算法剔除異常數據,可以有效剔除一些分散性異常數據,但當異常數據密度較高時,LOF算法的識別能力就會下降,容易誤刪正常數據。文獻[6]采用組內最優方差建立數據清洗模型,但是該方法默認把每個風速區間內的最大功率當成額定功率,無法清洗功率曲線上方的不正常數據,而且該方法本質上是一種單邊清洗算法,不能很好地做到雙邊清洗。文獻[7]采用LOF 和支持向量機兩種方法進行結合,首先用LOF算法值固定異常值范圍,然后利用支持向量機建立判別異常的準則來判定異常值,但支持向量機適合處理小樣本,面對海量風電數據顯得力不從心。文獻[8] 按不同風向上的不同風速區間內使用組內最優方差來識別其相應的異常數據,利用風玫瑰圖統計不同風向的風速大小,但是算法需要在每個風向進行兩次風速細分后,再在每個風速區間內設定閾值,大大降低了運行的效率。文獻[9] 提出了一種基于灰色關聯度和K-means聚類的方法。利用灰色關聯法對數據進行關聯度挖掘,其次用K-means聚類的方法建立數據的異常檢測模型。綜上,現有的風機數據清洗方法主要集中在統計量方法[10-11]、基于密度或者聚類的方法上。當異常數據量比較多時,統計量方法如四分位會出現識別失效的情況[12],最優組內方差方法需要對不同的數據集設置不同的閾值,不具有工程通用性;基于密度和聚類的方法,模型參數的確定缺乏有效指導,參數選擇通常是困難的。針對以上問題,同時考慮風速和功率兩個屬性之間的依賴關系[13-14],本文提出了一種基于變點檢測方法和Copula理論相結合的兩階段數據清洗算法,該算法將特征不同的異常數據分開討論,結合異常數據的時序特征分別建立識別模型,最后從提出算法的有效性進行了分析驗證。
風電機組的切入風速和切出風速是反映風電機組功能的重要設計參數,理論上,當外界實際風速大于切入風速后,風電機組開始有輸出功率。在切入風速到額定風速之間時輸出功率和風速的關系可以近似用指數規律表示,當達到額定風速后,風速增加,但是輸出功率不再變化。當風速達到切出風速時,為了防止機組過載,一般情況下風電機組會采取制動停機,輸出功率等于零。
以某風電場一臺2MW的風電機組為例,其實測風功率曲線的散點圖如圖1所示。由圖1可以看出,風電機組在實際運行過程中的功率點處于較大的分布范圍內,風功率數據呈非線性,同時其帶狀分布特征又表現出一定的不確定性,但是風功率散點集中區域的概率密度明顯的要比風功率散點分散區域的高。因此,可以認為概率密度高的區域屬于風電機組的正常運行狀態區域,能夠更好地反映風電機組實際運行狀態。
根據圖1所示的實際散點圖數據分布形態可知,異常數據主要可分為橫向堆積型異常數據和周圍分散型異常數據,不同種類的異常數據在風功率散點圖中的分布位置也不相同,如圖2中圈注所示。為此,異常數據進行一下分類:
1)底部堆積型異常數據:這類異常數據表現為一條沿風速方向堆積的數據帶。在長時間內實測風速大于切入風速,但輸出功率卻等于0或接近于0的數據,此類數據產生的主要原因有機組故障、通信設備或采集設備故障、不定時停機檢修等情況。
2)中部堆積型異常數據:這類異常數據表現為一條或多條沿風速方向堆積的數據帶。只要特征是輸出功率低于風功率曲線下界,這時系統采集到風速數據雖然不斷變化,但輸出功率在一段時間內維持在一個較低的數值并基本保持不變,此類異常數據產生的原因是人為控制的棄風限功率或通信故障[15]。

圖1 實測風速-功率散點圖
3)周圍分散型異常數據:這類異常數據主要表現為風功率曲線附近的無規律散點,此類異常數據可能來源于外部噪聲干擾、傳感器測量誤差、天氣變化劇烈等因素[16]。

圖2 異常數據分布示意圖
由于單一檢測方法不利于識別各類特征的異常值,因此本文依據各類異常數據在風功率曲線上呈現的分布特征,提出了一種兩階段基于變點分組(Change Point, CP)-Copula理論的組合異常數據清洗算法。第一階段主要清洗大部分堆積形異常數據和少量分散型異常數據,提高正常數據占比;第二階段主要清洗剩余的分散型異常數據。
CP理論其基本的定義是在一個時間序列或過程中,當某個統計特性在某個點受非偶然性的因素影響而突然發生變化,就稱該點為變點,變點識別即利用統計量或統計方法將該點的位置估計出來。風機數據進行變點異常值檢測就是尋找風電機組運行數據中的數據相對于正常數據發生異常的部分。如果在某個風速區間內有大量堆積型異常數據,那么這個區間內功率序列的變化率、均值、方差以及方差的變化率等數據特征都會發生突變,不再符合原來的規律。因此采用變點理論對風功率曲線中的異常數據進行清洗具有理論可行性。研究數據清洗問題時,需要找出的是風功率序列中數據特征突變的位置,即數據點位置。由于方差變化率可以用來衡量數據的波動性,且采用方差變化率作為識別數據突變點時,效果最明顯,因此,本文采用基于方差變化率的變點作為分組依據。
基于方差變化率的變點算法步驟如下:先將風速按照相同的等間隔大小分成個s區間,統計這個區間內的風速-功率數據對,記第i個風速-功率區間內的功率數據樣本為
I={(v1,p1),(v2,p2),…,(vn,pn)}
(1)
式中,vi和pi分別表示第i個數據樣本的風速和功率,把功率值進行降序排列,即pi>pi+1,i∈(1,n-1),重新排列數據對,然后求出各點的方差

(2)

t(i)=|si-si-1|,i=2,3,…,n
(3)
對風電機組功率的方差變化率進行變點識別,可以得到功率值變化明顯的位置。最小二乘法是處理變點問題時常用的一種方法,它構造觀察值與理論值之差的二次平方和作為目標函數,當使目標函數達到極小值之點的時刻或位置作為突變點的估計參數。若在第個區間內,功率的方差變化率發生了突變,說明這種突變是由大量離散程度高的異常數據所導致的,用最小二乘法求出變點位置后,變點之后的數據離散程度將越來越高,可認為是異常數據,進行清洗剔除。利用上述原理在各個風速區間進行清洗,就可以得到整個區間內風功率曲線的正常數據集和異常數據集。
風速和功率具有隨機性和波動性,可以將其視為具有相關性的兩個隨機變量進行處理,而Copula函數能夠描述兩個隨機變量的相關性。根據風電機組實測數據,計算風速和輸出功率的累計概率分布,選取最合適風速-功率數據分布的Copula函數描述風速和功率兩個隨機變量間的相關性,在不同風速和置信度下,即可得到輸出功率的條件概率分布模型,最終把各個風速取值下的上下分位數連接起來形成兩條曲線即為概率功率曲線,在本算法中認為在曲線內的數據是符合分布規律的正常數據。
由Sklar理論知道[17],兩個隨機變量得聯合概率分布可以用Copula函數描述。對于風速v和功率p的累積概率分布FV(V)和FP(P)存在相應的Copula函數將其聯合分布函數連接起來,即
F(V,P)=CV,P(FV(V),FP(P))
(4)
函數CV,P稱為隨機變量風速V、功率P的Copula概率分布函數。Copula函數中的未知參數可以用極大似然估計法求解,常見的Copula函數分別有Clayton Copula,Gaussian Copula,Frank Copula,Gumbel Copula和t-Copula函數。
基于兩階段CP-Copula建立異常數據組合清洗模型,分成兩個模塊,具體算法流程如圖3所示。在第一個模塊流程中,依據風功率數據量多少,將風速區間等間隔劃分成若干個區間,使在某風速區間的對應功率數據落入該風速區間,根據公式計算每個點的方差以及方差變化率,之后利用變點算法對該區間內的異常功率數據進行首次識別,將第一次識別出的異常數據直接剔除,并且保留剩余的數據;在第二個模塊,針對變點算法清洗后剩余的可疑數據首先構造經驗Copula函數和五種常見Copula函數的歐式距離,選取距離最小的函數建立風速和功率的依賴結構,最后利用Copula函數建立概率功率曲線進行第二次異常數據的識別,并且形成最終的正常數據集。

圖3 CP-Copula數據清洗算法流程
為了驗證本文所提方法的有效性,選取內蒙古某風電場中的一臺風電機組作為實驗對象,采集實際運行過程中將近兩個月的歷史運行數據進行實例驗證,共計954683條數據樣本。風機基本參數如下:切入風速為3m/s、切出風速的10min均值為25m/s、額定風速為10m/s,額定功率2MW。
由圖2可知,該臺機組包含本文所有類型的異常數據,首先利用變點算法進行堆積型異常數據的首次識別清洗。以實測運行數據中15.0-15.5m/s風速區間內的數據為例說明變點算法的清洗原理,在該區間內,經過統計原始風速-功率數據對有10703個,將功率值按降序排列,根據式(2) (3)計算各點的方差變化率,結果如圖5所示。

圖4 15.0-15.5m/s原始風功率數據分布

圖5 功率方差變化率
由圖5可知,在9000個點左右,功率的方差變化率出現了顯著變化,這是因為在這個區間中,原始數據存在大量的離散程度高的異常點所導致的,由最小二乘法計算得到功率值突變的序號是9616,因此可以判定第9616個點之后的數據為異常數據,可以進行剔除,圖6是該區間內異常數據識別情況。

圖6 單區間變點分組異常數據識別效果
由圖6可知,變點分組法可以有效識別第一、二類堆積型異常數據,利用變點算法在整個風速區間內進行相同處理,其處理后的風功率散點圖如圖7所示。從圖7可知,經過變點算法進行首次識別后,大部分堆積型異常點被清洗掉,但是仍有部分異常數據無法有效清除,此時需要異常數據的二次識別和清洗,對剩余的異常數據進行剔除。

圖7 變點法處理后的風功率曲線
經過第一階段變點算法識別后的剩余數據,還需要進一步清洗。Copula函數模型是基于隨機變量邊緣分布結果建立的,由于存在五種Copula函數模型可以描述風速和功率的相關性,不同的Copula函數表現出來的變量相關性關系是不同的。為了找到最合適的描述模型,本文采用極大似然法對待選的五種Copula函數的未知參數進行求解,并計算每種Copula函數與經驗Copula的二次平方歐式距離,結果如表1所示。由表1可知t-Copula函數與經驗Copula的二次平方歐式距離最小,能夠更好地擬合原始風功率數據,因此本文選用t-Copula函數模型求取風速-功率聯合概率分布模型。

表1 五種Copula函數的距離
利用t-Copula函數建立概率功率曲線,進一步剔除異常數據,圖8給出概率功率曲線的上下邊界,經過兩階段CP-Copula識別模型處理后的最終風功率散點圖如下圖9所示。從對異常數據點的識別效果來看,本文模型最大程度的還原了風電機組的實際運行狀況,風速和功率之間的真實規律通過概率功率曲線得到準確反映,說明本文方法能夠有效識別風電機組異常數據點。

圖8 Copula理論概率功率曲線圖

圖9 CP-Copula理論最終清洗效果圖
為了進一步說明本文所提方法的有效性,引入數據識別率作評價指標,識別率定義為清洗的數據量和原始數據量的比值,同時與變點-3σ(CP-3σ)模型和最優組內方差-四分位法(OIV-Quartile)進行了對比,不同方法的異常數據識別效果對比圖如下所示。

圖10 3σ模型上下界曲線圖

圖11 CP-3σ方法最終清洗效果圖

圖12 OIV-Quartile清洗效果圖
表2比較了三種模型的異常數據識別率,從識別率的情況看,本文所提遞進式兩階段的方法較傳統3σ模型和四分位模型而言有效提高了數據識別率。在第一階段利用變點算法有效剔除大量堆積型異常數據,避免了高比例的異常數據對四分位清洗算法的干擾。在第二階段,由于不是使用方差、中位數等統計量進行辨識異常點,而是經過對概率功率曲線的修正,減少了異常數據集中分布對統計分析結果的影響,所以可有效提高數據識別效果。

表2 不同算法的清洗效果對比
利用CP-Copula模型進行異常數據識別之后,有利于挖掘風電機組各變量與功率之間的真實關系,提高風機功率預測模型的有效性。基于對風電數據預處理的基礎上,本節分別選取原始數據集和經過異常數據模型篩選后的數據集訓練基于長短期記憶網絡(Long Short-Term Memory,LSTM)的功率預測模型。用三種不同算法清洗后的數據集訓練風功率短期預測模型[18]。從每個數據集中選取相同數量的訓練樣本,同時保證LSTM模型的結構相同。選擇1000個功率點進行仿真預測,選取均方根誤差(RMSE)、平均絕對誤差(MAE)、R2作為指標對預測結果進行評價,表3是各項指標的記錄情況,從表3可以看出用異常數據清洗模型識別后的數據進行短期風功率的預測精度都得到顯著提升,但使用本文CP-Copula清洗算法得到的數據集建立的功率預測模型,RMSE和MAE比原始數據的對應指標減少最多,預測精度的改善效果要好于其他兩種清洗方法。各個功率預測模型的功率殘差結果如圖13(a)~(d)所示,可以看出圖13(a)的殘差波動范圍是最小的,功率的殘差絕對值最大也沒有超過50kW。

表3 短期風功率預測指標

圖13 各個功率預測模型的功率殘差結果圖
風功率曲線的異常數據會對風電數據挖掘產生不利影響,本文在分類風電機組不同類型異常數據的基礎上,提出了基于變點-Copula理論的組合模型,識別不同類型的風電機組異常數據,結果表明剔除效果明顯,與傳統的識別模型相比,提高了準確性且完整地保留了正常運行數據;又將其應用在短期風功率預測當中,仿真結果表明預測精度改善明顯,為后續分析風電機組真實的運行狀態提供更為可靠和有效的支持。