《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 二元決策圖ITE算法在.NET平臺(tái)的實(shí)現(xiàn)與應(yīng)用
二元決策圖ITE算法在.NET平臺(tái)的實(shí)現(xiàn)與應(yīng)用
2016年電子技術(shù)應(yīng)用第1期
凌 牧,袁海文
北京航空航天大學(xué) 自動(dòng)化科學(xué)與電氣工程學(xué)院,北京100191
摘要: 故障樹作為系統(tǒng)可靠性分析的一種工具,在實(shí)際工程中已得到廣泛應(yīng)用。二元決策圖作為常用的故障樹分析法,通過(guò)其結(jié)構(gòu)優(yōu)勢(shì)可快速得到故障樹的不交化割集,通過(guò)分析割集集合確定系統(tǒng)失效集合以及計(jì)算系統(tǒng)失效概率等指標(biāo),確定系統(tǒng)可靠性。在.NET平臺(tái)上使用ITE算法實(shí)現(xiàn)故障樹對(duì)二元決策圖的轉(zhuǎn)化,并在通用的CAN總線監(jiān)測(cè)診斷平臺(tái)上實(shí)現(xiàn),平臺(tái)使用SQL Server作為知識(shí)庫(kù)存儲(chǔ)信息數(shù)據(jù),以故障樹信息和監(jiān)測(cè)數(shù)據(jù)作為輸入,實(shí)時(shí)對(duì)系統(tǒng)報(bào)警做出診斷。
中圖分類號(hào): TP202.1
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2016.01.027
中文引用格式: 凌牧,袁海文. 二元決策圖ITE算法在.NET平臺(tái)的實(shí)現(xiàn)與應(yīng)用[J].電子技術(shù)應(yīng)用,2016,42(1):104-107.
英文引用格式: Ling Mu,Yuan Haiwen. Implementation and application of BDD using ITE algorithm on .NET platform[J].Application of Electronic Technique,2016,42(1):104-107.
Implementation and application of BDD using ITE algorithm on .NET platform
Ling Mu,Yuan Haiwen
School of Automation Science and Electrical Engineering,Beihang University,Beijing 100191,China
Abstract: Fault tree analysis method is a useful reliability analysis tool,and it is used in applications of practical engineering widly. Binary Decision Diagram(BDD) is a common used fault tree analysis method, the disjoint cut sets of the fault tree can be quickly obtained by its structure advantage. The reliability indexes of the system such as the failure sets of the system and the failure probability of the system are determined by analyzing the collection of cut sets. An algorithm achieve transformation from fault tree to binary decision diagram is proposed. This algorithm is applied in a CAN-bus monitoring and diagnosis platform using SQL Server as information database, fault tree information and real-time bus data as input.
Key words : binary decision diagram;fault tree;ITE algorithm;CAN-bus

0 引言

    故障樹分析法[1]是在實(shí)際工程應(yīng)用中判斷系統(tǒng)安全性與可靠性常用的方法,在理論分析方面已經(jīng)發(fā)展得非常成熟,其研究多數(shù)集中于計(jì)算頂事件發(fā)生概率和分析系統(tǒng)薄弱環(huán)節(jié)的算法上,如文獻(xiàn)[2]中的智能故障樹診斷方法,按照計(jì)算所得底事件的故障率確定故障診斷的最優(yōu)順序,是典型的故障樹靜態(tài)分析方法。利用故障樹法診斷實(shí)時(shí)診斷的系統(tǒng)也有一些研究成果,如文獻(xiàn)[3]提出了一種實(shí)時(shí)預(yù)測(cè)故障的方法,引入底事件工作狀態(tài)隸屬度的概念,實(shí)時(shí)計(jì)算頂事件發(fā)生概率,對(duì)薄弱系統(tǒng)環(huán)節(jié)進(jìn)行預(yù)測(cè)。但是這種方法僅能作為預(yù)測(cè)軟件,并未達(dá)到實(shí)時(shí)診斷系統(tǒng)故障的效果。

    二元決策圖[4-5](Binary Decision Diagram,BDD)本質(zhì)上是變量集的布爾函數(shù),這與故障樹的割集[6]概念一致,由于BDD的結(jié)構(gòu)規(guī)范,對(duì)比故障樹節(jié)點(diǎn)更少,對(duì)于存儲(chǔ)器空間占用少,有利于快速得出故障失效的不交化割集。

    在實(shí)際工程應(yīng)用中,現(xiàn)場(chǎng)操作人員雖然有現(xiàn)場(chǎng)數(shù)據(jù),但對(duì)于復(fù)雜系統(tǒng)故障不一定具備診斷知識(shí),因此很難現(xiàn)場(chǎng)準(zhǔn)確診斷故障原因[7]。對(duì)于以上問(wèn)題,本文提出了一種針對(duì)具有總線報(bào)警的實(shí)時(shí)監(jiān)控系統(tǒng),根據(jù)總線節(jié)點(diǎn)的報(bào)警代碼,利用ITE算法將故障樹轉(zhuǎn)化為BDD,在線實(shí)時(shí)診斷系統(tǒng)故障,對(duì)于分析系統(tǒng)故障模式,不斷完善修正故障樹有一定實(shí)際意義。

