故障诊断专家系统研究之四-----知识库结构

时间:2022-01-02 12:40:15

知识库结构

 

 

§1   知识库概述

知识库同知识表示和推理机构成专家系统的三个核心组成部分。知识表示研究如何将专家的知识和经验以一定的结构合乎逻辑地表达出来,而知识库则是研究知识的存贮结构,保证知识的明确性、相容性、简洁性及可维护性。严格地说,知识表示和知识库是分不开的,有何种知识表示,就有基于该种知识表示的知识库结构。

关于知识库的定义,各行各业都根据自己的需要对知识库有着不同的定义,众说纷纭。但对知识库都有一个共同的看法:知识库——特定领域的知识和数据的集合,即强调知识库是一个集合、一个知识和数据的集合,而这些知识和数据又属于一个特定的领域,如:燃气轮机知识领域。

知识库的研究和发展得益于一些概念和技术的集成。这些概念和技术所涉及的主要领域有:数据库技术、形式逻辑和自然语言处理等,数据库技术的发展使得知识库能处理数据共享的问题;形式逻辑使得复杂知识能够向简单事实一样被表示、存贮和推理;自然语言处理方法的研究使得知识库能够处理一些复杂的对象、事件序列和模糊的知识,但知识库并非仅仅是借助于其它领域技术和方法的简单组合,它有着自己的鲜明特点:

1. 明确性          包含两个方面:一是知识库结构的明确性,由于知识库是特定领域的数据和知识的集合,因此,知识库结构应与自己所应用的对象明确地保持一致;二是知识库中知识存贮方式的明确性,即知识不应隐含地存放。

2. 相容性          知识库中的知识必须保持逻辑上的严格一致,同时必须严格遵守事先规定好的某些规范,不能有矛盾性的知识或不合规范的知识存在。

3. 简洁性          即知识库中的知识不应该雷同或冗余,若某一知识能从其它知识演绎而得到,则应该把该知识从知识库中剔除。

4. 可维护性      即知识是可以增加、删除和修改的,这是知识库的功能中的重点和难点。

在本文中,针对燃气轮机特有的知识表示结构,结合关系型数据库的思想,提出了燃气轮机知识库的层次模型  结构。该结构能有效地避免知识冗余,通过知识关联和多级索引机构,极大地提高了知识库的搜索效率。

 

 

§2  燃气轮机知识库分类及总体结构

在第三章,讨论了燃气轮机知识的分类及每类知识的表示方法。本文把关于燃气轮机的知识分为两大类:深层知识和浅层知识。其中,深层知识又可分为知识元和关联;浅层知识又分为断言、规则和征兆,如图41所示:

 

 

    

41 燃气轮机知识分类

 

 

一个设计良好的知识库,除了应具备前面提到的明确性、相容性、简洁性和可维护性外,在结构上还应具备很强的独立性,当根据需要对知识库进行扩充或修改时,而不会影响系统的其他部分。同时,知识库内部也应具有鲜明的结构化、层次化特点,这也是系统可维护性的要求。

因此,将知识毫无区别地混杂在一起存放是不明智的,这样既不便于检索也不便于维护。本文采用的方法是,将如图41所示的每一类知识单独存放在不同的知识库中,根据不同类知识之间的依赖关系,构筑其相应知识库之间的结构关系。这样,不仅保证了知识库的结构化、层次化特点,而且知识库结构同知识表示在逻辑上保持一致,使整个系统结构显得完整、紧凑。更重要的是,存取知识库时不必经过格式的转换,提高了系统的效率。

鉴于上述分析,本文采用的知识库分类方式同燃气轮机知识的分类方式一样,给每一类知识都构筑自己的知识库,因此燃气轮机知识库的分类方式如图42所示。

       观察燃气轮机知识库分类图(图42),燃气轮机知识库由11个库组成,如何组织这11个库之间的关系及其内部的结构是本章讨论的重点。浅层知识总是基于结构化原理等深层知识之上,因而在知识库模型中,深层知识库应该在底部,浅层知识库则应该在顶部;深层知识库又包括知识元库和关联库,其中知识元库是基础,它记载和描述了构成任一条燃气轮机知识的最基本元素(系统名,子系统名,对象名,状态描述),关联库则存放着各知识元库中知识元之间的所属关系,关联库的存在以知识元库的存在为前提,因而在深层知识库中,知识元库在底部,关联库在顶部;浅层知识库包括断言库、规则库、征兆库和行动库,由定义33和图36,断言库事实上表现为各层知识元库根据相应关联而构成的一个四元关系集,也就是说,断言可直接从深层知识库中抽取,同时,断言又是构成规则和征兆的前件和后件的基本元素,因而断言库在深层知识库之上且位于浅层知识库的底部;规则和征兆则是基于断言的产生式结构,故规则库和征兆库位于断言库之上,在浅层知识库的顶部;行动本应属于规则的一个域,为了使规则的描述得到简化,故把行动从规则中分离出来,使其单独构成一个库,因此,行动库是规则库的一个附件。由于行动库存放的只是给用户提供维修措施的一组字符流,不需要特殊的存储结构,因此本文后几节将重点讨论其它几种的知识库结构。

 

 

                     42 燃气轮机知识库分类

 

 

 

 

