何 春,李 琦,吳讓好,劉邦欣
(電子科技大學 通信與信息工程學院,成都 610054)(*通信作者電子郵箱1287345989@qq.com)
近年來,隨著數模混合電路規模和復雜性的增加,特別是在航空、航天、軍事國防等應用領域,其可靠性受到越來越多的關注。故障診斷作為維護電路可靠性的重要手段,成為了研究熱點。文獻[1-4]中提到的電路故障診斷方法包括:故障字典、最近鄰、基于規則和支持向量機(Support Vector Machine, SVM)的故障分類模型等,但僅在模擬電路中付諸實踐,且由于復雜電路的非線性映射關系錯綜復雜,導致診斷效果不佳。BP(Back Propagation)神經網絡在數學理論上已證明具有實現絕大多數復雜非線性映射的功能,這使得它對診斷實際中建模困難的復雜系統,特別是大規模混合電路,具有獨特優勢。
傳統BP神經網絡的應用[5-9]是直接對整個電路建立BP網絡,建立該網絡的過程簡單明了,適用于簡單線性電路的故障診斷。在對大規模電路進行分析時,所建立的網絡過大,易導致訓練數據龐大、訓練時間過長、計算量大以及對故障傳播考慮欠缺等問題,從而造成故障定位準確率低。本文提出了基于故障傳播的模塊化BP神經網絡(Modularized BP neural network based on Fault Propagation, MBPFP)故障定位方法,對大規模電路進行模塊劃分,分析并“分割”子電路模塊間的故障傳播關系,進而利用基于電路仿真建立的模塊化異常檢測模型和BP神經網絡模型進行故障定位,使定位的準確率得到明顯提升。
大規模數模混合電路結構復雜,輸入輸出關系難以用簡單的數學公式表示,電路故障狀態龐雜,傳播關系錯綜復雜。MBPFP方法在電路模塊化的基礎上,通過最優測試節點的選擇確定子電路模塊的測試節點,并把測試節點的屬性數據作為故障診斷的數據源,使復雜電路的故障表現形式具體化;以電路單故障仿真[10]的測試節點屬性數據為客觀依據,建立模塊化異常檢測模型,分析故障傳播并“分割”故障傳播關系,建立子電路的BP神經網絡模型,確定電路故障與故障原因的內在聯系;當實際電路發生故障時,利用模塊化異常檢測模型進行一級定位,確定故障模塊,再利用目標模塊的BP神經網絡模型進行二級定位,識別故障模式[10]。下面對MBPFP中的關鍵技術進行詳細介紹。
大規模電路的可測節點眾多,造成數據采集、傳輸和處理的負荷過大,因此首先進行電路模塊劃分,并確定各子電路模塊的測試節點。本文采用電路按功能劃分的方法,盡可能地簡化子電路模塊間的拓撲關系和參數之間的耦合。為了避免因分析所有可測節點帶來的冗余問題,同時兼顧一級定位的故障覆蓋率,在功能模塊劃分的基礎上,通過最優測試節點的選擇確定各模塊的測試節點。
最優測試節點的選擇是將傳統的包含法和排除法[11-12]相結合,從可測節點集合中生成節點子集,并評價其性能,選擇性能最佳的節點子集作為最優測試節點。節點子集性能的評價標準為故障覆蓋率,公式如下:
Coverage=|A|/|D|
(1)
其中:Coverage表示故障覆蓋率;|D|表示待檢測的故障總數;|A|表示可以被檢測到的故障數。考慮到工程實際,最終選定的最優測試節點集要覆蓋各子電路模塊的輸出節點。
最優測試節點的選擇算法具體如下:
令OrigNodeSet是可測節點集合
令OutNodeSet是子電路模塊輸出節點集合
令OptiNodeSet={}是最優測試節點的初始集合
令best_Coverage=0是最佳的初步定位故障覆蓋率,初始值為0
%%包含法
令NodeSet_Reg={}寄存包含法選擇出的節點
for 每個可測節點Node∨OrigNodeSetdo
NodeSet=Node∨NodeSet_Reg
%%Coverage_Cal(*)以*節點的屬性數據為輸入,利用式(1)計算故障覆蓋率
Coverage← Coverage_Cal(NodeSet)
ifCoverage>best_Coveragedo
best_Coverage=Coverage
追加Node至NodeSet_Reg的尾部:
NodeSet_Reg=Node∨NodeSet_Reg
end if
end for
%%排除法
OptiNodeSet=NodeSet_Reg
fori=1:(length(NodeSet_Reg)-1) do
forj=0:(length(NodeSet_Reg)-i-1) do
Node=NodeSet_Reg(end-i-j)
NodeSet=OptiNodeSet-Node
Coverage← Coverage_Cal(NodeSet)
ifCoverage==best_Coveragedo
OptiNodeSet=OptiNodeSet-Node
end if
end for
end for
%%與工程實際結合
for 每個可測節點Node∨OutNodeSetdo
if isempty(find(OptiNodeSet,Node)) do
OptiNodeSet=OptiNodeSet∨Node
end if
end for
returnOptiNodeSet
通過最優測試節點的選擇,構造如下測試節點矩陣:
TestNodeMatrix=[aij]N×M; 1≤i≤N&& 1≤j≤M
(2)
其中:N表示子電路模塊數;M表示可測節點數;aij表示可測節點Nodej是否為模塊Modulei的最優測試節點(或測試節點),取值如式(3)所示。

