王惠中,喬林翰,賀珂珂,段 潔
(蘭州理工大學(xué)電氣工程與信息工程學(xué)院,甘肅 蘭州 730050)
牽引電機(jī)以其結(jié)構(gòu)簡(jiǎn)單、維修方便、啟動(dòng)轉(zhuǎn)矩大等特點(diǎn)而被廣泛應(yīng)用。對(duì)其進(jìn)行早期狀態(tài)監(jiān)測(cè),變傳統(tǒng)定期維修為預(yù)知維修,具有較好的經(jīng)濟(jì)價(jià)值和社會(huì)價(jià)值。
目前,電機(jī)振動(dòng)信號(hào)分析仍然是非電信號(hào)故障識(shí)別的主要方法。該方法大多采用安裝加速度計(jì)的方式進(jìn)行采樣。一旦電機(jī)出現(xiàn)軸承內(nèi)圈或外圈故障,將產(chǎn)生與正常運(yùn)行狀態(tài)不同的特征頻率[1]。
人工神經(jīng)網(wǎng)絡(luò)(artificial neural network,ANN)以其良好的非線性映射、并行處理能力、泛化能力、容錯(cuò)性、自適應(yīng)性等優(yōu)點(diǎn),被廣泛應(yīng)用于信息融合、故障診斷等領(lǐng)域。文獻(xiàn)[2]采用小波神經(jīng)網(wǎng)絡(luò)進(jìn)行故障診斷,并通過遺傳算法優(yōu)化網(wǎng)絡(luò)參數(shù),但該方法易陷入局部極優(yōu)。文獻(xiàn)[3]提出自適應(yīng)模糊神經(jīng)決策系統(tǒng),但該方法需要監(jiān)測(cè)三相電流,硬件消耗較大。文獻(xiàn)[4]采用信息融合的徑向基函數(shù)(radical basis function,RBF)神經(jīng)網(wǎng)絡(luò)進(jìn)行電機(jī)故障診斷,但該方法數(shù)據(jù)集太小,僅止于理論研究。
本文提出采用一種K折交叉驗(yàn)證(K-fold cross validation,K-CV)的方法對(duì)特征樣本集進(jìn)行劃分,避免了神經(jīng)網(wǎng)絡(luò)存在的過擬合問題。交叉驗(yàn)證算法從多方向?qū)W習(xí)樣本,可有效避免局部極小。
鑒于采集數(shù)據(jù)具有冗余性和和相關(guān)性,首先對(duì)數(shù)據(jù)進(jìn)行降維處理,以期提高分類器的故障診斷能力。
主成分分析(principal component analyses,PCA)是一種常用的數(shù)據(jù)分析方法。它通過線性變換,使原始數(shù)據(jù)在各維度上線性無(wú)關(guān),通??捎糜谔崛?shù)據(jù)主要特征分量以及高維數(shù)據(jù)降維[5]。
一般而言,機(jī)器學(xué)習(xí)中的數(shù)據(jù)集表示為向量。在實(shí)際工程應(yīng)用中,通常需要處理高維數(shù)據(jù),但機(jī)器學(xué)習(xí)的資源消耗太大,因此必須對(duì)數(shù)據(jù)進(jìn)行降維。降維意味著信息丟失。鑒于實(shí)際數(shù)據(jù)本身存在相關(guān)性,在降維時(shí)應(yīng)盡量降低信息的損失。PCA的本質(zhì)是以方差最大的方向作為主要特征,并使數(shù)據(jù)在各方向“離相關(guān)”,使其在不同正交方向上不再具有相關(guān)性[6]。
在K折交叉驗(yàn)證中,初始采樣后,將樣本集分割為K個(gè)子樣本。其中,(K-1)個(gè)樣本用作訓(xùn)練數(shù)據(jù),剩下的1個(gè)樣本作為驗(yàn)證集。交叉驗(yàn)證重復(fù)K次,每個(gè)子樣本驗(yàn)證一次,對(duì)K次結(jié)果取平均,得到單一估測(cè)值[7]。該方法的優(yōu)勢(shì)在于能同時(shí)重復(fù)運(yùn)用子數(shù)據(jù)集進(jìn)行訓(xùn)練和驗(yàn)證,以遍歷每次的結(jié)果。其中,10折交叉驗(yàn)證(10-fold cross validation,10-CV)最為常用。
10-CV具體操作步驟如下。首先,將原始數(shù)據(jù)集按照K值大小劃分為訓(xùn)練集與測(cè)試集。10-CV取數(shù)據(jù)集的十分之一作為測(cè)試集,其余為訓(xùn)練集。然后,將訓(xùn)練集劃分為10等份,取其中隨機(jī)9份用作訓(xùn)練,所剩1份作為驗(yàn)證集。重復(fù)以上步驟10次,使得驗(yàn)證集遍歷所有訓(xùn)練集。此時(shí),對(duì)每次測(cè)試集的表現(xiàn)結(jié)果進(jìn)行綜合分析,通常對(duì)其準(zhǔn)確率取平均值。最后,以此平均值作為測(cè)試集的最終表現(xiàn)。
1.3.1初始化權(quán)值的改進(jìn)方法
傳統(tǒng)神經(jīng)網(wǎng)絡(luò)從(0,1)正態(tài)分布中隨機(jī)選取權(quán)值。三種最常用的激活函數(shù)分別是Logistic Sigmoid、Hyperbolic Tangent和Linear。其函數(shù)圖像和導(dǎo)數(shù)圖像如圖1所示。在使用Sigmoid函數(shù)時(shí),當(dāng)輸出接近0或1 的位置,權(quán)值的變化只能引起很小的更新量,學(xué)習(xí)速度慢,隱層容易出現(xiàn)飽和。對(duì)于隱層,無(wú)法通過cost函數(shù)進(jìn)行改進(jìn)。
圖1 常用激活函數(shù)圖像及其導(dǎo)數(shù)示意圖Fig.1 Schematic diagram of common activation functions and their derivatives
在激活函數(shù)中:
z=∑jwjxj+b
1.3.2隨機(jī)梯度下降算法
相比于傳統(tǒng)的梯度下降算法,隨機(jī)梯度下降法(stochastic gradient descent,SGD)引入了mini-batch的概念,即每次更新參數(shù)時(shí)選取n個(gè)樣本(n一般為10),從而在樣本數(shù)量較大時(shí)提高訓(xùn)練速度[8]。但由于該算法本身迭代次數(shù)較多,且每次迭代并非向著整體最優(yōu)化的方向,因此其解空間搜索過程比較盲目。而通過K折交叉驗(yàn)證的方法,恰好彌補(bǔ)了其準(zhǔn)確度差、非全局最優(yōu)的缺陷[9]。
式(2)和式(3)分別表示傳統(tǒng)梯度下降算法的實(shí)現(xiàn)過程與隨機(jī)梯度下降算法的實(shí)現(xiàn)過程。
(1)
假設(shè):
Δv=-ηC
則有:
ΔC≈-ηCc=-ηk≤0
因此,C是逐漸減小的。
在神經(jīng)網(wǎng)絡(luò)中,C為因變量,權(quán)重和偏向?yàn)樽宰兞俊?/p>
(2)
隨機(jī)梯度下降算法如式(3)所示。觀察式(3)可以發(fā)現(xiàn),該方法每次投入的是一組數(shù)據(jù)集,因此能提高訓(xùn)練速度。
(3)
本文利用Eclipse+Anaconda,在Pydev環(huán)境下,對(duì)所提出的方法進(jìn)行仿真。仿真所采用的數(shù)據(jù)來(lái)自美國(guó)凱斯西楚大學(xué)軸承實(shí)驗(yàn)室網(wǎng)站。仿真過程如下。
通過電火花加工(electrical discharge machining,EDM)對(duì)電機(jī)軸承的內(nèi)圈、外圈故障進(jìn)行模擬。 分別在內(nèi)滾道和外滾道處引入直徑為0.177 8 mm的故障。 故障軸承重新安裝到測(cè)試電機(jī)中,并記錄電機(jī)空載(電機(jī)速度為1 797 r/min)的振動(dòng)數(shù)據(jù)。
使用加速度計(jì)收集振動(dòng)數(shù)據(jù)。將加速度計(jì)放置在電機(jī)殼體的驅(qū)動(dòng)端和風(fēng)扇端的12點(diǎn)鐘位置,并連接到具有磁性底座的殼體。使用16通道DAT記錄儀收集振動(dòng)信號(hào),并在Matlab環(huán)境中進(jìn)行后處理。所有數(shù)據(jù)文件采用Matlab(* .mat)格式。選用電機(jī)牽引端12點(diǎn)鐘位置,以1 200次/s進(jìn)行數(shù)據(jù)采樣。選取每組數(shù)據(jù)的前100 000個(gè)采樣點(diǎn),一共3組,組成樣本集。
對(duì)樣本集進(jìn)行歸一化等預(yù)處理及PCA降維,得到特征向量;將每100 000點(diǎn)數(shù)據(jù)重新排列,構(gòu)造(1 000,100)的矩陣,并將3個(gè)矩陣組合成(3 000,100)矩陣,對(duì)該矩陣進(jìn)行降維操作。由于數(shù)據(jù)預(yù)處理時(shí)已經(jīng)進(jìn)行歸一化,此時(shí)不再需要進(jìn)行白化處理。為簡(jiǎn)便起見,直接采用sklearn中所包含的mode,在sklearn中載入decomposition。為使得每一個(gè)主成分的貢獻(xiàn)率達(dá)到最高,此處設(shè)置n_comnents為mle,即自動(dòng)選擇所保留的特征個(gè)數(shù)。采用sklearn方法進(jìn)行PCA降維前后的效果對(duì)比,如圖2所示。
圖2 PCA數(shù)據(jù)集示意圖Fig.2 Schematic diagram of PCA data set
由圖2可以看出,該方法對(duì)100維數(shù)據(jù)的降維操作有效、可行。此時(shí)所得數(shù)據(jù)為之前100維數(shù)據(jù)降維后的87維數(shù)據(jù),則(3 000,87)矩陣的每1 000行表示一種狀態(tài),共有3種狀態(tài)。由此可得整理數(shù)據(jù)集的方法如下。
①構(gòu)造矩陣y(3 000,1)作為x的標(biāo)記。其中每1 000行為一種標(biāo)記,表示電機(jī)的一種運(yùn)行狀態(tài),共三種狀態(tài)(3 000行):正常運(yùn)行(0.0),內(nèi)圈故障(1.0),外圈故障(2.0)。
②將x和y合并成新矩陣,然后將每一行作為一個(gè)樣本去除順序干擾,即洗牌(shuffle)操作。
③此時(shí),相當(dāng)于已經(jīng)對(duì)x作好標(biāo)記,則重新拆分x和y。
④以x作為樣本集,對(duì)x進(jìn)行K折交叉驗(yàn)證,劃分訓(xùn)練集和測(cè)試集??梢詫⒚恳涣凶鳛橐粋€(gè)樣本,則有3 000個(gè)樣本,每個(gè)樣本包含88個(gè)數(shù)據(jù)。定義一個(gè)函數(shù)splitdataset切分樣本集,若10折交叉,則split_size取10。
取得帶標(biāo)記的訓(xùn)練集和測(cè)試集后,將其輸入已訓(xùn)練好的神經(jīng)網(wǎng)絡(luò),即可完成故障分類[10]。
通過多次試驗(yàn),設(shè)定神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)為(87,91,3)。Pydev環(huán)境下,優(yōu)化后的神經(jīng)網(wǎng)絡(luò)與傳統(tǒng)反向轉(zhuǎn)播(back propagation,BP)神經(jīng)網(wǎng)絡(luò)的電機(jī)故障診斷仿真結(jié)果對(duì)比如表1所示。從表1可以看出,優(yōu)化后的神經(jīng)網(wǎng)絡(luò)在各方面均優(yōu)于傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)。其中,傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)算法的總體精確度為67%;優(yōu)化后神經(jīng)網(wǎng)絡(luò)算法的總體精確度為73%。
表1 故障診斷仿真結(jié)果對(duì)比(Pydev)Tab.1 Comparison of the fault diagnosis simulation results(Pydev) %
在Matlab環(huán)境下,使用核函數(shù)為Gaussian的支持向量機(jī)(support vector machine,SVM)進(jìn)行分類。該方法首先設(shè)置貢獻(xiàn)率為95%,對(duì)數(shù)據(jù)進(jìn)行降維,然后分別使用10折交叉驗(yàn)證的方法與隨機(jī)劃分的方法劃分訓(xùn)練集,最后分別對(duì)使用10折交叉驗(yàn)證與未使用交叉驗(yàn)證所得的結(jié)果進(jìn)行比較。在Matlab環(huán)境下,SVM采用交叉驗(yàn)證前后的故障分析仿真結(jié)果對(duì)比如表2所示。對(duì)比結(jié)果表明,交叉驗(yàn)證法在一定程度上會(huì)消耗更多時(shí)間,但能大大提高故障診斷準(zhǔn)確率。
表2 故障診斷仿真結(jié)果對(duì)比(Matlab)Tab.2 Comparison of fault diagnosis simulation results(Matlab)
本文針對(duì)牽引電機(jī)內(nèi)圈、外圈故障分類問題,引用了K折交叉驗(yàn)證與隨機(jī)梯度下降相結(jié)合的神經(jīng)網(wǎng)絡(luò)方法,進(jìn)行電機(jī)故障診斷。通過仿真發(fā)現(xiàn):交叉驗(yàn)證會(huì)在一定程度上影響訓(xùn)練速度,但能夠避免陷入局部最小,并增強(qiáng)模型的泛化能力。隨機(jī)梯度下降搜尋解空間比較盲目,有可能導(dǎo)致結(jié)果陷入局部極小,存在過擬合風(fēng)險(xiǎn),但是能大大提高大樣本的訓(xùn)練速度。仿真結(jié)果證明,兩種算法的結(jié)合可以互相取長(zhǎng)補(bǔ)短:通過交叉驗(yàn)證,解決了SGD帶來(lái)的局部極小與過擬合的問題;通過SGD,彌補(bǔ)了交叉驗(yàn)證造成的硬件消耗與時(shí)間消耗。與電機(jī)機(jī)械故障診斷的傳統(tǒng)分類方法相比,本文所采用的方法效果更好,對(duì)工程應(yīng)用有一定指導(dǎo)意義。
參考文獻(xiàn):
[1] 沈標(biāo)正.電機(jī)故障診斷技術(shù)[M].北京:機(jī)械工業(yè)出版社,2001.
[2] 錢華明,王雯升.遺傳小波神經(jīng)網(wǎng)絡(luò)及在電機(jī)故障診斷中的應(yīng)用[J].電子測(cè)量與儀器學(xué)報(bào),2009,23(3):81-86.
[3] BALLAL M S,KHAH Z J,SURYAWANSHI H M,et al.Adaptive neural fuzzy inference system for the detection of inter-turn insulation and bearing wear faults induction motor[J].IEEE Transactions on Industrial Electronics,2007,54(1):250-258.
[4] DING S,CHANG X H,WU Q H.Fault diagnosis of induction motors based on RBF neural network[J].Applied Mechanics and Materials,2014(11):85-88.
[5] 許凡,方彥軍,張榮.基于EEMD模糊熵的PCA-GG滾動(dòng)軸承聚類故障診斷[J].計(jì)算機(jī)集成制造系統(tǒng),2016,22(11):2631-2642.
[6] ARAKI T,IKEDA N,SHUKLA D,et al.PCA-based polling strategy in machine learning framework for coronary artery disease risk assessment in intravascular ultrasound:a link between carotid and coronary grayscale plaque morphology[J].Computer Methods & Programs in Biomedicine,2016,128(22):137-158.
[7] WONG T T.Parametric methods for comparing the performance of two classification algorithms evaluated by K-fold Cross Validation on multiple data sets[J].Pattern Recognition,2017,65(11):97.
[8] 陳振宏,蘭艷艷,郭嘉豐,等.基于差異合并的分布式隨機(jī)梯度下降算法[J].計(jì)算機(jī)學(xué)報(bào),2015,38(10):2054-2063.
[9] BOTTOU L.Large-scale machine learning with stochastic gradient descent[M]//Proceeding of COMPSTAT’2010.New York:Physica-Verlag HD,2010.
[10]LIU Y,GAO J,LIU D.Design of software system of mobile robot with mixed programming based on eclipse+pydev[J].Communications in Computer & Information Science,2011(164):231-238.