1 ITE算法及實(shí)現(xiàn)

1.1 ITE算法基本原理

    BDD是一種非閉環(huán)有向圖,是一組變量的布爾表達(dá)式的圖形化表示,在BDD中除了變量節(jié)點(diǎn),還存在兩種基本終結(jié)點(diǎn)“0”和“1”,從層數(shù)最高的“1”節(jié)點(diǎn)沿著所有節(jié)點(diǎn)的“1”腳回溯至BDD的頂節(jié)點(diǎn),得到的變量集合之和即為該BDD的布爾表達(dá)式。ITE(if-else-then)算子采用香農(nóng)分解式的思想,將BDD按變量排序順序依次展開,比傳統(tǒng)二元決策圖轉(zhuǎn)換算法復(fù)雜度低,其表達(dá)式如式(1)所示。

    jsj3-gs1.gif

    采用式(1)算子對(duì)圖1故障樹進(jìn)行BDD轉(zhuǎn)換,假設(shè)其底事件排序?yàn)椋篴bcd,那么依次得到故障樹中各個(gè)門的ITE表達(dá)式如下:jsj3-t1.gif

    jsj3-gs1-x1.gif

    由該故障樹的頂事件(TOP)ITE表達(dá)式可得圖1故障樹的割集為:{ab,acd,cd}。

1.2 ITE算法實(shí)現(xiàn)

    由于BDD特殊的結(jié)構(gòu)形式,每個(gè)節(jié)點(diǎn)的結(jié)構(gòu)都是相同的,適合使用遞歸方法實(shí)現(xiàn)。首先,對(duì)于ITE節(jié)點(diǎn)定義,如表1所示。

jsj3-b1.gif

    從表1中可以看出形成BDD的ITE結(jié)構(gòu)節(jié)點(diǎn)定義中使用了自引用的方式,其中它的nodehigh 、nodelow屬性也是itenode的類結(jié)構(gòu),這樣使得在ITE節(jié)點(diǎn)連接時(shí)可以使用遞歸方式,形成的合并節(jié)點(diǎn)也都為相同結(jié)構(gòu)。

    使用ITE算法將故障樹轉(zhuǎn)換為BDD主要有兩個(gè)步驟:(1)對(duì)于門形成該門的ITE結(jié)構(gòu);(2)將所有門的ITE結(jié)構(gòu)連接起來(lái)形成最終BDD。具體算法如表2、3所示。

jsj3-b2.gif

jsj3-b3.gif

    表2中形成子門所有底事件的ITE函數(shù)將所有該門下的底事件連接形成ITE函數(shù),由于在連接底事件的時(shí)候不存在兩個(gè)ITE間的操作,只需編輯被連接節(jié)點(diǎn)的左右腳即可,如節(jié)點(diǎn)b需要連接節(jié)點(diǎn)a時(shí),判斷b節(jié)點(diǎn)父門的類型,若是“或”門,b節(jié)點(diǎn)的ITE結(jié)構(gòu)中第2個(gè)元素中放入a節(jié)點(diǎn),第3個(gè)元素置“0”;若是“與”門,b節(jié)點(diǎn)的ITE結(jié)構(gòu)中第3個(gè)元素中放入a節(jié)點(diǎn),第2個(gè)元素置“1”,如此循環(huán)至該門下所有節(jié)點(diǎn)均連接完成,最后返回該門所有底事件的ITE結(jié)構(gòu)。

    表3中ITE連接函數(shù)有3個(gè)變量,變量f、g表示2個(gè)待連接的ITE節(jié)點(diǎn),變量op表示連接類型。兩個(gè)ITE節(jié)點(diǎn)連接主要分為3種情況:(1)f、g節(jié)點(diǎn)中有一個(gè)是“0/1”節(jié)點(diǎn),根據(jù)op類別返回相應(yīng)ITE節(jié)點(diǎn);(2)計(jì)算表中已經(jīng)有節(jié)點(diǎn)f、g的相關(guān)操作,直接返回操作值;(3)以上2種情況均不符合,則按照ITE結(jié)構(gòu)遞歸連接。

    對(duì)于整棵樹的ITE求解步驟為:(1)對(duì)所有門,求取其門下所有底事件的ITE合并結(jié)構(gòu);(2)從層數(shù)最多的門開始求解ITE,逐步替代其上層門的輸入直到頂門。最終得到頂門的ITE結(jié)構(gòu)就是該故障樹的BDD形式。

