二元决策图ITE算法在.NET平台的实现与应用

摘 要:故障树作为系统可靠性分析的一种工具,在实际工程中已得到广泛应用。二元决策图作为常用的故障树分析法,通过其结构优势可快速得到故障树的不交化割集,通过分析割集集合确定系统失效集合以及计算系统失效概率等指标,确定系统可靠性。在.NET平台上使用ITE算法实现故障树对二元决策图的转化,并在通用的CAN总线监测诊断平台上实现,平台使用SQL Server作为知识库存储信息数据,以故障树信息和监测数据作为输入,实时对系统 警做出诊断。

0 引言

故障树分析法[1]是在实际工程应用中判断系统安全性与可靠性常用的方法,在理论分析方面已经发展得非常成熟,其研究多数集中于计算顶事件发生概率和分析系统薄弱环节的算法上,如文献[2]中的智能故障树诊断方法,按照计算所得底事件的故障率确定故障诊断的最优顺序,是典型的故障树静态分析方法。利用故障树法诊断实时诊断的系统也有一些研究成果,如文献[3]提出了一种实时预测故障的方法,引入底事件工作状态隶属度的概念,实时计算顶事件发生概率,对薄弱系统环节进行预测。但是这种方法仅能作为预测软件,并未达到实时诊断系统故障的效果。

二元决策图[4-5](Binary Decision Diagram,BDD)本质上是变量集的布尔函数,这与故障树的割集[6]概念一致,由于BDD的结构规范,对比故障树节点更少,对于存储器空间占用少,有利于快速得出故障失效的不交化割集。

1 ITE算法及实现

1.1 ITE算法基本原理

BDD是一种非闭环有向图,是一组变量的布尔表达式的图形化表示,在BDD中除了变量节点,还存在两种基本终结点“0”和“1”,从层数最高的“1”节点沿着所有节点的“1”脚回溯至BDD的顶节点,得到的变量集合之和即为该BDD的布尔表达式。ITE(if-else-then)算子采用香农分解式的思想,将BDD按变量排序顺序依次展开,比传统二元决策图转换算法复杂度低,其表达式如式(1)所示。

采用式(1)算子对图1故障树进行BDD转换,假设其底事件排序为:abcd,那么依次得到故障树中各个门的ITE表达式如下:

由该故障树的顶事件(TOP)ITE表达式可得图1故障树的割集为:{ab,acd,cd}。

1.2 ITE算法实现

由于BDD特殊的结构形式,每个节点的结构都是相同的,适合使用递归方法实现。首先,对于ITE节点定义,如表1所示。

从表1中可以看出形成BDD的ITE结构节点定义中使用了自引用的方式,其中它的nodehigh 、nodelow属性也是itenode的类结构,这样使得在ITE节点连接时可以使用递归方式,形成的合并节点也都为相同结构。

使用ITE算法将故障树转换为BDD主要有两个步骤:(1)对于门形成该门的ITE结构;(2)将所有门的ITE结构连接起来形成最终BDD。具体算法如表2、3所示。

表3中ITE连接函数有3个变量,变量f、g表示2个待连接的ITE节点,变量op表示连接类型。两个ITE节点连接主要分为3种情况:(1)f、g节点中有一个是“0/1”节点,根据op类别返回相应ITE节点;(2)计算表中已经有节点f、g的相关操作,直接返回操作值;(3)以上2种情况均不符合,则按照ITE结构递归连接。

对于整棵树的ITE求解步骤为:(1)对所有门,求取其门下所有底事件的ITE合并结构;(2)从层数最多的门开始求解ITE,逐步替代其上层门的输入直到顶门。最终得到顶门的ITE结构就是该故障树的BDD形式。

2 算法实现平台

作为一个通用的嵌入式软件平台[9-10],对于一个具有CAN总线结构的系统,合理设置故障 警节点,以所有故障节点作为故障树的顶事件建立多棵故障树,通过GUI界面将所有故障树信息录入软件平台。监控界面实时显示系统数据,当有 警信号时,操作人员可判读是否需要进行诊断,如要现场诊断,则进入诊断推理界面,根据 警信号找到相应故障树,采用ITE算法,进行定性分析,确定发生故障的割集集合,给出结果及修复信息,系统结构如图2所示。

2.1 故障树建模模块

