文獻標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.2016.01.027
中文引用格式: 凌牧,,袁海文. 二元決策圖ITE算法在.NET平臺的實現(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.
0 引言
故障樹分析法[1]是在實際工程應(yīng)用中判斷系統(tǒng)安全性與可靠性常用的方法,在理論分析方面已經(jīng)發(fā)展得非常成熟,,其研究多數(shù)集中于計算頂事件發(fā)生概率和分析系統(tǒng)薄弱環(huán)節(jié)的算法上,,如文獻[2]中的智能故障樹診斷方法,按照計算所得底事件的故障率確定故障診斷的最優(yōu)順序,,是典型的故障樹靜態(tài)分析方法,。利用故障樹法診斷實時診斷的系統(tǒng)也有一些研究成果,如文獻[3]提出了一種實時預(yù)測故障的方法,,引入底事件工作狀態(tài)隸屬度的概念,,實時計算頂事件發(fā)生概率,對薄弱系統(tǒng)環(huán)節(jié)進行預(yù)測,。但是這種方法僅能作為預(yù)測軟件,,并未達到實時診斷系統(tǒng)故障的效果。
二元決策圖[4-5](Binary Decision Diagram,,BDD)本質(zhì)上是變量集的布爾函數(shù),,這與故障樹的割集[6]概念一致,由于BDD的結(jié)構(gòu)規(guī)范,,對比故障樹節(jié)點更少,,對于存儲器空間占用少,有利于快速得出故障失效的不交化割集,。
在實際工程應(yīng)用中,,現(xiàn)場操作人員雖然有現(xiàn)場數(shù)據(jù),但對于復(fù)雜系統(tǒng)故障不一定具備診斷知識,,因此很難現(xiàn)場準(zhǔn)確診斷故障原因[7],。對于以上問題,本文提出了一種針對具有總線報警的實時監(jiān)控系統(tǒng),,根據(jù)總線節(jié)點的報警代碼,利用ITE算法將故障樹轉(zhuǎn)化為BDD,,在線實時診斷系統(tǒng)故障,,對于分析系統(tǒng)故障模式,不斷完善修正故障樹有一定實際意義,。
1 ITE算法及實現(xiàn)
1.1 ITE算法基本原理
BDD是一種非閉環(huán)有向圖,,是一組變量的布爾表達式的圖形化表示,在BDD中除了變量節(jié)點,,還存在兩種基本終結(jié)點“0”和“1”,,從層數(shù)最高的“1”節(jié)點沿著所有節(jié)點的“1”腳回溯至BDD的頂節(jié)點,,得到的變量集合之和即為該BDD的布爾表達式。ITE(if-else-then)算子采用香農(nóng)分解式的思想,,將BDD按變量排序順序依次展開,,比傳統(tǒng)二元決策圖轉(zhuǎn)換算法復(fù)雜度低,其表達式如式(1)所示,。
采用式(1)算子對圖1故障樹進行BDD轉(zhuǎn)換,,假設(shè)其底事件排序為:abcd,那么依次得到故障樹中各個門的ITE表達式如下:
由該故障樹的頂事件(TOP)ITE表達式可得圖1故障樹的割集為:{ab,acd,,cd},。
1.2 ITE算法實現(xiàn)
由于BDD特殊的結(jié)構(gòu)形式,每個節(jié)點的結(jié)構(gòu)都是相同的,,適合使用遞歸方法實現(xiàn),。首先,對于ITE節(jié)點定義,,如表1所示,。
從表1中可以看出形成BDD的ITE結(jié)構(gòu)節(jié)點定義中使用了自引用的方式,其中它的nodehigh ,、nodelow屬性也是itenode的類結(jié)構(gòu),,這樣使得在ITE節(jié)點連接時可以使用遞歸方式,形成的合并節(jié)點也都為相同結(jié)構(gòu),。
使用ITE算法將故障樹轉(zhuǎn)換為BDD主要有兩個步驟:(1)對于門形成該門的ITE結(jié)構(gòu),;(2)將所有門的ITE結(jié)構(gòu)連接起來形成最終BDD。具體算法如表2,、3所示,。
表2中形成子門所有底事件的ITE函數(shù)將所有該門下的底事件連接形成ITE函數(shù),由于在連接底事件的時候不存在兩個ITE間的操作,,只需編輯被連接節(jié)點的左右腳即可,,如節(jié)點b需要連接節(jié)點a時,判斷b節(jié)點父門的類型,,若是“或”門,,b節(jié)點的ITE結(jié)構(gòu)中第2個元素中放入a節(jié)點,第3個元素置“0”,;若是“與”門,,b節(jié)點的ITE結(jié)構(gòu)中第3個元素中放入a節(jié)點,第2個元素置“1”,,如此循環(huán)至該門下所有節(jié)點均連接完成,,最后返回該門所有底事件的ITE結(jié)構(gòu)。
表3中ITE連接函數(shù)有3個變量,,變量f,、g表示2個待連接的ITE節(jié)點,,變量op表示連接類型。兩個ITE節(jié)點連接主要分為3種情況:(1)f,、g節(jié)點中有一個是“0/1”節(jié)點,,根據(jù)op類別返回相應(yīng)ITE節(jié)點;(2)計算表中已經(jīng)有節(jié)點f,、g的相關(guān)操作,,直接返回操作值;(3)以上2種情況均不符合,,則按照ITE結(jié)構(gòu)遞歸連接,。
對于整棵樹的ITE求解步驟為:(1)對所有門,求取其門下所有底事件的ITE合并結(jié)構(gòu),;(2)從層數(shù)最多的門開始求解ITE,,逐步替代其上層門的輸入直到頂門,。最終得到頂門的ITE結(jié)構(gòu)就是該故障樹的BDD形式,。
2 算法實現(xiàn)平臺
作為一個通用的嵌入式軟件平臺[9-10],,對于一個具有CAN總線結(jié)構(gòu)的系統(tǒng),合理設(shè)置故障報警節(jié)點,,以所有故障節(jié)點作為故障樹的頂事件建立多棵故障樹,,通過GUI界面將所有故障樹信息錄入軟件平臺。監(jiān)控界面實時顯示系統(tǒng)數(shù)據(jù),,當(dāng)有報警信號時,,操作人員可判讀是否需要進行診斷,如要現(xiàn)場診斷,,則進入診斷推理界面,,根據(jù)報警信號找到相應(yīng)故障樹,采用ITE算法,,進行定性分析,,確定發(fā)生故障的割集集合,給出結(jié)果及修復(fù)信息,,系統(tǒng)結(jié)構(gòu)如圖2所示,。
2.1 故障樹建模模塊
在實際監(jiān)控診斷工作開始之前,首先需要建立本系統(tǒng)的故障樹模型,。在建立故障樹時,,出于軟件通用性考慮,將建立故障樹與錄入監(jiān)測參數(shù)分開,。首先將所有的系統(tǒng)參數(shù)錄入,在建樹的過程中直接選擇相應(yīng)底事件對應(yīng)的參數(shù),,這樣避免了不同底事件在依賴同樣特征參數(shù)時的重復(fù)操作,,提高了建樹效率及準(zhǔn)確性,。
2.2 數(shù)據(jù)庫模塊
數(shù)據(jù)庫是平臺系統(tǒng)存儲故障樹信息和原始系統(tǒng)數(shù)據(jù)的重要環(huán)節(jié),如圖3所示是系統(tǒng)的數(shù)據(jù)庫結(jié)構(gòu),。ADO.NET平臺具有執(zhí)行速度快,、網(wǎng)絡(luò)傳輸時間短的優(yōu)點,適用于平臺的分布式數(shù)據(jù)傳輸環(huán)境,,基于以上原因,,數(shù)據(jù)庫采用SQL Server軟件平臺開發(fā)[8],與界面設(shè)計軟件Visual Studio有良好的接口,。
數(shù)據(jù)庫主要存儲了包括故障樹信息,、原始特征參數(shù)值(總線數(shù)據(jù))、推理過程中得到的各種中間信息(割集),、報警信息和解決問題后輸出結(jié)果信息(修復(fù)方法)等,。總線數(shù)據(jù)分為報警信息和征兆參數(shù)值兩部分,。在導(dǎo)入故障樹信息時,,將各參數(shù)對應(yīng)的CAN總線關(guān)聯(lián)對象的ID、關(guān)聯(lián)指針,、對象長度一并導(dǎo)入,,根據(jù)這些信息,系統(tǒng)可以將收到的數(shù)據(jù)幀轉(zhuǎn)換為有意義的參數(shù)值,。如圖3中的WriteData_SQL表記錄所有的總線原始數(shù)據(jù),,通過查找parameters表將原始二進制數(shù)據(jù)翻譯成參數(shù)實際值提供給監(jiān)控界面顯示。
3 應(yīng)用
3.1 案例分析
車輛液壓控制系統(tǒng)中包含液壓機械設(shè)備,、控制電路等復(fù)雜結(jié)構(gòu),,發(fā)生故障的可能性也隨之增大。某些故障不但會影響車輛正常運轉(zhuǎn),,還可能會導(dǎo)致整個系統(tǒng)的故障,。
如圖4所示為某液壓控制系統(tǒng)故障樹,本文假設(shè)所有事件是二態(tài)的,,即故障或正常,。故障樹信息如表4所示。本系統(tǒng)故障樹特點在于底事件可分兩類:人工判斷類及自動判斷類,。其中,,人工判斷類底事件只對應(yīng)一個特征參數(shù),即需要人工判斷該特征參數(shù)的狀態(tài),。而對于自動判斷類底事件,,出于通用性考慮,為每個底事件預(yù)留3個特征參數(shù),且3個特征參數(shù)之間的布爾關(guān)系可編輯,,系統(tǒng)將在后臺根據(jù)現(xiàn)場數(shù)據(jù)及用戶給出的布爾關(guān)系判斷該底事件是否發(fā)生,。
頂事件為主泵異常,底事件主要分為電控回路故障,、電纜故障,、閥件故障等。對與每個底事件有相應(yīng)的征兆,,如X1電源故障,,可通過電源電壓U判斷X1的狀態(tài);而有的底事件可能對應(yīng)多個征兆,,如X8閥件卡滯對應(yīng)的征兆有控制電流I和系統(tǒng)壓力P兩個參數(shù),,這兩個參數(shù)之間也存在布爾關(guān)系,當(dāng)兩個參數(shù)同時異常時X8故障,。
3.2 模擬環(huán)境拓撲結(jié)構(gòu)
分別采用兩臺PC機作為現(xiàn)場環(huán)境模擬機和診斷機,,其拓撲結(jié)構(gòu)如圖5所示。上位機模擬發(fā)送總線數(shù)據(jù)以及故障注入,,下位機運行本診斷軟件,。
3.3 實驗結(jié)果分析
在模擬開始前,將上文故障樹信息輸入診斷軟件,,并將該系統(tǒng)的模擬總線數(shù)據(jù)輸入上位機,。注入液位高度故障數(shù)據(jù),在升車過程進行到20 s時注入報警幀,,報警代碼為101,。接到報警后,軟件提示是否立即診斷,,如圖6所示,,即轉(zhuǎn)入診斷推理界面,如圖7所示,,診斷結(jié)果為油液高度異常,。
4 結(jié)論
本文將二元決策圖ITE算法應(yīng)用于實際系統(tǒng),實現(xiàn)了在線系統(tǒng)故障診斷軟件的設(shè)計仿真,,根據(jù)仿真結(jié)果可得出:
(1)算法通用性強,,可靠性高。二元決策圖ITE算法可應(yīng)用于任何結(jié)構(gòu)的系統(tǒng),,具有一定的工程意義,。
(2)診斷效率高,實時診斷故障原因并給出解決方案,。
(3)良好的人機交互界面,,完整的數(shù)據(jù)知識存儲機制,,對于完善已有故障樹,從而提升整個系統(tǒng)的可靠性有一定的應(yīng)用價值,。
參考文獻
[1] 王少萍.工程可靠性[M].北京:北京航空航天大學(xué)出版社,,2000.
[2] 倪紹徐,張裕芳,,易宏,等.基于故障樹的智能故障診斷方法[J].上海交通大學(xué)學(xué)報.2008(8).
[3] 董豆豆,,周忠寶.基于故障樹的系統(tǒng)安全風(fēng)險實時監(jiān)測方法[J].國防科技大學(xué)學(xué)報.2006(28).
[4] 張超.基于BDD的動態(tài)故障樹優(yōu)化研究[D].西安:西北工業(yè)大學(xué),,2004.
[5] 袁靜,胡昌華,,徐瑞,,等.基于改進BDD算法的導(dǎo)彈安控系統(tǒng)故障樹仿真分析[J].系統(tǒng)仿真學(xué)報,2007(19).
[6] 朱大奇,,于盛林.基于故障樹最小割集的故障診斷方法研究[J],數(shù)據(jù)采集與處理,,2002,17(3).
[7] 朱大奇,,于盛林,,陳小平.基于故障樹分析及虛擬儀器的電子部件故障診斷技術(shù)研究[J].儀器儀表學(xué)報,2002,,23(1).
[8] 張勇.基于ACCESS數(shù)據(jù)庫的CAN總線數(shù)據(jù)采集方法的設(shè)計與實現(xiàn)[J].制造業(yè)自動化.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.