汽车故障诊断专家系统的设计与实现

2010-11-22 06:45黄爱蓉
湖北汽车工业学院学报 2010年2期
关键词:知识库故障诊断规则

朱 全 ,黄爱蓉 ,鲍 娟

(1.湖北汽车工业学院 电气与信息工程学院,湖北 十堰442002;2.郧阳医学院 计算机课部,湖北 十堰442002)

车辆内部结构复杂,故障呈现多样性,难于发现。针对这种情况,用户希望有一个能方便检测汽车故障的工具,并能实时掌握汽车的状态。汽车故障诊断专家系统能够满足用户的需求,具有广泛的应用前景。

汽车故障诊断专家系统主要是利用车载传感器获取车辆各ECU故障信息,使用人工智能算法对获取的故障信息进行综合处理,分析出故障产生的原因,并将分析结果反馈给用户。国内已有一些使用专家系统进行汽车故障诊断的例子,它是人工智能在汽车领域的一个应用,是领域专家和知识工程师合作的产物,通常可运用故障树、神经网络、遗传算法、小波分析等方法进行故障的分析和知识的提取,在推理方面,运用较多的有正向推理、反向推理以及正反混合推理。参见文献[1-5]。目前的专家也存在一些缺点,难于表征问题域的深层知识,缺乏鲁棒性和灵活性;不能提供深入的解释,难以验证根据经验学习的能力差等[6]。

针对此现状,本文提出了基于规则[6-7]的汽车故障诊断专家系统,运用不确定性的正向演绎推理,不完整的故障码信息也能给出结论,增加了一个实例数据库,用于存储推理结果,避免了重复推理,提高了推理效率。

2 总体设计

汽车故障诊断专家系统的整体功能模块如图1所示,主要由无线收发模块、数据处理模块和故障诊断模块组成。专家系统的功能是当用户需要故障求助时,按下求助按钮后,接收由车载端发送来的故障码信息,运用知识库中的知识推理诊断[8-9],并将诊断结果反馈给用户。

图1 功能模块图

其中无线收发模块具有接收信息和发送信息的功能,它接收车载端发送的故障码信息,并传递给数据处理模块,并将数据处理模块传递过来的诊断结果反馈给车载端。数据处理模块处理和转换无线收发模块传递来的故障码信息,并传递给故障诊断模块;同时处理和转换故障诊断模块传递来的诊断结果并传递给无线收发模块。故障诊断模块接收从数据处理模块传来的车牌号和故障码,运用知识库中的知识进行推理,得出诊断结果并将车牌号和诊断结果返回给数据处理模块。

3 数据交互协议

为了使专家系统能实时准确的接受到车载端发送来的故障求助,同时将诊断结果实时准确的反馈给车载端,建立一个好的数据交互协议是很重要的,专家系统数据包格式如表1所示。

表1 汽车故障诊断专家系统数据包格式

其中:Device为设备编号,长一个字节;Node表示通信节点;Data/Cmd表示包的类型,若为0x00表示数据,若为0x01表示命令;Buf表示包的实际内容,其长度(字节数)由Length域的数据决定。

本系统在运行过程中,传输的数据包有显示端发出的故障求助包、网关发给服务中心的故障求助包和来自服务中心的分析结果包。

当车辆发生故障时,或用户觉得必要时,由用户发起故障求助,按下“故障求助”向服务中心请求帮助。具体过程如下:

1)显示端“故障求助”按钮通过网关向服务中心发起故障综合诊断请求,请求包格式见表2。

表2 显示端发出的故障求助包

2)网关先将该请求转发给采集端。

3)采集端对关键点扫描,将扫描的故障码发给网关。

4)网关根据来自采集端的数据包确定有无故障存在,若无,直接发送故障尾包给显示端;若有,将故障码转发给显示端,同时在故障码包的Buf开始处插入“车牌号码”信息如表3所示,将其发给服务中心,等待服务中心的诊断结果。

表3 网关发给服务中心的故障求助包

5)若服务中心未返回诊断结果 (如发生无法连接服务中心的情况),则直接将尾包发给显示端;若服务中心返回分析结果,则将来自服务中心的结果包(表4)和故障尾包依次发送给显示端。

表4 来自服务中心的分析结果包

4 故障诊断及设计

故障诊断模块是专家系统的核心部分,它根据发送来的故障码,运用知识库中的知识进行推理,得出故障部位、维修建议和置信度。本系统在正向演绎推理的过程中,使用深度优先搜索策略以达到对汽车故障的诊断。

4.1 故障诊断原理

4.1.1 专家系统基本实现原理

故障诊断模块主要由人机接口、推理机、知识库、综合数据库、知识获取机构、解释系统等组成。其中推理机和知识库是故障诊断的核心部件。人机接口是专家系统与领域专家或知识工程师及一般用户间进行信息交互的媒介;推理机模拟领域专家的思维过程,根据当前已知的事实,利用知识库中的知识,按一定的推理方法和控制策略进行推理,最后得出问题的解;知识库是专家系统的知识存储器,用来存放被求解问题相关领域内的原理性知识或一些相关的事实以及专家的经验性知识;综合数据库用来存储有关领域问题的初始事实、问题描述及其系统推理过程中得到的各种中间状态或结果等,系统的目标结果也存于其中;知识获取机构从知识工程师那里获取知识或从训练数据中自动获取知识,并把得到的知识送入知识库中,并确保知识的一致性及完整性;解释系统通过对自身行为的解释回答用户的提问。此功能模块的流程图见图2。

