摘要:本文针对汽车故障诊断专家系统中知识库的特点,设计了一种基于Windows 平台的知识库管理系统(Knowledgebase Management System 以下简称KBMS),该系统充分利用了数据库技术,实现了对知识库中知识的存储、增加、删除、修改和查询,以及对知识进行一致性和完整性校验。为汽车故障诊断专家系统的开发和运用奠定了重要基础。
关键词:故障诊断 专家系统 知识库 知识库管理系统
Research on Knowledgebase Management Systemin the Vehicle Fault Diagnose
Chen Zhaoyang, Wang Yongkuan, Zhang Daisheng
Hefei University of Technology
[Abstract] According to the characteristic of knowledgebase in the vehicle fault diagnose expert system,we designed a knowledgebase management system. the system makes fully use of database technology to realize knowledge store、add、delete、modify and seek. Besides, it can also check the consistency and integrality of knowledge .in a word the system establishes a important base of the whole vehicle fault diagnose expert system.
Key words:fault diagnose expert system knowledgebase knowledge base management.
1 引言
汽车故障诊断专家系统主要由三部分组成:知识库管理系统、推理系统和人机接口系统。其中知识库管理系统(KBMS)是以适当形式表示的领域专家知识的集合,包括常识的、书本的和经验的。故障诊断专家系统运行过程中所需要的知识都是由知识库来提供的。系统的推理、决策都是围绕着运用知识库中存储的知识进行匹配、决策、归纳、演算等操作,从而得到最终结果。因此,在某种意义上来说,知识库建造的好坏直接影响到整个专家系统是否成功,而构造高效、完善的知识库管理系统将会对整个汽车故障专家系统性能的提高起到非常重要的作用。
目前,SQL Server 这种基于客户机/服务器模式的关系数据库在各行各业得到了广泛的应用,它在易用性、可伸缩性、可靠性以及数据仓库等方面都有非常明显的优势和特点。基于此以及汽车故障诊断这一特定领域知识的特点,我们选取SQL Server 为汽车故障诊断知识库的构造工具,保证了系统知识库部分的数据量和安全性不断发展的需要,以及知识库管理维护的方便性和知识库、数据库易于移植性的需要,使系统知识库能轻易的和其他数据库系统(如Oracle、Sybase、Excess)进行数据共享。另外,专家系统中的知识库管理系统充分利用了SQL Server 自身强大的知识库管理与维护功能,保证了知识库的数据完整性、一致性及安全性。
2 故障诊断知识库的建立
由于汽车故障诊断专家系统采用了融合实例(Case)与规则(Rule)的推理方法,为了更好的对知识库进行管理和维护,把知识库分成两个部分:实例库和规则库。其中实例是指以前曾成功解决过的问题或案例。结合汽车结构特点,将实例库分为三个子库:发动机库、底盘库以及汽车电器库。每一个子库又划分为若干个小块,每一小块对应一张表。如汽车电器部分划分为:电器仪表系统、照明与灯光信号系统、汽车空调系统 、电动门窗系统、安全气囊系统、汽车音响系统这6 块。所以汽车电器子库包含6 张表,每一张表记录了该块的所有故障诊断实例。每个诊断实例看作是一条记录,诊断实例所需要的参数为一个字段。具体的实例表示方法如表1 所示。
表1 汽车故障诊断实例的存储
表1 中的字段“状态”是指该条记录是否处于激活状态(只有激活的记录才是可用的记录)。如果值为1 表示该条记录处于激活状态,相反,如果其值为0,则表示该条记录有错误,暂时处于静止状态。规则则是表达由一定的前提推出确定的结论的知识,故障诊断中的规则一般都是领域专家从长期的实践经验中得出的规律性的结论。规则的一般形式是:If X Then Y ,这里X 表示前提,Y 表示结论。和实例库一样,规则库也分为发动机、底盘和电器3 部分。每一部分又划分为若干块,每一块对应一个规则表。规则采用表2 的形式记录:
表2 汽车故障诊断规则的存储
知识库中存储的领域专家知识可以由蕴含关系的规则来表达:If X Then (Y,CON),含义为“如果X 成立则有置信度为CON 的结论Y”,上式笛卡尔乘积的形式表示为:。当然故障诊断知识库中的实例库和规则库并不相互独立,相反它们是有密切联系的。运用专家系统中的知识挖掘机制对实例库中的实例进行研究,挖掘出“准”规则,将这些准规则存放到一个临时库中,然后请领域专家对这些规则进行逐一检查,合格的存放到规则库中,不合格的抛弃。整个汽车故障诊断知识库的结构如图1 所示。
图1 汽车故障诊断知识库结构图3 故障诊断知识库管理系统的总体结构
本文的汽车故障诊断知识库管理系统(KBMS)是以Delphi 5.0 为开发工具,采用SQL Server 为后台数据库而开发的.其总体结构可分为三层,如图2 所示。
图2 汽车故障诊断知识库管理系统的基本结构由于汽车故障诊断的工作量是巨大的,而且随着KBMS 应用的不断深入,其功能和结构都会有所变化,系统的维护就成为KBMS 基本定型后经常进行的工作。而要做到系统维护和修改方便、数据的兼容性好,最好的方法就是使数据的存取和逻辑操作相分离。为达到此目的.我们在知识库管理系统设计时将所有的操作函数分为三层:知识库管理层,知识库层,知识库表层。其中知识库管理层直接面向应用,用于知识库管理的各项操作调用,它直接调用知识库层的各函数;知识库层函数位于知识库管理层和知识库表层之间,起到连接两层函数的纽带作用;知识库表层函数直接实现知识在知识库中的存取、查询、修改、删除等操作,它直接面向数据库,操作的对象为底层函数。具体实现时,对于每一个具体的知识库管理操作,都将其分为三层调用形式来实现,各层函数完成的功能不同。这样,当因功能或需求的改变而使知识库管理层的功能发生变动时,如添加数据项、选用另一种数据库时,它都只影响本层的操作,而其它层不必修改。
4 知识库管理系统的知识管理
汽车故障诊断这一特定领域的特点,决定了故障诊断知识库要管理的知识具有多样性、复杂性以及模糊性等特点。另外,要管理的知识量是庞大的,而且故障诊断的每一步都离不开知识库的支持。因此,知识库中知识的调用、检索和查询效率,知识的一致性维护和完整性检查等都成为知识库管理系统建造的是否成功的关键。本文的知识库管理系统(KBMS)充分利用了关系数据库SQL Server 的知识,实现了对知识的输入、查询、浏览、删除、修改等基本管理;提供知识的一致性、完整性以及亢余检查;实现了数据库形式的知识存储模式。
5 知识的基本管理
KBMS 中知识的基本管理可以在其主界面上直接进行操作,通过选取相应的菜单项或快捷便可以完成相应的操作,方便而准确。
5.1 知识的存入
知识的存储是将经过领域专家认可的知识输入到故障诊断知识库中去,在输入知识前,用户须明确要将知识添加到知识库的具体哪一张表中去,然后通过选择KBMS 设定的索引机制进入该表的操作界面,点击编辑主菜单下的输入子菜单就可以对知识进行输入了。在知识的输入过程中,知识库管理系统会设定一些知识输入的格式或要求以规范用户的输入,如现在要将一实例输入到诊断实例库的汽车电器子库的空调表中去(参看表1),该表总共有8 个字段,除了热源外,其余7 个字段都是不容许为空值的,而当用户选择的空调形式为冷暖两用或制暖空调后,空调热源这一字段又必须是非空的,如果用户在输入知识时,某一非空字段没有输入内容,KBMS 就会发出提示“本字段非空,请输入相应的内容”。用户输入完以后,点击“保存”按钮,便可完成知识的输入。知识的输入会涉及到知识的相容性以及冗余等问题。
5.2 知识的取出
知识的取出管理实际上就是知识的查询.用鼠标点击KBMS 工具栏的“查询”按钮,知识库便进入查询状态。首先用户要输入一些查询条件如关键词、故障号等,然后选择查找范围后就可以进行知识的查询了.KBMS 将知识的查找范围设为整个知识库、故障诊断实例库、故障诊断规则库3种。如果知识库中没有符合条件的知识,KBMS 便给以提示.如果有的话,相应的知识便会显示在KBMS 的主界面中,用户还可以对这些知识进行2 次查询或更多次的查询直到找到需要的知识为止。
5.3 知识的删除和修改
在知识库的使用过程中,若发现一些知识误差很大或错误很多,可以对知识进行删除或修改。首先选择要删除或修改的记录,然后点击编辑菜单下的删除或修改子菜单。为了防止误操作,系统在删除知识时会提示是否真的要删除该条记录。当选择了修改子菜单后,该条记录便进入编辑状态,此时便可以对知识进行修改了,修改完毕后,点击保存,退出编辑状态,便可完成知识的修改。
5.4 知识的检验管理
(1) 正确性检验
KBMS 的正确性检验主要是对故障诊断知识库中的知识进行语法检查,对语法检查不合格的记录,将其状态设为不激活状态(即将该记录的状态属性值设为0)。为了实现对知识库中的不合法知识进行检验,我们利用SQL 语言设计的关系数据库中的触发器在新知识增加时自动、及时的检验知识的合法性,保证了将这些错误消除在萌发阶段。
(2) 多义性检验
这种检验主要是对规则库中的规则而言的,当已经给出完备的规则前提时应该得到唯一的结论,如果知识库中存在前提相同而结论不同的规则就出现了多义性的错误.如现有两条规则,它们的前提均为接通点火开关后,启动机不转。但前一条规则的结论是由蓄电池的故障引起的,而后一条记录的结论却是由启动机本身的故障引起的.当发现此类错误后,知识库管理系统会将这些记录提交给领域专家进行处理。
(3) 冗余检验
冗余检验是检查诊断知识库中是否存在完全相同或非常相似的记录,特别是在规则库中要检查是否存在结论相同而规则前提中除有些条件互逆外其余的条件都相同或等价的规则。如果存在上述两种情况,则需要将这些知识进行合并,消除知识冗余。
(4) 知识的一致性检验
故障诊断知识库管理系统中知识的一致性检验主要是检查知识库中是否存在自相矛盾的知识.如果在相同情形下根据知识库的不同知识会导致不相容的动作或结论,如都是桑塔纳2000 车的空调无制冷作用,由一条记录导出的结论是由缺少制冷剂引起的,而由另一条记录却得出是由制冷剂过多引起的。这时,KBMS 就会发出矛盾信号,提示出现了一致性的错误。
6 用户权限管理
为了防止KBMS 中敏感、重要的信息的非授权访问和操作,确保KBMS 的可靠性和安全性,我们在KBMS 中设立了用户权限管理模块。规定KBMS 的各层次的使用者和使用者的操作权限。由于知识需要不断的更新,KBMS 需要不同级别的多个维护者对不同的知识进行更新。这时,就必须为不同的维护者赋予不同的权限来进行各自范围的管理和维护。同时,为了管理上的方便,还可以把一定类型的用户划分为群组。由于我们将汽车故障诊断专家系统的主体市场定位在汽车生产企业的售后服务上。所以根据汽车生产企业的特点我们将整个KBMS 的用户等级设为4 级A、B、C、D。其中A 类用户的使用权限最大,他可以对整个诊断知识库的所有内容包括字段、表甚至整个局部知识库进行增减、删除以及其它操作;A 类用户一般为KBMS 的开发者,如知识工程师。B 类用户的使用权限比A 类用户的权限要底一些,他不能对知识库进行影响很大的操作,如删除和添加知识库表等。B 类用户一般为企业内的知识库管理员,他的任务主要是维护知识库管理系统( KBMS)的运行。C 类用户为汽车生产企业的各个维修站点的工作人员,他们通过企业内联网访问汽车故障诊断专家系统以指导和帮助他们的维修服务。C 类用户的使用权限较低,他们不能对知识库进行编辑操作(包括增、删、改)而只能进行一些非编辑的基本操作如查询和浏览等。
为了保证整个汽车故障诊断专家系统的交互性以及知识的可扩充性和不断更新,我们在KBMS 中设立了留言板的功能。C 类用户可以通过留言板对整个KBMS 和汽车故障诊断专家系统发表意见、指出知识库中的错误以及提供知识库中目前还没有的实例或规则。企业可以派专人负责KBMS 的流言板,及时发现和整理有价值的留言送到知识库管理员处.知识库管理员进行相应处理后再将一些不能确定的问题交给知识工程师,这样就保证了知识库中知识的不断扩充和更新。D 类用户是除A、B、C 类用户以外的所有用户,是使用权限最底的一种用户群体。具体实现时,用户首先必须输入用户名和密码以登陆KBMS,KBMS 再根据用户输入的用户名判断其属于哪种类型的用户,赋予相应的操作权限。图3 简要说明了KBMS 用户权限管理的结构。
图3 用户权限管理示意图7 知识库运行管理
知识库运行管理是指在知识库管理系统运行时协调会话、通讯和显示等。如在对知识库进行修改知识时,就不能再查询了。在不同时刻,可能实例库中实例数目不同,通过“统计”可以了解实例数目的变化等。
总之,知识库运行管理主要是在总体上控制知识库管理系统的变化。
8 结论
应用Delphi 5.0 和SQL Server 为工具开发的汽车故障诊断知识库管理系统(KBMS),用户界面良好,操作直观简便,运行准确高效。该系统作为汽车故障诊断专家系统的一个子系统,提高了整个专家系统的综合诊断能力以及汽车故障诊断的方便性、准确性,具有很强的应用价值。
参考文献
1 格得劳(美). SQL Server 2000 从入门到精通 . 北京:电子工业出版社,2001
2 Kyoung-jae,Ingoo han. Maintaining case-based reasoning systems using a genetic algorithms approach. Expert Systems With Applications, 2001, 21:139~145
3 张代胜,王悦.融合实例与规则推理的车辆故障诊断专家系统.机械工程学报, 2002,38(7):91~95
4 徐享忠,王精业.知识管理的模型框架及其关键技术.计算机工程, 2002,28(2)
5 徐洁磐.知识库系统导论.北京:科学出版社, 2000
6 李维.Delphi 5.x 多层分布式应用体系. 北京:机械工业出版社, 2000
7 R.Weber,D.W.Aha. Intelligent lessons learned systems. Expert Systems With Applications, 2001,17:17~34
8 肖应魁 . 汽车故障诊断学 . 北京:北京理工大学,2001