王桂松, 郭 鵬, 胥 佳, 劉瑞華, 李韶武
(1.華北電力大學(xué) 控制與計算機工程學(xué)院,北京 102206;2.龍源(北京)風(fēng)電工程技術(shù)有限公司,北京 100034)
風(fēng)電機組長期運行在室外惡劣的自然環(huán)境中,故障率高。齒輪箱、發(fā)電機軸承等大部件的故障檢修難度大、費用高,高額的運營維護成本降低了風(fēng)電的經(jīng)濟效益。通過有效方法,實時監(jiān)測風(fēng)電機組運行狀態(tài),定位狀態(tài)劣化點,回溯狀態(tài)劣化原因,做出預(yù)防性維修,對于減少風(fēng)電場運營成本、降低風(fēng)電機組的運行風(fēng)險具有重要意義[1]。
齒輪箱是風(fēng)電機組的重要部件,其結(jié)構(gòu)復(fù)雜,包含齒輪、軸承、軸、箱體等多種構(gòu)件,某一結(jié)構(gòu)的失效都有可能引發(fā)齒輪箱的整體故障,進而造成嚴重的后果[2]。風(fēng)電機組SCADA數(shù)據(jù)中蘊藏著風(fēng)電機組運行狀態(tài)信息,應(yīng)用齒輪箱溫度數(shù)據(jù)分析成為近年來國內(nèi)外風(fēng)電機組齒輪箱狀態(tài)監(jiān)測的主流。BRANDAO.R.F.M等人利用神經(jīng)網(wǎng)絡(luò)的方法預(yù)測風(fēng)電機組齒輪箱油液溫度以實現(xiàn)對齒輪箱的故障預(yù)測[3]。Wang L等使用改進的深度神經(jīng)網(wǎng)絡(luò)進行齒輪箱故障預(yù)警,預(yù)測準確率已高于支持向量機 (Support Vector Machines,SVM)[4]。但依靠神經(jīng)網(wǎng)絡(luò)等機器學(xué)習(xí)算法建立的監(jiān)測模型存在模型學(xué)習(xí)時間過長,學(xué)習(xí)效率過低問題,不適應(yīng)于在線工程應(yīng)用。郭鵬等人采用非線性狀態(tài)估計建立齒輪箱正常工作狀態(tài)下的溫度模型并用其進行溫度預(yù)測,已具有較高的建模效率和預(yù)測精度[5]。劉帥等人將高斯混合模型、動態(tài)時間規(guī)整及熵權(quán)值算法三者緊密結(jié)合,提出了一種基于群體多維特征相似性的故障預(yù)警策略[6]。祝文穎等人將改進的經(jīng)驗小波變換應(yīng)用于行星齒輪箱振動信號的解調(diào)分析,提出了一種單分量個數(shù)的估算方法,解決了經(jīng)驗小波變換中的Fourier頻譜劃分問題,提高了分析的針對性、準確率[7]。以上學(xué)者分別利用深度學(xué)習(xí)、機理模型、信號分析的方法進行齒輪箱故障分析,在齒輪箱預(yù)警領(lǐng)域取得了相應(yīng)的成果。但以上方法或存在計算效率問題,或存在故障監(jiān)測時間不確定度問題,即無法給出準確的狀態(tài)劣化時間點。
本文使用XGBoost算法建立齒輪箱正常工作狀態(tài)的溫度模型。通過XGBoost模型與其它4類模型對齒輪箱溫度數(shù)據(jù)進行回歸預(yù)測模型實驗,結(jié)果表明XGBoost模型在齒輪箱溫度預(yù)測中綜合性能要優(yōu)于其它4類模型。對于XGBoost模型預(yù)測殘差序列,本文開展了Change-Point算法構(gòu)建,利用Change-Point技術(shù)進行XGBoost模型預(yù)測殘差序列分析并給出變點,可發(fā)現(xiàn)齒輪箱工作異常狀態(tài),定位狀態(tài)劣化時間點,回溯狀態(tài)劣化原因。
XGBoost方法為有監(jiān)督學(xué)習(xí)算法,是一種新的梯度提升實現(xiàn)方法,主要解決分類和回歸問題。XGBoost方法自提出以來,廣泛應(yīng)用于金融、醫(yī)療等領(lǐng)域[8-9]。該算法基于“提升”思想,通過將一系列“弱”學(xué)習(xí)機的所有預(yù)測結(jié)果結(jié)合起來,得到“強”的學(xué)習(xí)模型。與傳統(tǒng)的梯度增強回歸樹(Gradient Boosting Decision Tree,GBDT)算法相比,其優(yōu)勢在于XGBoost對于損失函數(shù)進行了二階泰勒展開,將預(yù)測項和正則化項結(jié)合起來,通過簡化目標函數(shù)實現(xiàn)計算資源優(yōu)化,以權(quán)衡損失函數(shù)的下降和模型的復(fù)雜程度,并得到最優(yōu)解[10]。同時,XGBoost自動執(zhí)行并行計算,保證了最優(yōu)的計算速度。
假設(shè)模型有k個決策樹,則模型的輸出表示為
(1)
式中:xi為數(shù)據(jù)集;F為決策樹函數(shù)空間;fk對應(yīng)獨立的樹結(jié)構(gòu)和葉子權(quán)重。其損失函數(shù)為:
(2)
(3)
(4)
式中:gi和hi分別為損失函數(shù)的第一階和第二階梯度統(tǒng)計。
在移除常數(shù)項后,得到目標函數(shù)的簡化形式為:
(5)
定義Ij={i|q(xi)=j}為葉子j的實例集,可以將式(5)擴展正則化項Ω為:
(6)
對上式進行求導(dǎo)并令求導(dǎo)結(jié)果等于0,可得到ωj的最優(yōu)解
(7)
(8)
正常情況下,枚舉所有可能的樹結(jié)構(gòu)是無法實現(xiàn)的。XGBoost采用貪心算法,每一次對已有的葉子節(jié)點加入一個分割,假設(shè)IL和IR是左右子樹分數(shù)分割后的節(jié)點,則分割后的損失函數(shù)為:
Lsplit=
(9)
XGBoost算法為了限值樹的生長,加入了正則項系數(shù)γ,當(dāng)增益大于γ時,允許節(jié)點進行分割,在優(yōu)化目標函數(shù)時相當(dāng)于做了預(yù)剪枝。
本文采用某風(fēng)電場1.5 MW機組的運行數(shù)據(jù),采樣周期為1分鐘。其切入風(fēng)速為3 m/s,額定風(fēng)速為12 m/s。運用相關(guān)性分析方法和風(fēng)電機組控制機理提取若干與齒輪箱軸溫密切相關(guān)聯(lián)的變量,并增加部分分類變量共同作為模型的輸入,模型的輸出為變量齒輪箱軸溫。相關(guān)系數(shù)的計算公式為:
(10)
式中:x為齒輪箱軸溫變量;y為其它變量,包括有功功率、風(fēng)速等與齒輪箱軸溫關(guān)聯(lián)密切的變量;n為數(shù)據(jù)總量。計算該機組其它75個變量與齒輪箱軸溫的相關(guān)性系數(shù),部分關(guān)聯(lián)變量的相關(guān)系數(shù)見表1。
根據(jù)表1,齒輪箱池油溫、齒輪箱驅(qū)動端油溫和齒輪箱非驅(qū)動端溫升變量為強相關(guān)變量,不能作為模型輸入。選取以下變量作為模型輸入?yún)?shù)。
(1)功率、風(fēng)速、槳葉槳角、高速端轉(zhuǎn)速和齒輪箱入口油溫為齒輪箱軸溫密切相關(guān)聯(lián)的變量。
(2)環(huán)境溫度、機艙溫度的不同也會導(dǎo)致齒輪箱軸溫有較大差異。在不同時刻,即使機組的風(fēng)速和功率相同,齒輪箱軸承溫度同樣會受到晝夜溫差和季節(jié)性溫度變化影響。
表1 相關(guān)性系數(shù)統(tǒng)計表
(3)風(fēng)電機組運行過程中,當(dāng)齒輪箱軸溫升高,與之相關(guān)聯(lián)的油溫升高,油液粘度下降,導(dǎo)致齒輪箱入口油壓和齒輪箱濾網(wǎng)入口油壓等壓力下降。齒輪箱入口油壓、齒輪箱濾網(wǎng)入口油壓與齒輪箱軸溫為負相關(guān)。
(4)風(fēng)機狀態(tài)、可利用率狀態(tài)為SCADA數(shù)據(jù)狀態(tài)編碼,選用風(fēng)機狀態(tài)、可利用率狀態(tài)兩個變量作為模型輸入?yún)?shù)。
(5)增加是否達到額定功率(達到為1,未達到為0)、是否達到額定風(fēng)速(達到為1,未達到為0)、是否為停機狀態(tài)(停機為1,未停機為0)分類變量。
本文采用的XGBoost模型調(diào)參選用該風(fēng)場某機組2014年1月份至4月份正常運行數(shù)據(jù)。進行數(shù)據(jù)預(yù)處理后,采用建模數(shù)據(jù)共91 608條,采用測試數(shù)據(jù)共30 067條。模型涉及線程、樹的最大深度、迭代次數(shù)參數(shù)調(diào)優(yōu)。本文利用柵格搜索與單一參數(shù)搜索結(jié)合方法進行參數(shù)尋優(yōu)。Bergstra等[11]研究表明,柵格搜索的效果弱于隨機搜索,采用柵格搜索進行初步組合參數(shù)選取后,固定其它參數(shù)不變,先后對主參數(shù)進行單一參數(shù)搜索以搜尋最優(yōu)參數(shù),進而提高模型預(yù)測精度。在XGBoost建模中,線程參數(shù)決定了算法的CPU使用率,CPU使用率進一步?jīng)Q定模型的計算效率,CPU使用率、計算耗時與線程參數(shù)關(guān)系如圖1所示。在線程參數(shù)達到8后,CPU使用率達到100%,且計算耗時基本不變,因此本文將線程參數(shù)設(shè)置為8。
圖1 CPU使用率、計算耗時與線程關(guān)系圖
樹的最大深度參數(shù)用來避免過擬合,樹的最大深度參數(shù)越大,模型會學(xué)到更具體更局部的樣本,該參數(shù)會影響模型的預(yù)測精度和計算效率。對于XGBoost模型的預(yù)測精度引入平均絕對誤差(Mean Absolute Error, MAE)、均值偏移誤差(Mean Bias Error, MBE)、根均值平方誤差(Root Mean Squared Error, RMSE)[12]3種殘差分析方法。MAE、MBE和RMSE計算公式如式(11)所示。
(11)
通過對齒輪箱軸溫預(yù)測值與實際值之間的殘差統(tǒng)計分析,給出預(yù)測精度。殘差統(tǒng)計、計算耗時與樹的最大深度關(guān)系如圖2所示。
圖2 殘差統(tǒng)計、計算耗時與樹的最大深度關(guān)系圖
由圖2可知,在樹的最大深度為8時殘差最小,模型計算耗時并不會隨著樹的深度的增加而呈某種特定趨勢,而是有一個擬合優(yōu)值。本文選擇的樹的最大深度為8,在保證最優(yōu)精度的同時有較高的計算效率。
弱學(xué)習(xí)器的迭代次數(shù)大小控制算法的擬合優(yōu)度,直接影響XGBboost模型的計算效率。在模型實驗中發(fā)現(xiàn)梯度增強回歸樹(Gradient Boosting Decision Tree, GBDT)、隨機森林(Random Forest, RF)兩類模型同樣含有迭代次數(shù)參數(shù),且RF模型物理內(nèi)存占用受該參數(shù)影響較大。圖3給出了3種模型計算耗時、物理內(nèi)存占用率與迭代次數(shù)參數(shù)選取的關(guān)系。
圖3 模型計算耗時、物理內(nèi)存占用與迭代次數(shù)關(guān)系圖
由圖3可知,XGBoost模型計算耗時最少,計算效率最高。RF、XGBoost算法均能實現(xiàn)并行處理,實驗過程中,選用合適的線程參數(shù),以保證RF、XGBoost模型使用處理器的所有CPU。隨著迭代次數(shù)增大,XGBoost、GBDT模型內(nèi)存占用率維持在44%左右;而RF模型內(nèi)存占用率隨著迭代次數(shù)的增加不斷升高,且計算機出現(xiàn)卡頓現(xiàn)象。XGBoost算法本身考慮了當(dāng)數(shù)據(jù)量比較大、內(nèi)存不夠時怎么有效地使用磁盤。如此,在通過大數(shù)據(jù)量樣本建模并監(jiān)控風(fēng)電機組狀態(tài)時,XGBoost可以充分發(fā)揮其優(yōu)勢,提高計算效率。
為了驗證XGBoost模型對于齒輪箱溫度預(yù)測的適應(yīng)性和有效性。在選取合適的建模參數(shù)后,采用GBDT、人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network,ANN)、K-最近鄰(K-Nearest Neighbor,KNN)和RF作為類比模型進行齒輪箱溫度回歸預(yù)測。選取兩臺機組正常樣本數(shù)據(jù)進行模型實驗,實驗樣本分布如表2所示。其中,樣本1和樣本2選用該風(fēng)場不同機組1~4月份1分鐘平均數(shù)據(jù),采用1~3月份數(shù)據(jù)建立模型,應(yīng)用4月份數(shù)據(jù)進行測試。
5種模型在兩個實驗樣本的最終計算結(jié)果對比如表3所示。從表3中可以發(fā)現(xiàn),在參數(shù)調(diào)優(yōu)后,對比5種模型計算結(jié)果可知,XGBoost模型預(yù)測精度要明顯優(yōu)于KNN、ANN模型;在該數(shù)據(jù)量條件下,與GBDT、RF模型預(yù)測精度相當(dāng),但計算效率更高。結(jié)合XGBoost算法原理,數(shù)據(jù)量越大,XGBoost分類效果會越好。實驗結(jié)果表明,XGBoost模型綜合性能要優(yōu)于其它4類模型,具有預(yù)測精度和計算效率高,資源占用低的特點,證明了XGBoost算法應(yīng)用于齒輪箱溫度預(yù)測的可行性和穩(wěn)定性。
表2 實驗樣本分布
表3 5種模型在兩個實驗樣本的計算結(jié)果對比
利用XGBoost算法建立齒輪箱溫度模型并進行預(yù)測,當(dāng)齒輪箱運行在正常工作狀態(tài)下,預(yù)測殘差較小,預(yù)測精度較高;當(dāng)齒輪箱發(fā)生故障時,數(shù)據(jù)特性將偏離正常工作狀態(tài),預(yù)測殘差明顯增大。將上述建模方法應(yīng)用于某機組7月份齒輪箱溫度傳感器接線故障實例,其中采用該機組1月到5月上旬共194 102條正常數(shù)據(jù)建模,采用包含故障時段的5月下旬到7月上旬共87 020條數(shù)據(jù)進行測試。變量與上述模型實驗選取變量一致,按照上述參數(shù)調(diào)優(yōu)方法,XGBoost預(yù)測結(jié)果如圖4所示。
圖4 XGBoost預(yù)測結(jié)果
在6月10號至7月6號出現(xiàn)XGBoost模型預(yù)測殘差過大問題。核對風(fēng)電機組運行日志,該機組在6月27號至7月7號頻繁出現(xiàn)齒輪箱軸溫變化異常并發(fā)出報警。風(fēng)電場運維人員在7月7號進行故障檢修并發(fā)現(xiàn)傳感器接線松動問題,在緊固傳感器接線后齒輪箱軸溫恢復(fù)正常。根據(jù)風(fēng)電機組控制原理,XGBoost模型較傳統(tǒng)閾值限超溫報警可提前發(fā)現(xiàn)齒輪箱軸溫異常。
在區(qū)域數(shù)據(jù)平臺通過預(yù)警模型監(jiān)測數(shù)十個風(fēng)場上千臺機組狀態(tài)時,如何實現(xiàn)準確的故障自動預(yù)警以提前采取相關(guān)聯(lián)的控制動作,是降低風(fēng)電場運維成本的關(guān)鍵。針對殘差序列進行分析處理,采用單一閾值或自適應(yīng)閾值超限報警方法往往存在時間不確定度問題。為了提高齒輪箱故障預(yù)警的可靠性和準確度,本文通過CUSUM控制圖構(gòu)造Change-Point方法,通過Change-Point方法進行殘差序列分析。
Change-Point算法是利用一定的統(tǒng)計指標或統(tǒng)計方法,對時間序列的狀態(tài)進行觀測,以便準確有效的估計出變點的位置。變點問題分連續(xù)形式和離散形式兩種[13],對于風(fēng)電機組運行數(shù)據(jù)來說是時間上的連續(xù),如若對樣本所有觀察點進行變點提取,應(yīng)采用連續(xù)形式。
自20世紀70年代以來,許多統(tǒng)計學(xué)家投入到變點問題研究領(lǐng)域,估計和檢測變點問題的方法也不斷發(fā)展完善[14-15],如最小二乘法、極大似然法、累積和法(Cumulative Sum, CUSUM)。CUSUM法是通過對觀測值與目標值之差的累積和來描點,因其方法簡潔有效,在經(jīng)濟學(xué)等領(lǐng)域得到了廣泛的應(yīng)用。假設(shè)在一段時間內(nèi)統(tǒng)計值高于全體均值,高于均值的數(shù)據(jù)量會持續(xù)累積,CUSUM控制圖呈現(xiàn)穩(wěn)步增長趨勢;相反,假設(shè)在一段時間內(nèi)統(tǒng)計值低于全體均值,低于均值的數(shù)據(jù)量同樣會持續(xù)累積,CUSUM控制圖呈現(xiàn)穩(wěn)步下降趨勢。某些數(shù)據(jù)特性在不能直觀地發(fā)現(xiàn)顯著變化,通過原始數(shù)據(jù)無法準確定位到變點時間域,而通過CUSUM控制圖累加數(shù)據(jù)特性后可總體定位到變點位置,本文選用CUSUM法實現(xiàn)Change-Point算法。
CUSUM的主要原理為假設(shè)數(shù)據(jù)模型:
xt=u(t)+εt,t=1,2,3,…,n
(12)
式中:u(t)是一個非隨機函數(shù);εt為線性過程??紤]比較簡單的情形,即u(t)只取兩個值:
(13)
式中:u1,u2和k*為未知量。變點k*的CUSUM估計定義為:
(14)
其中:
0≤γ≤1
(15)
圖5 Change-Point變點搜尋流程圖
使用CUSUM方法確定變點的總體位置,在搜尋變點位置時存在時間不確定度問題。為了解決不確定度問題,算法在實際應(yīng)用中使用了改進的CUSUM方法[16]。本文使用二分法進行分割搜索,通過CUSUM方法找到變點總體位置后進行二分法分割處理,通過計算置信度的大小定位變點發(fā)生區(qū)間,繼續(xù)使用二分法分割,直到準確搜尋到變點時刻。以此方法保證定位時刻精度,算法具體流程如圖5所示。本文使用Change-Point方法對XGBoost模型預(yù)測殘差序列進行變點分析,對變點進行原因回溯,以此分析狀態(tài)變化點深層次誘因。
風(fēng)電機組運行過程中,某些原因?qū)е慢X輪箱故障,故障發(fā)生在一個持續(xù)的時間序列中。通過上述方法構(gòu)建的Change-Point方法對上述模型預(yù)測殘差序列進行變點分析。Change-Point每一個數(shù)據(jù)窗口長度定義為10分鐘,將數(shù)據(jù)窗口精度設(shè)置為12,即找到變點的誤差為兩小時。引導(dǎo)分析限值設(shè)置為1 000,引導(dǎo)分析限值為每一次分析的間隔尺度,如第一次分析第1個數(shù)據(jù)點,則下一次分析第1 001個數(shù)據(jù)點。置信度限值設(shè)置為0.99,通過計算找到變點4個,其殘差序列變點分析圖如圖6所示。
圖6 殘差序列變點分析圖
利用CUSUM控制圖統(tǒng)計殘差序列的變化趨勢,殘差CUSUM控制圖如圖7所示,并對變點進行編號。
圖7 殘差CUSUM控制圖
根據(jù)風(fēng)電機組運行日志,圖7中Change-Point1為對齒輪箱散熱片進行定期清理的時間點。Change-Point2為6月10號22:35:00,Change-Point4為7月6號1:10:00,分別對應(yīng)圖5中傳感器接線松動和緊固傳感器接線時間點。Change-Point3是齒輪箱軸溫異常超限報警時間點,對應(yīng)6月27號23:40:00。該方法可準確定位到狀態(tài)變化時間點,且其CUSUM累積特性可規(guī)避因個別孤立的殘差較大的點導(dǎo)致的超限誤報現(xiàn)象,避免隨機因素的影響。核對該風(fēng)電機組運行數(shù)據(jù),在Change-Point2與Change-Point3時間段內(nèi)已出現(xiàn)數(shù)據(jù)特性變化異常,只是未觸發(fā)閾值限而引發(fā)報警。相對于機組控制系統(tǒng)閾值超溫報警,該方法可提前17天發(fā)現(xiàn)齒輪箱軸溫異常并發(fā)出報警,證明了該方法的有效性。
(1)本文基于SCADA運行數(shù)據(jù),采用相關(guān)性分析法和風(fēng)電機組控制機理提取與齒輪箱軸溫密切相關(guān)聯(lián)的變量,并增加部分分類變量共同作為模型輸入。利用XGBoost算法可建立齒輪箱正常工作狀態(tài)溫度模型,進行齒輪箱溫度預(yù)警。
(2)采用5種模型進行齒輪箱溫度預(yù)測模型實驗,最終得出將XGBoost算法應(yīng)用于齒輪箱溫度預(yù)測要優(yōu)于其它4類模型,具有預(yù)測精度和計算效率高,資源占用低的特點。該模型可提前發(fā)現(xiàn)齒輪箱軸溫異常。
(3)構(gòu)建了新的Change-Point算法,通過CUSUM控制圖實現(xiàn)Change-Point算法,利用Change-Point技術(shù)進行XGBoost模型預(yù)測殘差序列分析并給出變點。在齒輪箱軸溫故障實例中,該方法可準確定位狀態(tài)劣化時間點,回溯狀態(tài)劣化誘因。