基于本体的舰炮故障树建模方法研究❋
2014-11-28李晓芳石晨光
孙 涛 李晓芳 石晨光 蔡 畅
(海军大连舰艇学院舰炮系 大连 116018)
1 本体建模技术概述
人工智能领域将哲学中本体(Ontology)概念引入用来解决知识表示和知识组织方面的有关问题。1998年Studer在前人的基础上给出了“本体是共享概念模型的形式化规范说明”的解释,此外,在其他不同的研究中,本体也被赋予了不同的数学形式定义,如Guarino形式化定义和Karlsruhe的KAON 形式化定义[1~4]。
根据概念粒度的相对大小可以将本体分为顶级本体、领域本体、任务本体和应用本体。通常,人们在定义下一层本体的时候,从上层本体中选择合适的概念予以特化或者补充。也就是说,概念复用是人们创建本体的普遍做法。这样得到的本体可以保证较高的标准性和质量,而且有利于信息系统之间基于本体的互操作。按照表示和描述的形式化程度的不同,可以分为完全非形式化本体,半非形式化本体、半形式化本体和严格形式化本体[1],形式化程度越高,越有利于计算机的处理。
本体构建方法目前没有统一的理论指导,都是针对具体的项目提出的,国外主要有IDEF5法、骨架法、TOVE法、METHONLOGY法、KACTUS法、七步法和SENSUS法等,其成熟度依次为七步法>METHONLOGY法>IDEF5法>TOVE法>骨架法>SENSUS法>KACTUS法[3,5]。我国研究学者目前都是在借鉴国外本体构建方法的基础上,根据中文汉语本体构建的实际情况,提出一些具有影响的本体构建方法。
2 故障树简介
故障树(FT)通过对可能造成系统故障的各种因素,包括硬件、软件、环境、人为因素等进行分析,画出逻辑框图,它是描述诊断对象结构、功能和关系的一种定性因果模型[6]。故障树的规模根据装备的复杂程度可大可小,但基本的结构都是一样的,它是由有因果关系的层次化的故障事件和大量的不同类型的门所构成。故障树中常见的概念和符号如表1所示。
表1 故障树中常见的符号图
3 故障树应用本体描述方法
3.1 故障树的建立
首先确定故障树的顶事件,顶事件描述需要简明扼要,它决定了建树时必须考虑的一系列问题。故障树的生成是故障树分析的前提。常见的故障树生成方法有两种:演绎法和合成法[6]。演绎法主要用于人工建树,它是通过人的思考去分析顶事件是怎样发生的,再由顶事件出发循序渐进地寻找每层事件发生的所有可能的直接原因;合成法主要用于计算机辅助建树,其缺点是分析人员不能通过分析系统而对目标系统有彻底的了解,也不能像演绎法那样有效地考虑环境条件和人为因素的影响。依据实际情况,本文采用演绎法。
3.2 故障树中的类与类间关系分析
通过定义和对故障树的组成及结构分析可以知道,故障树应用本体中的几个主要类及类间关系如图1所示。
图中逻辑门类的“Has_UpperEvent”属性表示逻辑门具有的上位事件,“Has_NetherEvent”表示门具有的下位事件。同样,故障事件类的“Has_UpperDoor”属性表示故障事件具有的上位门,故障事件类的“Has_NetherDoor”属性表示故障事件具有的下位门。类之间的实线和虚线表示的类间关系对构成了互逆关系(Inverse),如顶事件和门之间的关系“Has_UpperEvent”和“Has_NetherDoor”构成了一对互逆关系,也就是说,如果一个顶事件实例的“Has_NetherDoor”属性的取值为一个门的实例,那么同时这个门的“Has_UpperEvent”属性的取值就是这个顶事件实例。
图1 故障树应用本体中主要类及其类间关系图
3.3 故障树中门与故障事件的本体描述
故障树中门与故障事件各子类具有不同特点,顶事件是故障事件的一个子类,并且在任意一棵故障树中一个顶事件仅与一个下位门连接,而不与任何上位门连接,即顶事件与门之间只存在“Has_NetherDoor”关系,并且其取值的基数(Cardinality)为1(表示顶事件的下位门仅有1个)。同样,对于任意一个中间事件也仅有一个上位门和一个下位门,即中间事件和门之间存在着“Has_Nether-Door”关系和“Has_UpperrDoor”关系,且基数都是1。相应地,底事件与门之间仅存在“Has_UpperrDoor”关系,并且其基数是1。对于故障树中的任意门都存在着上位事件和下位事件,只是由于逻辑门的种类的不同而导致门的上、下位事件的基数不同[7]。基于以上分析,可以得到故障树本体的规范描述如表2所示。
表2 故障树本体的规范描述表(部分内容)
4 舰炮故障树应用本体构建
4.1 绘制舰炮故障树
绘制舰炮故障树的步骤主要如下:
1)顶事件的确定。顶事件应选择人们不希望发生的,显著影响舰炮技术性能、可靠性、安全性和经济性的故障事件。
2)边界条件的确定。边界条件的确定使得故障树不会无边无际地扩展,合理地定义故障树的边界条件,可以确定故障树的范围。边界条件包括:分析的不同的舰炮部件,即顶事件;初始状态,指舰炮部件可能的工作状态,需要确定当顶事件发生时这些部件所处的状态。
3)绘制故障树。找出直接导致顶事件发生的各种可能因素或因素组合,如硬件故障、环境因素、人为因素等,再找出第一步中各因素的直接原因,循此方法逐级向下演绎,一直追溯到引起系统发生故障的全部原因,即分析到不需要继续分析原因的底事件为止,然后把各级事件用相应的符号和适合于它们之间逻辑关系的逻辑门与顶事件相连接,就绘制成了一棵以顶事件为根,中间事件为节,底事件为叶的具有若干级的故障树。
4)对故障树进行简化和模块化。当故障树建成后,还必须从故障树的最下级开始,逐级写出上级事件与下级事件的逻辑关系式,直到顶事件为止。并结合逻辑运算算法做进一步的分析运算,删除多余事件,合并同类事件。故障树化简的方法,从根本上讲,就是运用布尔代数的基本定理。
4.2 舰炮故障树本体描述
首先建立舰炮的结构体系层[8~9]和故障模式层,然后运用舰炮结构体系和故障模式的组合建立舰炮故障描述层,最后建立表征舰炮故障之间因果传递关系的故障因果关系层。设计的流程如图2所示。
4.3 实例化方法构建舰炮故障树本体
经过上述绘制舰炮故障树的步骤之后,我们可以得到一棵舰炮故障树。然后采取自顶向下的方法将故障树实例化来完成舰炮故障树本体的构建。该方法的基本思路就是首先将绘制的舰炮故障树的顶事件添加到故障树本体中,然后逐层向下将下层的门和故障事件添加到故障树本体中,同时设置逻辑门与故障事件之间的关系,直至所有的逻辑门和故障事件都添加到故障树本体之中,完成舰炮故障树本体的实例化构建。其具体步骤如下:
图2 舰炮故障树本体模型图
Step 1:在故障树本体中创建一个故障树类的实例,选取绘制的舰炮故障树的顶事件作为舰炮故障树本体的顶事件。
Step 2:将绘制的舰炮故障树中的顶事件的下层门添加到舰炮故障树本体中,并设置其与上层事件的关系(例如“Has_UpperEvent”关系)。
Step 3:添加Step 2中添加的逻辑门的下位事件,并设置这些事件与上位逻辑门之间的关系。
Step 4:重复Step 2—Step 3直至将整棵故障树添加到舰炮故障树本体中。
至此,绘制好的舰炮故障树经过实例化已经构建为舰炮故障树本体。
5 结语
为了进一步丰富舰炮故障树本体的内容,还需要绘制更多的舰炮故障树,同样可以通过上述实例化的方法添加到故障树本体中,使得舰炮故障树本体中描述的故障知识更加丰富全面,为下一步舰炮故障树的推理应用提供知识基础。
[1]冯志勇,李文杰,李晓红.本体论工程及其应用[M].北京:清华大学出版社,2007.
[2]何克清,何扬帆,梁鹏,等.本体元建模理论与方法及其应用[M].北京:科学出版社,2008.
[3]刘琳娜,薛建武,汪小梅.领域本体构建方法的研究[J].情报杂志,2007(4):14-18.
[4]孙玮鸿.基于知识链的本体构建方法的研究[D].哈尔滨:哈尔滨工程大学硕士学位论文,2009.
[5]徐国虎,许芳.本体构建工具的分析与比较[J].图书情报工作,2009,29(9):44-48.
[6]Relex Software Co.&Intellect.可靠性实用指南[M].陈晓彤,等译.北京:北京航空航天大学出版社,2005.
[7]金亮亮.基于故障树的航天器故障诊断专家系统研究[D].南京:南京航空航天大学硕士学位论文,2008.
[8]张建新,孙文生,孙卫国.79(A)式双100毫米舰炮一般故障排除手册[M].大连:北海舰队训练基地,2009.
[9]石晨光.舰炮武器原理[M].北京:中国人民解放军海军,2012.