(3)
以TestNodeMatrix為基礎,獲取相應節點的屬性數據,建立模塊化異常檢測模型。
在電路故障診斷中,異常檢測[13]的目標是發現與正常電路有差別的故障電路。當大規模電路故障時,故障情況復雜,故障原因眾多,利用異常檢測模型監測電路、篩選并縮小故障原因集合是一種有效手段。
本文通過電路單故障仿真得到各測試節點的“與正常波形的距離”屬性[10]數據,且由于同節點同屬性的數據近似地呈高斯分布[14],因此根據文獻[15],通過參數法的密度估計法建立各測試節點的一元高斯分布異常檢測模型(pij(xij),εij),(pij(xij),εij)表示子電路Modulei(1≤i≤N)中第j(1≤j≤M)個測試節點的異常檢測模型如下:

(4)
其中:
(5)
其中:xij表示節點的“與正常波形的距離”屬性樣本;εij表示模型的概率閾值;ONormal表示正常樣本集合;OAnomaly表示故障樣本集合。
測試節點的異常檢測模型利用概率pij(xij)和概率閾值εij對節點的故障狀態進行評估,閾值εij不是固定的,可以隨訓練數據的變化而自動調整,有別于傳統的閾值判斷方法,所以該模型是一種“閾值自動調節”的軟性故障判別方式。
根據測試節點矩陣TestNodeMatrix,以測試節點的異常檢測模型(pij(xij),εij)為基礎,構建模塊化異常檢測模型(Anomaly Detection Model based on Module, ADMModule)。當子電路模塊中只要有一個測試節點故障時,則模塊表現故障,計算式如下:
ADMModule_i=

(6)
其中:ADMModule_i表示第i(1≤i≤N)個子電路模塊的異常檢測模型;I(*)表示指示函數,只有*成立時,I(*)=1。通過最優測試節點的選擇確定各子電路的測試節點,使模塊化異常檢測模型在應用于一級定位時,故障覆蓋率更佳。
將各子電路的模塊化異常檢測模型組合為如下向量形式,以便后續操作。
ADMVector=
[ADMModule_1ADMModule_2…ADMModule_t…ADMModule_N]
(7)
其中:ADMModule_t(1≤t≤N)在ADMVector中按照子電路模塊物理連接先后的順序排列(并聯模塊對應的ADMModule_t排序任意)。
由于數模混合電路故障狀態復雜,且電路模塊劃分并不能真正意義上作到“劃分后的各子電路之間沒有拓撲關系和參數之間的耦合”,所以模塊間可能存在故障傳播而相互影響,數模混合電路不僅存在故障正向傳播,還存在故障反向傳播,增加了故障定位的難度,因此,本文基于電路單故障仿真,利用模塊化異常檢測模型的向量形式ADMVector獲取各故障模式的故障向量SFaultMode,并組合為失效矩陣FaultMatrix;再以FaultMatrix為數據源,利用有向圖模型[16]分析各故障模式在子電路模塊間的故障傳播情況(只分析電路發生單一故障時的故障傳播情況),將故障源和傳播源“模塊化”為某些子電路的故障來源。故障來源具體分兩種:一是該模塊內部的元器件故障模式(內部故障模式);二是與該模塊存在直接或間接物理連接的模塊中的元器件故障模式(外部故障模式)。
以故障模式為分析單元,通過電路單故障仿真獲得所有測試節點“與正常波形的距離”屬性數據,并利用ADMVector獲得各故障模式的故障向量SFaultMode,如下:
SFaultMode_k=[s1s2…st…sN]
(8)
其中:SFaultMode_k表征第k個故障模式對各子電路模塊的故障影響,1≤k≤L,L表示故障模式數;st表示利用ADMModule_t檢測第t個子電路模塊時,該模塊的故障狀態。st取值如下:

