王金軒,湯占軍,詹躍東,周盛山
(昆明理工大學(xué)信息工程與自動化學(xué)院,云南 昆明 650500)
風(fēng)能作為可再生能源,廣泛地存在于國內(nèi)外各個地區(qū),是當(dāng)前最具發(fā)展前景的能源之一[1]。風(fēng)力發(fā)電機一般裝設(shè)在風(fēng)能豐富的地區(qū),同時這類地區(qū)也具有高海拔、高濕度、低溫度等特點[2],風(fēng)力發(fā)電機葉片長期直接暴露在惡劣環(huán)境中,導(dǎo)致風(fēng)力發(fā)電機葉片時常發(fā)生結(jié)冰故障。葉片結(jié)冰除了直接影響風(fēng)力發(fā)電的經(jīng)濟性外,還威脅到風(fēng)力發(fā)電機周邊的安全以及設(shè)備的使用壽命[3]。
由上所述,葉片結(jié)冰影響嚴重,所以對葉片結(jié)冰故障進行檢測十分必要。文獻[4]采用深度全連接神經(jīng)網(wǎng)絡(luò)對風(fēng)機葉片結(jié)冰故障進行研究,采集風(fēng)力發(fā)電機運行數(shù)據(jù)集,將數(shù)據(jù)集輸入至深度全連接神經(jīng)網(wǎng)絡(luò)中進行訓(xùn)練,得到的結(jié)果即為結(jié)冰故障檢測結(jié)果。因為該方法的過程較為簡潔,導(dǎo)致該方法的檢測精度受到影響。文獻[5]提出基于特征選擇和XGBoost風(fēng)機葉片結(jié)冰故障檢測方法,該方法根據(jù)SCADA數(shù)據(jù),采用特征選擇算法對葉片早期結(jié)冰過程進行預(yù)測,根據(jù)預(yù)測結(jié)果結(jié)合XGBoost算法對葉片結(jié)冰故障進行檢測,但是該方法的數(shù)據(jù)較為單一,導(dǎo)致檢測精度不理想。文獻[6]提出基于棧式自編碼網(wǎng)絡(luò)風(fēng)機葉片結(jié)冰故障檢測方法,該方法首先采用非監(jiān)督方法度無標(biāo)簽的SCADA數(shù)據(jù)進行預(yù)處理。以預(yù)處理后的數(shù)據(jù)為基礎(chǔ),采用反向傳播算法對故障特征進行分類,完成風(fēng)機葉片結(jié)冰故障的檢測,但是該方法的泛化性不足,且未考慮樣本分布均衡性的問題,導(dǎo)致檢測結(jié)果的局限性較大。
基于以上問題,本文提出了以卷積神經(jīng)網(wǎng)絡(luò)為核心的風(fēng)機葉片結(jié)冰故障檢測模型。
近年來,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional neural network,CNN)取得了較多發(fā)展,經(jīng)常應(yīng)用于圖像識別[7]、語音識別[8]等方面。而在新提出的深度卷積神經(jīng)網(wǎng)絡(luò)GoogleNet中,1×1卷積核應(yīng)用帶來了新的研究方向,并且新激活函數(shù)Swish的提出,提高了新方法的有效性。
卷積神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)有:卷積層、激活層、池化層、dropout層和全連接層。其中最為核心的為卷積層。卷積層由一定大小和一定數(shù)量的卷積核組成,卷積核按照一定步幅移動進行卷積計算,最終獲得feature map,計算過程如圖1所示。
圖1 卷積計算過程
而當(dāng)輸入多個維度的時候,卷積核的數(shù)量則可以調(diào)整輸出維度,獲得多張feature map,此過程如圖2所示。
圖2 多維度卷積過程
在大小為n0×n0、維度為nf0的多維度平面上,使用nf1個大小為k×k×nf0的卷積核,進行步數(shù)為s的卷積運算,得到輸出的輸出結(jié)果為
(1)
式中,p表示零填充大小。當(dāng)不進行零填充卷積核k大小為1、步數(shù)s為1時,上式轉(zhuǎn)換為
[n,n,nf]=[n0,n0,nf1]
(2)
此時得到的新的矩陣輸出大小與原矩陣相同,而維度則由卷積核個數(shù)nf1決定,因此1×1卷積核的數(shù)量具有調(diào)整網(wǎng)絡(luò)維度的能力。
在卷積神經(jīng)網(wǎng)絡(luò)中,激活層通過激活函數(shù)引入非線性,此次研究選用的激活函數(shù)為Swish激活函。
如果feature map較大,影響運算速度并且還有可能造成過擬合。池化層通常用來縮小卷積得到的feature map,降低訓(xùn)練過程中參數(shù)數(shù)量,并且保留一定的空間不變性。常用有最大池化和平均池化。本文因為feature map相對較小和數(shù)據(jù)并沒有空間意義,所以棄用池化層。
Dropout層是通過棄置部分神經(jīng)元,防止過擬合,本文設(shè)置的dropout比例為0.4。全連接層可以將層間節(jié)點完全連接,綜合所有在卷積層提取到的特征。并且全連接層也可以作為分類器,通過softmax輸出檢測結(jié)果。葉片結(jié)冰故障檢測是二分類問題,所以通過softmax輸出的正常故障概率P0、P1為
(3)
(4)
式中,F(xiàn)0、F1均為連接層輸出。
SMOTE是一種通過合成少數(shù)類樣本,平衡多數(shù)類與少數(shù)類樣本的方法。其核心方式是從某個少數(shù)類樣本Xi附近選擇另一個少數(shù)類樣本Xj,在兩者連線上隨機選擇一點,作為新合成新的少數(shù)類樣本Xij。SMOTE過程如圖3所示。
圖3 SMOTE過程
而在大多數(shù)故障數(shù)據(jù)集中,因為故障并不會時常發(fā)生,故障樣本一般都為少數(shù)類樣本。在這種情況下,通過SMOTE合成一定數(shù)量的少數(shù)類樣本,可以有效提高模型的故障識別率。SMOTE合成比例是影響其效果的因素,比例過低時提高效果可能較小,比例過高時可能會更多的錯判正常樣本為故障樣本,減小整體準(zhǔn)確率[9]。
通過多指標(biāo)評價不平衡樣本的檢測結(jié)果,可以有效避免準(zhǔn)確率陷阱,同時多指標(biāo)也可以更明確地指導(dǎo)模型的修改方向。在不平衡數(shù)據(jù)集中,可以引入召回率、精確率、F1分數(shù)作為評價指標(biāo)。此次研究的主要目的為檢測風(fēng)力發(fā)電機葉片的結(jié)冰故障,所以以故障樣本作為正樣本,指標(biāo)中召回率代表的是所有故障樣本中被檢測出的故障樣本,也就是故障識別率;精確率代表著所有被檢測為故障的樣本確實為故障的概率;F1分數(shù)則是兩者的調(diào)和平均。樣本分類結(jié)果如表1所示。
表1 樣本分類表
指標(biāo)的具體計算如下所示:
準(zhǔn)確率
(5)
召回率
(6)
精確率
(7)
F1分數(shù)
(8)
從分類角度考慮,召回率與精確率是互斥的,假如在模型判別能力不變的情況下,提高召回率的同時會相對減少精確率,反之亦然。F1分數(shù)是平衡兩者的評價指標(biāo),優(yōu)先作為衡量模型效果的指標(biāo),其次是在故障檢測中更為重要的召回率。
本文的風(fēng)力發(fā)電機葉片結(jié)冰故障數(shù)據(jù)來源于2017年工業(yè)大數(shù)據(jù)競賽中15號和21號風(fēng)力發(fā)電機的真實運行的SCADA數(shù)據(jù)?;诖藬?shù)據(jù)建立的模型有一定現(xiàn)實意義。
數(shù)據(jù)有28個特征,包含發(fā)電量、風(fēng)速、發(fā)電機轉(zhuǎn)速等具有物理意義的特征,也包含日期、組數(shù)2個沒有訓(xùn)練意義的特征,同時還有3個時常為0值的噪聲特征。經(jīng)過基本數(shù)據(jù)處理,刪去上述5特征,從日期中提取小時數(shù)作為新特征,最終訓(xùn)練數(shù)據(jù)有24個有效特征。
15號風(fēng)力發(fā)電機SCADA數(shù)據(jù)有393886條樣本,21號風(fēng)力發(fā)電機SCADA數(shù)據(jù)有190494條樣本。刪去未標(biāo)記無效數(shù)據(jù),得到有效數(shù)據(jù)量如表2所示。
表2 SCADA數(shù)據(jù)表
將樣本打亂,按照70%、15%、15%的比例構(gòu)建訓(xùn)練集、驗證集、測試集,三集沒有重復(fù)部分。模型通過訓(xùn)練集訓(xùn)練,訓(xùn)練過程中保存驗證集效果最佳的網(wǎng)絡(luò)參數(shù),最終效果則以測試集得到的統(tǒng)計指標(biāo)為主。
基于卷積神經(jīng)網(wǎng)絡(luò)構(gòu)建的結(jié)冰故障檢測模型如圖4。
圖4 檢測模型結(jié)構(gòu)
模型首先通過多個1×1卷積核改變?nèi)~片結(jié)冰數(shù)據(jù)的維度,通過激活函數(shù)加入非線性,增強模型對葉片結(jié)冰這類非線性問題的表達能力。之后用Dropout層隨機棄置神經(jīng)元,使用Flatten將數(shù)據(jù)變成一維,最后通過全連接層輸出檢測結(jié)果。
當(dāng)卷積核數(shù)量不同時,得到的維度不同,非線性表達能力不同,會對模型效果造成不同的影響。本文首先使用Relu激活函數(shù)測試不同維度效果差別,訓(xùn)練過程Loss下降過程如圖5所示。
圖5 訓(xùn)練過程Loss值
圖5中,(A)、(B)、(C)分別表示1維、5維與9維。隨著卷積核數(shù)量的增加,維度升高,Loss下降幅度越大,最終數(shù)值越小。訓(xùn)練過程保存最優(yōu)模型,以故障數(shù)據(jù)作為正樣本,在不同維度模型下,對測試集檢測后,統(tǒng)計的評價指標(biāo)如表3所示。
表3 多維度對比表
如表3所示,最初1維2維時,效果較差,準(zhǔn)確率僅在95%左右。故障樣本F1分數(shù)較低,40%以下的召回率表明,多數(shù)故障并沒有被檢測出來。隨著卷積核數(shù)量增加,維度升高,模型效果逐漸提升,當(dāng)維度為9的時候,準(zhǔn)確率、召回率、精確率與F1分數(shù)均達到最大值。從1維到9維,準(zhǔn)確提升了5.7%,F(xiàn)1分數(shù)提高了74.44,說明通過提高維度,能有效地提高檢測效果。10維時,各項指標(biāo)反而有所下降,說明維度升高提高模型效果有一定限制。
為了觀察泛化性變化,訓(xùn)練集和驗證集不變,以21號風(fēng)力發(fā)電機所有SCADA數(shù)據(jù)為測試集進行泛化性測試實驗,模型評價指標(biāo)如表4所示。
表4 多維度泛化性對比表
從表4中的數(shù)據(jù)可以看出,提高維度明顯提高了21號風(fēng)力發(fā)電機SCADA數(shù)據(jù)檢測的F1分數(shù)與召回率。當(dāng)維度升高到4維時,F(xiàn)1分數(shù)大于20之后,F(xiàn)1分數(shù)隨著維度升高處于波動狀態(tài),提高維度并沒有持續(xù)提高F1分數(shù)和召回率。而且在表3中表現(xiàn)出色的9維,在泛化性測試中卻表現(xiàn)相對較差。
如果既需要獲得15號風(fēng)力發(fā)電機較好的檢測數(shù)據(jù),又需要保證對21號風(fēng)力發(fā)電機有足夠的泛化性,必須改進模型。并且在表3的9維下得到的評價指標(biāo)中,召回率為86%左右,代表著有14%故障并沒有被檢測出來,也存在改進空間。
為了更為全面地描述模型的性能,與其它檢測模型進行對比,使用K近鄰(KNN)、支持向量機(SVM)、深度置信網(wǎng)絡(luò)(DBN)模型與本模型進行對比,結(jié)果如表5所示。
表5 多模型對比表
從表5的對比結(jié)果中可以看出,K近鄰算法模型獲得了較低的召回率,幾乎沒有找出故障,且F1分數(shù)較低,說明該模型的檢測有效性較低。而支持向量機算法模型的檢測效果優(yōu)于K近鄰算法模型,但是召回率也較低,F(xiàn)1分數(shù)表現(xiàn)不佳。深度置信網(wǎng)絡(luò)作為深度學(xué)習(xí)算法,處理非線性問題能力較強,相對于K近鄰和支持向量機模型,取得了較高的F1分數(shù),并且50%左右的召回率表示深度置信網(wǎng)絡(luò)模型具有一定故障檢測能力,但是與本文提出的模型相比,整體統(tǒng)計指標(biāo)都相對較低。說明本文提出的基于卷積神經(jīng)網(wǎng)絡(luò)的風(fēng)力發(fā)電機葉片結(jié)冰故障檢測模型,明顯優(yōu)于其余三種算法模型。
本文構(gòu)建了基于卷積神經(jīng)網(wǎng)絡(luò)風(fēng)力發(fā)電機葉片結(jié)冰故障檢測模型,檢測真實運行的風(fēng)力發(fā)電機SCDAD數(shù)據(jù)。通過改變1×1卷積核數(shù)量,提高模型的故障檢測效果,增強對風(fēng)力發(fā)電機葉片結(jié)冰故障這類非線性問題檢測能力。實驗選取了獲得了較好效果的維度,之后使用Swish激活函數(shù)和SMOTE,有效的提高了模型多角度綜合評價指標(biāo),最終取到較好的檢測結(jié)果,即99.59%的準(zhǔn)確率和96.80的故障樣本F1分數(shù)。并且故障樣本召回率表明,模型可以檢測97.44%的故障,具有較好的故障檢測能力。