[发明专利]一种基于AltaRica的系统故障树自动生成方法有效
| 申请号: | 201910958827.6 | 申请日: | 2019-10-10 |
| 公开(公告)号: | CN110716819B | 公开(公告)日: | 2020-11-20 |
| 发明(设计)人: | 李震;蒋征骐;王浩陈;魏海峰 | 申请(专利权)人: | 江苏科技大学 |
| 主分类号: | G06F11/07 | 分类号: | G06F11/07;G06F16/901 |
| 代理公司: | 南京正联知识产权代理有限公司 32243 | 代理人: | 杭行 |
| 地址: | 212003*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 altarica 系统故障 自动 生成 方法 | ||
1.一种基于AltaRica的系统故障树自动生成方法,其特征在于,首先判断当前系统类型,
当前系统是单类节点系统,则故障树生成算法分为两个步骤:
第一步是记录从断言中扫描和剪切出的有效的字符串并计算其括号深度,其中包括:
1.1 扫描、剪切、记录单类节点断言字符串;
1.2 记录每个字符串的括号深度;
1.3 添加到CAltaRicaAnalyser类中由函数MakeAssertionToAssertionArray()实现的名为AssertionNodeArray的数组中;
第二步是递归生成表达式的前序位置,用于在故障树中绘制逻辑操作节点,包括:
2.1 扫描AssertionNodeArray,由最深的括号深度得到当前根节点的位置,并将第一次得到的根节点前序位置设为-1,其他情况下当前根节点的前序位置为递归算法执行前根节点的位置;
2.2 以当前根节点为中心位置将AssertionNodeArray切割成左右两部分;
2.3 如果左侧只有一个表达式节点,则获取该节点的位置,并将根节点的位置设置为其前序位置,否则将AssertionNodeArrayLeft数组清空,将左侧部分的所有节点依次加入AssertionNodeArrayLeft数组中,在AssertionNodeArrayLeft数组中递归运行该算法作为步骤2.1;
2.4 如果右侧只有一个表达式节点,则获取该节点的位置,并将根节点的位置设置为其前序位置,否则将AssertionNodeArrayRight数组清空,将右侧部分的所有节点依次加入AssertionNodeArrayRight数组中,在AssertionNodeArrayRight数组中递归运行该算法作为步骤2.1;
当前系统是多节点系统或具有子系统的多节点系统,其故障树生成算法可分为以下步骤:
3.1 在当前视图中查找“out”节点;
3.2 初始化Analyser类,Analyser具有单类节点故障树生成算法中描述的功能;
3.3 遍历LinkInfoArray以获取和剪切与当前视图中“out”节点连接的连线绑定的断言;
3.4 将断言赋给Analyser进行分析并切割,得到与连线相连的类节点信息;
3.5 判断节点类型,如果节点为当前视图的节点,则执行步骤3.6,如果为子系统内的节点,执行步骤3.7;
3.6 通过节点输入流信息和视图信息得到线条的前序断言,通过前序断言得到前序节点,执行步骤3.5;
3.7 先将视图信息更新为子系统视图信息,然后从步骤3.1重新开始执行;
3.8 当前视图内无前序节点时,视图信息更新为上一级视图信息;
3.9 在当前视图无前序视图且无前序节点时,生成故障树图;
上述类CAltaRicaAnalyser,用于对断言语句的分析;
函数MakeAssertionToAssertionArray()为类CAltaRicaAnalyser的成员函数,作用为首先将得到的断言字符串存入到char数组中,扫描断言,将左右括号和空格脱去,然后将切割后的字符串存入到AssertionNodeArray数组中并计算字符层次;
数组AssertionNodeArray数据类型为AssertionNode;
数组LinkInfoArray保存节点与节点之间的连线,其数据类型为ClassNodeToClassNodeLinkInfo。
2.根据权利要求1所述的基于AltaRica的系统故障树自动生成方法,其特征在于,所述步骤3.4中,通过Analyser的函数MakeAssertionToAssertionArray()对断言进行分析和切割,并将切割后的字符串存入AssertionNodeArray数组中,通过GetOutFlowValueFromLinkInfo()函数获得输出流信息,通过GetOutFlowValueFromLinkInfo()函数获得输出事件并根据当前连线获得前序节点信息和视图信息;
函数GetOutFlowFromLinkInfo()通过切割后的字符串,来获取其输出流的名称;
函数GetOutFlowValueFromLinkInfo通过切割后的字符串,来获取其输出事件的名称。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江苏科技大学,未经江苏科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910958827.6/1.html,转载请声明来源钻瓜专利网。