(9)
將所有故障模式的故障向量組合為失效矩陣FaultMatrix,如下:
FaultMatrix=[SFaultMode_1;SFaultMode_2;…;SFaultMode_k;…;
SFaultMode_L]=[bij]L×N;1≤i≤L&& 1≤j≤N
(10)
其中:L表示故障模式數;N表示子電路模塊數。bij為FaultMatrix的元素,取值如下:
bij=sj;sj∈SFaultMode_i
(11)
以FaultMatrix為數據源,利用有向圖分析故障傳播,確定各模塊的故障來源,如下:
FaultSourceModule_n=arg{m|bmn=1,bmn∈FaultMatrix}
(12)
其中:FaultSourceModule_n表示第n(1≤n≤N)個子電路模塊的故障來源。根據SFaultMode,各子電路模塊的故障來源具體可分為三種情況:
1)SFaultMode中的分量全為0時,則SFaultMode對應的故障模式不導致電路故障,為潛在故障模式;
2)SFaultMode中只有一個分量為1時,則SFaultMode對應的故障模式只使一個模塊發生故障,不存在故障傳播,是分量為1所表示的模塊的故障來源;
3)SFaultMode中存在兩個或多個分量為1時,則SFaultMode對應的故障模式使兩個或多個模塊發生故障,存在故障傳播,是分量為1所表示的模塊的故障來源。
通過基于子電路模塊的故障傳播分析,以FaultSourceModule為依據獲取各子電路BP神經網絡的訓練數據,有機地將各子電路的異常檢測模型和BP神經網絡模型結合在一起。
電路Circuit1發生R3短路(以下簡稱R3_S_NULL)時的故障傳播分析如下:首先將Circuit1模塊劃分為3個子電路并確定測試節點:S1為模塊M1的測試節點;S2為模塊M2測試節點;S3為模塊M3的測試節點。電路模塊劃分和節點選擇具體如圖1所示。

圖1 電路Circuit1的模塊劃分Fig. 1 Module division of Circuit1
電路Circuit1正常工作狀態下,節點S1、S2、S3的仿真結果如圖2所示。

圖2 電路Circuit1的正常仿真結果Fig. 2 Normal simulation results of Circuit1
當電阻R3短路時,節點S1、S2、S3的仿真結果如圖3所示。

圖3 R3短路時電路仿真結果Fig. 3 Simulation results of R3 shorting in Circuit1
由圖2、3可知,當R3發生短路時,導致模塊M2中節點S2輸出為0,R3為M2的故障源;導致模塊M1中節點S1輸出幅值下降50 mV,R3(或其所在模塊M2)為M1的故障反向傳播源;導致模塊M3中節點S3輸出為0,R3(或其所在模塊M2)為M3的正向故障傳播源。所以R3短路故障對應的故障向量SR3_S_NULL=[1 1 1],基于子電路模塊的故障傳播有向圖模型如圖4所示。

