91精品人妻互换日韩精品久久影视|又粗又大的网站激情文学制服91|亚州A∨无码片中文字慕鲁丝片区|jizz中国无码91麻豆精品福利|午夜成人AA婷婷五月天精品|素人AV在线国产高清不卡片|尤物精品视频影院91日韩|亚洲精品18国产精品闷骚

您當(dāng)前位置:首頁 > 新聞?lì)l道 > 技術(shù)動(dòng)態(tài) > 正文
基于C#的故障樹分析系統(tǒng)的設(shè)計(jì)方法

 朱銘君1,劉樹華1,曹廣群1,薛彥云2,張  亮3

(1.中北大學(xué)機(jī)電工程學(xué)院,山西  太原  030051;2.重慶長安工業(yè)有限責(zé)任公司研發(fā)技術(shù)中心,重慶401120;3. 65154部隊(duì),遼寧  朝陽  122513)

摘要:故障樹分析軟件是一種分析系統(tǒng)可靠性及安全性的軟件,該軟件的主要功能是故障樹繪制和可靠性計(jì)算。深入研究故障樹的建樹和計(jì)算邏輯,用C#語言編譯,設(shè)計(jì)了一種快速、高效、可視化程度較高的故障樹繪制和最小割集計(jì)算軟件,對(duì)提高復(fù)雜系統(tǒng)可靠度分析的效率有重要意義。

關(guān)鍵詞:故障樹分析;最小割集;C#中圖分類號(hào):TP319

0  引言

 故障樹分析法是分析大型復(fù)雜系統(tǒng)可靠性的重要手段,在現(xiàn)代計(jì)算機(jī)技術(shù)的幫助下,可以將故障樹分析中的建樹、邏輯計(jì)算等這些原本繁瑣的手工工作放到計(jì)算機(jī)這個(gè)平臺(tái)上解決。通常故障樹的計(jì)算量較大,因此采用計(jì)算機(jī)輔助的手段更有利于減小設(shè)計(jì)的難度,提高計(jì)算效率和準(zhǔn)確性,減輕工程計(jì)算人員的負(fù)擔(dān)。經(jīng)過對(duì)故障樹理論的深入研究,本文采用C#語言編譯一個(gè)圖形化操作的故障樹分析軟件,為設(shè)計(jì)人員提供一個(gè)高效、便捷的故障樹分析手段。

1  故障樹分析系統(tǒng)模塊及功能

 基于C#的故障樹分析系統(tǒng)共包括以下4個(gè)模塊:數(shù)據(jù)模塊、界面模塊、建樹模塊、計(jì)算模塊。數(shù)據(jù)模塊主要負(fù)責(zé)設(shè)計(jì)信息和管理信息。界面模塊是人機(jī)交互的媒介,它的主要功能是顯示故障樹信息和操作故障樹的導(dǎo)入、導(dǎo)出等。建樹模塊的主要功能是繪制故障樹并將故障樹信息添加到故障節(jié)點(diǎn)列表和故障樹權(quán)圖中,通過連接到數(shù)據(jù)模塊、修改故障樹的節(jié)點(diǎn)數(shù)據(jù)達(dá)到故障樹的建樹目的。計(jì)算模塊的主要功能是驗(yàn)證故障樹結(jié)構(gòu)的完整性、計(jì)算最小割集、計(jì)算被選事件的概率和分析結(jié)果保存等。

1.1數(shù)據(jù)模塊

 數(shù)據(jù)模塊設(shè)計(jì)的信息包括故障樹節(jié)點(diǎn)信息(見表1)和系統(tǒng)信息(見表2)。數(shù)據(jù)模塊主要負(fù)責(zé)在用戶界面的故障樹與數(shù)據(jù)庫之間建立聯(lián)系,將用戶界面的操作實(shí)時(shí)傳遞到數(shù)據(jù)庫中,以及軟件信息的導(dǎo)人、導(dǎo)出等。