图2 故障诊断模块

4.1.2 知识获取

采用故障树分析法将知识组织成树状结构,故障树分析法是一种将系统故障形成的原因由总体至部分按树枝状逐渐细化的分析方法,可以用来判明故障部位及其原因、影响和发生概率。故障树分析法就是把所研究系统的最不希望发生的故障状态作为故障分析的目标,然后寻找直接导致这一故障发生的全部因数,再找出造成下一级事件发生的全部直接因素,一直追查到那些原始的、无须再深究的因素为止[10]。故障树分析法将最不希望发生的事件称为顶端事件,最终原因称为底端事件,介于二者之间用于推理的事件称为中间事件,并用相应符号表示这些事件,再用适当的逻辑门把顶端事件、中间事件和底端事件连接成树形图,用以表示故障现象和故障原因之间的关系。

故障树分析过程如下:1)对系统进行分析,将最不希望发生的事件称为顶端事件。2)将系统各部分故障现象和故障原因进行定义并组织成故障树形式的逻辑图。3)运用布尔代数对故障树进行简化,求故障树的最小割集。4)根据各元部件间关联的故障概率,对系统故障做定量分析。

4.1.3 推理原理

本系统是基于规则的专家系统,知识被表示为“如果……那么……”的产生式规则,即 “IF P THEN Q”的形式,其中P是产生式的前件,指出该产生式规则的条件;Q是一组结论或操作,指出当前提条件满足时应得出的结论或进行的操作[10]。

由于此系统一次获取所有故障码,无法在推理过程中询问用户相关信息,用反向演绎推理或正反向演绎推理比较困难,所以用正向演绎推理;正向演绎推理的基本思想是:用户首先用已知的初始事实集初始化临时数据库,在知识库中寻找与临时数据库中的模式匹配的知识,构成可用的知识集。然后运用深度优先搜索作为冲突消解策略选出一条规则进行推理,并将推理出的新事实加入到临时数据库中作为下一步推理的已知事实。如此反复这一过程直到求出所要求的解或者知识库中再无其他可用的知识为止。

本系统是正向推理的基础上的不确定性推理。知识库中的知识具有不确定性,在推理过程中,结论的不确定度为推理过程中规则不确定度的乘积,最后的推理结果按不确定度的大小进行排序,给出用户结论的优先顺序。

本系统设置了一个实例数据库,推理的最后结果存放在实例数据库中,当下次发送来的故障码存在于实例数据库时,可以用实例数据库中已有的结论反馈给用户。

4.2 专家系统算法设计

图3 专家系统整体流程图

故障诊断专家系统整体流程图见图3。故障诊断需要故障诊断模块各部分间的协调工作,基本步骤如下:1)程序对数据处理模块传来的数据进行处理,分离出车牌号和故障码。2)在实例数据库中查询有无与故障码匹配的诊断结果,若有,将车牌号和诊断结果传给数据处理模块,程序结束;若无,进行步骤3。3)建立用于推理的对象,初始化临时数据库。4)运用知识库中知识进行推理,如果推理失败,将车牌号和“推理失败”传给数据处理模块,程序结束;如果推理成功,进行步骤5。5)将推理实例加入实例数据库,将车牌号和推理结果传给数据处理模块,程序结束。

4.2.1 故障推理及设计

故障推理是以推理机为中心的推理过程,流程图如图4所示。基本步骤如下:

1)建立临时数据库,用于存储规则前件及其对应规则的概率和最终结果及其对应概率。

2)初始化临时数据库,将各故障码与规则前件匹配,形成规则集,运用宽度优先搜索策略,依次选取规则进行推理,将推理结果中的结论加到存储最终结果的数组中,相应概率加到存储最终结果概率的数组中;将推理结果中的操作加到存储规则前件的数组中,相应概率加到存储规则前件概率的数组中,形成新的事实集进行下一步推理。

3)反复执行步骤2直到存储规则前件的数组中不与任何规则匹配时为止。

4)若诊断失败,返回车牌号和“推理失败”;若诊断成功,将推理结果中相同项合并,对应概率相加,去除结果中概率小于0.1的项,并将推理结果存入“实例数据库”,返回车牌号和推理结果。

图4 故障推理流程图

5 系统实现

本系统在Windows操作系统下,以C#作为开发平台,使用SQL2000作为专家系统中知识库、实例数据库的服务器。

5.1 知识库和实例数据库的建立

知识库存储了推理机推理所需的知识,是专家系统最重要的部分,表InferEvent提供了其功能,存储了用于推理的知识,即产生式规则的前件,对应操作或结论和相应置信度。实例数据库具有提高诊断效率的作用,表rules提供了其功能,存储了接收到的故障码序列、对应诊断结果和置信度。其它辅助表有表ProbPlace和表ErrorCode,表ProbPlace给出了故障部位编码及其对应故障部位和维修建议,表ErrorCode用于存储推理前件和最终结果,将推理前件和最终结果组织到一个表中,避免了频繁的表间操作,提高了程序的运行效率。

