(1.上海科學技術職業學院 機電工程系,上海 201800; 2.北京航空航天大學 可靠性與系統工程學院,北京 100191;3.防災科技學院 后勤管理處,河北 廊坊 065201)
隨著現代電子產品集成化、小型化、多樣化的發展,其結構越來越復雜,同時也帶來了故障測試與故障診斷等問題,故障診斷技術受到了廣泛的關注[1]。
故障診斷技術的主要目的是檢測影響系統安全性能的故障,并準確隔離故障。目前電子設備故障診斷方法主要包括基于智能算法的故障診斷方法以及基于相關性矩陣推理的故障診斷方法。
在基于智能算法的故障診斷方法方面,張瑞[2]等人將BP神經網絡模型應用于某型地空導彈靜變電源的故障診斷中。為解決神經網絡訓練需要大量的樣本、易陷入局部最優、收斂速度慢等缺點,張松蘭[3]等人提出了改進模糊聚類(IFC)和支持向量機(SVM)相結合的模擬電路故障診斷方法。針對現有地鐵車門故障診斷方法存在的診斷速度慢以及大量故障檢修數據未得到合理利用等問題,陳蘇雨[4]等人提出了一種基于信息增益率的隨機森林故障診斷方法。
基于D矩陣的故障診斷方法屬于測前仿真故障診斷方法,作為目前較為流行的故障診斷方法,其基本思想是根據預先的實際經驗或實際需求確定產品的潛在故障集合,然后通過計算機仿真或實物的故障注入手段,求取產品在各個狀態下的響應[1],用0/1值表示測試與故障之間的關系,構建故障與測試的一階相關性矩陣,其中0表示測試未檢測到故障,1表示測試檢測到了故障。在診斷推理的過程中,通過BIT給出的0-1判定結果,結合預先構建好的相關性矩陣進行故障隔離推理,確定產品的狀態。
目前基于D矩陣的故障診斷方法已得到了廣泛的應用。田恒[5]等人在D矩陣的基礎上提出了一種基于單故障化的多故障診斷與維修新策略。為了提高D矩陣故障診斷的效率,在繼承D矩陣傳統處理算法優點的基礎上,引入局部信息熵算式,進一步提出一種信息熵測試性D矩陣故障診斷新算法;林志文[6]等人利用D矩陣分別完成對艦船電子裝備的測試性分析評估、診斷測試序列生成,實現了某艦船電子裝備綜合診斷。
此外,為進一步擴展D矩陣的應用,傳統D矩陣與智能算法的結合運用在故障診斷上也取得了很好的效果。鄭博愷[7]等人將支持向量機與D矩陣結合,提出了一種基于故障測試相關矩陣與支持向量機的模擬電路軟故障診斷方法;石君友[8]等人結合D矩陣與模糊理論,通過構建增強推理算子與模糊相關性矩陣實現故障診斷。
然而,由于傳統的D矩陣用邏輯0/1表示故障與測試的相關關系,表示方式簡單,簡化了故障推理,而從另外一個角度考慮,其簡單的0/1關系僅僅表示了故障與測試之間有無關聯,而無法進一步描述故障與測試之間關聯的程度,且無法充分利用和挖掘測試與故障間的相關性,因此基于傳統D矩陣的診斷推理方法在故障隔離能力將受到限制。基于以上考慮,本文借鑒測前仿真故障診斷方法的基本思想,為充分利用測試的信息,在D矩陣的基礎上提出了擴展D矩陣的概念,并給出了構建方法,將擴展D矩陣與決策樹算法結合,建立了決策樹模型,實現了故障檢測與隔離,并以電源模塊為案例進行了應用,結果表明該方法相比于傳統D矩陣方法具有更高的故障隔離能力。
傳統的D矩陣的故障診斷思想是用0/1值表示測試與故障之間的關系,當矩陣中元素為1時,表示該測試可以檢測到該故障,0表示對應的測試無法檢測到該故障,是對測試與故障關系的定性描述。傳統的基于D矩陣的故障診斷方法主要包括相關性模型的建立、測試性分析獲取D矩陣、診斷推理三個部分[9]。
在傳統的D矩陣中用簡單的0/1邏輯量表示測試與故障之間的關系,雖然減少了診斷推理時的計算量,但將其關系簡單的抽象為能否檢測,顯然無法充分利用測試中的信息量,這樣將導致診斷推理的結果不夠精確。如一個5 V的電壓測試,若監測數據為2.5 V或0 V,在D矩陣中對應的元素值都是1,表示該故障可被檢測到,這樣處理將無法反映監測數據的具體變化,無法充分利用監測數據的信息,從而導致基于該矩陣的診斷推理結果不夠精確。
考慮到傳統D矩陣的上述缺陷,本文提出了一種擴展D矩陣的構建方法。擴展相關性矩陣不再是用簡單的0/1描述故障與測試的關系,而是用多值描述故障與測試之間的關系。測試與故障的擴展D矩陣構建流程主要包括故障集合的確定、測試集合確定、仿真/實物故障注入、數據的野值剔除、數據合并等。
(1) 故障集合的確定。基于故障模式影響和危害性分析(FMECA)工作,梳理出產品的所有潛在故障集合,根據產品故障診斷的要求,確定產品所需診斷與隔離的層次,如按照航空產品劃分,在故障模式影響和危害性分析中,系統的結構可以自上而下劃分為系統級、外場可更換單元(LRU)級、車間可更換單元(SRU)級、電路板級、功能子電路級和元器件級,相應的故障模式也存在系統級、LRU級、SRU級、電路板級、功能子電路級和元器件級。根據診斷的層次要求,對所有的故障集合進行故障合并分析,從而獲得所需的潛在故障集合。
(2) 測試集合的確定。對產品的設計方案進行分析,梳理出產品現有的測試情況,根據故障診斷需求確定需實現的最終測試集合。
(3) 仿真/實物故障注入。故障注入的方式有兩種,一種是仿真故障注入,另一種是基于實物的故障注入,前者是基于產品設計基礎上,通過仿真軟件構建產品的仿真模型,模擬產品的各個故障狀態,計算產品的響應;后者是基于產品設計,制作具有故障注入接口的樣件產品,利用各種故障注入的技術,借助故障注入設備實現對實物的故障注入。
(4) 野值剔除。獲取初始擴展D矩陣,數據的野值剔除方法主要是基于萊特準則判據實施的,分別針對每一個測試點每個狀態下獲取的測試數據按照下式求取均值和方差。
(1)
(2)
如果|xi-μ|>3σ,則判斷xi為奇異點,剔除。具體流程如下:
① 通過計算機仿真或故障注入手段獲取第j個狀態在第i個測試下的數據集;
② 計算上述數據集的均值和方差;
③ 計算每一個數據的殘差,并與3倍的標準差進行比較,利用萊特準則進行野值判別;
④ 若判定為野值,則用前一個樣本點替換該樣本;
⑤ 按照上述的判定準則,循環多次,直到數據集中無野值點為止;
⑥ 計算無野值后數據的均值,將其作為該狀態與測試之間的關系值,放入初始擴展相關性矩陣中;
⑦ 重復上述步驟,遍歷所有狀態,得到初始擴展相關性矩陣。
(5) 數據合并,獲取最終擴展相關性矩陣。在初始擴展相關性矩陣中,行表示狀態,列表示測試,每一個狀態都有特定的測試值與之對應。然而,在實際的初始擴展相關性矩陣中很可能會出現下述情況:同一個測試點在兩個狀態下,其數值不相等,但數值相差極小,在實際情況下,由于其數值太接近,用該測試點是無法對這兩種狀態進行區分的,而在用相關性矩陣進行故障推理時,會認為上述兩種狀態是可以通過該測試點進行隔離的。為避免上述情況發生,本文提出了一種數據合并的方法,借鑒目前模糊組劃分的方法[10],在電壓特征方法中,認為當兩個故障產生的電壓差的絕對值小于 0.7 V時就認為這兩個故障屬于同一個模糊組[11]。經過上一步野值剔除后,每一個狀態在不同的測試下都對應了一個數值,第i個狀態第j個測試點的數值為dij,針對每一個測試點,對各個狀態下的數據進行合并,具體流程如下:
① 計算初始擴展相關性矩陣中每一列的數值之間的差值,將差值小于0.7的數據劃分到同一組;
② 計算同一組內數據的均值,作為組內元素的最終取值;
③ 通過上述方法,遍歷所有測試,從而獲得最終的擴展相關性矩陣。
這樣,對于同一個測試點,它的取值不再是0和1。同一測試點可以有多種取值,每一組用一個數值進行表示,有多少組就有多少種取值,值的大小用同一組內數據的均值描述。
決策樹是一種基本的分類與回歸方法。它最終生成的是一個類似于樹的二分模型,它對不同的特征實例的有標記數據進行訓練,構建決策樹,最終實現對數據的分類過程,可以認為是if-then規則,也可以認為是特征向量與類別之間的一個條件概率分布。決策樹模型可讀性強、分類速度快。可以通過有標記的數據進行學習,以損失函數最小化的原則構建決策樹模型。預測時,決策樹模型是根據對新數據的分類實現的。決策樹的學習主要包括下面3個步驟:對模型的特征選擇、生成決策樹、修剪。
決策樹模型是以樹形結構實現對象的分類。多個節點和有向邊一塊構建成決策樹,節點有內部節點和葉節點兩種類型。內部節點表示特征屬性,葉節點表示類標簽。
決策樹的生成算法有多種,主要包括ID3算法和c4.5算法,二者最主要的差別是在對特征選取的原則上,ID3是選擇信息增益最大的特征作為結點的特征,c4.5是用信息增益比對特征進行優選。信息增益可用數據集合的信息熵與給定特征下數據集的條件熵表示,具體算法如下:假設D為訓練數據集,|D|表示樣本個數,有K個類Ck,|Ck|表示屬于Ck的樣本個數,假設特征A有n個不同取值,特征A將數據集D劃分為n個子集D1,D2,…,Dn,|Di|為Di的樣本個數,子集Di中屬于類Ck的樣本集合為Dik,|Dik|為Dik的樣本個數。
① 計算數據集的信息熵H(D)。
(3)
② 計算特征A對數據集的條件熵H(D|A)。
(4)
③ 計算信息增益。
g(D,A)=H(D)-H(D|A)
(5)
對于決策樹學習,假設給定訓練數據樣本集:
DATA={(x1,y1),(x2,y2),…,(xn,yn)}
(6)