1.2界面模塊

 界面模塊中共有3個(gè)區(qū)域顯示信息:故障樹繪制區(qū)域、故障節(jié)點(diǎn)列表區(qū)域和故障的樹權(quán)圖區(qū)域。

 (1)故障樹繪制區(qū)域。通過新建項(xiàng)目生成頂上事件,接下來通過右擊節(jié)點(diǎn)后彈出的右鍵菜單操作繪制故障樹,右鍵菜單主要功能有計(jì)算、編輯、刪除、添加各類事件;根據(jù)被選節(jié)點(diǎn)的信息,右鍵菜單會(huì)有篩選地顯示操作合法的選項(xiàng);故障樹的結(jié)構(gòu)布局可通過鼠標(biāo)拖動(dòng)故障樹節(jié)點(diǎn)調(diào)整,繪圖區(qū)內(nèi)會(huì)根據(jù)故障樹的大小自動(dòng)添加滾動(dòng)條,方便查看全樹。

 (2)故障節(jié)點(diǎn)列表區(qū)域。列表中顯示所有節(jié)點(diǎn)的  主要節(jié)點(diǎn)信息,雙擊列表中的節(jié)點(diǎn)信息打開對(duì)應(yīng)節(jié)點(diǎn)的修改對(duì)話框,列表上端有基本事件、中間事件、輸入輸出3個(gè)多選方框,根據(jù)方框的勾選情況可以顯示或 隱藏對(duì)應(yīng)類型的事件。

 (3)故障樹的樹權(quán)圖區(qū)域。用樹權(quán)圖的形式顯示故障樹,右擊樹權(quán)上的節(jié)點(diǎn)能打開對(duì)應(yīng)節(jié)點(diǎn)的編輯對(duì)話框。

1.3繪制模塊

通過右擊故障樹的節(jié)點(diǎn),打開右鍵菜單對(duì)被擊節(jié)點(diǎn)進(jìn)行繪制操作;故障節(jié)點(diǎn)列表和故障樹權(quán)圖內(nèi)雙擊事件和節(jié)點(diǎn)可打開節(jié)點(diǎn)編輯窗口。繪制模塊主要有以下6個(gè)功能。

1.3.1添加節(jié)點(diǎn)

 負(fù)責(zé)創(chuàng)建節(jié)點(diǎn)信息并將節(jié)點(diǎn)添加到繪圖區(qū)域、事件列表和樹權(quán)圖。節(jié)點(diǎn)信息設(shè)置方法如下:①節(jié)點(diǎn)序號(hào)是引用系統(tǒng)信息里的新建序號(hào)(通過函數(shù)創(chuàng)建的唯一值);②選擇上級(jí)節(jié)點(diǎn)序號(hào),在被選節(jié)點(diǎn)的下級(jí)里添加本節(jié)點(diǎn)的序號(hào);③節(jié)點(diǎn)類型引用新建類型;④節(jié)點(diǎn)的尺寸大小根據(jù)節(jié)點(diǎn)類型分配默認(rèn)值;⑤節(jié)點(diǎn)的位置在被選節(jié)點(diǎn)正下方的默認(rèn)距離處;⑥其他信息使用默認(rèn)值。完畢后根據(jù)節(jié)點(diǎn)信息將節(jié)點(diǎn)添加到故障樹繪制區(qū)、故障樹節(jié)點(diǎn)列表和故障樹權(quán)圖中,并執(zhí)行連接節(jié)點(diǎn)方法。

1.3.2編輯節(jié)點(diǎn)

 打開編輯窗口,對(duì)被選節(jié)點(diǎn)修改節(jié)點(diǎn)信息,包括節(jié)點(diǎn)名稱、節(jié)點(diǎn)代號(hào)和節(jié)點(diǎn)描述,基本事件可修改概率,門節(jié)點(diǎn)可修改門類型。

1.3.3遍歷節(jié)點(diǎn)

 遍歷節(jié)點(diǎn)的任務(wù)是為刪除節(jié)點(diǎn)、拖動(dòng)節(jié)點(diǎn)、連接節(jié)點(diǎn)和計(jì)算模塊搜尋處理對(duì)象。具體方法如下:將指定節(jié)點(diǎn)設(shè)置為開始節(jié)點(diǎn),讀取開始節(jié)點(diǎn)下級(jí)中的節(jié)點(diǎn)序號(hào),將這些節(jié)點(diǎn)序號(hào)存人數(shù)據(jù)庫的待處理節(jié)點(diǎn)集中,并依次以這些節(jié)點(diǎn)為開始節(jié)點(diǎn),重復(fù)上述操作;最終將所有相關(guān)節(jié)點(diǎn)存入待處理節(jié)點(diǎn)。