圖4 R3短路的故障傳播有向圖模型Fig. 4 Fault propagation digraph model of R3 shorting
由圖4表示的有向圖故障傳播模型可知,R3短路既是R3所在模塊M2的故障源又是其他模塊M1、M3的故障傳播源。
BP神經網絡[17]是人工神經網絡的一種重要算法,包括無監督學習過程和有監督調優過程,通過學習和調優建立的分類模型具有較強的自學習能力。本文利用模塊化異常檢測模型只能在子電路層次進行故障診斷。為了提高定位精度,利用BP神經網絡將故障原因集合縮小到故障模式。BP神經網絡通過學習各種故障模式的樣本數據自動提取“合理的”求解規則,建立BP網絡模型,該模型保存了電路故障的內在因果對應關系,直接用于之后的二級定位。
為適應數模混合電路,根據測試節點信號的不同,建立屬性表[10],如表1所示。

表1 電路測試節點信號的屬性Tab. 1 Attributes of circuit test node signal
通過電路單故障仿真獲取各測試節點的所有屬性數據,并將其組合為一維屬性向量進行最優屬性選擇,獲得最優屬性向量,再利用上述分析中各子電路模塊故障時的故障來源FaultSourceModule篩選出各模塊故障來源的最優屬性向量,最終通過聚類構造各模塊BP網絡的訓練樣本集,建立模塊化BP神經網絡模型(BP neural network Model based on Module,BPMModule)。訓練樣本如下:
{[Att1Att2…Atti…AttK],index}
(13)
其中:Atti表示第i個最優屬性,1≤i≤K,K表示最優屬性的數量,[Att1Att2…Atti…AttK]作為BPMModule的輸入數據;index表示故障模式經過聚類后的故障簇編號,用獨熱碼表示,作為BPMModule的輸出數據。所以該BPMModule為3層結構,輸入層的節點數為最優屬性的數量K,輸出層的節點數為聚類所得的故障簇數,BP實質上實現了從故障屬性輸入到故障類別輸出的映射功能。各子電路模塊BP神經網絡模型建立過程如圖5所示。

圖5 各子電路模塊BP神經網絡模型建立示意圖Fig. 5 Schematic diagram of establishing BP neural network model for subcircuit modules
將各子電路的模塊化BP神經網絡模型組合為如下向量形式,以便后續操作。
BPMVector=
[BPMModule_1BPMModule_2…BPMModule_t…BPMModule_N]
(14)
其中,BPMModule_t(1≤t≤N)在BPMVector中按照子電路模塊物理連接先后的順序排列(并聯模塊對應的BPMModule_t排序任意)。
1.4.1最優屬性的選擇
由各測試節點所有屬性數據組成的一維屬性向量顯然會存在屬性冗余問題,且不同屬性在電路故障診斷中的重要程度不同,若將其直接聚類,建立BP神經網絡模型,可能會因為屬性之間的強相關性、冗余等問題,造成BP網絡性能不佳甚至低下,因此,該一維屬性向量需要通過最優屬性選擇去除冗余,再進行后續操作。
最優屬性的選擇是將一維屬性向量中的屬性按照性能的優劣排序,然后選擇前K個性能最佳的屬性作為最優屬性。其中,有以下兩點需要說明:
1)屬性性能的評價是通過對將要用于的系統進行性能評估完成的,即利用DB Index[18]、相關性和故障簇數量對該屬性的聚類效果進行評估。其中,DB Index評價聚類結果的凝聚程度,公式如下:

dij=‖Zi-Zj‖
(15)
其中:k表示聚類的簇總數;Si表示簇內平均離散度;|Ci|表示故障簇Ci中所包含的樣本總數,Zi表示簇Ci的中心;dij表示簇間距離。對于DB Index準則來說,DBk值越小,說明聚類的效果越好。相關性評價參與聚類的各屬性之間的冗余程度,公式如下:
(16)
其中:Atti表示參與聚類的第i個屬性的數據。對于相關性來說,XCOR值越小,說明參與聚類的特征之間相關性越低,冗余程度越小。故障簇(故障模式集合)作為最終定位結果,故障簇數是對整個系統故障定位精確程度的評價,簇數越多,相應的每個簇中包含的故障模式數越少,定位精確程度越高。
2)最優屬性數K的確定:完成最優屬性的排序后,利用聚類的故障簇數確定K。K需要滿足如下公式:

