趙勁松, 王梓齊, 劉長良,2*
(1.華北電力大學控制與計算機工程學院,保定 071003;2.新能源電力系統國家重點實驗室(華北電力大學),北京 102206)
中國風電機組的主要機電設備中,齒輪箱的故障率位列第四且維修費用和時間也相對較高[1-2]。因此,有必要實時監測風電機組齒輪箱的運行狀態,及早發現潛在故障并提前安排維護,從而降低運維成本。
監控與數據采集(supervisory control and data acquisition, SCADA)系統被大量應用于風電場中,主要功能是儲存歷史運行數據和在線采集實時運行數據。相比其他常見的油液、振動分析等,基于SCADA運行數據的狀態監測方法無須新加裝金屬磨粒、加速度傳感器等,在經濟性上的優勢相對更大,近年來受到了較為廣泛的關注[3]。
多元狀態估計(multivariate state estimate technique, MSET)[4]是根據正常運行數據構成記憶矩陣,進而對設備當前運行數據進行估計的一種基于SCADA數據的狀態監測方法,有著無須訓練參數、精度高、泛化能力強等優勢。近年來,MSET在風電機組齒輪箱[5-6]、火電機組磨煤機[7]和引風機[8]等設備中得到了一定應用。MSET對記憶矩陣的依賴大,要想進一步提高精度,往往需要對記憶矩陣進行擴展。但是,由于每個計算周期均需要執行時間復雜度較高的矩陣乘法運算,擴展記憶矩陣會對MSET的實時性造成較大影響[9]。
集成學習是一種通用的機器學習模型結構,即用多個差異化的個體學習器對同一問題進行訓練,再將各學習器的結果綜合后輸出。對于相同的機器學習算法,相比建立單一的全局學習器,集成學習模型通常有著更強的泛化能力。近年來,集成學習已在風電功率預測[10-11]、齒輪箱故障診斷[12]等相關領域得到了一定應用。
為解決記憶矩陣較大時,常規MSET實時計算速度慢的問題,提出了一種基于Bagging集成策略和MSET的狀態監測方法。首先基于Bagging對數量較多的訓練樣本進行隨機抽樣,構造多個記憶矩陣規模較小的MSET個體學習器,最后將各MSET的結果平均后輸出。隨著個體學習器數量的增多,集成MSET對訓練樣本的利用率增大、估計精度提高且計算時間僅為線性增長,能夠在對精度影響不大的前提下,有效改善算法的實時性。
以某2 MW風電機組SCADA系統的實際運行數據為算例,基于正常運行數據將常規與集成MSET的性能進行了對比;進一步基于故障數據,并結合統計過程控制技術設計預警閾值,使用集成MSET實現了對齒輪箱實際故障的預警。
MSET的核心是基于正常運行數據構造的記憶矩陣,通過記憶矩陣對設備當前的運行狀態進行估計:若設備處于正常狀態,則對當前運行數據的估計精度高;若設備可能發生潛在故障,則估計精度相對較低。MSET的原理和實現過程如下。
某設備共有n個參數參與狀態監測,將某一時刻這些參數的測量值記為觀測向量X=[x1,x2, …,xn]T。在設備正常運行時,采集的m個觀測向量X構造記憶矩陣D如下(要求m個觀測向量盡可能覆蓋設備所有的運行工況):
(1)
MSET的輸入為當前時刻的觀測向量Xo,輸出為觀測向量Xo的估計值Xe。對于每個輸入Xo,均需要計算一個對應的權值向量W=[w1,w2, …,wm]T,使得記憶矩陣D和權值向量W的乘積等于輸出Xe。具體公式如下:
Xe=DW=w1X1+w2X2+…+wmXm
(2)
權值向量W的計算公式如下(推導過程見文獻[13]):
W=(DT?D)-1·(DT?Xo)
(3)
式(3)中:?為非線性運算符,常選取為兩向量間的歐幾里得距離。
將式(3)代入式(2)中,輸出Xe的計算公式如下:
Xe=D·(DT?D)-1·(DT?Xo)
(4)
MSET不需要實現基于訓練樣本進行參數訓練,但在計算每一個輸出Xe時,都需要重新基于記憶矩陣D計算權值向量W。因此,記憶矩陣D對MSET的估計精度和計算速度有著決定性的影響,具體分析如下。
(1)記憶矩陣D的規模較小時,MSET的計算速度較快,但對設備正常運行狀態空間的覆蓋有限,估計精度相對較低,狀態監測的準確性較差。
(2)記憶矩陣D的規模較大時,MSET的估計精度相對較高,準確性較好。但在計算權重W和輸出Xe時,需要分別進行矩陣乘法運算[矩陣(DT?D)-1和(DT?Xo)相乘、矩陣D和W相乘],而矩陣乘法的時間復雜度一般為o(n3)左右[14]。因此,擴大記憶矩陣D會使計算速度大幅度增加,同樣也會占用更多的存儲空間。
根據上述分析,從原理上MSET的估計精度和實時性之間存在較大的矛盾,有必要針對該問題進行深入研究,在保證一定估計精度的同時盡可能提高MSET的實時計算速度。
易證,計算1次n階矩陣乘法所花費的時間,要大于計算k(k≥2)次n/k階矩陣乘法所花費的時間。將上述結論推廣至MSET并結合集成學習思想,可由多個記憶矩陣規模較小的MSET模型作為個體學習器,得到在計算速度上優于常規方法、估計精度與常規方法相當的集成MSET模型,從而改善算法的實時性。
集成學習的常見構造策略有Bagging、Boosting和Stacking等[15]。其中,Boosting的個體學習器是串行關系,即根據前一個學習器的訓練結果調整權重后訓練下一個學習器;Stacking要求個體學習器是異質的,即不同學習器所使用的算法不同,均很難與MSET進行結合。
Bagging集成策略的主要思想是對原始訓練樣本進行多次隨機抽樣,并行生成多組訓練樣本以訓練多個個體學習器[16],能夠與MSET進行方便地結合。Bagging集成策略的具體結構和實現流程如圖1所示。

