趙文俊,張 強,劉 磊,宋家友
(1.空軍第一航空學(xué)院 航空電子工程系,河南 信陽8 464000;2.鄭州大學(xué) 信息工程學(xué)院,鄭州 450001)
基于AdaBoost與GABP的模擬電路軟故障診斷方法
趙文俊1,張 強1,劉 磊2,宋家友2
(1.空軍第一航空學(xué)院 航空電子工程系,河南 信陽8 464000;2.鄭州大學(xué) 信息工程學(xué)院,鄭州 450001)
針對容差模擬電路軟故障診斷精度較低的問題,提出了一種基于AdaBoost與GABP的組合分類器診斷方法;首先,在Pspice中對故障模式進行Monte-Carlo分析,并利用波形有效點提取法提取故障特征,在此基礎(chǔ)上,做歸一化處理構(gòu)建神經(jīng)網(wǎng)絡(luò)的原始樣本;其次,利用GA算法與L-M算法組合優(yōu)化BP網(wǎng)絡(luò)構(gòu)建GABP分類器;最后,利用AdaBoost算法對GABP單分類器進行迭代提升,構(gòu)建AdaBoost-GABP組合分類器;診斷實例的結(jié)果表明,該方法比傳統(tǒng)的單分類器診斷方法具有更高的診斷精度、更低的絕對誤差,能夠克服單分類器容易陷入局部最優(yōu),診斷結(jié)論不可信的缺陷。
模擬電路軟故障診斷;AdaBoost算法;GA算法; Monte-Carlo分析;組合分類器
模擬電路由于元件參數(shù)具有容差并且可及節(jié)點較少等原因?qū)е鹿收显\斷難度極大[1]。傳統(tǒng)的模擬電路故障診斷通常采用基于解析模型的方法[2],但復(fù)雜航空裝備精確的解析模型往往是不可能建立的,并且模型與對象之間逼近度難以確定,這就導(dǎo)致該方法診斷精度較低,診斷結(jié)論不可信[3]。
為了克服傳統(tǒng)方法的缺陷和不足,各種基于模式識別理論的智能診斷方法被提出,極大地提高了模擬電路故障診斷精度和效率[4]。目前,許多專家學(xué)者都對此做了深入研究。宋國明、王厚軍[5]利用提升小波變換法提取電路的故障特征,然后采用SVM分類器進行故障診斷,該方法改善了故障特征提取的質(zhì)量,提高了故障分類的精度。郭陽明、冉從寶[6]利用遺傳算法來確定BP神經(jīng)網(wǎng)絡(luò)初始權(quán)值的局部解空間,然后利用L-M方法再搜索權(quán)值的精確解,最后利用優(yōu)化后的BP網(wǎng)絡(luò)進行故障診斷,該方法克服了傳統(tǒng)BP網(wǎng)絡(luò)容易陷入局部最小值的缺陷,提高了BP網(wǎng)絡(luò)的診斷能力。肖迎群、何怡剛[7]利用小波分析和主元分析方法進行故障特征提取,并利用脊波網(wǎng)絡(luò)進行故障診斷,提高了傳統(tǒng)小波網(wǎng)絡(luò)對高維故障數(shù)據(jù)的處理能力。
以上方法都是建立在單分類器基礎(chǔ)上的,而單分類器在分類時,實際上都是在局部空間內(nèi)從一個起點出發(fā)利用各種規(guī)則搜索最優(yōu)解,有可能會陷入局部最優(yōu)的缺陷中[8]。這就導(dǎo)致診斷結(jié)果不可信,并且誤差較高,精度較低[9]。針對此問題,本文一方面利用GA算法和L-M算法組合優(yōu)化BP網(wǎng)絡(luò),改善其拓撲結(jié)構(gòu)、提高其收斂速率;另一方面,引入AdaBoost算法對單分類器進行提升,得到具有互補性和多樣性的組合分類器。在分類時該組合分類器可以在解空間中從不同點出發(fā)搜索最優(yōu)解,并融合基分類器的分類結(jié)果,從而提高診斷精度。
模擬電路發(fā)生的故障很大一部分是軟故障,即元件參數(shù)偏離正常取值范圍而產(chǎn)生的故障[10]。本文利用波形有效點提取法提取電路的故障特征,并以此構(gòu)建神經(jīng)網(wǎng)絡(luò)的原始樣本。
模擬電路元件的容差范圍一般是標(biāo)稱值的±5%,只要偏離了此范圍就會發(fā)生軟故障。以標(biāo)稱值為10 k的電阻R為例說明本文對軟故障建模的思路。
1)當(dāng)R在[9.5 k,10.5 k]范圍變化時,R處于正常狀態(tài)。
2)當(dāng)R大于10.5 k時認為電路發(fā)生了偏高軟故障,這種故障一般在大于標(biāo)稱值50%時比較明顯,因此可以選取15 k為這種故障的模型,同時對這種故障設(shè)置10%的波動范圍,即該故障的取值范圍為[13.5 k,16.5 k],這種設(shè)置可以模擬軟故障連續(xù)變化的性質(zhì)。
3)當(dāng)R小于9.5 k時認為電路發(fā)生了偏低故障,同理,這種故障一般在低于標(biāo)稱值50%時對電路的影響比較明顯,因此,可以選取5 k為這種偏低故障的模型,同樣設(shè)置10%的波動范圍來模擬軟故障的連續(xù)性[11]。
Monte-Carlo分析是一種隨機模擬分析法,可以模擬電路的容差效應(yīng)[12]。本文Monte-Carlo分析的工具是OrCAD中集成的Pspice,利用Pspice中的模型編輯工具Model Editor可以對軟故障建模并設(shè)置容差范圍、概率分布。電阻的模型編輯語句為model Rbreak RES (R=1DEV/Gauss=10%),電容的模型編輯語句為model Cbreak CAP (C=1 DEV/Gauss=5%),概率分布都設(shè)置為高斯分布,因為這更加符合實際情況。
利用Pspice可以把分析之后的波形數(shù)據(jù)導(dǎo)出成“.txt”.文件,這些文件可以導(dǎo)入到Matlab中進行分析和預(yù)處理,從而提取故障特征[13]。本文采用波形有效點提取法提取故障特征,即提取每種故障模式Monte-Carlo分析后輸出節(jié)點電壓響應(yīng)波形中各區(qū)間分界點的值,將其作為故障特征數(shù)據(jù)。
AdaBoost通過反復(fù)抽取訓(xùn)練樣本中的部分實例組成新的訓(xùn)練集合,并在這些訓(xùn)練集合上對單分類器進行訓(xùn)練構(gòu)成多個分類器的組合。訓(xùn)練集合中的樣本有差異,因此,分類器具有多樣性。同時,AdaBoost算法在每次迭代的過程中可自適應(yīng)改變集合中每個樣本的權(quán)值,使基分類器能夠始終關(guān)注那些分類錯誤的樣本,因此,基分類器之間具有互補性。這兩種性質(zhì)使得組合分類器比單分類器具有更高的正確率[15]。算法的具體過程如下:
1)對原始樣本中每個實例均勻分配權(quán)重,公式為:
(1)
其中:wi0是第i個實例的初始權(quán)值,N是實例總數(shù)。初始權(quán)重確定后,對原始樣本抽樣得到一個新訓(xùn)練樣本,并采用一種分類模型在訓(xùn)練樣本上訓(xùn)練得到一個弱分類器。
2)利用訓(xùn)練得到的單分類器對整個原始樣本進行分類,并計算該分類器的分類錯誤率,錯誤率的計算公式為:
(2)
其中:ε是該分類器分類錯誤率,wj是第j個實例的權(quán)重,xj是第j個實例,yj是第j個實例的類標(biāo)簽,C(xj)是該分類器對實例xj的分類結(jié)果,I(A)是指示函數(shù),具體的取值情況如式(3)所示。
(3)
分類器錯誤率計算之后,可以得出該基分類器的重要性:
(4)
其中:α是該分類器的重要性,當(dāng)錯誤率趨近1時,分類器的重要性為負無窮,錯誤率趨近0是,分類器的重要性趨近正無窮。
3)利用基分類器對原始樣本中所有實例的分類結(jié)果更新樣本權(quán)重,AdaBoost中權(quán)重更新算法可以用式(5)表示。
(5)
其中:wi(j+1)是第i個實例在第j+1次迭代之后的權(quán)重,wi(j)是第i個實例在第j次迭代后的權(quán)重,Zj是規(guī)范化因子,用于保證∑iwi(j + 1)= 1。從式(5)可以看出,當(dāng)?shù)趈次得到的基分類器對實例xi分類正確時,該實例的權(quán)重在更新后就會下降,錯誤時,權(quán)重則會增加。
4)反復(fù)執(zhí)行2)和3)直到滿足迭代次數(shù)。
5)對基分類器加權(quán),構(gòu)建組合分類器。AdaBoost算法利用分類器的重要性進行加權(quán)投票[16],公式為:
(6)
其中:C*(x)是樣本x的最終分類結(jié)果。式(6)表示對每個基分類器分類結(jié)果進行加權(quán),并把加權(quán)總和值最大的類標(biāo)簽作為最終類別。
傳統(tǒng)BP網(wǎng)絡(luò)容易陷入局部極小值,并且收斂速度很慢[17]。針對此問題,本文對BP網(wǎng)絡(luò)做兩方面的優(yōu)化以構(gòu)建GABP分類器,一方面利用GA的全局搜索能力優(yōu)化BP網(wǎng)絡(luò)的拓撲結(jié)構(gòu)和參數(shù);另一方面,利用L-M算法(Levenberg-Marquardt)訓(xùn)練網(wǎng)絡(luò),以減少網(wǎng)絡(luò)迭代次數(shù),提高收斂速度。
利用GA優(yōu)化BP網(wǎng)絡(luò)的具體步驟如下:
1)按照1.3節(jié)中的方法提取故障特征,在Matlab中預(yù)處理之后組成原始樣本。
2)編碼構(gòu)成染色體。在優(yōu)化網(wǎng)絡(luò)的拓撲結(jié)構(gòu)時采用二進制編碼,在優(yōu)化網(wǎng)絡(luò)的權(quán)值、閾值等參數(shù)時采用實數(shù)編碼。具體編碼形式如圖1、圖2所示。
圖1 隱層數(shù)、隱層節(jié)點數(shù)的二進制編碼
圖1中,L是隱層個數(shù),當(dāng)β1β2都為0時隱層只有一層。l1表示第一層隱層的節(jié)點數(shù),l2是第二層隱層的節(jié)點數(shù)。
圖2 權(quán)值、閾值的實數(shù)編碼圖
實數(shù)編碼即參數(shù)用十進制表示,這樣可縮短編碼長度。圖2中各個參數(shù)代表的意義如表1所示。
表1 BP網(wǎng)絡(luò)參數(shù)表
3)設(shè)置遺傳操作參數(shù):種群規(guī)模、遺傳代數(shù)、選擇方法、交叉概率px、變異概率pm等。產(chǎn)生規(guī)模為N的按照上訴編碼規(guī)則的染色體,構(gòu)成N個網(wǎng)絡(luò)個體。
4)利用訓(xùn)練樣本訓(xùn)練N個網(wǎng)絡(luò)得到輸出,根據(jù)適應(yīng)度函數(shù)計算每個網(wǎng)絡(luò)的適應(yīng)度。適應(yīng)度的計算公式為:
(7)
fit=(objv+δm)-1
(8)
式(7)中,objv是目標(biāo)函數(shù),m是訓(xùn)練樣本中數(shù)據(jù)對的個數(shù),n是輸出層節(jié)點數(shù),y(k)是第k個樣本的期望輸出,yi(k)是第k個樣本的網(wǎng)絡(luò)實際輸出。式(8)中,fit是適應(yīng)度,δm是為了避免分母為零而添加的一個極小量。
5)根據(jù)適應(yīng)度大小對所有個體進行選擇操作,選擇概率為:
(9)
其中:pi是第i個個體被選擇的概率,fiti是第i個個體的適應(yīng)度大小,N是種群規(guī)模。
6)利用交叉概率px對個體進行交叉操作,利用變異概率pm進行突變操作以產(chǎn)生下一代新個體,并把新個體插入到舊種群中去,產(chǎn)生進化后的新種群。
7)判斷是否達到停止條件,否則轉(zhuǎn)入4)繼續(xù)迭代,直到找到滿意個體。
傳統(tǒng)的梯度下降法在尋找最優(yōu)值時,梯度越大下降越快,當(dāng)搜索到達最優(yōu)值附近時,由于梯度接近零,此時下降速度變的非常緩慢。而L-M算法在梯度下降法的基礎(chǔ)上加入牛頓搜索法,使得當(dāng)搜索到達最優(yōu)值附近時依然可以得到一個理想的搜索方向,提高了網(wǎng)絡(luò)的收斂速度[18]。L-M算法之所以能夠具有上述優(yōu)點,關(guān)鍵在于改進了權(quán)值計算公式:
Δw=(JTJ+μI)-1JTe
(10)
其中:e是訓(xùn)練過程中的誤差向量,J是誤差對權(quán)值微分的雅克比矩陣,μ是平滑因子,使算法在梯度下降和高斯-牛頓法之間達到平衡。
目前,單分類器分類性能已經(jīng)到了技術(shù)瓶頸[19],因此,本文從組合分類器的角度出發(fā),把GABP網(wǎng)絡(luò)與AdaBoost算法相結(jié)合構(gòu)建組合分類器,即AdaBoost-GABP分類器,構(gòu)建該分類器的過程可用圖3表示。
圖3 構(gòu)建AdaBoost-GABP組合分類器流程圖
下面以一個差分放大電路為例說明本文方法診斷模擬電路軟故障的具體過程,并驗證本文方法的可行性和有效性。
電路在OrCAD中的Pspice中建模,原理圖如圖4所示。
圖4 差分放大電路原理圖
5.1.1 故障特征提取
采用1.3節(jié)中的方法,提取波形在0.2 μs、0.22 μs、0.24 μs、0.26 μs、0.32 μs、0.36 μs、0.38 μs處的電壓值作為故障特征數(shù)據(jù)。
5.1.2 構(gòu)建故障樣本
通過靈敏度分析可知,電路中的R1、R2、R3、C發(fā)生故障后對電路影響較大,并且在10次Monte-Carlo分析后可知R3偏高故障對輸出幾乎無影響。綜上所述,本文待診斷的故障模式及其編碼可用表2表示。
從表2可知,本文故障模式共8種,因此,10次Monte-Carlo分析后故障樣本總共有80組,其中,56組作為訓(xùn)練樣本,24組作為測試樣本。
樣本在輸入神經(jīng)網(wǎng)絡(luò)之前必須進行歸一化處理,歸一化公式為:
(10)
(11)
其中:xmid表示每組數(shù)據(jù)的中間值,xi*是歸一化后的數(shù)據(jù)。
表2 待診斷故障及其編碼表
5.1.3 利用GA優(yōu)化BP構(gòu)建單分類器
根據(jù)第3節(jié)中的方法利用GA分別優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的拓撲結(jié)構(gòu)和權(quán)值、閾值。在優(yōu)化網(wǎng)絡(luò)拓撲結(jié)構(gòu)時編碼采用12位二進制編碼,在優(yōu)化參數(shù)時采用157位十進制編碼,設(shè)定種群規(guī)模為40,運行代數(shù)為100代,代溝設(shè)定為0.9,選擇操作采用“輪盤賭”方法,變異概率選擇為0.7。優(yōu)化之后得到的最佳個體的編碼為000111000100,因此,BP網(wǎng)絡(luò)的最佳拓撲結(jié)構(gòu)為7-14-3。按照此結(jié)構(gòu)構(gòu)建BP網(wǎng)絡(luò),訓(xùn)練之后對測試樣本進行測試,分類結(jié)果如圖5、圖6、所示。
圖5 GABP網(wǎng)絡(luò)的訓(xùn)練誤差下降曲線
圖6 GABP網(wǎng)絡(luò)對24組測試樣本的分類結(jié)果的誤差
從圖5可以看出GABP網(wǎng)絡(luò)在訓(xùn)練23次后誤差下降到0.01,網(wǎng)絡(luò)的收斂速度很快,說明本文利用GA算法和L-M算法對于提高網(wǎng)絡(luò)收斂速度,減小網(wǎng)絡(luò)誤差是有效的。
從圖6可以看出最大的誤差不超過0.35。本文設(shè)定0.2為閾值,即分類誤差大于0.2就認為分類失敗,低于0.2認為分類成功,因此,診斷正確的個數(shù)為19,正確率為79.16%。從分類結(jié)果可知單分類器的軟故障診斷正確率不高,因此,利用AdaBoost算法對這個單分類器進行提升,來提高診斷正確率。
5.1.4 利用AdaBoost—GABP組合分類器進行診斷
本文首先在數(shù)據(jù)挖掘軟件Weka中實現(xiàn)AdaBoost算法,之后利用AdaBoost-GABP組合分類器對測試樣本進行分類[20],結(jié)果如表3所示。
表3 AdaBoost-GABP分類器性能指標(biāo)
表3中, class是故障模式,TP是真陽性率,F(xiàn)P是假陽性率,precision是查準(zhǔn)率,ROC(Recieve Operating Characteristic)Area代表的是模型的平均性能,越大這證明該模型越好。從表3可以看出,AdaBoost-GABP組合分類器對001 010 011 101 110故障的診斷能力較高,對000故障和100 111故障的診斷能力稍弱,但ROC指標(biāo)都達到了0.96以上,證明該組合分類器的平均性能依然很高。
除了本文提出的方法現(xiàn)還利用幾種常見的方法:SVM(支持向量機)、決策樹、GABP網(wǎng)絡(luò)對24組測試樣本進行故障分類,并比較這幾種方法的分類性能,進一步驗證本文方法的有效性和改進程度。四種方法的分類結(jié)果如表4所示。
表4 四種分類方法對24組故障樣本的分類結(jié)果
表4中,kappa系數(shù)是指分類器的分類結(jié)果和隨機分類之間的差異度,Kappa系數(shù)越接近1,分類器性能越好;Mean absolute error是平均絕對誤差,誤差越小,診斷可信度越高。從表4中可知,AdaBoost-GABP組合分類器的Kappa系數(shù)分別比SVM、決策樹、GABP這三種方法高11.12%、16.67%、25%,誤差分別比其他三種方法低78.07%,30.07%,70.46%,分類精度分別比其他三種方法高9.52%、14.81%、21.05%,說明AdaBoost-GABP網(wǎng)絡(luò)診斷性能更好、可信度更高、診斷結(jié)果更精確。
本文提出了一種利用AdaBoost-GABP組合分類器進行模擬電路軟故障診斷的新方法。該方法利用GA算法、L-M算法解決了傳統(tǒng)BP網(wǎng)絡(luò)容易陷入局部最小值的問題,克服了其收斂緩慢的缺陷,并利用AdaBoost算法提升GABP分類器,提高了容差模擬電路軟故障診斷精度。實例結(jié)果表明,本文方法在分類精度、分類器Kappa系數(shù)上都有較大提高,并且分類的絕對誤差得到了降低,證明本文提出的方法是容差模擬電路軟故障診斷的一種可信的、有效的方法。
[1] 龔茜茹,李巧君. 遺傳神經(jīng)網(wǎng)絡(luò)在模擬電路故障診斷中的應(yīng)用[J]. 計算機測量與控制, 2012, 20(11):2926-2928,2931.
[2]黃 亮. 模擬電路故障診斷研究[D]. 北京: 北京交通大學(xué),2012.
[3]方葛豐. 模擬電路故障診斷優(yōu)化理論與方法的研究[D]. 長沙: 湖南大學(xué),2013.
[4]龔伏廷,涂愛萍,王建勇. 小波神經(jīng)網(wǎng)絡(luò)在模擬電路故障診斷中的應(yīng)用[J]. 計算機仿真,2011, 28(2):228-231,359.
[5]宋國明,王厚軍,劉 紅,等. 基于提升小波變換和SVM的模擬電路故障診斷[J]. 電子測量與儀器學(xué)報,2010,24(1):17-22.
[6]郭陽明,冉從寶,姬昕禹,等. 基于組合優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的模擬電路故障診斷[J]. 西北工業(yè)大學(xué)學(xué)報,2013,31(1):44-48.
[7]肖迎群,何怡剛. 基于小波分形分析和脊波網(wǎng)絡(luò)的模擬電路故障診斷方法[J]. 電工技術(shù)學(xué)報,2011,26(11):105-114.
[8]付 彬. 多分類器組合中的基分類器選取方法[D]. 北京: 北京交通大學(xué),2009.
[9]Dong B Y, Ren G. Analog circuit fault diagnosis using AdaBoost with SVM-Based component Classifiers[J]. Advanced Materials Research, 2012(5), 591-593:1414- 1417.
[10]敖永才. 容差條件下模擬電路軟故障診斷方法研究[D]. 成都: 電子科技大學(xué),2014.
[11]祝文姬,何怡剛. 容差模擬電路軟故障診斷的神經(jīng)網(wǎng)絡(luò)方法[J]. 電工技術(shù)學(xué)報,2009, 24(11):184-191.
[12]李云紅. 基于BP神經(jīng)網(wǎng)絡(luò)的模擬電路故障診斷[J]. 計算機與數(shù)字工程,2009,37(6): 192-194+200.
[13]蔣周娜. 基于小波神經(jīng)網(wǎng)絡(luò)的模擬電路故障診斷方法研究及系統(tǒng)實現(xiàn)[D]. 西安: 西安電子科技大學(xué),2010.
[14]Wang H Z, Yang J P, Zhang A Y. Design of an Intelligent Fault Diagnosis System for Modern Radar Equipment[J]. Modern Radar, 2008,42(2):80-84
[15]曹 瑩,苗啟廣,劉家辰,等. AdaBoost算法研究進展與展望[J]. 自動化學(xué)報,2013,39(6): 745-758.
[16]Kantardzic M. 數(shù)據(jù)挖掘:概念、模型、方法和算法[M]. 第2版. 王曉海,吳志剛,譯. 北京:清華大學(xué)出版社,2013.
[17]傅薈璇,趙 紅. MATLAB神經(jīng)網(wǎng)絡(luò)應(yīng)用設(shè)計[M]. 第1版. 北京:機械工業(yè)出版社, 2010.
[18]Webb A R, Copsey K D. 統(tǒng)計模式識別[M]. 第3版. 王萍譯. 北京:電子工業(yè)出版社,2015.
[19]劉 紅,陳 光,宋國明,等. 基于AdaBoost集成網(wǎng)絡(luò)的模擬電路單軟故障診斷[J]. 儀器儀表學(xué)報,2010,31(4):851-856.
[20]袁梅宇. 數(shù)據(jù)挖掘與機器學(xué)習(xí)—WEAK應(yīng)用技術(shù)與實踐( 第1版)[M]. 北京:清華大學(xué)出版社.
Analog Circuit Soft Fault Diagnosis Method Based on AdaBoost and GABP
Zhao Wenjun1, Zhang Qiang1, Liu Lei2, Song Jiayou2
(1.First Aeronautical College of Air Force, Xinyang 464000, China;2.School of Information Engineering, Zhengzhou University, Zhengzhou 450001, China)
The accuracy of soft fault diagnosis for analog circuit with tolerance is relative low, therefore, a new method based on AdaBoost and GABP is proposed. Firstly, fault modes are simulated by Monte-Carlo method, furthermore, the effective point extraction method is used to extract the characteristic of the fault-pattern, on this basis, original samples of neural network is constructed using the normalized fault data. Secondly, GA algorithm and the L-M algorithm are used to optimize BP neural network to construct GABP classifier. Finally, the GABP network was boost by the AdaBoost algorithm to construct the AdaBoost-GABP combination classifier. The example shows that, the method proposed has higher accuracy and lower error than the traditional single classifier, beyond that, the method overcomes the defect that it is easy to fall into local optimum for the single classifier.
analog circuit fault diagnosis; AdaBoost algorithm; GA algorithm; Monte-Carlo analysis; combination classifier
2017-05-07;
2017-05-24。
趙文俊(1974-),男,湖北鐘祥人,研究生,副教授,主要從事機載航空電子系統(tǒng)及設(shè)備的測試與故障診斷方向的研究。
1671-4598(2017)12-0021-04
10.16526/j.cnki.11-4762/tp.2017.12.006
TP306.3
A