(17)
其中:l為任意正整數;OptiAttSet(*)表示前*個性能最佳的屬性集合;NumOfCluster(*)表示*聚類的故障簇數。
最優屬性的選擇算法具體如下:
令OrigAttSet是屬性向量
令OptiAttSet={}是最優屬性的初始集合,初始為空
%%最優屬性排序
令OptiAttSeq={}是最優屬性排序的初始集合,初始為空
OrigAttSetReg=OrigAttSet
fori=1:length(OrigAttSet) do
DBReg={}
for 每個屬性Att∈OrigAttSetRegdo
AttSet=Att∨OptiAttSeq
%%DB_Cal(*)以*屬性的數據為輸入,利用式(15)計算DB值
DB← DB_Cal(AttSet)
DBReg=DB∨DBReg
end for
AttReg1={arg(min(DBReg))}
ifi==1 do
AttReg2=AttReg1
else
XcorrReg={}
for 每個屬性Att∈AttReg1 do
AttSet=Att∨OptiAttSeq
%%Xcorr_Cal(*)以*屬性的數據為輸入,利用式(16)計算相關值
Xcorr← Xcorr_Cal(AttSet)
XcorrReg=Xcorr∨XcorrReg
end for
AttReg2={arg(min(XcorrReg))}
end if
NumCluReg={}
for 每個屬性Att∈AttReg2 do
AttSet=Att∨OptiAttSeq
%%NumOfCluster_Cal(*)以*屬性的數據為輸入,獲得*屬性聚類后的故障簇數
NumOfCluster← NumOfCluster_Cal(AttSet)
NumCluReg=NumOfCluster∨NumCluReg
end for
Att={arg(max(NumCluReg))}
追加Att到OptiAttSeq的尾部:
OptiAttSeq=Att∨OptiAttSeq
OrigAttSetReg=OrigAttSetReg-Att
end for
%%從OptiAttSeq中選擇最優屬性OptiAttSet
NCReg={}寄存不同個數的最優屬性經聚類后的類故障數
fori=1:length(OptiAttSeq) do
AttSet=OptiAttSeq(1:i)
NumOfCluster← NumOfCluster_Cal(AttSet)
追加NumOfCluster到NCReg的尾部:
NCReg=NumOfCluster∨NCReg
end for
Dif_NCReg← diff(NCReg)
ind=find(Dif_NCReg==0)
OptiAttSet=OptiAttSeq(1:ind)
returnOptiAttSet
通過對測試節點的所有屬性進行最優屬性的選擇,并將結果作為各模塊BP神經網絡模型的輸入數據,使BP網絡關于故障屬性輸入和故障類別輸出間的映射關系更加全面合理,在二級定位時,定位準確率更高。
針對實際電路,建立相應的仿真電路,并通過仿真構建各子電路模塊的異常檢測模型和BP神經網絡模型。當實際電路發生故障時(只考慮發生單一故障的情況),故障診斷過程如圖6所示。
步驟1獲取實際電路中各測試節點的電壓,具體可通過在測試節點上安置電壓感知器獲取,并提取屬性。
步驟2從各測試節點的屬性中選取“與正常波形的距離”屬性數據,利用模塊化異常檢測模型的向量形式ADMVector對各子電路的故障狀態進行評估,獲得實際故障向量Sactual=[s1s2…st…sN],Sactual與前文中提到的SFaultMode物理意義相同。

