掌桥专利:专业的专利平台
掌桥专利
首页

一种基于概率分布的AltaRica故障树生成方法及系统

文献发布时间:2023-06-19 10:11:51


一种基于概率分布的AltaRica故障树生成方法及系统

技术领域

本发明涉及一种AltaRica故障树生成方法及系统,尤其涉及一种基于概率分布的AltaRica故障树生成方法及系统。

背景技术

AltaRica语言是一种描述系统故障失效行为的建模语言,具有较好的系统层次结构和动态化的描述机制,其具备的严格的形式化语义更方便了对系统进行图像化建模和分析,因此逐渐被广泛应用于系统的安全性分析中。

伴随着系统的越发庞大和复杂,传统的故障分析技术越来越难以满足当今系统安全性领域对于安全性的需要。由于传统故障分析技术更多的依靠技术人员自身的技术水平,以人工的方式进行系统的安全分析,系统复杂度的提高也使得人工对系统的维护愈发困难,效率低下。

基于AltaRica模型的模型分析方法可以很好地解决上述问题。基于AltaRica的建模技术研究项目起始于90年代末。创建AltaRica语言的目的在于克服“传统”形式方法偏离所研究系统的缺点,如故障树、马尔可夫链、Petri网等。后来,在学术界和工业界的合作下,AltaRica对系统的安全性评估能力得到了很好地加强,在基于模型的安全性评估国际研讨会受到了高度重视,同时,许多公司已经在其重要项目中利用AltaRica来进行安全评估分析,主要包括阿尔斯通铁路、道达尔、施耐德电气、法国电信等,当前已经成为欧洲工业界基于模型安全性评估的标准。

当前对AltaRica语言的研究主要是将AltaRica语言与NuSMV,SPIN和AADL等模型检查语言和工具结合在一起,手动将案例转换为FMEA或FTA结果,如果出现案例无法与相应工具与语言兼容时,将无法进行分析。并且这些通过工具来进行模型分析的方法缺少自动计算机算法和工具开发的实现细节,不够开放,导致语言一旦进行版本的迭代,很可能会使工具无法进行分析,不具有普遍适用性。

发明内容

发明目的:本发明的第一目的为提供一种不需要再将其转换为其他模型语言处理、降低了对其他模型检测工具的依赖性、对系统进行可视化建模和故障分析、提高了系统的安全性的基于概率分布的AltaRica故障树生成方法,本发明的第二目的是提供一种基于概率分布的AltaRica故障树生成系统。

技术方案:本发明的基于概率分布的AltaRica故障树生成方法,包括如下步骤:

(1)结合AltaRica模型,搭建概率时间模型;

(2)系统故障模型的搭建;

(3)故障树的生成;

(4)系统故障逻辑的动态建模;

(5)系统概率故障树的运行。

进一步地,步骤(1)具体包括如下步骤:结合系统组件的失效分布类型,定义不同组件的故障状态;对事件及其触发机制进行拓展,引入概率、时间属性,结合概率确定事件触发的时间。

概率时间模型与AltaRica模型的结合方式为:在类节点事件中加入概率和概率分布两个String类型变量,作为在界面上进行概率分布确定以及概率数值输入的存储数据变量,设定函数SetDistribution()用于确定概率分布函数并确定延迟时间。

步骤(2)具体包括如下步骤:将AltaRica模型进行图形化建模,通过类节点建模方式建立系统组件模型,确定组件可能触发的事件、输入输出量、组件工作状态以及各组件之间的交互关系。

优选的,步骤(2)具体包括如下步骤:

(a)确定系统架构,明确系统层次等级、整体模型输入输出信息;

(b)确定外部实体和内部功能,分析各组件的外部输入输出关系,定义组件内部工作状态,根据组件建立类节点信息;

(c)确定接口关系,统一各组件接口信息,通过断言对组件交互关系进行约束。

步骤(3)具体包括如下步骤:对系统故障模型进行分析,结合各组件的故障触发概率,通过故障树生成算法生成相应的概率故障树。

步骤(3)具体包括如下步骤:(a)在当前系统视图中查找“out”节点;