1.3.4刪除節(jié)點(diǎn)

 刪除節(jié)點(diǎn)的任務(wù)是刪除當(dāng)前節(jié)點(diǎn)以及該節(jié)點(diǎn)的所有下級(jí)節(jié)點(diǎn)。具體方法是:讀取待處理節(jié)點(diǎn)的信息,依次將信息中的節(jié)點(diǎn)從故障樹繪制區(qū)域、故障樹節(jié)點(diǎn)列表和故障樹權(quán)圖中刪去。

1.3.5拖動(dòng)節(jié)點(diǎn)

 拖動(dòng)節(jié)點(diǎn)的任務(wù)是根據(jù)節(jié)點(diǎn)被拖動(dòng)的位移,將與該節(jié)點(diǎn)相關(guān)的下級(jí)節(jié)點(diǎn)也移動(dòng)相同的位移。方法是按節(jié)點(diǎn)位移里保存的數(shù)值依次移動(dòng)待處理節(jié)點(diǎn)信息里的所有節(jié)點(diǎn)。

1.3.6連線節(jié)點(diǎn)

 連線節(jié)點(diǎn)的任務(wù)是用折線兩兩連接節(jié)點(diǎn),將節(jié)點(diǎn)之間的關(guān)系明確地呈現(xiàn)在故障樹繪制區(qū)域。比較特別的是,連接節(jié)點(diǎn)的遍歷必須以頂事件為開始節(jié)點(diǎn),且頂事件不加入待處理節(jié)點(diǎn)的信息里;依次將待處理節(jié)點(diǎn)信息里的節(jié)點(diǎn)和它的上級(jí)節(jié)點(diǎn)分別設(shè)為開始節(jié)點(diǎn)和結(jié)束節(jié)點(diǎn)來繪制折線。

  1.4計(jì)算模塊

 計(jì)算模塊的功能包括驗(yàn)證故障樹結(jié)構(gòu)的完整性、計(jì)算最小割集、計(jì)算被選事件的概率和分析結(jié)構(gòu)保存等。驗(yàn)證故障樹結(jié)構(gòu)的完整性是指在對(duì)故障樹分析計(jì)算前對(duì)故障樹結(jié)構(gòu)的合法性進(jìn)行驗(yàn)證,并對(duì)錯(cuò)誤節(jié)點(diǎn)標(biāo)出提示,例如中間事件的下級(jí)節(jié)點(diǎn)超過一個(gè)時(shí)將會(huì)提示錯(cuò)誤。計(jì)算最小割集是指對(duì)故障樹進(jìn)行定性分析,計(jì)算故障樹的最小割集等。計(jì)算被選事件的概率是指通過求得的最小割集來求指定事件的發(fā)生概率。分析結(jié)構(gòu)保存功能負(fù)責(zé)計(jì)算模塊的計(jì)算結(jié)果的保存。

 故障樹節(jié)點(diǎn)信息列表里集合的數(shù)據(jù)結(jié)構(gòu)采用 list<list<int>),先將導(dǎo)致事件發(fā)生的一種基本事件的數(shù)字代號(hào)的組合存放在Iist( int>里,再將表示導(dǎo)致事件發(fā)生的所有基本事件的組合list( int)存放到list<list<int>)中,數(shù)學(xué)表達(dá)式為嵌套的兩層大括號(hào),多個(gè)基本事件用“,”隔開,例如{{1}{2,3}},表示導(dǎo)致事件發(fā)生的組合有兩個(gè),一個(gè)是{1},另一個(gè)是{2,3}。割集的計(jì)算采用遍歷的方式,計(jì)算某節(jié)點(diǎn)A的割集,以A節(jié)點(diǎn)為開始節(jié)點(diǎn),依次掃描開始節(jié)點(diǎn)的每個(gè)下級(jí)節(jié)點(diǎn);若下級(jí)節(jié)點(diǎn)的下一級(jí)沒有節(jié)點(diǎn),則可向上級(jí)傳遞參數(shù),若還有下級(jí)節(jié)點(diǎn),則將此節(jié)點(diǎn)設(shè)為新的開始節(jié)點(diǎn),重復(fù)上述步驟。采用上述方法,通過發(fā)生在不同節(jié)點(diǎn)的計(jì)算,就能獲得正確的計(jì)算參數(shù),并根據(jù)節(jié)點(diǎn)類型調(diào)用計(jì) 算方法。

 根據(jù)開始節(jié)點(diǎn)的類型,計(jì)算方法如下:

 (1)基本事件:無下級(jí)事件,向上級(jí)傳遞節(jié)點(diǎn)信息的集合,結(jié)束此支路。

 (2)中間事件、輸入事件、輸出事件、頂上事件:這些類型的下級(jí)節(jié)點(diǎn)都只有一個(gè),直接將下級(jí)節(jié)點(diǎn)的集合賦值給該節(jié)點(diǎn)。

 (3)或門:依次將每一個(gè)下級(jí)節(jié)點(diǎn)的集合合并到開始節(jié)點(diǎn)的集合。

 (4)與門:將首個(gè)下級(jí)節(jié)點(diǎn)的集合賦值到開始節(jié)點(diǎn)的集合,接下來開始節(jié)點(diǎn)的集合將依次和其他下級(jí)節(jié)點(diǎn)的集合進(jìn)行與門的計(jì)算。創(chuàng)建數(shù)據(jù)集list< list<int>),用于存放臨時(shí)計(jì)算結(jié)果,依次將開始節(jié)點(diǎn)的元素list<int>與下級(jí)節(jié)點(diǎn)的每個(gè)元素list<int>合并的結(jié)果存人數(shù)據(jù)集中,之后將數(shù)據(jù)集的值賦給開始節(jié)點(diǎn),并清空數(shù)據(jù)集,再與開始節(jié)點(diǎn)的下一個(gè)下級(jí)節(jié)點(diǎn)集合進(jìn)行與門計(jì)算,方法同上。例如開始節(jié)點(diǎn){{1}{2}},下級(jí)節(jié)點(diǎn){{3}{4}},計(jì)算獲得的開始節(jié)點(diǎn)為{{1,3}{1,4}{2,3}{2,4}}。

 通過上述計(jì)算獲得了最小割集的初步結(jié)果,接下來是對(duì)集合進(jìn)行整理,主要流程是:

 (1)去重:對(duì)割集內(nèi)每個(gè)list< int>里重復(fù)出現(xiàn)的事件代號(hào)只保留一個(gè)。

 (2)去包含:在割集中若某個(gè)集合list<int>的所有元素在集合B中全部都出現(xiàn)過,則將集合B從割集中篩去。

 (3)排列:將割集內(nèi)元素按照由小到大、由短到長的規(guī)律排列,方便觀察。