圖6 實際定位過程示意圖Fig. 6 Schematic diagram of actual positioning process
步驟3根據Sactual進行一級定位,縮小當前故障原因的搜索范圍,結果如下:
1)Sactual中的分量全為0時,則電路正常。
2)Sactual中只有一個分量為1時,則電路故障,故障原因可以定位到如下模塊:
FaultCause=arg({i|si=1})
(18)
即Sactual中為1的分量表示的模塊。
3)Sactual中存在兩個或多個分量為1時,則電路故障且模塊間存在故障傳播,但無法確定故障傳播源。此時可分為如下兩種情況:
情況1考慮到故障正向傳播,選擇如下模塊作為一級定位的結果:
FaultCause=arg(min{i|si=1})
(19)
即Sactual中首個為1的分量對應的模塊;
情況2考慮到故障反向傳播,結果如下:
FaultCause=arg(max{i|si=1})
(20)
即Sactual中尾部為1的分量對應的模塊。
若定位精度要求為子電路模塊級,則定位結束;否則進行下一步。
步驟4根據一級定位的結果,從模塊化BP神經網絡模型的向量形式BPMVector中選擇如下模型作為二級定位的診斷工具:
BPMTarget=BPMVector(FaultCause)
(21)
并從測試節點的屬性值中篩選出最優屬性數據,利用BPMTarget進行二級定位,將結果定位到故障模式。
將MBPFP方法應用于實際電路的故障診斷中,實例分析的仿真平臺為OrCAD Capture 16.5和PSpice AD,數據處理平臺為Matlab R2012b。
截取于某大型系統的時鐘產生電路作為待診斷電路,如圖7所示。圖7電路包含56個故障模式,表2描述了電容C12、電阻R12和數字器件D3的部分故障模式。

圖7 實例電路Fig. 7 Example circuit

表2 部分故障模式Tab. 2 Part of fault modes
利用PSpice AD進行電路正常仿真和單故障仿真。將電阻和電容的容差設為5%,對正常電路作200 000次蒙特卡羅(Monte Carlo,MC)分析,每種故障模式作100次MC分析,并根據表1提取MC樣本所有可測節點的屬性數據。取每種故障模式第一次MC對應的屬性數據作為額定值訓練樣本集(Nominal Train sample SET, NTSET);取200 000組正常屬性樣本和每種故障模式中前80組屬性樣本作為容差值訓練樣本集(Tolerant Train sample SET, TTSET);取每種故障模式另外的20組樣本作為測試樣本集(TEST sample SET, TESTSET)。故障診斷過程具體如下。
步驟1將該電路按功能劃分為4個模塊:
ModuleInCircuit={FilterModule,CompareModule1,
CompareModule2,Counter16Module}
各子電路所含的可測節點依次如下:
NodeInModule={{S1,S2,S3},{S5},{S4,S6,S7},
{S8,S9}}
步驟2利用TTSET中的“與正常波形的距離”屬性數據建立所有可測節點的異常檢測模型。根據最優測試節點選擇算法,結合式(6)和式(1),確定測試節點矩陣,同時可獲得各子電路的模塊化異常檢測模型,矩陣如下:
矩陣中各行依次表示ModuleInCircuit中的各子電路模塊所含的最優測試節點;各列依次表示NodeInModule中的各可測節點作為最優測試節點(或測試節點)時的歸屬模塊。例如,a13=1表示S3為FilterModule的最優測試節點。根據TestNodeMatrix建立的模塊化異常檢測模型使一級定位的故障覆蓋率理論上達到:
Coverage=|A|/|D|=56/56=100.00%
步驟3將步驟2中的模塊化異常檢測模型組合為向量形式,如下:
ADMVector=
[ADMFilterModuleADMCompareModule1ADMCompareModule2ADMCounter16Module]
步驟4基于NTSET,利用ADMVector建立各故障模式的故障向量SFaultMode。將表2中故障模式對應的故障向量組成的失效矩陣如下:

其中,各行依次表示表2中的各故障模式對各子電路模塊的故障影響;各列依次表示ModuleInCircuit中的各子電路模塊在各種故障模式下的故障狀態。
步驟5以FaultMatrix為數據源,分析故障傳播,并確定各子電路模塊的故障來源FaultSourceModule,如下:
FaultSourceFilterModule=[C12_S_NULL,C12_F_UP,
R12_O_NULL,R12_F_DOWN,…]
FaultSourceCompareModule1=[C12_S_NULL,C12_F_UP,
D3_OZ_11,D3_H_11,…]
FaultSourceCompareModule2=[C12_S_NULL,R12_O_NULL,
R12_F_DOWN,D3_OZ_11,…]
FaultSourceCounter16Module=[C12_S_NULL,C12_F_UP,
D3_OZ_11,D3_H_11,…]
步驟6將NTSET中各測試節點的所有屬性數據組合為一維屬性向量,進行最優屬性的選擇,選擇結果及性能數據如表3所示。

