一种基于征兆的专家系统的故障推理方法与流程

文档序号:16999669发布日期:2019-03-02 01:40阅读:225来源:国知局
一种基于征兆的专家系统的故障推理方法与流程
本发明涉及一种专家系统的规则模式匹配方法,适用于设计基于规则的专家系统,并实现推理机的执行策略。根据本发明中提出的基于征兆模式构建专家系统的知识库,并实现推理机的规则模式匹配,替代以rete为代表的传统推理机的规则模式匹配方法。
背景技术
:随着专家系统的发展,专家系统的强大咨询功能从离线的信息咨询交互,逐渐向实时的在线控制、监控、故障诊断扩展。专家系统在航空、航天、医疗、通信、机器人等领域都得到了不同程度的引用,取得了诸多成果。如果要实时专家系统在广泛范围内代替或帮助操作人员进行工作,提高生产效率,需要提高实时专家系统的执行效率并且简化知识库的表达方式,做到实时的推理和决策,为达到这个目的,它的推理机制应尽可能的简单和高效。传统的基于规则的专家系统,专家系统的知识具有结构化特征,使用关系型模式构建专家系统的知识库的规则。以下是一个关系型模式的例子:(person(age30)(name“john”)(weight60))其中person是模式的关系名,age、name、weight是该模式包括的3个槽,也就是3个约束条件,而3个槽的值分别是30、”john”以及60。针对关系型模式构成的知识库规则,推理机采用rete模式匹配算法(或基于rete算法的改进算法),将事实和规则首先通过模式网络(用于识别模式),进行匹配,再通过连接网络(用于进行逻辑关系运算和存储运算结果)进行匹配,这种匹配策略适用于适用使用复杂模式和约定来表达知识的系统。这样的关系型模式的优点是通用性好,可以表达出多样化的领域知识。但是,如果某些领域的专家系统不需要使用关系模式来定义知识,而使用更简单的抽象就足以表达领域知识并构建知识库规则时,就不能继续使用关系型模式,而是需要重新定义知识的表达方式。比如,针对火箭控制系统设计的用于提供实时故障诊断的专家系统,这样的系统中的知识不存在关系模式的框架。在这种情况下,针对关系型模式设计的推理机模式匹配算法-rete模式匹配算法,就不再适用。因此,本发明中重新定义了专家系统知识表达形式,使用征兆模式替代关系型模式,以利于描述某些领域中的专家知识,并且针对征兆模式设计了推理机的规则模式匹配方法。技术实现要素:本发明所要解决的技术问题是:使用征兆模式构建专家系统知识库,传统推理机的模式匹配算法就不适用,为基于征兆模式专家系统设计了简洁且高效的规则模式匹配方法,本发明的技术方案如下:提供一种基于征兆的专家系统的故障推理方法,包括如下步骤:(1)读取规则的命题逻辑表达式;将命题逻辑表达式按照命题逻辑生成二元规则集合;二元规则为一个产生式,由一个或两个触发输入,进行逻辑运算,输出作为另一个二元规则触发输入的中间状态或者该规则的结论;(2)在线实时采集系统状态数据;(3)根据数据征兆表,匹配获得系统状态数据的征兆,每个征兆代表该数据的一种状态;(4)将状态数据的征兆与二元规则进行匹配,当满足某一二元规则时,按照该二元规则生成中间状态或表征故障的结论;(5)将中间状态进行记录,将结论输出;并返回步骤(2)。优选的,每个命题逻辑表达式对应一个故障模式,如果该命题逻辑成立,则表明出现对应的故障。优选的,系统状态数据包括a/d采集的控制系统的模拟量数据、i/o采集的控制系统发送的开关量数据以及1553b采集的总线数据。优选的,数据征兆表包括每个参数的名称,每个参数关联的征兆及征兆对应数据的状态。优选的,如果出现故障,读取记录中间状态,仿真生成故障树,回放故障结论输出的过程。优选的,所述征兆,中间状态及结论均采用整数标识且表述唯一。优选的,满足某一二元规则的逻辑要求即为:二元规则所需的触发输入的征兆或者中间状态满足逻辑关系。优选的,步骤(1)还包括建立从征兆到二元规则集合的索引映射;步骤(4)中利用索引映射将状态数据的征兆与二元规则进行匹配。优选的,一个二元规则触发后,不再重复触发。优选的,专家系统的知识库仅由征兆表达。本发明与现有技术相比的优点在于:(1)本发明定义了新的基于征兆模式的专家系统知识的表示方法,并设计了相应的推理机规则模式匹配方法。相比现有的专家系统的推理机制,本发使用位图表示推理机内部状态,并采取模式-规则逆向索引的匹配方法,推理机制更加简单和高效。(2)本发明一方面实现了在线的实时推理,实现故障诊断,另一方面充分考虑了前端的国产嵌入式故障诊断设备处理能力的限制,仅进行数据采集及推力,将推理的过程和结论输出给上位机,由上位机进行解释,由用户进一步分析和定位故障原因。(3)本发明命题逻辑表达式转换为二元规则集合,构建征兆与规则集的映射关系,根据映射关系能够快速针对某一征兆进行逻辑推理,从而提高推理性能。(4)本发明采用整数表达征兆,中间状态及结论,在专家系统知识库的表达方面,无需使用rete模式匹配算法,更加简洁和易于使用。(5)本发明适用于航天、航空控制系统实时故障诊断、军事指挥决策等领域的专家系统构建,面向复杂系统的故障诊断。附图说明图1为本发明中对征兆模式集合的说明;图2为本发明中样例规则的解析树;具体实施方式本发明包括如下技术方案:假设专家系统应用于系统x中,系统x的每一个参数,作为一个数据源,将数据源的状态定义成征兆模式,一个数据源可以存在任意多个状态属性,因此可以关联任意多个征兆模式。一个征兆模式表示它所属的参数的一个状态。每个数据征兆,由一个整数表示,该整数代表数据的名称和状态,数据的名称在知识库中具有唯一性。一个征兆(f)由一个正整数(n)表示,f和n在知识库中为1-1对应关系。专家系统的知识库的模式集合由征兆构成,一个参数对应一个或多个征兆,如图1,ki表示第i个参数关联的模式个数。使用征兆构建规则集。一条规则是一个产生式,规则左侧(lhs,lefthandside)是一个合理的(valid)命题逻辑表达式,并且,表达式中原子命题为征兆模式。规则右侧(rhs,righthandside)为1个结论。结论在规则被使能后产生。一个结论(c)也用一个正整数(n)表示,在知识库中c和n为1-1对应关系。规则的lhs的表达式(ф)的bnf语法定义如下,定义中的p表示原子命题,“与”、“或”,“非”为逻辑连接符:ф=p|(非ф)|(ф与ф)|(ф或ф)构建规则集后,规则集里的规则被逐条解析,根据bnf语法定义形成语法分析树。遵照bnf定义,递归解析表达式,形成的语法分析树,叶节点为征兆模式,中间节点为中间状态。中间状态节点存储着逻辑计算的中间状态。中间状态也用正整数来表示。可限制征兆模式、中间状态和结论在用正整数表示时没有冲突,如下表。只要确保3个类型的表示上没有交集,具体的限制可根据系统状况灵活调整。然后根据语法分析树,形成与该规则等价的二元规则序列。二元规则序列由二元规则构成。每条二元规则为一个产生式,它的lhs包含1个逻辑连接符,以及1个或2个征兆。它的rhs为一个中间状态模式或结论。二元表达规则格式如下:非模式x=>中间状态/结论模式x与模式y=>中间状态/结论模式x或模式y=>中间状态/结论将规则集解析并生成二元规则序列过程中,可复用的二元规则不再重新生成。对于生成等价的二元规则序列的算法,不做任何限制。结合图2的实施例,有规则:x1或x2或x3,则生成c1[规则1]依据规则的bnf语法定义,规则1的解析树如图2所示,在规则的解析树中,征兆x1、x2、x3为叶节点,结论(c1)为根节点,中间状态(m1)为中间节点。将推理规则转换成等价的二元规则序列:m1或x3=>c1x1或x2=>m1推理机读入二元规则序列,对每条规则中引用的征兆模式,建立从模式到规则的索引规则集映射(rrm,reverse-rule-map)。rrm为从征兆模式(f)到二元规则集(rs)的映射:rrm:f->rs逆向索引映射表为引用该模式的二元规则的集合,包括直接引用和间接引用该模式的二元规则。当该模式出现在规则r中,则为直接引用;当该模式所在规则(r1)的右侧部分,出现在另一条规则(r2)中,则表示该模式间接被r2引用。间接引用可以嵌套多层,倘若r2的右侧部分出现在某规则rx中,则rx也间接引用了该模式,依次类推,直至rx的右侧部分没有被任何一条规则引用。遍历二元规则序列中的引用的全部征兆模式,对每个征兆模式xi构建逆向索引规则集映射,假设直接引用xi的规则有r1,…,rn,这些规则的rhs为y1,..,yn,则xi的逆向索引映射表中包含规则r1,..,rn,以及直接或者间接引用y1,..,yn的全部规则。举例说明rrm的构建过程。假设有二元规则集合rs={r1,r2,r3},引用了4个征兆模式x1,x2,x3,x4。r1:x1或x2=>m1r2:m1与x3=>c1r3:m1或x4=>c2对规则集中的每个征兆xi,获取rrm映射关系:rrm(x1)={r1}∪{r2,r3}={r1,r2,r3}rrm(x3)={r2}∪{r2,r3}={r1,r2,r3}rrm(x2)={r2}rrm(x4)={r3}推理机执行过程中,将全部模式的状态存储于位图中,并维护这个位图,直至推理机退出。在推理匹配策略方面,为了提高匹配效率,采取根据模式来搜索规则的策略,因为通常的情况是规则的数量远远多于模式的个数。当有征兆进入推理机,将该征兆对应的模式在位图中置位,并根据逆向索引映射关系遍历该模式对应的二元规则集,根据规则的操作符(与、或、非)判断是否有规则的使能状态发生变化,如果有,则将被使能的规则的rhs在位图中置位。如果被使能的规则rhs为结论,则表示推理机获取了一个推理结论。推理的过程中,对每条二元规则都保存它的触发状态,在一条规则被使能后,标记为使能状态,推理机再次遍历到此规则时,不重复执行推理。专家系统进行故障推理的流程如下:(1)读取规则的命题逻辑表达式;将命题逻辑表达式按照命题逻辑生成二元规则集合;二元规则为一个产生式,由一个或两个触发输入,进行逻辑运算,输出作为另一个二元规则触发输入的中间状态或者该规则的结论;(2)在线实时采集系统状态数据;(3)根据数据征兆表,匹配获得系统状态数据的征兆,每个征兆代表该数据的一种状态;(4)将状态数据的征兆与二元规则进行匹配,当满足某一二元规则时,按照该二元规则生成中间状态或表征故障的结论;(5)将中间状态进行记录,形成推理日志,如果有故障则将结论输出;并返回步骤(2)。如此循环,进行在线故障监控。如果发现故障,上位机可以读取通过推理日志,自动分析故障原因,仿真生成故障树,回放故障结论输出的过程。实施例(1)假设系统x有3个参数,分别为电源电压、电源开关和安全开关。电源电压数据来源为ad板卡,数据类型为ad。电源开关数据来源为io板卡,数据类型为io。安全开关数据来源为io板卡,数据类型为io。(2)电源电压关联了4个数据状态属性作为征兆:电源开关关联了2个数据状态属性:安全开关关联了2个数据状态属性:系统x的征兆模式集合为:使用征兆模式集合构建3条规则:●规则a“(电源开关=关)且(电源电压大于10.0或电源电压大于5.0且小于10.0或电源电压大于0.5且小于5.0),则电源故障a”●规则b“(电源开关=开)且(电源电压小于0.5),则电源故障b”●规则c“(安全开关=开)且(电源电压大于10.0或电源电压大于5.0且小于10.0),则电源故障c”将征兆区间作如下限制:类型区间征兆模式(0,9999)中间状态(10000,49999)结论(50000,10500)规则a,规则b和规则c可用逻辑表达式写为:规则a104与(101或102或100)则50001规则b105与103则50002规则c107与(101或102)则50003将规则集(规则a,b和c)转化成等价的二元规则序列rs。根据规则a的解析树,将规则a转换成:101或102=>10001-s110001或100=>10002-s210002与104=>50001-s3根据规则b的解析树,将规则b转换成:105或103=>50002-s4根据规则c的解析树,并且复用了二元规则序列中的s1,将规则c转换成:101或102=>10001-复用s110001与107=>50003-s5得到rs={s1,s2,s3,s4,s5}推理机读入rs,生成索引规则集映射rrm。征兆标识xirrm(xi)100{s2,s3}101{s1,s2,s3,s5}102{s1,s2,s3,s5}103{s4}104{s3}105{s4}106{空}107{s5}推理机执行时,根据每个征兆模式的rrm进行规则模式匹配。比如,征兆模式100和102先后满足。满足征兆模式100时,对二元规则序列中的s2,s3进行匹配,s2被使能,将s2的使能标志置位。当征兆模式101满足时,不再对s2进行匹配,只对s1,s3和s5进行匹配。这样,既避免了执行不相关的匹配操作,也避免了重复匹配的操作。以上所述,仅为本发明最佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。本发明说明书中未作详细描述的内容属于本领域专业技术人员的公知技术。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1