黃小光, 王 杏, 史曉鳴, 潘東浩, 周民強, 周書鋒
(1.浙江運達風電股份有限公司, 浙江 杭州 310012; 2.浙江省風力發電技術重點實驗室, 浙江 杭州 310012;3.華電電力科學研究院有限公司, 浙江 杭州 310030)
根據 GB/T 18451.1-2012 (即 IEC 61400-1-2005,以下簡稱 IEC 規范)[1]對陣風的定義,陣風是短暫的風速突變,可用上升時間、幅值和持續時間來表述。 典型的極端運行陣風(EOG)在風速小幅度下降之后會驟然上升, 容易引起風電機組過轉速停機, 而頻繁地啟停機會影響到機組可利用率,進而減少機組的發電量。解決此類問題的一般方法是為風電機組設定更加嚴苛的控制參數。 如果這些專門為了應對陣風問題而設定的參數在所有時間段都保持固定不變, 又會導致安全隱患的存在和發電效益的降低。
一般而言,在風速比較穩定時,機組的任務是穩定運行、最大化發電效益,此時,要求降低控制參數的靈敏度, 使其在風速小幅度波動時仍能保持穩定。在風速波動較大時,機組的首要目標是應對陣風、保證安全,盡量避免由于風速突然上升導致的超限停機和過載,此時,要求控制參數更加靈敏,以快速應對驟然變化的外部環境,保證機組安全。因此,有必要提前預知接下來一段時間的陣風發生概率,以便采取差異化的參數設置,兼顧效益和安全。 根據陣風預測原理,現有方法分為3 類,基于物理模型的方法、 基于統計的方法和基于機器學習的方法。
物理模型方法將陣風看做大氣湍流、 邊界層風速等物理量的函數[2]。 Hans A[3]提出了一種放縮方法對陣風進行預測。 Stucki P[4]比較了COSMO陣風判定模型和標準WRF 陣風參數模型。
統計方法一般基于極值統計原理, 統計模型通常用于確定特定氣候中破壞性陣風的返回期。Palutikof J P[5]對該類方法進行了綜述。 Hofherr T[6]使用給定模型網格點的最大陣風, 構建了極值分析模型。
機器學習的方法是陣風預測的研究熱點,其優勢在于該類方法能夠建立陣風相關變量和陣風之間的非線性關系, 而不必依賴于某些特定的參數。 Chaudhuri S[7]使用自適應神經模糊推力系統(ANFIS)對加爾各答地區每日的極值陣風進行預測。 Mercer A[8]使用某個給定高度的風速、溫度和濕度作為SVR 模型的輸入,預測美國十個城市的日最大陣風。Sprenger M[9]使用AdaBoost 分類樹的方法對陣風進行預測。
以上研究基本是針對氣象領域的陣風預測。本文采用基于機器學習的方法, 并結合風電機組的特點和實際需求, 探討陣風預警在機組上的應用。 使用真實的機組歷史運行數據,參考風速、風向和氣溫等多種信息, 使用機器學習算法對單臺機組進行建模。考慮了場級優化,加入整個風電場其他機組的影響, 對未來陣風發生的概率進行預測,為機組差異化設定參數提供參考,緩解效益和安全之間的矛盾。陣風預警并不直接對過轉速、故障、溫升等機組相關問題做出預警,而是選擇了陣風作為預測對象。 這是由于基于機器學習的數據預測模型, 能學習到的只是來自過去數據中的某種統計規律或經驗,并不是嚴格的定律、定理。 機組是人為控制的, 其參數和狀態在未來很可能會發生變化。預警對象選擇由自然規律支配的陣風,一定程度上可以避免人為干擾, 使得離線訓練的模型在相當一段時間內保持原有的準確性, 而不需要頻繁更新。
以某風電場2016 全年的歷史運行數據建立陣風預警建模。流程的主要步驟包括數據預處理、被解釋變量(y)和解釋變量(X)的生成、算法選擇和建模等。 詳細流程如圖1 所示。

圖1 陣風預警建模流程圖Fig.1 Gust early warning modeling flow chart
y 的生成是對樣本中有陣風的時段進行標注的過程。 基本步驟如下。
①字段篩選。 陣風一般指風速或者風向的劇烈變化,因而須要專注于風速/風向字段。
②確定陣風模式和參數。 陣風模式可以參考IEC 規范, 如EOG、 方向變化的極端相關陣風(ECD)等模型,也可以參考現場經驗自行定義。陣風參數,例如上升幅值,可根據需要和機型表現進行選擇。
③搜索陣風。 根據陣風模式和參數,結合歷史運行數據的采樣周期,搜索符合要求的陣風時段。
④標注陣風。 為便于訓練建模,須對原有數據進行整合。 可以將原有的采樣周期5 s 的數據整合為1 min 樣本。 在1 min 內含有一個、多個或部分陣風的樣本標注為1(有陣風),在1 min 內沒有陣風的樣本標注為0(無陣風)。
⑤時序偏移。 原有的數據形式標注了當前時段是否有陣風,而陣風預警是對未來時段陣風發生概率的預測,因此,須將標注結果進行時序偏移,便于模型訓練。
仔豬白痢傳染速度快,嚴重影響仔豬生長,如果不進行及時治療與防治,就會發展成為流行痢疾導致死亡,甚至可能出現全部死亡。因此,必須對仔豬白痢發生的原因進行合理分析,并結合實際情況掌握仔豬白痢的臨床癥狀,找到治療與防治的綜合措施,保證仔豬的健康成長,進而保障養殖戶的經濟效益最大化。