表3 最優屬性Tab. 3 Optimal attributes
根據FaultSourceModule,篩選出各模塊故障來源的最優屬性向量,并通過聚類搭建各模塊BP網絡的訓練數據框架。基于該框架,在TTSET中構建各BP網絡的訓練數據,訓練精度設為0.01,建立各子電路的BP神經網絡模型,其向量形式如下:
BPMVector=
[BPMFilterModuleBPMCompareModule1BPMCompareModule2BPMCounter16Module]
步驟7診斷。利用TESTSET對該方法進行測試,根據一級定位中故障傳播分析方向的不同,分為如下兩種情況:1)一級定位產生的故障向量按正向傳播分析;2)一級定位產生的故障向量按反向傳播分析。兩種不同分析方向的性能如表4所示。

表4 MBPFP性能 %Tab. 4 Performance of MBPFP %
其中,定位準確率表示定位結果正確的樣本數與所有樣本數的比例。不管一級定位采用哪種故障傳播分析方向,MBPFP的故障覆蓋率和定位準確率在所設容差范圍內性能均較好;另外,該方法有效地減小了各模塊BP神經網絡的計算量和訓練時間,提高了故障定位線下訓練的效率。
文獻[9]提出了一種大規模電路故障診斷神經網絡方法,在電路模塊劃分的基礎上,直接利用所有可測節點的電壓值建立各子電路的BP神經網絡,再利用各BP神經網絡依次進行故障定位,沒有涉及測試節點的選擇、屬性選擇,也沒有考慮到存在故障傳播的情況。
文獻[15]提出了一種基于結合異常檢測算法的雙步故障診斷方法,異常檢測模型作為故障檢測器,只能用以檢測電路是否發生故障,而不能縮小電路的故障源范圍;SVM作為故障分類器,在確定電路發生故障的基礎上進行故障定位,該方法實際上相當于對電路實時監測的單步故障診斷方法,不適用于大規模電路的故障診斷,而且也沒有考慮到故障傳播的復雜情況。
在與實例1相同的電路系統環境下,MBPFP與傳統BP神經網絡、文獻[9]、文獻[15]中故障定位方法的性能比較,如表5所示。