圖1 Bagging集成學習策略Fig.1 The Bagging ensemble learning strategy
由圖1可知,Bagging集成策略主要分為訓練和測試兩個階段。
(1)訓練階段:首先需要確定個體學習器的個數n和對應的訓練樣本容量(一般小于等于原始訓練樣本個數);之后,對原始訓練樣本進行n次隨機抽樣,得到n組訓練樣本并訓練得到n個基于相同算法的個體學習器。
(2)測試階段:基于測試樣本計算n個個體學習器的輸出,對于分類問題采取投票方式,對于回歸問題采取算數平均方法,將n個輸出綜合后作為集成學習模型整體輸出。
基于Bagging集成策略建立的集成MSET模型,其估計精度和計算速度受每個MSET個體學習器的記憶矩陣規模和個體學習器的個數決定:記憶矩陣規模越大、個體學習器的個數越多,集成MSET模型的估計精度越高、計算速度越慢;在記憶矩陣規模確定的情況下,集成MSET的計算時間與個體學習器的個數呈線性關系。
針對風電機組齒輪箱這一研究對象,基于Bagging和MSET的狀態監測方法的具體實現流程如圖2所示。
由圖2可知,算法主要分為3部分:數據預處理、集成模型建立和設計預警閾值。

圖2 狀態監測算法的實現流程Fig.2 Implementation process of the condition monitoring method
(1)數據預處理的第一步是對SCADA歷史數據中屬性缺失、參數異常的數據進行刪除,以獲取代表機組正常運行狀態的數據。第二步是確定構成MSET觀測向量X的運行參數,首先確定能夠直接反映齒輪箱運行狀態的狀態變量,通常只選取1個,記作y;其次確定與狀態變量密切相關的其他運行參數即輔助變量,通常選取多個,記作xi。第三步是將數據分為訓練集和驗證集,訓練集用來建立集成MSET模型、樣本數量相對較多,驗證集用來設計預警閾值、樣本數量相對較少。
(2)集成MSET模型的建立過程與Bagging集成策略的訓練過程基本一致。由于MSET不需要訓練參數,通過隨機抽樣確定訓練樣本后,構造n個記憶矩陣D即完成了集成MSET模型的建立。

