基于VC的機電系統(tǒng)分層AltaRica故障建模和分析
引言
隨著計算機與軟件技術(shù)的不斷發(fā)展,系統(tǒng)故障導(dǎo)致的安全性事故后果越來越嚴(yán)重,系統(tǒng)的安全性問題受到了高度重視,系統(tǒng)安全性建模和分析技術(shù)在關(guān)鍵安全系統(tǒng)中得到了廣泛應(yīng)用。
AltaRica語言是一種面向故障邏輯的建模語言,采用AltaRica模型可以真實反映系統(tǒng)的結(jié)構(gòu)或系統(tǒng)運行機制。但AltaRica代碼缺乏結(jié)構(gòu)上的層次感,而計算機可視化建模技術(shù)可以很好地克服這一缺點,使用戶可以方便地通過計算機界面對系統(tǒng)進行可視化的圖形建模,系統(tǒng)結(jié)構(gòu)描述清楚,系統(tǒng)建模過程展示清晰,系統(tǒng)建模和系統(tǒng)分析過程合二為一,方便了模型和安全性分析的修改和維護,提高了安全性工作的效率。隨著工業(yè)系統(tǒng)的規(guī)模越來越龐大,如果只是用單層系統(tǒng)建模來描述整個系統(tǒng),那么單個層次上集中的模型節(jié)點就會太多,而且工業(yè)系統(tǒng)本身也是由很多子系統(tǒng)組成,一些子系統(tǒng)又由下層子系統(tǒng)或者節(jié)點組成,所以系統(tǒng)自身自然地形成了分層結(jié)構(gòu),這首先要求我們能夠使用分層建模技術(shù)來描述系統(tǒng)自身的分層結(jié)構(gòu)。
基于以上內(nèi)容,文章將AltaRica與計算機可視化建模技術(shù)相結(jié)合,開發(fā)了支持AltaRica語言的可視化分層建模工具原型,并基于此工具原型開展系統(tǒng)安全性建模和分析工作。
1AltaRica建模語言
基于AltaRica的建模技術(shù)研究項目起始于20世紀(jì)90年代末。創(chuàng)建AltaRica語言的目的在于克服"傳統(tǒng)"形式方法如故障樹、馬爾科夫鏈、Petri網(wǎng)等偏離所研究系統(tǒng)的缺點,而且近十年其已經(jīng)成為歐洲工業(yè)界基于模型安全性評估的標(biāo)準(zhǔn)。
1.1AltaRica組成元素
AltaRica模型的語義是衛(wèi)式轉(zhuǎn)換系統(tǒng)[6](GuardedTransitionsystem,GTs),一個GTs系統(tǒng)由以下元素構(gòu)成:
(1)狀態(tài)變量,用來描述系統(tǒng)的狀態(tài)。這些變量在有限域內(nèi)取值(如布爾型或枚舉型字符常量)或無限區(qū)間(例如整型、浮點型數(shù)字或字符常量)內(nèi)取值。
(2)流變量,用來描述系統(tǒng)所實現(xiàn)的傳遞函數(shù),即系統(tǒng)的輸入和輸出。和狀態(tài)變量類似,流變量在域內(nèi)取值。
(3)斷言,即一組約束,用來描述傳遞函數(shù)。
(4)事件,在系統(tǒng)中可能發(fā)生的一系列事件。
(5)轉(zhuǎn)換,標(biāo)記描述系統(tǒng)演變。轉(zhuǎn)換是三元組<e,G,P>,其定義為:e:G二P。其中,e是標(biāo)記轉(zhuǎn)換的事件,G是關(guān)于狀態(tài)和流變量的布爾條件,稱為轉(zhuǎn)換的"哨",P是對狀態(tài)變量進行新狀態(tài)計算所執(zhí)行的動作。當(dāng)哨滿足時,轉(zhuǎn)換e:G二P將會觸發(fā)。
1.2類
AltaRicaData-F1ow[7-8]是面向?qū)ο蟮恼Z言。為了使用具備某些給定特征的盒子(封裝一個GTs),需要聲明一個類,即這個盒子的類型。AltaRica模型是關(guān)于類的一系列的聲明。類可能嵌入了其他類的其他實例,從而實現(xiàn)研究系統(tǒng)的分級描述。
1.3基于AltaRica的圖形化建模技術(shù)
AltaRica模型所代表的衛(wèi)式轉(zhuǎn)換系統(tǒng)可以封裝到"盒子"里。實際上,可以把AltaRica模型看成是使用"導(dǎo)線"連接起來的分層嵌套的"盒子","導(dǎo)線"代表封裝變量的約束。封裝的事件也可能受同步機制約束。因此,從用戶的角度而言,AltaRica模型能夠圖像化地創(chuàng)建、編輯和仿真,從而增強該模型的易用性和可讀性。
1.4存在的問題
AltaRica代碼是一種語言,缺乏結(jié)構(gòu)上的層次感,代碼的一處改動可能會導(dǎo)致系統(tǒng)的多處修改等等。因此,AltaRica與計算機可視化建模技術(shù)相結(jié)合,既保證了編碼的靈活性和建模的規(guī)范性,同時也方便了修改與維護。
2計算機可視化建模技術(shù)
傳統(tǒng)的手工建模與分析對系統(tǒng)安全性及可靠性進行評估,過程相當(dāng)復(fù)雜,也不利于后期的修改和完善,利用現(xiàn)代化計算機技術(shù)引入可視化的圖形建模,可以準(zhǔn)確、完善、高效地實現(xiàn)建模工作。
2.1Toolkit
xtremeToo1kitPro是一個VC界面庫,它包含了Codejock的所有Visua1C++的產(chǎn)品,它提供了一個專業(yè)的、現(xiàn)代化的外觀,基于Visua1C++6.0開發(fā)環(huán)境使用Too1Kit可以實現(xiàn)可視化的框架建模。
2.2AddFlow
AddF1ow控件是基于MFC的ActiⅤex控件,是能夠迅速創(chuàng)建激活流程圖的應(yīng)用程序。一張AddF1ow圖表是一組可以彼此連接的對象。該對象被稱為節(jié)點,連接該對象的線被叫做連接。對于節(jié)點的每一個對象,都可以設(shè)定獨特的顏色、字體、形狀、風(fēng)格、文本等特性。移動節(jié)點,節(jié)點可以保持連接狀態(tài)。本次開發(fā)AddF1ow完成各個建模元素的圖形化建模。
利用VC及Too1kit開發(fā)庫開發(fā)的建??蚣苋鐖D1所示。
3實例應(yīng)用
泵是輸送流體或使流體增壓的機械,主要用來輸送水、油、酸堿液、乳化液、懸乳液和液態(tài)金屬等液體。本文建模使用的泵系統(tǒng)由發(fā)電機子系統(tǒng)、油箱、泵、反應(yīng)裝置等部分組成,發(fā)電機為泵供電,泵將油箱中的液體輸送到反應(yīng)裝置。泵系統(tǒng)運行過程中,一個部分的失效將影響整個系統(tǒng)的運行結(jié)果。本文將泵系統(tǒng)各個組成部分的功能需求及故障作為建模與分析的實例。
3.1建模過程
利用所開發(fā)的工具原型對圖2所示的泵系統(tǒng)進行建模,描述該系統(tǒng)的一個簡單的方式是首先聲明柴油機、油箱、泵和反應(yīng)裝置對應(yīng)的類,如圖3所示,然后聲明代表泵系統(tǒng)的類。泵系統(tǒng)類由一個"Tank"實例、兩個"Generator"實例、兩個"Pump"實例和一個"Reactor"實例構(gòu)成。其中"Generator"實例為子系統(tǒng),內(nèi)部組成為oilengine實例的輸出。
3.2建模效果
圖4(a)所示為泵系統(tǒng)中各子系統(tǒng)及類節(jié)點層次展開圖。圖4(b)為建模效果圖,從圖4(b)中可以觀察到子系統(tǒng)、類節(jié)點可視化建模以及各個子系統(tǒng)到類節(jié)點、類節(jié)點到類節(jié)點以及類節(jié)點到輸出節(jié)點交聯(lián)的輸入/輸出關(guān)系。其中,類實例的元素通過圓點符號的方式在構(gòu)成類中進行存取,例如"Pl.inFlow:=Gl.outFlow",表示Gl子系統(tǒng)與Pl節(jié)點之間的接口關(guān)系為Pl的輸入流由Gl的輸出流決定。圖4(c)和圖4(d)為子系統(tǒng)Gl和子系統(tǒng)G2的內(nèi)部模型圖。
3.3狀態(tài)分析
建模完成后,對各個實例之間輸入/輸出關(guān)系進行狀態(tài)分析,如圖5~7所示。
4結(jié)語
本文對基于AltaRica語言的分層故障建模和分析進行了研究,并在ViSualC++6.0環(huán)境下開發(fā)了基于AltaRica語言的分層故障建模和分析工具原型,最后進行了實例應(yīng)用。主要工作內(nèi)容包括:實現(xiàn)可視化的框架建模:圖形化的交互式建模:通過鼠標(biāo)點擊、拖放等常用動作來實現(xiàn)開發(fā)域建模、類建模、系統(tǒng)分層建模等功能。通過以上工作,本文實現(xiàn)了交互式的系統(tǒng)建模,系統(tǒng)結(jié)構(gòu)描述清楚,系統(tǒng)建模過程展示清晰,模型的修改和分析同步,具有良好的用戶感受,同時方便了模型和安全性分析的修改與維護,提高了安全性工作的效率。