在实际监控诊断工作开始之前,首先需要建立本系统的故障树模型。在建立故障树时,出于软件通用性考虑,将建立故障树与录入监测参数分开。首先将所有的系统参数录入,在建树的过程中直接选择相应底事件对应的参数,这样避免了不同底事件在依赖同样特征参数时的重复操作,提高了建树效率及准确性。

2.2 数据库模块

数据库是平台系统存储故障树信息和原始系统数据的重要环节,如图3所示是系统的数据库结构。ADO.NET平台具有执行速度快、 络传输时间短的优点,适用于平台的分布式数据传输环境,基于以上原因,数据库采用SQL Server软件平台开发[8],与界面设计软件Visual Studio有良好的接口。

数据库主要存储了包括故障树信息、原始特征参数值(总线数据)、推理过程中得到的各种中间信息(割集)、 警信息和解决问题后输出结果信息(修复方法)等。总线数据分为 警信息和征兆参数值两部分。在导入故障树信息时,将各参数对应的CAN总线关联对象的ID、关联指针、对象长度一并导入,根据这些信息,系统可以将收到的数据帧转换为有意义的参数值。如图3中的WriteData_SQL表记录所有的总线原始数据,通过查找parameters表将原始二进制数据翻译成参数实际值提供给监控界面显示。

3 应用

3.1 案例分析

车辆液压控制系统中包含液压机械设备、控制电路等复杂结构,发生故障的可能性也随之增大。某些故障不但会影响车辆正常运转,还可能会导致整个系统的故障。

顶事件为主泵异常,底事件主要分为电控回路故障、电缆故障、阀件故障等。对与每个底事件有相应的征兆,如X1电源故障,可通过电源电压U判断X1的状态;而有的底事件可能对应多个征兆,如X8阀件卡滞对应的征兆有控制电流I和系统压力P两个参数,这两个参数之间也存在布尔关系,当两个参数同时异常时X8故障。

3.2 模拟环境拓扑结构

分别采用两台PC机作为现场环境模拟机和诊断机,其拓扑结构如图5所示。上位机模拟发送总线数据以及故障注入,下位机运行本诊断软件。

3.3 实验结果分析

在模拟开始前,将上文故障树信息输入诊断软件,并将该系统的模拟总线数据输入上位机。注入液位高度故障数据,在升车过程进行到20 s时注入 警帧, 警代码为101。接到 警后,软件提示是否立即诊断,如图6所示,即转入诊断推理界面,如图7所示,诊断结果为油液高度异常。

4 结论

(1)算法通用性强,可靠性高。二元决策图ITE算法可应用于任何结构的系统,具有一定的工程意义。

(2)诊断效率高,实时诊断故障原因并给出解决方案。

(3)良好的人机交互界面,完整的数据知识存储机制,对于完善已有故障树,从而提升整个系统的可靠性有一定的应用价值。

参考文献

[1] 王少萍.工程可靠性[M].北京:北京航空航天大学出版社,2000.

[2] 倪绍徐,张裕芳,易宏,等.基于故障树的智能故障诊断方法[J].上海交通大学学 .2008(8).

[3] 董豆豆,周忠宝.基于故障树的系统安全风险实时监测方法[J].国防科技大学学 .2006(28).

[4] 张超.基于BDD的动态故障树优化研究[D].西安:西北工业大学,2004.

[5] 袁静,胡昌华,徐瑞,等.基于改进BDD算法的导弹安控系统故障树仿真分析[J].系统仿真学 ,2007(19).

[6] 朱大奇,于盛林.基于故障树最小割集的故障诊断方法研究[J],数据采集与处理,2002,17(3).

[7] 朱大奇,于盛林,陈小平.基于故障树分析及虚拟仪器的电子部件故障诊断技术研究[J].仪器仪表学 ,2002,23(1).

[8] 张勇.基于ACCESS数据库的CAN总线数据采集方法的设计与实现[J].制造业自动化.2011(21).

[9] JOANNE B D,KEVIN J S.Developing a low-cost high-quality software tool for dynamic fault-tree analysis.IEEE Trans.Reliability,2000(40):49-59.

[10] Zhou Zhiwei,Zhuang Ming.Design of a real-time fault diagnosis expert system for the EAST cryoplant.Fusion Engineering and Design,2012(87):2002-2006.

声明:本站部分文章内容及图片转载于互联 、内容不代表本站观点,如有内容涉及版权,请您尽早时间联系jinwei@zod.com.cn

相关推荐