田 珍,劉學(xué)會(huì)
(鄭州職業(yè)技術(shù)學(xué)院 軟件工程系,鄭州 450121)
隨著集成電路的發(fā)展,數(shù)字和模擬器件通常被繼承在單個(gè)芯片上。目前,模擬電路已被廣泛地應(yīng)用于軍工、通信、儀表儀器和自動(dòng)控制等領(lǐng)域。雖然模擬電路通常只占芯片面積的50%,但其發(fā)生故障的成本卻占芯片總成本的95%[1]。
由于模擬電路具有原件參數(shù)離散型、可測電壓節(jié)點(diǎn)數(shù)少、非線性和時(shí)間電壓的連續(xù)性等特征,使其較數(shù)字電路的故障診斷發(fā)展要復(fù)雜和緩慢。
傳統(tǒng)的對模擬電路進(jìn)行故障診斷的方法主要是故障字典法,其具有所需測試點(diǎn)少和適合在線診斷的特點(diǎn),但其需要先驗(yàn)知識(shí)且存儲(chǔ)容量需求量大,因此不適合大規(guī)模電路故障診斷的需要[2]。
隨著人工智能的發(fā)展,出現(xiàn)了不少采用人工智能方法實(shí)現(xiàn)對模擬電路進(jìn)行故障診斷的研究[3~5]。 人 工 神 經(jīng) 網(wǎng) 絡(luò) (Artif i cial Neural Network,ANN)是由大量神經(jīng)元組成的龐大網(wǎng)絡(luò),能實(shí)現(xiàn)復(fù)雜信息的存儲(chǔ)和處理。BP神經(jīng)網(wǎng)絡(luò)[3]是一種多層前饋型的人工神經(jīng)網(wǎng)絡(luò)模型, 其神經(jīng)元通常采用S型函數(shù),使其可以實(shí)現(xiàn)輸入和輸出之間的任意非線性映射,非常適合通常難以建立數(shù)學(xué)模型的故障診斷問題,但由于故障征兆的維數(shù)往往很大,使得BP神經(jīng)網(wǎng)絡(luò)的輸入維數(shù)多,訓(xùn)練時(shí)間長,限制了其進(jìn)一步的發(fā)展。
為了實(shí)現(xiàn)對模擬電路進(jìn)行故障診斷,文中提出了一種基于粗糙集和BP神經(jīng)網(wǎng)絡(luò)的故障診斷方法。
粗糙集(Rough Set, RS)是波蘭科學(xué)院Z.Pawlak教授提出的一種數(shù)學(xué)分析和推理模型,它基于集合分類理論,從數(shù)據(jù)本身出發(fā)通過對數(shù)據(jù)的分析處理,去除冗余屬性從而找到隱藏在數(shù)據(jù)中的內(nèi)在規(guī)律。目前,已經(jīng)在機(jī)器學(xué)習(xí)、知識(shí)發(fā)現(xiàn)、模式識(shí)別等領(lǐng)域獲得廣泛應(yīng)用。
定義1:信息系統(tǒng)S可以定義為四元組:S =<U,R,V, f >,其中,U={x1, x2,…, xn} 為對象的非空有限集合,R=CD為屬性集,其中C為條件屬性集,D為決策屬性集,且滿足為屬性r的值域;f (U×R)→V即為論域?qū)ο髮?yīng)的屬性的到屬性值的映射。
定義2:對于信息系統(tǒng)S =<U,R,V, f >,對于任意屬性子集A∈R,可以定義A上的不可分辨關(guān)系IND(A),其中IND(A)的定義如式(1)所示:
定義3:對于信息系統(tǒng)S =<U,R,V, f >,R=CD為屬性集,其中C為條件屬性集,D為決策屬性集,存在 的子集A,AC,對于屬性t∈A,若滿足式(2):
則稱t在A中是不必要的,否則稱其是必要的。在公式(2)中,Ind表示滿足A的等價(jià)關(guān)系的交,如果對于任意t∈A都是必要的,則稱A是C的一個(gè)簡約。
C的所有簡約的集合記作RED(C), 的所有簡約的交集稱為核CORE(C),如式(3)所示:
為了克服BP神經(jīng)網(wǎng)絡(luò)在樣本數(shù)據(jù)多、維數(shù)大的情況下的訓(xùn)練時(shí)間過長,收斂速度過慢的問題。首先采用粗糙集對樣本數(shù)據(jù)進(jìn)行屬性簡約,然后將經(jīng)過屬性簡約的樣本數(shù)據(jù)置入到BP神經(jīng)網(wǎng)絡(luò)模型中進(jìn)行訓(xùn)練,當(dāng)BP神經(jīng)網(wǎng)絡(luò)模型的各神經(jīng)元權(quán)值、閥值均已訓(xùn)練好后,再用訓(xùn)練好的BP神經(jīng)網(wǎng)絡(luò)模型進(jìn)行故障診斷,其故障診斷模型如圖1所示:
圖1 文中故障診斷模型
定義4:基于屬性出現(xiàn)頻率的差別矩陣算法
輸入:信息系統(tǒng)S=<U, R,V, f >;
輸出:簡化的決策表S'=<U', R',V, f >;
步驟1:初始化核屬性集合CORE和簡約條件屬性集合RED;
步驟2:計(jì)算樣本數(shù)據(jù)對應(yīng)的可辨識(shí)矩陣M,將M中的單屬性加入到核屬性集合CORE中;
步驟3:令RED=CORE;
步驟4:刪除可辨識(shí)矩陣M中包含CORE的所有項(xiàng),并計(jì)算剩余的非空屬性值出現(xiàn)的頻率;
步驟5:選擇M中出現(xiàn)頻率最高的屬性a,并將其加入到RED中,并從M中刪除包含a的項(xiàng);
步驟6:重復(fù)步驟5,直到M為空為止;
步驟8:重復(fù)步驟7,直到RED中的非核屬性被遍歷完為止,此時(shí)算法結(jié)束,輸出最終簡約條件集RED。
文中采用的BP神經(jīng)網(wǎng)絡(luò)故障診斷模型采用三層典型網(wǎng)絡(luò),可分為輸入層、隱層和輸出層,如圖2所示。
圖2 三層BP神經(jīng)網(wǎng)絡(luò)模型
定義5:屬性簡約的BP神經(jīng)網(wǎng)絡(luò)故障診斷算法
步驟1:首先通過定義4所示的基于屬性出現(xiàn)頻率的差別矩陣算法實(shí)現(xiàn)對樣本數(shù)據(jù)進(jìn)行屬性簡約,得到簡約的屬性集,其維數(shù)為L;
步驟2:當(dāng)訓(xùn)練數(shù)據(jù)維數(shù)L確定后,則輸入層神經(jīng)元的個(gè)數(shù)為L;
步驟3:根據(jù)故障種類來確定輸出神經(jīng)元個(gè)數(shù)M;
步驟4:通過經(jīng)驗(yàn)公式(4)確定隱層神經(jīng)元個(gè)數(shù):
在式(4)中,q為1到10之間的一個(gè)隨機(jī)數(shù)。
步驟5:將步驟1得到的簡約后的樣本數(shù)據(jù)置入到圖2所示的BP神經(jīng)網(wǎng)模型進(jìn)行訓(xùn)練,并根據(jù)公式(5)計(jì)算輸出端誤差:
式(5)中,Yj表示第j個(gè)輸出神經(jīng)元的期望輸出,表示第j個(gè)輸出神經(jīng)元的實(shí)際輸出;
步驟6:根據(jù)輸出層的誤差,按照誤差反向傳播算法對各神經(jīng)元權(quán)值、閥值等進(jìn)行調(diào)整;
步驟7: 當(dāng)誤差滿足目標(biāo)值時(shí),訓(xùn)練結(jié)束,此時(shí)的BP神經(jīng)網(wǎng)絡(luò)模型即為故障診斷模型;
步驟8:輸入測試數(shù)據(jù),采用訓(xùn)練好的BP神經(jīng)網(wǎng)絡(luò)進(jìn)行故障診斷,得到故障診斷結(jié)果。
為了對文中方法進(jìn)行驗(yàn)證,采用圖3所示的模擬放大電路來進(jìn)行故障診斷試驗(yàn),各參數(shù)如下:輸入信號源為幅值Vm=1000mV和頻率f =1000Hz的正弦信號,R1=400Ω,R2=1000Ω,R3=800Ω,R4=R7=R8=2000Ω,R5=600Ω,R6=900Ω, 電 容C1=C2=C3=C4=20uF。
圖3 某模擬放大電路
在圖3中,選擇電路圖中out1、out2、out3、out4和out5處的測量電壓為特征向量,分別部分電容、三極管和電阻進(jìn)行故障診斷,得到1組樣本數(shù)據(jù)如表1所示。
表 1 測點(diǎn)電壓值對應(yīng)的故障狀態(tài)
首先對表1中的數(shù)據(jù)進(jìn)行離散化處理,再通過粗糙集進(jìn)行屬性簡約得到的特征向量為out1、out2和out4,如表2所示。
表2 離散并簡約后的特征向量
從表2中可以看出,簡約后的特征向量僅3個(gè),將其作為神經(jīng)網(wǎng)絡(luò)的輸入端,則輸入端的神經(jīng)元個(gè)數(shù)為3,故障種類一共為7種,采用二進(jìn)制編碼所需要的輸出端神經(jīng)元為4個(gè),則根據(jù)公式(4)可以將隱層神經(jīng)元定為5個(gè),神經(jīng)網(wǎng)絡(luò)為3-5-4結(jié)構(gòu)。
采用表2的簡約樣本數(shù)據(jù)對網(wǎng)絡(luò)進(jìn)行訓(xùn)練,并采用8組測試數(shù)據(jù)進(jìn)行故障診斷,得到的故障診斷準(zhǔn)確率為98.34%。
采用文中基于粗糙集的BP神經(jīng)網(wǎng)絡(luò)方法與傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)方法進(jìn)行比較,得到的訓(xùn)練曲線如圖4所示,從中可以看出:BP神經(jīng)網(wǎng)絡(luò)和文中方法在迭代400次時(shí),BP網(wǎng)絡(luò)的誤差為0.01,而文中方法的誤差已收斂到0.0001,這證明文中方法不僅使得BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練速度加快,而且提高了診斷精度。
圖4 文中方法與BP神經(jīng)網(wǎng)絡(luò)誤差對比
本文提出了一種能對模擬電路進(jìn)行故障診斷的方法,能快速并精確地對模擬電路中的各種故障進(jìn)行有效診斷。首先對樣本數(shù)據(jù)采用可辨識(shí)矩陣進(jìn)行屬性簡約,然后將簡約后的特征向量置入
BP網(wǎng)絡(luò)輸入端進(jìn)行訓(xùn)練,將訓(xùn)練后的神經(jīng)網(wǎng)絡(luò)作為故障診斷推理模型。實(shí)驗(yàn)表明經(jīng)過粗糙集簡約后的BP神經(jīng)網(wǎng)絡(luò)能正確地實(shí)現(xiàn)故障診斷,且與未進(jìn)行簡約的BP神經(jīng)網(wǎng)絡(luò)故障模型相比,誤差大為減少,具有重要的意義。
[1] 葉笠, 王厚軍, 田書林, 等.容差模擬電路軟故障診斷的一種方法[J].電工技術(shù)學(xué)報(bào), 2011, 26(5): 119-125.
[2] 雷邵充, 邵志標(biāo), 梁峰.超大規(guī)模集成電路測試[M].北京: 電子工業(yè)出版社, 2008: 231-250.
[3] 宋麗偉, 彭敏放, 田成來, 沈美娥.基于PSO-RBF神經(jīng)網(wǎng)絡(luò)的模擬電路診斷[J].計(jì)算機(jī)應(yīng)用研究, 2012, 29(1): 72-74.
[4] 趙光權(quán), 彭喜元, 馬勛亮.基于微分進(jìn)化神經(jīng)網(wǎng)絡(luò)的模擬電路故障診斷[J].測控技術(shù)學(xué)報(bào), 2012, 26(1): 88-92.
[5] 鄧 森, 楊軍鋒, 郭明威, 郭創(chuàng), 基于模糊SVM和虛擬儀器的模擬電路故障診斷研究[J].計(jì)算機(jī)測量與控制.2011.19(4): 762-765.
[6] Jian-Da Wu,Cheng-Kai Huang, Yo-Wei Chang.Fault diagnosis for internal combustion engines using intake manifold pressure and artif i cial neural network [J].Expert Systems with Applications,2010,37,949-958.
[7] Pawlak Z Rough sets[ J ].International Journal of Computer and Information Sciences, 1982 (11) : 341-356.