統計過程控制(statistical process control, SPC)技術是一種基于統計理論的過程監測方法,近年來在風電機組狀態監測的預警閾值設計中得到了一定應用[17-18],具體的閾值設計方法如下。
設隨機變量X~N(μ,σ2),則根據正態分布相關理論,隨機變量X落在(μ-2σ,μ+2σ]和(μ-3σ,μ+3σ]區間內的概率如下:
P(μ-2σ (5) P(μ-3σ (6) 若X的取值長期超出這兩個區間,可以認為過程受到了異常因素的影響,導致隨機變量的X概率分布出現了顯著變化。 (7) 式(7)中:ei為驗證集上狀態變量的預測殘差;m為驗證集的樣本數。 (8) 預警閾值構造完成后,結合狀態變量的預測殘差,即可初步實現風電機組齒輪箱的狀態監測、故障預警及可視化。 數據來源為福建省某陸上風電場的一臺雙饋式機組。機組的切入風速為4 m/s,切出風速為25 m/s,額定功率為2 MW,SCADA系統的采樣周期為10 min。該機組于2016年7月13日10:20發生齒輪箱故障導致非計劃停運,故障發生前SCADA系統未提前發出報警信號。 從歷史運行數據庫中,導出2月13日10:20至齒輪箱故障前的運行數據。剔除這些數據中運行參數缺失、有功功率小于等于零、風速小于4 m/s或大于25 m/s的數據點,并進一步基于拉依達準則去除運行參數異常的數據點,最終用余下的10 000組數據參與接下來的實驗。 從運行參數中,選擇風速、發電機轉速、環境溫度、有功功率和齒輪箱軸承溫度共5個參數構成觀測向量X,選擇齒輪箱軸承溫度作為齒輪箱狀態監測的狀態變量y。參與實驗的10 000組數據中,上述運行參數的變化范圍如表1所示。 表1 運行參數的變化范圍Table 1 Range of the operation parameters 為了去除量綱不同對結果造成的影響,將運行參數進行min-max歸一化: (9) 式(9)中:xij為參數j的第i個數據點;maxxj和minxj分別為參數j的最大值和最小值;x′ij為歸一化后的數據。 min-max歸一化后,以1~5000號樣本作為訓練集,用于建立常規和集成MSET模型;5001~6000號作為驗證集,用來對比驗證常規和集成MSET的性能并計算預警閾值;5001~10000號作為測試集(包含驗證集),用來進行齒輪箱故障的狀態監測實驗。 分別以訓練集中時間標簽靠后的1 000、2 000~5 000組樣本,構造常規MSET的記憶矩陣并基于驗證集進行測試。使用均方根誤差RMSE作為誤差函數以評價估計精度,計算公式為 (10) 程序的運行環境為MATLAB R2018a,CPU型號為Intel i5-7500,內存為8 G。常規MSET在驗證集上的測試結果如圖3所示。圖3中,計算時間的含義為計算1 000組驗證集所花費的時間。 圖3 常規MSET方法的測試結果Fig.3 Test results of conventional MSET method 由圖3可知,從估計精度的角度,隨著記憶矩陣規模的擴大,常規MSET的誤差有一定下降,但矩陣規模大于2 000后降幅較小,說明擴展記憶矩陣能夠改善MSET的估計精度,但矩陣達到一定規模后,繼續擴展對精度的改善較為有限;從計算時間的角度,隨著記憶矩陣規模的擴大,常規MSET的計算時間大幅度增長且為非線性增長,說明較大規模的記憶矩陣會嚴重影響MSET的實時性。 下面進行常規和集成MSET的對比實驗。確定MSET個體學習器的記憶矩陣規模為1 000,分別建立由1~5個個體學習器構成的集成MSET模型。由于Bagging集成策略中訓練樣本的選取具有隨機性,故在驗證集上進行50次重復實驗。50次實驗所得到的RMSE的箱形圖如圖4所示。圖4中,橫軸記憶矩陣規模的含義為MSET個體學習器的記憶矩陣規模之和。 圖4 集成MSET方法50次重復實驗的測試結果Fig.4 Test results of 50 repetitive experiments of ensemble MSET method 由圖4可知,隨著個體學習器個數的增多,集成MSET模型的誤差逐漸減小且分布范圍逐漸收窄,說明集成MSET能夠保證一定的估計精度,且個體學習器的數目越多,估計精度相對更高,在重復測試中的表現更穩定。盡管集成MSET可能需要進行多次重復測試,才能得到估計精度相對較高的模型,但該過程屬于離線訓練階段,不會對在線計算的實時性產生影響。 不同記憶矩陣規模下,常規MSET和集成MSET的估計精度和計算時間如表2所示。表2中,t為計算1 000組驗證集所花費的時間,集成MSET的t為50次重復實驗的平均計算時間;Q3、Q2、Q1分別為集成MSET的RMSE在50次重復實驗中的上四分位數、中位數和下四分位數。 表2 集成MSET和常規MSET的對比Table 2 Comparison of ensemble MSET and conventional MSET 由表2可知,隨著個體學習器個數的增多,集成MSET的計算時間呈線性增長;當個體學習器為3 個時,RMSE的中位數Q2基本與矩陣規模為2 000的常規MSET相當,但計算時間僅為常規方法的60%,說明在估計精度接近的前提下,集成MSET的計算速度相比常規方法有了較大改善。 使用5 000組測試集數據,驗證集成MSET的故障預警能力。選擇集成MSET的個體學習器個數為3,總的記憶矩陣規模為3 000,模型在驗證集上的RMSE為0.003 6。 圖5 集成MSET方法在測試集上的殘差Fig.5 Residual of ensemble MSET method on test set 由圖5可知,第2500點前,殘差總體的幅值相對較小、超過預警閾值的數據相對較少,可以認為齒輪箱的運行狀態相對正常;第2500點后,殘差的波動程度相對劇烈、超過預警閾值的數據明顯增多,說明齒輪箱的運行狀態發生了較大程度的改變。 通過圖5能夠大致判斷齒輪箱的運行情況,但由于預測殘差具有較強的隨機性,提供給運行人員的信息較為雜亂、直觀性差。為改善以上問題,結合滑動窗口法和預警閾值,設計了一種名為滑動窗口異常率的狀態監測指標,具體如下。 對于預警閾值T1和T2,分別定義一級異常率R1和二級異常率R2: (11) 式(11)中:M為滑動窗口的長度;N1和N2為當前滑動窗口中,殘差超過預警閾值T1和T2的數據個數。 取滑動窗口的長度M=1 000,計算測試集上的滑動窗口異常率如圖6所示。 圖6 測試集上的滑動窗口異常率Fig.6 Sliding window exception rate on test set 由圖6可知,第1 500個滑動窗口前,異常率相對較小,R1小于6.5%、R2小于2.5%;第1 500~2 500個滑動窗口,異常率不斷上升直至達到峰值,R1和R2高達26.0%和15.8%,說明齒輪箱可能發生了早期故障,導致運行狀態發生了顯著變化;第2 500個滑動窗口后,異常率的幅值和波動情況均有一定程度的回落,但仍顯著高于正常運行狀態,R1維持在12.5%以上、R2維持在5.2%以上。根據異常率的變化曲線,可在第2 500個滑動窗口即故障發生前10 d左右,判定齒輪箱發生了較嚴重的早期故障。 相比圖5的預測殘差序列,圖6所示的滑動窗口異常率曲線平滑度較好,能夠提供清晰、直觀的狀態監測信息,更有利于運行人員的分析和決策。 提出了一種基于Bagging集成策略和MSET的狀態監測方法。基于某風電機組的實際運行數據,針對常規和集成MSET方法進行了相關實驗,得到如下結論。 (1)隨著記憶矩陣規模的增長,常規MSET的估計精度有一定改善,但計算時間會發生大幅度、非線性的增長,嚴重影響算法的實時計算速度。 (2)隨著MSET個體學習器數目的增多,集成MSET的估計精度有所改善且計算時間保持線性增長;在估計精度接近的情況下,集成MSET的計算時間僅為常規方法的60%,實時性有顯著改善。 (3)根據集成MSET的預測殘差和基于SPC技術設計的預警閾值,能夠提前約10 d實現對齒輪箱故障的預警;基于預測殘差和預警閾值構造的滑動窗口異常率,能夠更直觀、清晰地展現齒輪箱運行狀態的變化情況。
3 算例及分析
3.1 數據來源及預處理

3.2 狀態監測方法的性能對比實驗




3.3 齒輪箱實際故障實驗


4 結論