基于规则和故障树的故障案例库构建方法研究
2017-05-12
(北京航空航天大学机械工程及自动化学院,北京 100191)
故障案例库是进行故障诊断的基础,案例库的质量和规模决定了故障诊断的效率。虽然目前企业在长期的服务保障过程中积累了大量的故障案例知识,但通常是蕴藏在故障信息、排故记录、技术报告等数据或文档中,案例库的构建过程缺少解析模型和推理规则的支持,不利于排故。而基于故障树分析的故障诊断方法则利用了飞机的正向设计知识对故障进行定位和诊断,两者结合相互补充,共同实现案例库的构建。因此,需要利用排故经验和知识将基于故障树分析的方法和推理规则充分融入到案例的构建过程中,建立具有一定规模和质量的故障案例知识库,案例的组织方法有利于排故过程中对案例的重用,满足案例检索和排故引导等要求。
目前,国内外学者在案例表示与案例库组织方面进行了大量研究。文献[1]提出了基于XML的案例表示和案例库构建方法;文献[2]通过数据挖掘技术,提出一种由原始故障诊断信息构建故障案例库的方法,以提高案例获取的效率;文献[3]着重描述了框架表示法,并且结合Snort规则的案例进一步作了实例分析。但是它们并没有利用故障树模型,案例之间的层次结构关系也没有体现出来,案例的重用和基于案例推理的故障诊断效率还有待进一步提高。因此,有必要研究能够提高案例重用和故障诊断效率的案例库构建方法。
本文从提高案例重用和故障诊断效率的角度,通过对飞机故障树进行数学描述和定性定量分析,结合故障诊断推理规则,从模型中提取案例,提出一种案例库的构建方法。在此基础上将案例库应用于故障诊断系统,提供一种向导式的排故指南,实现基于案例推理的故障诊断功能,为维修保障人员不断积累案例知识,充分、有效地利用已有的故障案例和设计知识进行推理和故障诊断提供有效的技术支持。
1 案例表示方法
案例表示就是对案例中的信息进行结构化的描述,是一种按照某种固定格式组织案例信息的方法[4],案例主要信息如表1所示。常用的案例表示方法有以下几种:
(1)面向对象表示法:借助面向对象的程序设计语言来实现,也具有类和实例、继承(多重继承)、多态、封装等特点,这种层次结构及继承机制直接支持了案例表示的模块化和分层表示。
(2)框架表示法:在框架理论基础之上发展起来的一种结构化的知识表示方法。
(3)通用案例表示语言:CASUAL是一个灵活的、面向对象的、类似框架的案例表示语言,它将案例的描述模型存储在ASCII文件中,专门为案例表示而设计,综合了前面两种方法的优点,而且也能将规则融于案例的表示中,是最完善的案例表示方法。
本文所采用的是第2种方法,即框架表示法,将案例进行结构化的表示,存储到数据库中。
表1 案例主要信息
2 构建飞机故障案例库
故障案例是某个特定故障的相关信息的集合,包括故障类型、故障现象、故障原因、修复方法以及故障件、所属机型等。故障案例库是将故障案例信息按照一定的规则组织为有利于存储、管理和重用的数据库。为了保证故障案例库的质量和规模,对故障树进行定性和定量分析,应用正向设计知识通过故障树分析建立顶事件(故障现象)到叶节点 (故障原因)的逻辑关系,并将外场故障诊断和排故经验经过规范化和结构化处理后形成的推理规则融入其中,建立故障诊断模型,从中提取案例并实现案例库的构建。
2.1 故障树的定性与定量分析
定性分析和定量分析是故障树主要的分析方法。定性分析是找出可以导致故障事件发生的所有事件的组合;定量分析是得出这些组合对于故障发生所起的作用[5]。本文以某型飞机液压系统液压油箱不能加油的故障树为例来说明故障树定性与定量分析过程。首先通过对液压系统液压油箱不能加油的故障机理、模式及故障后果的分析,得到其故障树,如图1所示。
2.1.1 故障树的定性分析
故障树模型可由故障树的结构函数来描述。上述模型的故障树结构函数为:
式中:k、m均为自然数。
故障树的最小割集是指包含了最少数量,而又最必须的底事件的割集。最小割集发生,顶事件必然发生,其意义就在于它指出了系统中最薄弱的环节。因此,故障树定性分析的主要任务就在于找出其最小割集[6]。
对于简单的故障树,只需将故障树的结构函数展开,然后运用布尔代数运算规则加以化简;而复杂的故障树则可以运用下行法和早期不交化算法来求解其最小割集。经过分析,图1中的故障树的最小割集为{X1,X2}、{X3,X4}、{X1,X4,X5}、{X2,X4,X5}。
2.1.2 故障树的定量分析
故障树的定量分析包括两个部分:计算故障树顶事件出现的概率和最小割集重要度。本文介绍最小割集重要度的分析过程,最小割集重要度主要有结构重要度、关键重要度和概率重要度3种。它们从不同的角度反映了部件对系统影响的重要程度,使用的时机不同。
(1) 结构重要度:表示部件在系统结构上的重要性,它完全取决于部件在系统中的位置。
(2)概率重要度:表示基本事件发生概率对顶事件发生的影响程度。
(3)关键重要度:表示基本事件在故障树结构中所占地位造成的影响程度,是顶事件发生概率变化率对基本事件发生概率变化率的比值,是故障诊断最重要的参考指标,其计算公式为:
图1中故障树的定量分析结果见表2。由计算结果可以看出,关键性重要度的大小排序为X4>X1=X2>X3>X5。
图1 故障树Fig.1 Fault tree
表2 故障树定量分析计算结果
因此,进行故障诊断时应首先将X4,X1,X2,X34个底事件作为检查对象。依据关键性重要度进行故障诊断,能快速、准确找到故障点,并有效缩短诊断时间,减少必要的检修与拆卸,提高故障诊断效率[7]。
2.2 建立故障诊断模型
故障树的分析结果包括系统中导致故障发生的各基本事件的组合以及顶事件发生的概率、各基本事件的概率重要度或关键重要度。基于此分析结果,为了寻找到控制顶事件发生的有效途径以及故障诊断建议,使后续构建的故障案例库便于交互式排故引导,本文对传统的故障树进行扩充,将故障树分析结果与产生式推理规则(故障的现象描述、故障的检查程序、故障的排故建议和维修决策等)相融合,最终建立故障树所对应的故障诊断模型[8]。
2.2.1 建立故障诊断(推理)规则
故障诊断的推理规则来源于专家排故经验知识,本文对规则的表示涉及到了Prolog中的两个谓词rule和cond,其中,谓词rule的语法为:
Rule(< 规则号 >,< 类别 >,< 范畴名 >,< 子范畴名 >,<特性表>)
其中,规则号为规则库中的规则编号;类别为规则库中的故障树的干或叶;范畴名为故障所属系统或故障类型;子范畴名为故障细数或诊断结论;特性以1个或1组整数组代表,表示某种故障所对应的特性。
谓词cond的语法为:
Cond(< 特性号 >,< 特性描述 >)
其中,特性号为特性表中的编号;特性描述定义特性的一个因子,指故障症状或测试过程等。规则与特性示例见表3[9]。
表3 规则与特性示例
2.2.2 构建规则表达的二值范畴树
图2 规则表达的二值范畴树示例Fig.2 Rule expression of a two-value tree
规则和特性的结构采取树状形式,液压系统不能加油相关规则表达的二值范畴树示例如图2所示。树中每个矩形框表示1个决策点,当给出了相应于该决策点的规则是否成立的结果后,就可以得到下一步前进的路径,直到得出诊断结论[10]。
2.2.3 结合故障树分析结果建立故障诊断模型
为了将图2二值范畴树中的规则应用于故障诊断过程,本文将二值范畴树进行重新组织,基于故障树分析结果,确定属于不同故障模式的规则应用的先后顺序,并将规则中的内容分解为可以指导排故的测试环节,最终得到具有二叉树数据结构的故障诊断模型。其具体过程包括以下几个步骤:
(1)按照故障树定性分析结果中最小割集的不同故障模式对规则进行分组,并由二值范畴树中规则的逻辑层次关系对每组中的规则进行排序。
(2)将规则中的内容分解为可以指导排故的测试环节,按照故障树定量分析结果中关键性重要度大小顺序,将每个故障模式的测试环节嵌入到故障树的逻辑结构中。
(3)借助二叉树的数据结构,构建出利于交互式故障引导的故障诊断模型,如图3所示。
图3 故障诊断模型Fig.3 Fault diagnosis model
2.3 案例提取与案例库组织
从故障诊断模型中总结出案例的核心概念,充分考虑案例在故障诊断中的应用,包括案例检索以及案例重用等环节,构建案例信息模型,完成案例提取,并提出通过分类组织案例库来实现案例调整的方法。
2.3.1 案例核心概念
结合故障诊断要求,本文将案例知识内容归纳为组成案例的3个核心概念,即案例描述、案例锁定和案例诊断。将案例描述与模型中故障树顶事件所表现出来的故障现象对应,案例锁定与推理规则相对应,案例诊断则与诊断模型中对具体故障的修复措施相对应。
2.3.2 构建案例信息模型
通过对故障诊断模型的进一步分析,发现通过这3个概念组织而成的案例中存在许多重叠的内容。如在具有相同顶事件的故障树中,不同的故障模式表现出相同的故障现象,不同的故障模式中也可能存在相同的推理规则与特性。因此,进一步对案例描述、案例锁定和案例诊断进行分析和总结,归纳出更简洁的案例信息模型,如图4所示。
该案例知识信息模型中,将案例分成3个部分:案例现象、案例测试和案例修复。分别对应到故障诊断的3个步骤。故障案例所表现出来的现象和特征定义为现象集;确定故障案例的推理规则定义为测试集;所提供的故障修复方法,定义为故障修复集。
现象集是可以直接观察或者测试得到的故障特征的集合,为了在故障诊断时缩小现象的检索范围,把它按照类别划分为警告类、飞行参数类、目视类等。每1个案例可以包含多个故障现象,而每1个故障现象也可以出现在不同的案例当中。
测试集是为了快速排除和锁定案例而定义的一组有序的故障测试集合,为了方便测试的查找和使用,把它按照飞机系统来划分,如液压系统、环控系统等。为了准确定位故障,每一条案例都包含一系列有序的测试项,通过合理的设置测试内容来将每一条测试项的结果都简化为是与否的选择。
修复集是验证及确认故障是否排除的方法和故障件的相关信息的集合,它是按照系统来划分。每个案例都有唯一对应的1个修复项。
图4 案例信息模型Fig.4 Case information model
3 案例库在故障诊断系统中的应用
在基于案例推理的故障诊断系统中,采用本文提出的方法构建了案例库,故障诊断过程如图5所示。
故障诊断的流程分为4个步骤,分别是案例检索、反向建立相似案例集的故障诊断模型、基于该模型的交互式排故引导、完成故障诊断与案例调整。具体内容如下:
(1)利用相关检索工具对案例现象进行检索,得出包含该故障现象的相似案例集。
(2)对相似案例进行可视化处理,建立对应排故流程,并将不同案例排故流程中相同的测试项进行合并,反向建立故障诊断模型。
图5 基于案例推理的故障诊断流程Fig.5 Fault diagnosis process based on case based reasoning
(3)基于该故障诊断模型,提供一种向导式的排故指南,利用该指南引导排故人员对故障进行循序渐进的定位和决策。
(4)当定位到诊断模型中的一条唯一修复项时,就可以据此进行故障诊断和排除,并根据诊断结果对案例库进一步改进和升级,实现案例调整和案例库的学习升级。
4 结论
(1) 从提高案例重用和故障诊断效率的角度,通过对飞机故障树进行数学描述和定性定量分析,结合故障诊断推理规则,从模型中提取案例,提出一种案例组织以及案例库的分类方法,利于案例库的不断丰富和升级学习。
(2)本文研究的案例库已应用于Dorado平台开发的故障诊断系统,为现场维修人员提供一种向导式的排故指南,实现基于案例推理的故障诊断功能,提高了故障诊断的正确率和排故效率,并为维修保障人员进行知识积累和案例的共享、重用提供有效手段。
参考文献
[1]CHAU K W, CHUNTIA C, LI C W. Knowledge management system on flow and water quality modeling[J]. Expert System With Applications, 2002,22(4):321-330.
[2]WATSON I. Applying knowledge management: techniques for building organizational memories[M]. San Francisco: Morgan Kaufmann Publishers, 2002.
[3]KOLODNER J L. An introduction to case-based reasoning[J].Artificial Intelligence Review, 1992,6(1): 3-34.
[4]WATSON I. CBR is a methodology not a technology[J].Knowledge Based Systems, 1999,12(56) : 303-308.
[5]CHECKLAND P, SCHOLES J. Soft systems methodology in action[M]. UK: Wiley, 1999.
[6]REISBECK C K, SCHANK R C. Inside case-base reasoning[M].UK: Lawrence Erlbaum Associates, 1989.
[7]LIEBOWI T Z J. Knowledge management handbook[M]. London:Crc Press,1999.
[8]CONNELL C, KLEIN J H, LOEBBECKE C. Towards a knowledge management consultation system[J]. Knowledge and Process Management, 2001,8(1): 48-54.
[9]SHIN K S, HAN I G. Case-based reasoning supported bygenetic algorithms for corporate bond rating[J]. Expert Systems With Applications,1999, 16(2):85-95.
[10]SLONIM T Y , SCHNEIDER M. Design issues in fuzzy casebased reasoning[J]. Fuzzy Sets and Systems, 2001, 117(2):251-267.