鉴于上述分析,本文提出的燃气轮机知识库模型如下:

 

 

 

 

 

 

43 燃气轮机知识库模型

 

 

 

 

 

 

§3   知识元库

如图43所示,知识元库包括系统名库、子系统名库、对象名库和状态描述库。这四个库是整个燃气轮机知识库的基础,它记载和描述着燃气轮机所有系统、部件及参数的名称和关于它们可能状态的描述。对应图36,就主机系统而言,这四个库事实上分别对应着图中的四层节点集。

考察下述深层知识:

41    主机系统由压气机、燃烧室和涡轮等子系统构成;压气机包括出口温度、出口压力、压比和叶片等对象(参数和部件);燃烧室包括燃油喷射量等对象(参数);涡轮包括轮间温度、平均排气量和静子、密封件等对象(参数和部件)。而每一对象有过高、过低、过大、过小、变形、磨损和断裂等状态描述(异常状态)。

 

 

为了能够清晰地从上述知识中抽取各层知识元,不妨把它表示成四层树形结构图的形式:

 

 

 

 

    44 41的图解表示

 

 

 

 

系统名库对应第一层节点集

 

 

       系统名库: {主机系统}

 

 

子系统名库对应第二层节点集

 

 

       子系统名库:  {压气机,燃烧室,涡轮}

 

 

对象名库对应第三层节点集

 

 

       对象名库: {出口温度,出口压力、压比,叶片,燃油喷                            射量,轮间温度,平均排气量,静子,密封件}

 

 

状态描述库对应第四层节点集

 

 

       状态描述库:  {过高,过低,磨损,变形,断裂,过大,过小}

 

 

但是,上述具体的知识元库只是说明了知识元在相应知识元库中的结构,这种库结构是离散化的,并没有完整地存储例41中的深层知识,而关联库的存在则使得这一问题得到解决。

 

 

§4   关联库

关联分为一、二、三级,相应地关联库也分为一级、二级、三级关联库,它反映了各层知识元之间的所属关系:

 

 

一级关联库:系统名库           子系统名库

二级关联库:子系统名库         对象名库

三级关联库:对象名库        状态描述库

 

 

如第三章所述,关联分为关联首部和关联体部。就一级关联而言,关联首部存放系统名在系统名库中的序号,关联体部则存放子系统名在子系统名库中的序号,关联体一般有多个序号,呈现典型的一对多的形式,这一点也符合燃气轮机的基本结构。在关联库中,关联也以这种形式存放,由于关联库是多个关联的集合,因此涉及到关联在关联库中的相对位置的排序问题。在同一个关联库中不可能存在两个关联其首部相同,对于这种情况系统会自动地将其合并为一条关联(见第六章--知识获取),因此可以采用关联首部作为关键值,以该值的大小顺序(本文中采用由小到大的顺序)来安排各关联库中关联的相对位置,这样做的好处是知识获取时可以采用二分查找法查找关联(见第六章-知识获取),因为这种方法可以有效地提高知识库的搜索效率。

回到例41,给出关联库中该知识的结构(如图45),为保证论述的整体性和完整性,图中结合了知识元库一块描述,事实上,这也是例41在深层知识库中的结构。

 

 

§5   断言库

在燃气轮机知识库的11个库之中,从知识库的产生方式来说,断言库是最特殊的。因为其它所有库中的知识均由知识工程师和专家合作,以一定的形式存入知识库中,而断言库则是自动生成的。

由定义33,断言事实上就是从燃气轮机各系统四层树形结构图根节点到叶节点的而得到的描述,也就是基于燃气轮机四层知识元库之上的一个关系,而这种关系的建立不是随机的,它依赖于四层知识元库之间的三级关联。因此,断言库依赖于深层知识库的存在而存在,一旦确立了深层知识库,则断言库事实上已经被确定。因此,断言库完全可以以深层知识库为基础,由系统自动地建立。在讨论系统如何自动建立断言库之前,先介绍一个重要的概念--关联的连接运算。