2結(jié)論

 本文設(shè)計(jì)和實(shí)現(xiàn)了一個(gè)圖形化的故障樹分析系統(tǒng),通過對(duì)故障樹建樹過程和分析方法的研究,該系統(tǒng)提供了快速、高效地繪制故障樹的操作模式;在故障樹定性分析中,通過故障樹結(jié)構(gòu)正確性驗(yàn)證后能夠自動(dòng)生成最小割集;通過程序邏輯的創(chuàng)新將紙面的理論公式轉(zhuǎn)換為計(jì)算機(jī)里的運(yùn)算程序,對(duì)提高工作效率和知識(shí)的積累有重要意義。 

關(guān)鍵字:
About Us - 關(guān)于我們 - 服務(wù)列表 - 付費(fèi)指導(dǎo) - 媒體合作 - 廣告服務(wù) - 版權(quán)聲明 - 聯(lián)系我們 - 網(wǎng)站地圖 - 常見問題 - 友情鏈接
Copyright©2014安裝信息網(wǎng) m.78375555.com. All rights reserved.
服務(wù)熱線:4000-293-296 聯(lián)系電話:0371-61311617 傳真:0371-55611201 QQ: 郵箱:zgazxxw@126.com 豫ICP備18030500號(hào)-4
未經(jīng)過本站允許,請(qǐng)勿將本站內(nèi)容傳播或復(fù)制
安全聯(lián)盟認(rèn)證