(b)遍历连线数组以获取和剪切与当前视图中“out”节点连接的连线绑定的断言;

(c)将断言赋给AltaRica分析功能类进行分析并切割,得到与连线相连的类节点信息;

(d)判断节点类型,如果节点为当前视图的节点,则执行步骤(e),如果为子系统内的节点,执行步骤(f);

(e)通过节点输入流信息和视图信息得到线条的前序断言,通过前序断言得到前序节点,判断前序节点,有前序节点执行步骤(e),没有前序节点执行步骤(g);

(f)先将视图信息更新为子系统视图信息,然后从步骤(a)重新开始执行;

(g)视图信息更新为上一级视图信息,判断视图信息,无前序视图执行步骤(h),有前序视图则将当前节点视图信息更新为前序视图信息,执行步骤(c);

(h)生成故障树图;

(i)系统实时运行时根据设定的概率分布,在不同的时间点激发事件;

(j)根据激发的事件,在转换中刷新状态变量;

(k)根据所有变量的当前状态,计算绑定到断言的输出流变量的状态;

(l)根据系统故障树中涉及的所有输出流变量的状态,实时刷新系统概率故障树中各个节点的状态。

步骤(4)具体包括如下步骤:通过计时器来设计系统的运行时间,模拟系统动态运行情况下各组件触发事件而造成自身状态的变化及对相关组件状态的影响关系,实现系统故障模型的动态验证。

步骤(4)具体包括如下步骤:

(a)根据故障树分析系统各节点的失效状态,故障的传播路径;

(b)确定触发事件的概率分布方式,计算事件触发的延迟;

(c)根据节点的转换关系,确定当满足事件触发条件下节点工作状态的变化情况;

(d)根据节点的断言来确定节点的输入输出量,节点的传递关系;

(e)通过计时器来设定系统的运行时间,当满足事件触发的时间时描述各节点工作状态的变化以及相关节点的影响关系;

(f)通过运行时间计算系统由组件故障而导致的系统故障次数,得到系统的故障率,实现系统故障模型的动态验证。

本发明的基于概率分布的AltaRica故障树生成系统,包括类建模模块、类故障树模块和子系统模块,所述类建模模块用于结合AltaRica模型,搭建概率时间模型,系统故障模型的搭建;所述类故障树模块用于故障树的生成;所述子系统模块用于执行系统故障逻辑的动态建模,系统概率故障树的运行。

有益效果:与现有技术相比,本发明具有如下显著优点:基于概率分布的AltaRica故障树生成方法及系统将系统组件抽象为类节点进行分析,仅需考虑节点自身状态、输入输出状态,通过各节点之间的连接关系和变迁机制实现系统故障建模。不仅降低了人工构建系统模型的难度,也便于对系统和故障模型进行同步修改和维护,实现了系统建模、故障建模和分析工作的同步对接,极大地提高了安全关键系统的系统和故障建模分析工作的效率。

附图说明

图1为系统顶事件建模图;

图2(a)为类节点建模过程一;

图2(b)为类节点建模过程二;

图3节点状态的转换过程;

图4为系统节点连接关系图;

图5为系统故障树图;

图6为节点故障动态变换流程图;

图7(a)为系统节点故障状态变化过程图一;

图7(b)为系统节点故障状态变化过程图二;

图7(c)为系统节点故障状态变化过程图三;

图8为故障树故障路径传递过程图。

具体实施方式

下面结合实施例对本发明的技术方案作进一步说明。

本发明的基于概率分布的AltaRica故障树生成方法,包括如下步骤:

步骤1:概率时间模型的搭建:

结合常见系统组件的失效分布类型,定义不同组件的故障状态。对事件及其触发机制进行拓展,引入概率、时间属性,结合概率确定事件触发的时间。概率时间模型与AltaRica模型的结合方式为:在类节点事件(CLASSNODEEVENT)中加入概率和概率分布两个String类型变量,作为在界面上进行概率分布确定以及概率数值输入的存储数据变量。通过函数SetDistribution()确定延迟(时间)。

主要的概率分布函数如表1所示:

表1概率分布函数

步骤2:系统故障模型的搭建:

将AltaRica模型进行图形化建模,通过类节点建模方式建立系统组件模型,确定组件可能触发的事件、输入输出量、组件工作状态以及各组件之间的交互关系。

一个基于AltaRica的系统模型主要由以下部分组成:

(1)Innode:Innode是所有输入的一个虚拟入口,即通过Innode传递给节点的所有输入。

(2)Class:为了使用具有特定特性(封装GTS)的框,需要声明一个类,即框的类型。Altarica模型是一系列类声明。类可以嵌套到其他类的其他实例中,以实现对研究系统的分层描述。它具有以下属性:

1.域:用来描述系统的状态。

2.变量:类中有两种类型的变量,称为域变量和类变量。域变量表示类的外部状态,不限于布尔值。类变量表示类中内部变量的状态。

3.流:流类似于接口变量,分为输入流和输出流,用于描述类节点之间或具有子系统的类节点之间接口变量的状态。

4.转换:转换是三元组,定义为:其中e是标记转换的事件,G是状态和流变量的布尔条件,称为转换的保护,P是状态变量的新状态计算执行的操作。当保护满足时,将触发转换。

5.断言:传递函数发生后对输出值的一组约束。

(3)Node:节点是类的实例,继承类中的所有属性。

(4)Subsys:子系统的递归定义为。它是整个系统的一部分,其中包含一些节点甚至子系统,以及节点和子系统之间的连接。

(5)Connection:Connection具有节点之间或节点和子系统之间的接口信息。故障将通过连接传递或回溯,并遵循流和类中的断言中定义的机制。

(6)OutNode:OutNode是所有输出的虚拟出口,这意味着节点的所有输出都应该通过OutNode。

一个类节点的AltaRica模型如下:

domain PumpState{WORKING,FAILED}

class Pump

PumpState state(init=WORKING);

Boolean inFlow,outFlow(reset=false);

event failure,repair;

transition

failure:state==WORKING->state:=FAILED;

repair:state==FAILED->state:=WORKING;

assertion

outFlow:=if state==WORKING then inflow else false.

系统具体建模过程为:

(1)确定系统架构,明确系统层次等级、整体模型输入输出信息,对系统顶事件进行建模;

以船用发电机的故障为例,对发电机的故障进行了初步归纳。引起发电机发生的故障多种多样,但是主要有两类:第一类为外部条件引起的故障,主要分两种,一种是发电机超负载,超出了正常的工作条件,导致发电机过流,引发故障;另一种是发电机组中的一组或多组发生故障,导致发电机失压,引发故障;还有一类是发电机自身有故障,不能正常工作。对归纳的故障原因进行分析并建模。

系统顶事件建模如图1所示。将XT记作发电机系统的顶事件,即系统的故障,则SY、GL和A为造成发电机故障的原因,A为发电机本身的故障,SY表示失压故障,GL表示过流故障。

(2)确定外部实体和内部功能,分析各组件的外部输入输出关系,定义组件内部工作状态,根据组件建立类节点信息;

组件故障关系及类节点信息如表2所示:

表2组件故障关系及类节点信息

类节点建模过程如图2(a),图2(b)所示。

(3)确定接口关系,统一各组件接口信息,通过断言对类节点交互关系进行约束。节点间的连线关系和断言的约束如表3所示:

表3节点间的连线关系和断言的约束条件

建立节点的联系后对转换机制进行确定,通过设定事件及事件的触发条件来保证触发转换时节点状态的变化。节点状态的转换过程如图3所示。

步骤3:故障树的生成:

对系统功能模型进行分析,结合各组件的故障触发概率,通过故障树生成算法生成相应的故障树。故障树生成算法主要流程为:

(1)在当前系统视图中查找“out”节点;

(2)遍历LinkInfoArray以获取和剪切与当前视图中“out”节点连接的连线绑定的断言;

(3)将断言赋给CaltaRicaAnalyser类成员进行分析并切割,得到与连线相连的类节点信息,