圖2 陣風下的風速Fig.2 Wind speed under gust
圖2 為在歷史運行數據中標識出來的一次陣風的風速曲線。 發生時刻為2016 年1 月24 日7點24 分20 秒, 陣風持續過程在圖中顯示為第15~20 秒。 該陣風模式參考了EOG 的形式(風速下降,接著陡然上升,又陡然下降,然后上升到初始值)。 本文做了一定簡化,只考慮先下降又上升的左半部分。
圖3 為圖2 風速所對應的發電機轉速曲線。由圖3 可知,由于該陣風的影響,機組因發電機轉速超限而停機。

圖3 陣風下的發電機轉速Fig.3 Generator speed under gust
按照圖2 所示的陣風模式,以陣風幅值10 m/s 為分界線,將歷史運行數據中的各個1 min樣本劃分為有陣風和無陣風兩部分, 再將樣本中的轉速最大值繪制成如圖4 所示的核密度曲線。由圖4 可知:有陣風時,機組的轉速在1 700~2 000 m/min 內呈正態分布;沒有陣風時,機組轉速分布在1 000~1 900 m/min 內。可見該陣風模式和參數設置, 能夠很好地區分機組在有無陣風狀態下的轉速分布。

圖4 有陣風和無陣風時段的發電機轉速和密度分布曲線Fig.4 Core density distribution curves of generator speed during gust and non-gust periods
本文參照IEC 規范中的EOG 陣風定義,并依據實際情況稍作改動。 陣風模式和參數也可以從現場經驗總結,既可以是風速驟升的,也可以是風速驟降的;既可以是風速變化的,也可以是風向變化的。只要能從運行或仿真中總結更多的實例,并且這些實例確實引起了風電機組的某些問題,就可以歸納到陣風預警平臺, 并設計出不同陣風模式的預警模型。
為了完成y 的預測,須要為其提供輸入信息,這里稱之為X,其生成包含以下步驟。
①字段篩選。陣風是一種外部的自然因素,是引起風電機組各種問題的原因而非結果, 所以選擇風速、風向、氣溫3 類字段作為X 的原始數據。
③特征變換。根據業務經驗進行特征變換,為特征構建提供更豐富的字段, 以便對陣風進行更準確地預測。例如:通過正弦、余弦,將風向分解為兩個正交方向;通過時序上的差分,將風速轉變為風速變化率等。
④特征構建。 通過統計不同周期內各個字段(及其差分)的均值、標準偏差、最大值、最小值、峰度、偏度等信息,供算法學習,可以有效地提高預測精度。
⑤抽樣。 為了與y 對應, 須將樣本抽樣成1 min 間隔的數據集。
將特征變量按照重要性排名, 并計算相關矩陣,可以發現y 與之前的陣風情況(如在8 min 周期內發生陣風與否的標準偏差) 以及風速的變化率的離散程度(如在16 min 周期內風速的差分的標準偏差)等變量的相關性更高。
本文使用了4 種機器學習算法, 分別為邏輯回歸 (LR)、 隨機森林 (RF)、 梯度提升決策樹(GBDT)、深度神經網絡(DNN),測試不同算法在數據集中的表現。 將2016 全年數據集以10 月為界限劃分為兩部分:10 月之前(含10 月)的數據為訓練集, 用于模型訓練;10 月之后的數據為驗證集,用來評估模型的優劣。 模型訓練好后,輸入驗證集的X,會輸出介于0~1 的預測概率。依據不同的概率閾值劃分, 得到不同的0/1 分類結果,0即為預測無陣風,1 為預測有陣風。
圖5 為以箱線圖的形式給出了某風電場30臺風電機組的驗證集曲線下面積 (AUC) 分布情況。 AUC 是有監督分類問題中最常見的評估指標,它最大的特點是考慮了所有的預測概率情況,對模型的預測精度給出綜合的評價。 AUC 等于0.5 時,說明模型處于隨機猜測,是沒有分類能力的。 AUC 越接近1,說明模型的分類能力越好。