2 算法實(shí)現(xiàn)平臺(tái)

    作為一個(gè)通用的嵌入式軟件平臺(tái)[9-10],對(duì)于一個(gè)具有CAN總線結(jié)構(gòu)的系統(tǒng),合理設(shè)置故障報(bào)警節(jié)點(diǎn),以所有故障節(jié)點(diǎn)作為故障樹的頂事件建立多棵故障樹,通過(guò)GUI界面將所有故障樹信息錄入軟件平臺(tái)。監(jiān)控界面實(shí)時(shí)顯示系統(tǒng)數(shù)據(jù),當(dāng)有報(bào)警信號(hào)時(shí),操作人員可判讀是否需要進(jìn)行診斷,如要現(xiàn)場(chǎng)診斷,則進(jìn)入診斷推理界面,根據(jù)報(bào)警信號(hào)找到相應(yīng)故障樹,采用ITE算法,進(jìn)行定性分析,確定發(fā)生故障的割集集合,給出結(jié)果及修復(fù)信息,系統(tǒng)結(jié)構(gòu)如圖2所示。

jsj3-t2.gif

2.1 故障樹建模模塊

    在實(shí)際監(jiān)控診斷工作開始之前,首先需要建立本系統(tǒng)的故障樹模型。在建立故障樹時(shí),出于軟件通用性考慮,將建立故障樹與錄入監(jiān)測(cè)參數(shù)分開。首先將所有的系統(tǒng)參數(shù)錄入,在建樹的過(guò)程中直接選擇相應(yīng)底事件對(duì)應(yīng)的參數(shù),這樣避免了不同底事件在依賴同樣特征參數(shù)時(shí)的重復(fù)操作,提高了建樹效率及準(zhǔn)確性。

2.2 數(shù)據(jù)庫(kù)模塊

    數(shù)據(jù)庫(kù)是平臺(tái)系統(tǒng)存儲(chǔ)故障樹信息和原始系統(tǒng)數(shù)據(jù)的重要環(huán)節(jié),如圖3所示是系統(tǒng)的數(shù)據(jù)庫(kù)結(jié)構(gòu)。ADO.NET平臺(tái)具有執(zhí)行速度快、網(wǎng)絡(luò)傳輸時(shí)間短的優(yōu)點(diǎn),適用于平臺(tái)的分布式數(shù)據(jù)傳輸環(huán)境,基于以上原因,數(shù)據(jù)庫(kù)采用SQL Server軟件平臺(tái)開發(fā)[8],與界面設(shè)計(jì)軟件Visual Studio有良好的接口。

jsj3-t3.gif

    數(shù)據(jù)庫(kù)主要存儲(chǔ)了包括故障樹信息、原始特征參數(shù)值(總線數(shù)據(jù))、推理過(guò)程中得到的各種中間信息(割集)、報(bào)警信息和解決問(wèn)題后輸出結(jié)果信息(修復(fù)方法)等??偩€數(shù)據(jù)分為報(bào)警信息和征兆參數(shù)值兩部分。在導(dǎo)入故障樹信息時(shí),將各參數(shù)對(duì)應(yīng)的CAN總線關(guān)聯(lián)對(duì)象的ID、關(guān)聯(lián)指針、對(duì)象長(zhǎng)度一并導(dǎo)入,根據(jù)這些信息,系統(tǒng)可以將收到的數(shù)據(jù)幀轉(zhuǎn)換為有意義的參數(shù)值。如圖3中的WriteData_SQL表記錄所有的總線原始數(shù)據(jù),通過(guò)查找parameters表將原始二進(jìn)制數(shù)據(jù)翻譯成參數(shù)實(shí)際值提供給監(jiān)控界面顯示。

3 應(yīng)用

3.1 案例分析

    車輛液壓控制系統(tǒng)中包含液壓機(jī)械設(shè)備、控制電路等復(fù)雜結(jié)構(gòu),發(fā)生故障的可能性也隨之增大。某些故障不但會(huì)影響車輛正常運(yùn)轉(zhuǎn),還可能會(huì)導(dǎo)致整個(gè)系統(tǒng)的故障。

    如圖4所示為某液壓控制系統(tǒng)故障樹,本文假設(shè)所有事件是二態(tài)的,即故障或正常。故障樹信息如表4所示。本系統(tǒng)故障樹特點(diǎn)在于底事件可分兩類:人工判斷類及自動(dòng)判斷類。其中,人工判斷類底事件只對(duì)應(yīng)一個(gè)特征參數(shù),即需要人工判斷該特征參數(shù)的狀態(tài)。而對(duì)于自動(dòng)判斷類底事件,出于通用性考慮,為每個(gè)底事件預(yù)留3個(gè)特征參數(shù),且3個(gè)特征參數(shù)之間的布爾關(guān)系可編輯,系統(tǒng)將在后臺(tái)根據(jù)現(xiàn)場(chǎng)數(shù)據(jù)及用戶給出的布爾關(guān)系判斷該底事件是否發(fā)生。