決策樹學習是一個遞歸的選擇最優特征的過程,根據這些特征對訓練數據進行分割,歸納出一組最好的分類規則,使得數據分類達到最好的效果。其基本步驟如下:
① 創建根節點,將所有數據放在根節點;
② 選擇最優特征,將數據分割成子集;
③ 如果這些子集已經能夠被基本正確分類,則將這些子集分到所對應的節點上;
④ 如果還有子集不能被基本正確分類,則對這些子集選擇最優的特征,繼續進行分割;
⑤ 依照上述方法遞歸進行,直到所有數據子集被基本正確分類為止。
傳統的基于D矩陣的故障診斷方法是將D矩陣的一行作為一條診斷知識,將測試序列與D矩陣的行進行比對,找到與其匹配的行,該行所對應的狀態,即認定為系統的當前狀態。該方法中測試的比對是并行的。基于決策樹與擴展D矩陣故障診斷方法,是在擴展D矩陣的基礎上進行構建決策樹模型,通過決策樹特征優選的方法先選出第一步需要進行的測試,然后在剩余的測試中以同樣的方法進行測試優選,從而獲得一條最優的診斷路徑,通過一步一步的測試,得到最終的診斷結果。其基本步驟如下:
① 計算擴展D矩陣中數據集的經驗熵;
② 計算各個測試對數據集的信息增益;
③ 比較各個測試的信息增益值,取信息增益最大的測試作為故障診斷推理的第一步測試;
④ 根據上述方法選擇第②步測試,直到所有的故障數據被基本正確分類為止。
源模塊故障診斷方法應用
案例應用針對多路電壓輸出的電源模塊展開,電源模塊主要包括18 V、12 V、5 V、3.3 V、2.5 V、1.8 V和0.9 V等7個電壓處理子電路。電源模塊的開路故障的注入主要是依靠短路帽實現,參數漂移故障通過探針式故障注入器實現,共注入9個故障,設置了5個測試點,在每個狀態下各采集了50個樣本數據,共500個樣本數據,根據野值剔除方法及矩陣構建方法,可獲得初始擴展相關性矩陣如表1所示,行表示狀態,列表示測試。
根據上述擴展相關性矩陣的構建方法,對上述矩陣進行數據合并獲得最終的擴展相關性矩陣如表2所示。