表5 不同故障定位方法的性能對比 %Tab. 5 Performance comparison of different methods of fault positioning %
與傳統BP神經網絡和文獻[15]中的方法相比,MBPFP的性能明顯優于這兩種方法;與文獻[9]中的方法相比,雖然MBPFP在故障覆蓋率上略低于該方法,但其最終的故障定位準確率比文獻[9]的方法高9.3個百分點。實驗結果表明,MBPFP在大規模數模混合電路的故障診斷中具有較高的故障覆蓋率和定位準確率。
針對大規模數模混合電路的故障診斷問題,特別是存在故障傳播的情況,本文提出了基于故障傳播的模塊化BP神經網絡(MBPFP)故障診斷方法,實現了大規模數模混合電路的故障診斷;特別是針對存在故障傳播的情況,通過“分割”故障傳播關系實現故障定位,具有較高的故障定位準確率。該方法以元器件的故障模式為研究對象,但同樣可以擴展到板級、系統級的故障診斷,適合于系統級的故障診斷;特別是在系統級聯結構較為復雜的情況下,該方法可以把復雜的故障情況進行分割,模塊化為子系統的故障診斷問題,具有良好的應用前景。
參考文獻(References)
[1]譚陽紅,何怡剛.模擬電路故障診斷的新故障字典法[J].微電子學,2001,31(4):252-253. (TAN Y H, HE Y G. A new fault dictionary method for fault diagnosis of analog circuits [J]. Microeletronics, 2001, 31(4): 252-253.)
[2]陳文豪,郭子彥,王立,等.復雜機載電子系統故障綜合診斷技術研究[J].計算機測量與控制,2016,24(11):1-4. (CHEN W H, GUO Z Y, WANG L, et al. The integrated fault diagnosis technology research based on complex airborne electronic system [J]. Computer Measurement & Control, 2016, 24(11): 1-4.)
[3]DUHAMEL P, RAULT J. Automatic test generation techniques for analog circuits and systems: a review [J]. IEEE Transactions on Circuits and Systems, 1979, 26(7): 411-440.
[4]黃亮.模擬電路故障診斷研究[D].北京:北京交通大學,2012:21-24. (HUANG L. Research on fault diagnosis of analog circuits [D]. Beijing: Beijing Jiaotong University, 2012: 21-24.)
[5]何怡剛,羅先覺,邱關源.模擬電路故障診斷L1估計及其神經網絡解法[J].電子科學學刊,1997,15(4):365-371. (HE Y G, LUO X J, QIU G Y. A neural-based nonlinearL1 norm optimization algorithm for diagnosis of networks [J]. Journal of Electronics, 1998, 15(4): 365-371.)
[6]袁海英.基于時頻分析和神經網絡的模擬電路故障診斷及可測性研究[D].電子科技大學,2006:25-49. (YUAN H Y. Study on fault diagnosis & testability in analog circuits based on time-frequency-domain analysis and neural network [D]. Chengdu: University of Electronic and Technology of China, 2006: 25-49.)
[7]王承.基于神經網絡的模擬電路故障診斷方法研究[D].成都:電子科技大學,2005. (WANG C. Research on fault diagnosis in analog circuits based on neural network [D]. Chengdu: University of Electronic and Technology of China.)
[8]AMINIAN F, AMINIAN M, COLLINS H W. Analog fault diagnosis of actual circuits using neural networks [J]. IEEE Transactions on Instrument & Meansurement, 2002, 51(3): 544-550.
[9]譚陽紅,何怡剛,陳洪云,等.大規模電路故障診斷神經網絡方法[J].電路與系統學報,2001,6(4):25-29. (TAN Y H, HE Y G, CHEN H Y, et al. The method of large scale circuit diagnosis based on neutral network [J]. Journal of Circuits and Systems, 2001, 6(4): 25-29.)
[10]張立永.基于數據挖掘的電路故障分析[D].成都:電子科技大學,2015:41-90. (ZHANG L Y. Fault analysis of circuits based on data mining [D]. Chengdu: University of Electronic and Technology of China, 2015: 41-90.)
[11]曾希雯.基于客觀化FMEA方法的故障字典研究與實現[D].成都:電子科技大學,2016:28-64. (ZENG X W. Research and implementation of fault dictionary based on objective FMEA [D]. Chengdu: University of Electronic and Technology of China, 2016: 28-64.)
[12]FUJIWARA H. FAN: a fanout-oriented test pattern generation algorithm [C]// ISCAS 1985: Proceedings of the 1985 IEEE International Symposium on Circuits and Systems. Piscataway, NJ: IEEE, 1985: 671-674.
[13]TAN P N, STEINBACH M, KUMAR V.數據挖掘導論[M].范明,范宏建,譯.北京:人民郵電出版社,2014:403-420. (TAN P N, STEINBACH M, KUMAR V. Introduction to Data Mining [M]. FAN M, FAN H J, translated. Beijing: Posts and Telecom Press, 2014: 403-420.)
[14]王健,靳奉祥,史玉峰.模式識別中特征選擇與聚類分析[J].測繪工程,2002,11(2):21-24. (WANG J, JIN F X, SHI Y F. Character selection in pattern recognition and cluster analysis [J]. Engineering of Surveying and Mapping, 2002, 11(2): 21-24.)
[15]林超.結合異常檢測算法的軸承故障檢測研究[D].杭州:浙江大學,2017: 59-78. (LIN C. Research on bearing fault detection based on anomaly detection algorithm [D].Hangzhou: Zhejiang University, 2017: 59-78.)
[16]陳侃,李昌禧.故障傳播有向圖的故障定位研究[J].自動化儀表,2011,32(4):14-17. (CHEN K, LI C X. Research on the fault localization based on directional graphic of fault propagation [J]. Process Automation Instrumentation, 2011, 32(4): 14-17.)
[17]焦李成.神經網絡系統理論[M].西安:西安電子科技大學出版社,1996:52-66. (JIAO L C. Neutral Network System Theory [M]. Xi’an: Xidian University Press, 1996: 52-66.)
[18]DAVIES D L, BOULDIN D W. A cluster separation measure [J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1979, 1(2): 224-227.