jsj3-t4.gif

jsj3-b4.gif

    頂事件為主泵異常,底事件主要分為電控回路故障、電纜故障、閥件故障等。對(duì)與每個(gè)底事件有相應(yīng)的征兆,如X1電源故障,可通過(guò)電源電壓U判斷X1的狀態(tài);而有的底事件可能對(duì)應(yīng)多個(gè)征兆,如X8閥件卡滯對(duì)應(yīng)的征兆有控制電流I和系統(tǒng)壓力P兩個(gè)參數(shù),這兩個(gè)參數(shù)之間也存在布爾關(guān)系,當(dāng)兩個(gè)參數(shù)同時(shí)異常時(shí)X8故障。

3.2 模擬環(huán)境拓?fù)浣Y(jié)構(gòu)

    分別采用兩臺(tái)PC機(jī)作為現(xiàn)場(chǎng)環(huán)境模擬機(jī)和診斷機(jī),其拓?fù)浣Y(jié)構(gòu)如圖5所示。上位機(jī)模擬發(fā)送總線數(shù)據(jù)以及故障注入,下位機(jī)運(yùn)行本診斷軟件。

jsj3-t5.gif

3.3 實(shí)驗(yàn)結(jié)果分析

    在模擬開始前,將上文故障樹信息輸入診斷軟件,并將該系統(tǒng)的模擬總線數(shù)據(jù)輸入上位機(jī)。注入液位高度故障數(shù)據(jù),在升車過(guò)程進(jìn)行到20 s時(shí)注入報(bào)警幀,報(bào)警代碼為101。接到報(bào)警后,軟件提示是否立即診斷,如圖6所示,即轉(zhuǎn)入診斷推理界面,如圖7所示,診斷結(jié)果為油液高度異常。

jsj3-t6.gif

jsj3-t7.gif

4 結(jié)論

    本文將二元決策圖ITE算法應(yīng)用于實(shí)際系統(tǒng),實(shí)現(xiàn)了在線系統(tǒng)故障診斷軟件的設(shè)計(jì)仿真,根據(jù)仿真結(jié)果可得出:

    (1)算法通用性強(qiáng),可靠性高。二元決策圖ITE算法可應(yīng)用于任何結(jié)構(gòu)的系統(tǒng),具有一定的工程意義。

    (2)診斷效率高,實(shí)時(shí)診斷故障原因并給出解決方案。

    (3)良好的人機(jī)交互界面,完整的數(shù)據(jù)知識(shí)存儲(chǔ)機(jī)制,對(duì)于完善已有故障樹,從而提升整個(gè)系統(tǒng)的可靠性有一定的應(yīng)用價(jià)值。

參考文獻(xiàn)

[1] 王少萍.工程可靠性[M].北京:北京航空航天大學(xué)出版社,2000.

[2] 倪紹徐,張?jiān)7?,易宏,?基于故障樹的智能故障診斷方法[J].上海交通大學(xué)學(xué)報(bào).2008(8).

[3] 董豆豆,周忠寶.基于故障樹的系統(tǒng)安全風(fēng)險(xiǎn)實(shí)時(shí)監(jiān)測(cè)方法[J].國(guó)防科技大學(xué)學(xué)報(bào).2006(28).

[4] 張超.基于BDD的動(dòng)態(tài)故障樹優(yōu)化研究[D].西安:西北工業(yè)大學(xué),2004.

[5] 袁靜,胡昌華,徐瑞,等.基于改進(jìn)BDD算法的導(dǎo)彈安控系統(tǒng)故障樹仿真分析[J].系統(tǒng)仿真學(xué)報(bào),2007(19).

[6] 朱大奇,于盛林.基于故障樹最小割集的故障診斷方法研究[J],數(shù)據(jù)采集與處理,2002,17(3).

[7] 朱大奇,于盛林,陳小平.基于故障樹分析及虛擬儀器的電子部件故障診斷技術(shù)研究[J].儀器儀表學(xué)報(bào),2002,23(1).

[8] 張勇.基于ACCESS數(shù)據(jù)庫(kù)的CAN總線數(shù)據(jù)采集方法的設(shè)計(jì)與實(shí)現(xiàn)[J].制造業(yè)自動(dòng)化.2011(21).

[9] JOANNE B D,KEVIN J S.Developing a low-cost high-quality software tool for dynamic fault-tree analysis.IEEE Trans.Reliability,2000(40):49-59.

[10] Zhou Zhiwei,Zhuang Ming.Design  of a real-time fault diagnosis expert system for the  EAST cryoplant.Fusion Engineering and  Design,2012(87):2002-2006.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。