(4)判断节点类型,如果节点为当前视图的节点,则执行步骤(5),如果为子系统内的节点,执行步骤(6);

(5)通过节点输入流信息和视图信息得到线条的前序断言,通过前序断言得到前序节点,判断前序节点,有前序节点执行步骤(5),没有前序节点执行步骤(7);

(6)先将视图信息更新为子系统视图信息,然后从步骤(1)重新开始执行;

(7)视图信息更新为上一级视图信息,判断视图信息,无前序视图执行步骤(8),有前序视图则将当前节点视图信息更新为前序视图信息,执行步骤(3);

(8)生成故障树图。

系统节点连接关系如图4所示,连线的箭头表示了前序节点的输出流到后续节点的输入流之间的交互关系,连线上的断言表示了对输入输出的约束条件。通过系统框图可以明显的看出系统组件之间的关联和故障传递方向,从而对把握系统整体故障体系的构建有了更清楚的认知。通过对节点的构建,建立连接关系后就可以通过此软件对故障树进行自动生成,系统故障树图如图5所示。

步骤4:系统故障逻辑的动态建模:

通过计时器来设计系统的运行时间,模拟系统动态运行情况下各组件触发事件而造成自身状态的变化及对相关组件状态的影响关系,实现系统故障模型的动态验证。系统故障逻辑的动态建模过程为:

(1)根据故障树分析系统各节点的失效状态,故障的传播路径;

(2)确定触发事件的概率分布方式,计算事件触发的延迟;

(3)根据节点的转换关系,确定当满足事件触发条件下节点工作状态的变化情况;

(4)根据节点的断言来确定节点的输入输出量,节点的传递关系;

(5)通过计时器来设定系统的运行时间,当满足事件触发的时间时描述各节点工作状态的变化以及相关节点的影响关系。

由故障树可知其上的子节点即导致组件故障的事件为导致系统故障的基本原因。实际系统的故障受很多外部或者内部因素的影响,对系统的故障建模不可能全部考虑进去,另一方面,威布尔分布能够模拟其他分布函数并且具有无记忆性的性质,因此此处对事件的故障率引入威布尔分布。当满足事件触发条件时,事件的触发机制逻辑如下:

以节点“JK”为例,发动机的机械故障主要是由原动机(YD),调速器(DS)和传动系统(CD)的故障引起的,根据故障树也可得知这些故障也是导致系统故障的主要原因,当“原动机故障”事件触发时,触发转换:“YD==TRUE->YD:=FALSE”,使节点“JK”的输入流YD的数值变为FALSE,最后根据节点的断言:“((YD==F)or(DS==F)or(CD==F))”,当输出流变量满足断言条件时,输出流变为FALSE,否则为TRUE,从而影响其相关节点的状态。节点的故障动态变换流程如图6所示。通过对系统故障的动态演变可以研究各节点的故障对系统的影响关系,进而对不同重要度的组件进行不同的处理。

设置系统故障模拟仿真时间为200,则系统节点触发故障时节点的变化情况以及故障路径的传递如图7(a),图7(b),图7(c)所示,显示了当节点故障事件触发时,根据转换进行流变量状态的更新,并根据节点断言进行输出流状态的变化,同时依据节点间交互的关系进行故障状态的传递,从而模拟系统故障状态的变化情况。此系统还会根据系统触发故障的情况进行故障树的故障路径显示。以仿真时间为79时,类节点DQ触发DZ故障导致系统故障为例,展示此时故障树的故障路径显示情况,如图8所示。

本发明以Altarica语言规范为基础,结合Altarica语言的语法和面向对象的思想,通过建立组件模拟为类节点,研究类节点的事件触发机制,状态变换情况和节点间的交换关系,从而建立系统故障逻辑模型。不仅降低了人工构建系统模型的难度,也便于对系统和故障模型进行同步修改和维护,实现了系统建模、故障建模和分析工作的同步对接,极大地提高了安全关键系统的系统和故障建模分析工作的效率。

相关技术
  • 一种基于概率分布的AltaRica故障树生成方法及系统
  • 一种基于AltaRica的系统故障树自动生成方法
技术分类

06120112456538