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