5.2 部署图

系统测试时,专家系统作为服务器,主动打开,处于监听状态,当有故障码传来时,开始推理诊断并将诊断结果反馈给用户,整个系统的部署见图5。

图5 系统应用部署图

5.3 实际应用结果

在系统运行过程中,诊断结果反馈给用户的同时,也显示给系统管理员,通过系统管理员对系统的实时监测,有利于系统性能的测试和评估,为系统的维护和改进提供了依据。应用截图如图6所示。

图6 实际应用截图

5.4 效果分析

通过对系统的测试,达到了预期的效果,当提供测试数据时,系统给出了正确的诊断结果,可以作为用户排除故障的依据,根据反馈的维修建议,通过相关处理,最终成功的排除了汽车的故障,完成了专家系统的功能。

在诊断时,诊断具有实时高效性,可以快速的给出诊断结果;系统具有较高的稳定性,对于各种异常情况,系统均给出相关的异常处理结果;当故障码信息不足时,系统也可根据具体情况给出诊断结果和相应的置信度。以往汽车故障诊断专家系统多为研究汽车某一部分故障的诊断,难于从整体对汽车故障进行分析,在进行推理时,多为确定性推理,对于复杂的汽车系统,无法给出全面的诊断结果,导致某些推理结果的不完整。本专家系统对汽车进行整体分析,各诊断部位紧密联系,通过不确定推理,将所有可能结果呈现给用户,供用户选择。在构建知识库的同时,还建了一个实例数据库用于存储推理结果,当遇到较多用户发送相同故障码时,可以直接查询已有的推理结果并反馈给用户,提高了推理效率和故障诊断的实时性。

6 结束语

本专家系统用故障树的分析方法,基于规则的知识表示和正向演绎推理,以解决汽车中存在的复杂的故障问题,方便用户对各自汽车的维护,具有广阔的应用前景。采用故障树的分析方法,将各故障现象以树的形式组织起来,便于描述各故障现象之间的关系,简化了故障现象间复杂的关系,有利于分析和编程。而用基于规则的知识表示方法,使知识和计算机程序中的控制分离,从而使知识和程序控制可以各自进行维护而相互间没有影响,提高了整个系统的稳定性,各规则在语法上是相互独立的,规则仅可以通过改变工作内存中的模式来影响其他规则的引发,这种语法上的独立性有利于逐步开发系统,可以不断地加入、删除或修改系统中的知识。但此专家系统无法对汽车模糊的故障征兆进行处理,而且无法从诊断中自主学习,必须由知识工程师对规则进行添加和维护。未来可以采取神经网络[11]和遗传算法[12]相结合的专家系统,具有模糊诊断和自主学习的能力。

[1] 程晓章,吴昊.基于规则的柴油机故障诊断专家系统[J].合肥工业大学学报,2003(4):619-622.

[2]辛惠娟,戴庆辉.汽车发动机故障诊断专家系统的开发研究[J].煤矿机械,2005(2):131-133.

[3] 张丽莉,储江伟,强添刚,等.汽车故障诊断专家系统关键技术的研究与发展 [J].计算机应用研究,2008,25(6):1633-1638.

[4]许化东.基于故障树分析法的汽车故障诊断专家系统的研究[D].合肥:合肥工业大学车辆工程,2002.

[5] 孔繁森,董因平,何仁.基于故障树知识的汽车故障诊断推理[J].汽车工程,2001,23(3):209-213.

[6]George F.Luger.人工智能—复杂问题求解的结构和策略[M].北京:机械工业出版社,2006.

[7] 王勋,凌云,费玉莲.人工智能导论[M].北京:科学出版社,2005.

[8] 鄂加强,龚金科,王耀南,等.特种车辆柴油发动机故障诊断专家系统推理机设计[J].湖南大学学报,2005,32(5):46-51.

[9] CHEN SHYI-MING,HSIAO WEN-HOAR.Bidirectional approximate reasoning for rule-based systems using interval-valued fuzzy sets [J].Fuzzy Sets and Systems,2000,113(2):185-203.

[10]肖云魁.汽车故障诊断学[M].2版.北京:北京理工大学出版社,2006.

[11]冯 定.神经网络专家系统 [M].北京: 科学出版社,2006.

[12]李敏强.遗传算法的基本理论与应用[M].北京:科学出版社,2002.

[13]马鸣远.人工智能与专家系统导论[M].北京:清华大学出版社,2006.

猜你喜欢
知识库故障诊断规则
撑竿跳规则的制定
基于包络解调原理的低转速滚动轴承故障诊断
数独的规则和演变
基于TRIZ与知识库的创新模型构建及在注塑机设计中的应用
让规则不规则
TPP反腐败规则对我国的启示
高速公路信息系统维护知识库的建立和应用
因果图定性分析法及其在故障诊断中的应用
基于Drupal发布学者知识库关联数据的研究
基于LCD和排列熵的滚动轴承故障诊断