考察下述断言

断言1      主机系统透平轮间温度过高

                       45 41的深层知识库结构

根据§333节的讨论,该断言的框架表示如下

 

 

                 (框架名:断言1      

                     (槽1:主机系统)   

                     (槽2:透平)

                     (槽3:轮间温度)   

                     (槽4:过高)   

 

 

更进一步地,结合图45,上述各槽值可以采用在对应知识元库中的序号来表示:

 

 

                 (框架名:断言1      

                     (槽11   

                     (槽23   

                     (槽36   

                     (槽41

 

 

为方便起见,改写成下列形式:

1361

上述形式中,忽略了断言框架的名称,因为断言库中每一断言框架的名称可以采用断言在断言库中的序号来表示,而断言本身并没有必要知道它在断言库中的位置。因此,上述存储结构中只记载了知识元“主机系统”、“透平”、“轮间温度”、“过高”在相应知识元库中的序号,这也是断言在断言库中的存储结构。相应地,断言“主机系统压气机叶片断裂”也可以表示为下列形式:

1145

       事实上,断言的这种存储结构可以从关联库中得到体现,就断言(1361)而言(不妨设该断言为ass1〕,根据系统名序号1在一级断言库中寻找关联首部为1的关联项con1=1123),发现断言ass1的子系统名序号3出现在关联项con1的关联体中;根据子系统名序号3到二级关联库中寻找关联首部为3的关联项con2=36789),发现断言ass1的对象名序号6出现在关联项con2的关联体中;根据对象名序号6到三级关联库中寻找关联首部为6的关联项con3=612),发现断言ass1的状态描述名序号1出现在关联项con3的关联体中。因此,断言(1361)完全可以从关联项con1con2con3中抽取,同样,从con1con2con3中还可以抽取断言(1362(对应“主机系统透平轮间温度过低”)。断言的这种生成方式可表示为

              con1*con2*con3{1361),(1362}

其中,* 称为连接符号。

 

 

定义41      为任意关联项,为关联项的首部,    关联项的第个关联体。                    又令

              关联项 分别属于一、二、三级关联库,   如果

                                       

                 

              那么称 关联项 经过连接生成断言集

              ={,

                     ……

                     }

              记为      

              其中,的关联体数量,*为连接运算符。

 

 

按照定义41,考察前述关联                           

                                  

因此,

       若上述关联项 分别遍历一、二、三级关联库中所有关联项,则可以得到诸多不同的断言集,而断言库正是由所有这些断言集构成。关于断言库的构成,本文给出如下结论

 

 

结论41      分别为一、二、三级关联库,                   ,则对于任意的,通过连接运算而生成的断言集构成断言库。

 

 

在深层知识库基础之上,采用关联的连接运算可自动地生成断言库。至于断言在断言库中的排列次序同关联库一样,以断言框架的第一个值(系统名)为关键字,由小到大排列,对于系统名相同的断言则以断言的第二个值(子系统名)为关键字,余类推。这样做的目的是为了能够采用二分查找法,提高断言库的搜索效率。对应图45的深层知识库生成的断言库如图46所示,图中把断言库分成三块,是为了能够更清晰地观察到断言库的排序结构。事实上,断言在断言库中是连续存放的。

 

 

            

46   由图45生成的断言库结构

 

 

 

 

 

 

 

 


§6   规则库     

       在第三章,本文讨论了规则的知识表示方式,确定了采用基于断言框架的产生式结构来表示规则,并给出规则的一个表达模式:

r=(故障现象,故障原因,规则强度,行动方案〕

那么,规则在规则库中的具体存储结构如何?本节将在产生式结构的基础之上作进一步的探讨。为了讨论问题的方便,先不考虑规则强度与行动方案。即认为规则由下述两部分构成:

r=(故障现象;故障原因)=(AB

至于规则强度与行动方案稍后再讨论。

       针对燃气轮机的具体运行情况,按照规则前件的形式分类,规则的形式不外乎下述四种情况:

       1.    规则前件为单个断言,即故障B只表现为一种故障现象。

                            形式1

       2.    规则前件为多个断言相“或”,即故障B可能诱发多个故障现象,而这些现象可以不同时出现。

                            形式2

       3.    规则前件为多个断言相“与”,即故障B可能诱发多个故障现象,而这些现象肯定同时出现。

                            形式3

       4.    规则前件为多个断言以“与”和“或”的形式相组合,即故障B可能诱发多个故障现象,而其中一些现象可能单独出现,另外一些现象要么不出现,要么同时出现,

                            形式4

这里,符号 均为单个断言,而 则有可能是断言的组合形式。

       其实,上述四种形式可以进一步地缩减,对于形式4可以通过变换将其前件化为合取范式的形式[5]

                                  

这里 均为多个断言相“与”的形式,从而可用形式3表示。如规则 

                                        

可以化为两条规则

                                         

对于形式2,可用形式1表示。 如规则

                                         

可以化为三条规则

                                   

因此,上述四种规则形式可以归结为形式1和形式3

                            形式1

                            形式3

而形式1则又是形式3的一个特例,当n=1时,形式3就变成形式1

       鉴于上述分析,关于燃气轮机的所有规则均可采用形式3描述,因此,本文在规则库中采用形式3来存储规则。

       燃气轮机实际运行时情况比较复杂,对于一个或若干个故障现象,都可能对应若干个故障原因,这些原因中可能有些发生,有些并没有发生。因此,诸多原因中各自的可能性是不一样的,因而规则强度也不一样。同样,对于每一个具体的故障原因都有其具体的解决办法或行动方案。因此,规则强度和行动方案同故障原因之间存在着相互对应的关系,可将它们归结为一类,并入规则后件之中。于是规则的形式又统一到第三章描述的规则表示的形式上:

 

 

这里,规则前件A是如形式3中多个断言相“与”的形式;规则后件B则是多个可能的故障原因(附带规则强度与行动方案)的排列。因此,规则的存储结构应该如图47所示:

 

 

47 规则的存储结构图

 

 

实际存储时,为了节省存储容量,提高匹配速度,上述各断言均采用该断言在断言库中的索引号表示。如图47中的规则1在规则库中的实际形式为:

 

 

48 规则的实际存储形式

燃气轮机实际运行过程中,经常遇到的一个问题是效率和压比过低,根据专家经验可能是由于压气机叶片变形、磨损或断裂引起,当然也有可能是由辅助系统的故障引起,如放气机构工作不正常,进气导流气结冰等。为了能够沿用图46中例41的断言库,这里只考虑压气机叶片的故障引起压比过低的情况,因为关于压气机效率和辅助系统的断言在图46中并未列出。以前面讨论的形式3对这一规则作一描述:

设断言     A1=主机系统压气机压比过低;

           A2=主机系统压气机叶片变形;

           A3=主机系统压气机叶片磨损;

           A4=主机系统压气机叶片断裂;

则上述专家经验可表示为规则

           r=(A1(A2CT1,ACT1)Ú(A3,CT2,ACT2)Ú(A4,CT3,ACT3))

其中,CT1,CT2,CT3为规则强度,ACT1ACT2ATC3为行动方案。以图47的断言库为例,这条规则在规则库中的存储结构如下:

 

 

 

 

49 规则r在规则库中的存储结构

 

 

 

 

 

 

§7   征兆库

   正如前面所述,燃气轮机的同一故障现象可能对应多个原因,即多个故障可能诱发同一现象。例如,当涡轮效率有变化时,可能是下述几种原因引起:

                 1.  涡轮工作叶片拉长

                  2.  涡轮气流通道零件烧毁

                  3.  涡轮工作叶片扯断

                  4.  轴承和篦齿密封圈断裂

5.      排气装置损坏 

 

 

而燃气轮机实际运行时,可能只发生其中一种或少数几种故障原因,并非所有的故障同时出现,为保证故障诊断的深度,必须对上述5个故障原因中实际没有发生的故障予以排除。当某一故障发生时,必然会表现出与之相关的确定的征兆,可以通过检查这些征兆是否出现来判断该故障是否发生,从而达到保证诊断深度、缩小诊断范围的效果。这也是设立征兆库的原因。

    第三章中,提出了征兆的知识表示模型如下:

(故障状态;故障表现)

 

 

这里故障状态单一,并非多种故障状态的组合,而故障表现则是该故障状态发生时所表现出来的所有征兆的组合,同样,它们均由断言构成。因此,征兆在征兆库中的存储形式如下图所示:

 

 

410   征兆在征兆库中的形式

 

 

这里,m为故障状态在断言库中的序号,n1,n2,...,nn分别为故障mn个征兆在断言库中的序号。

 

 

 

 

 

 

本章小结

本章在燃气轮机知识分类的基础之上引出燃气轮机知识库的分类,并以燃气轮机知识之间的层次关系来构筑其知识库,提出了燃气轮机知识库的层次化模型。该模型中,各类知识自成一体,不同类知识之间的关系通过其相应的知识库之间的结构准确地体现出来。为了提高知识库的搜索和匹配效率,对知识库中的知识存储形式作了探讨。