基于VC的机电系统分层AltaRica故障建模和分析
扫描二维码
随时随地手机看文章
引言
随着计算机与软件技术的不断发展,系统故障导致的安全性事故后果越来越严重,系统的安全性问题受到了高度重视,系统安全性建模和分析技术在关键安全系统中得到了广泛应用。
AltaRica语言是一种面向故障逻辑的建模语言,采用AltaRica模型可以真实反映系统的结构或系统运行机制。但AltaRica代码缺乏结构上的层次感,而计算机可视化建模技术可以很好地克服这一缺点,使用户可以方便地通过计算机界面对系统进行可视化的图形建模,系统结构描述清楚,系统建模过程展示清晰,系统建模和系统分析过程合二为一,方便了模型和安全性分析的修改和维护,提高了安全性工作的效率。随着工业系统的规模越来越庞大,如果只是用单层系统建模来描述整个系统,那么单个层次上集中的模型节点就会太多,而且工业系统本身也是由很多子系统组成,一些子系统又由下层子系统或者节点组成,所以系统自身自然地形成了分层结构,这首先要求我们能够使用分层建模技术来描述系统自身的分层结构。
基于以上内容,文章将AltaRica与计算机可视化建模技术相结合,开发了支持AltaRica语言的可视化分层建模工具原型,并基于此工具原型开展系统安全性建模和分析工作。
1AltaRica建模语言
基于AltaRica的建模技术研究项目起始于20世纪90年代末。创建AltaRica语言的目的在于克服"传统"形式方法如故障树、马尔科夫链、Petri网等偏离所研究系统的缺点,而且近十年其已经成为欧洲工业界基于模型安全性评估的标准。
1.1AltaRica组成元素
AltaRica模型的语义是卫式转换系统[6](GuardedTransitionsystem,GTs),一个GTs系统由以下元素构成:
(1)状态变量,用来描述系统的状态。这些变量在有限域内取值(如布尔型或枚举型字符常量)或无限区间(例如整型、浮点型数字或字符常量)内取值。
(2)流变量,用来描述系统所实现的传递函数,即系统的输入和输出。和状态变量类似,流变量在域内取值。
(3)断言,即一组约束,用来描述传递函数。
(4)事件,在系统中可能发生的一系列事件。
(5)转换,标记描述系统演变。转换是三元组<e,G,P>,其定义为:e:G二P。其中,e是标记转换的事件,G是关于状态和流变量的布尔条件,称为转换的"哨",P是对状态变量进行新状态计算所执行的动作。当哨满足时,转换e:G二P将会触发。
1.2类
AltaRicaData-F1ow[7-8]是面向对象的语言。为了使用具备某些给定特征的盒子(封装一个GTs),需要声明一个类,即这个盒子的类型。AltaRica模型是关于类的一系列的声明。类可能嵌入了其他类的其他实例,从而实现研究系统的分级描述。
1.3基于AltaRica的图形化建模技术
AltaRica模型所代表的卫式转换系统可以封装到"盒子"里。实际上,可以把AltaRica模型看成是使用"导线"连接起来的分层嵌套的"盒子","导线"代表封装变量的约束。封装的事件也可能受同步机制约束。因此,从用户的角度而言,AltaRica模型能够图像化地创建、编辑和仿真,从而增强该模型的易用性和可读性。
1.4存在的问题
AltaRica代码是一种语言,缺乏结构上的层次感,代码的一处改动可能会导致系统的多处修改等等。因此,AltaRica与计算机可视化建模技术相结合,既保证了编码的灵活性和建模的规范性,同时也方便了修改与维护。
2计算机可视化建模技术
传统的手工建模与分析对系统安全性及可靠性进行评估,过程相当复杂,也不利于后期的修改和完善,利用现代化计算机技术引入可视化的图形建模,可以准确、完善、高效地实现建模工作。
2.1Toolkit
xtremeToo1kitPro是一个VC界面库,它包含了Codejock的所有Visua1C++的产品,它提供了一个专业的、现代化的外观,基于Visua1C++6.0开发环境使用Too1Kit可以实现可视化的框架建模。
2.2AddFlow
AddF1ow控件是基于MFC的ActiⅤex控件,是能够迅速创建激活流程图的应用程序。一张AddF1ow图表是一组可以彼此连接的对象。该对象被称为节点,连接该对象的线被叫做连接。对于节点的每一个对象,都可以设定独特的颜色、字体、形状、风格、文本等特性。移动节点,节点可以保持连接状态。本次开发AddF1ow完成各个建模元素的图形化建模。
利用VC及Too1kit开发库开发的建模框架如图1所示。
3实例应用
泵是输送流体或使流体增压的机械,主要用来输送水、油、酸碱液、乳化液、悬乳液和液态金属等液体。本文建模使用的泵系统由发电机子系统、油箱、泵、反应装置等部分组成,发电机为泵供电,泵将油箱中的液体输送到反应装置。泵系统运行过程中,一个部分的失效将影响整个系统的运行结果。本文将泵系统各个组成部分的功能需求及故障作为建模与分析的实例。
3.1建模过程
利用所开发的工具原型对图2所示的泵系统进行建模,描述该系统的一个简单的方式是首先声明柴油机、油箱、泵和反应装置对应的类,如图3所示,然后声明代表泵系统的类。泵系统类由一个"Tank"实例、两个"Generator"实例、两个"Pump"实例和一个"Reactor"实例构成。其中"Generator"实例为子系统,内部组成为oilengine实例的输出。
3.2建模效果
图4(a)所示为泵系统中各子系统及类节点层次展开图。图4(b)为建模效果图,从图4(b)中可以观察到子系统、类节点可视化建模以及各个子系统到类节点、类节点到类节点以及类节点到输出节点交联的输入/输出关系。其中,类实例的元素通过圆点符号的方式在构成类中进行存取,例如"Pl.inFlow:=Gl.outFlow",表示Gl子系统与Pl节点之间的接口关系为Pl的输入流由Gl的输出流决定。图4(c)和图4(d)为子系统Gl和子系统G2的内部模型图。
3.3状态分析
建模完成后,对各个实例之间输入/输出关系进行状态分析,如图5~7所示。
4结语
本文对基于AltaRica语言的分层故障建模和分析进行了研究,并在ViSualC++6.0环境下开发了基于AltaRica语言的分层故障建模和分析工具原型,最后进行了实例应用。主要工作内容包括:实现可视化的框架建模:图形化的交互式建模:通过鼠标点击、拖放等常用动作来实现开发域建模、类建模、系统分层建模等功能。通过以上工作,本文实现了交互式的系统建模,系统结构描述清楚,系统建模过程展示清晰,模型的修改和分析同步,具有良好的用户感受,同时方便了模型和安全性分析的修改与维护,提高了安全性工作的效率。