圖5 不同算法的AUC 表現Fig.5 AUC performance of different algorithms
由圖5 可知,GBDT 的 AUC 分布更高更集中,其次是RF,LR 與DNN 表現相當。近年來流行的DNN 表現不佳, 這一方面可能是由于DNN 的網絡架構和參數更加復雜,要求調參技巧更高,另一方面可能是由于數據規模仍然不夠龐大, 不能體現深度學習在大數據中的優勢。 下面對GBDT算法的結果給出了詳細的評估。
表1 依據GBDT 算法, 給出了某風電場1 號機組在不同概率閾值下的準確率、 精確率、 召回率、F1 得分、誤報率和 AUC。 由表1 可知,在 0.1的概率閾值下,召回率達到0.956 7,也就是說,不到5%的陣風處于漏報狀態。

表1 某風電場1 號機組GBDT 算法模型評估Table 1 Evaluation of GBDT algorithm model for turbine 1
依據GBDT 算法,給出了某風電場30 臺機組的模型評估結果,所有機組的AUC 均達到了0.96以上,說明預測模型對陣風具有良好的區分能力。表2 列舉了其中前10 臺機組的評估結果。

表2 某風電場10 臺機組GBDT 算法模型評估結果Table 2 GBDT algorithm model evaluation of 10 turbines
一個風電場內的多臺風電機組, 由于地理位置相近,風資源情況總體比較接近,但由于微觀地形的差異,以及風向上下游的關系,使得各個機組的風資源存在微妙的差異。 一部分機組在空間位置上處于主風向的上游方位, 在時間尺度上能更早地感受到陣風變化, 另外其尾流也可能形成陣風,對下游機組產生影響。 因此,為了更精確地預測陣風, 將鄰近機組的運行數據加入到預測模型中,對陣風預警模型進行場級優化。圖6 為某風場的機組分布圖。

圖6 機組分布圖Fig.6 Unit distribution map
為了研究加入鄰近機組數據對陣風預測精度是否具有提升作用,本文以2 號機組作為目標風電機組,其它29 臺機組作為數據來源機組,用兩臺機組的數據進行組合計算。 將組合計算的結果與單臺計算的結果進行對比,表3 為前10 臺機組的組合計算對比結果。
以表3 第一行數據為例對其內容進行說明:將2 號和1 號機組的X 組合起來,對2 號機組的y 做出預測,可以觀察到單臺計算的AUC、兩臺組合計算的AUC 以及兩種計算之間的AUC 變化情況。 若AUC 變化為正值,說明來源風電機組對目標風電機組的陣風預測精度具有提升作用,若AUC 變化為負值,說明來源風電機組對目標風電機組的陣風預測造成了干擾。

表3 組合計算的AUC 變化Table 3 AUC changes in combined computation
在整個風電場中, 用以上方法依次選擇一臺機組作為目標風電機組, 以剩余的機組作為來源風電機組,進行組合計算。 篩選出AUC 有所提升的組合,繪制了圖7 所示的組合計算網絡圖。

圖7 組合計算網絡圖Fig.7 Combined computing network diagram
圖7 中每一個圓點代表一臺風電機組, 箭頭所指向的是目標風電機組, 箭頭所背離的是來源風電機組。 受到越多指向的機組,圓點面積越大,說明組合計算方式對該機組的陣風預測精度提升更有利。可以發現該風場的16,24,10 號機組是受到提升作用比較多的機組。
將每臺機組利用組合計算所能提升AUC 進行累加, 記為該目標機組的AUC 累計提升量,可知24,16 號機組獲得的累計提升較為明顯, 說明組合計算對這些機組的陣風預測精度提升效果最明顯。 將每臺機組在組合計算中幫助其他機組提升的AUC 進行累加, 記為該來源機組的AUC 累計提升量,可知22,8 號機組給予的累計提升較為明顯, 說明這些機組的數據對其他機組的陣風預測精度的提升貢獻更大。
本文根據EOG 陣風定義,使用風電機組歷史運行數據,闡述了構建陣風預警模型的基本步驟,分別采用了 GBDT,RF,DNN 和 LR 算法進行陣風預測。依據場級優化的思路,利用鄰近機組的數據來提升單機的陣風預測精度, 嘗試將兩臺機組的數據組合作為模型輸入,對模型進行優化。
①針對本文的數據源,GBDT 算法的AUC 分布更高、更集中,可達到0.96 以上,預測精度更高。
②經過場級優化, 組合計算方式對風電場中某些機組的陣風預測精度有明顯的提升作用,具有較高的研究價值。
③基于機器學習的陣風預警是風電行業應用大數據和數據挖掘的積極探索, 它不需要額外增加測風硬件, 只須采集SCADA 歷史運行數據就可以完成建模。 它所帶來的可變的、可預測的、定制化、 差異化設定參數的思路和理念具有一定革新意義。