从国内外研究现状来看,传统的系统安全性分析技术主要是使用故障树分析 (Fault Tree Analysis ,FTA)[9] 、 失 效 模 式 影 响 分 析 (Failure Mode and Effects Analysis,FMEA)[10]和 Markov Process[11]分析系统行为来发现可能存在的故障。随着 AltaRica 语言的出现,工业界对于系统安全性设计开始使用 AltaRica 语言进行建模, 然后对模型进行形式化验证和分析。学术界和工业界都对 AltaRica 语言进行了一系列 的应用和研究以增强其对系统安全性设计方面的作用。
1.3 研究内容
第一章为整个论文的绪论,阐述此项研究的应用背景及意义,以及对该领域的国 内外发展状况进行简要说明。
第二章介绍了基于 VC 的分层 AltaRica 故障建模和分析的基础知识,包括
Altarica 语言介绍以及 ToolKit 开发库和 AddFlow 控件的介绍。
第三章介绍基于 VC 的分层 AltaRica 故障建模和分析的开发过程,详细得介绍了 本次开发一些重要变量以及实现的功能。
第四章以分层嵌套的泵系统为实例对所开发的 AltaRica 故障分层建模工具原型 进行应用,展示了建模效果,并对泵系统进行状态分析。
第五章为总结和展望,此章是对本论文内容的概括和后续工作的展望。
第二章 基础知识
2.1 理论知识
本课题是基于 AltaRica 原理进行分层建模和分析,建模过程中用到的控件主要包 括 Xtreme Toolkit Pro 开发库和 AddFlow 控件,下面对 AltaRica 理论知识、Xtreme Toolkit Pro 开发库和 AddFlow 控件进行详细介绍。
2.1.1 Altarica 建模语言
2.1.1.1 Altarica 组成元素
Altarica[12]模型的语义是卫式转换系统[13](Guarded Transition System,GTS),一 个 GTS 系统由以下元素构成:
(1)一组状态变量,用来描述系统的状态。这些变量在有限域内取值(如布尔 型或者枚举型字符常量)或者无限区间(例如整型、浮点型数字或者字符常量)内取 值。
(2)一组流变量,用来描述系统所实现的传递函数,即系统的输入和输出。和 状态变量类似,流变量在域内取值。
(3)断言,即一组约束,用来描述传递函数。
(4)事件,在系统中可能发生的一系列事件。
(5)转换,标记描述系统演变。转换是三元组<e, G, P>,其定义为:e:G→P, 其 中:e 是标记转换的事件,G 是关于状态和流变量的布尔条件,称为转换的哨,P 是 对状态变量进行新状态计算所执行的动作。当哨满足时,转换 e:G→P 将会触发。
如图 2-1 所示为一个泵的状态转换图,图 2-2 为其 Altarica 模型。该模型首先须 声明定义域(“PumpState”),即两个符号常量‘WORKING’和‘FAILED’。然后,声明 一个类(盒子的类型),即在该情况中,该 GTS 称为“Pump”。该 GTS 包含:一个状 态变量“state”,其在定义域“PumpState”内取值,且其初始状态为“WORKING”;两个布 尔型流变量“inFlow”和“outFlow”,默认值(reset value)均是 false;两个事件“failure” 和“repair”;每个事件对应的一个转换(transition)以及对变量取值进行约束的断言。
所有状态变量均进行一次初始化。它们的初值通过属性“init”给出。该属性描述 状态变量的特征。每个转换触发后,流变量均进行更新。其取值由断言确定或者取由 属性“reset”给定的默认值确定。该属性描述流变量的特征。如果盒子“Pump”单独使用,“inFlow”将在每次转换触发后重置为默认值。如果它与另一个盒子通过“inFlow”相连 且该泵正常工作,那么使用断言将值从左侧传递到右侧。由事件“failure”标记的转换 仅在状态变量“state”取“WORKING”值时才会触发。转换触发后首先将“state”值设置 成“FAILED”,然后更新流变量的值。