表1 初始擴展相關性矩陣

表2 擴展相關性矩陣
按照傳統D矩陣方法,構建的D矩陣如表3所示,可以看出LM2596-1第一管腳開路故障與C1-3參數漂移故障在傳統的D矩陣中具有相同的行(0,0,1,1,1),R1-1參數漂移故障與RJ1-1開路故障也具有相同的行(0,1,0,0,0),因此上述兩對故障無法通過傳統D矩陣的方法進行隔離。

表3 傳統相關性矩陣
而在擴展D矩陣中,LM2596-1第一管腳開路故障與C1-3參數漂移故障可用T3、T4、T5中的任意一個測試隔離開,R1-1參數漂移故障與RJ1-1開路故障可用T2進行隔離。
按照第2節構建決策樹的方法構建決策樹如圖1所示。

圖1 電源模塊故障診斷決策樹模型
由圖1決策樹模型可看出,通過5個測試點,可將上述9個故障模式準確的隔離,故障隔離率達到了100%,而基于傳統的D矩陣方式,將會出現以下模糊組(LM2596-1第一管腳開路故障,C1-3參數漂移故障)/(CTS1-2參數漂移故障,LM7818第一管腳開路故障)。兩種故障隔離方法所得到的故障隔離率指標對比如表4所示。

表4 指標對比
相比傳統的D矩陣,本文提出的基于決策樹與擴展D矩陣的故障隔離方法,不再用簡單的0/1表示故障與測試的相關性關系,而是利用離散值表示故障與測試的相關性關系,使得各個測試點的測試數據信息得到充分的利用,提高了故障隔離水平。