山西国际商务职业学院毕业设计
4 基于VFP的诊断型专家系统的实现
4.1 概述
在开发研究本系统时选用大众数据库Microsoft Visual FoxPro 6.0开发工具。利用关系数据库原理建立的知识库、故障库简单易懂,便于用户理解掌握,使计算机根据用户掌握的故障线索及存储在计算机内部的知识库中的数据进行选择推理,最终确定发动机的故障部位,并提出维修建议。其特点是:检索速度快,用户可很方便地浏览打印知识库数据,并可根据实践经验随时修改、完善知识库。但是,对复杂故障推理难于实现。
4.2 系统功能简介
所设计的诊断型专家系统具有如下的功能:
(1)发动机故障诊断功能;(2)故障模糊查询功能;(3)知识库浏览、打印功能;(4)知识库维护修改和可扩充功能。
系统具体功能及使用方法见附录。
4.3 系统主要实现的模块功能
4.3.1 项目的建立
项目管理器的作用是把应用系统中使用的所有文件如:表单、数据库、表、报表、菜单等不同类型的文件有效的组织和管理起来。设计好的主程序、程序、表单、数据库、表、报表、菜单等都必须添加到项目管理器中。 4.3.2 知识库的建立步骤
VFP采用关系数据库模型,将知识库划分后,每个库中含有多个表,分别为:故障现象表、一级故障原因表、二级故障原因及排除方法表。将“故障现象”表中的“故障现象”字段和“故障原因”表中的“一级原因”字段设置为主索引。如图4-1(图略)所示,建立表间关联,设置参照完整性。 4.3.3 故障诊断推理模块
对于发动机的故障,本系统根据用户选定的故障现象进行搜索,然后推理,进而得出结论并提供维修建议,推理采用SQL查询语言。
以发动机启动困难或无法启动为例,介绍故障诊断模块的确定。 4.3.4 图片资料的利用
为使用户能够更加准确地了解和掌握发动机的构造,我们收集了大量的发动机构造和维修示意图,利用OLE技术将word文档和图片(*.jpg格式)嵌入到本系统中,用户可以通过开始界面调用这些资料。图4-5(图略)、图4-6(图略)、图4-7(图略)为
12
4 基于VFP的诊断型专家系统的实现
系统调用的有关气门间隙调整方法的示意图。实现方法是,先将图片与word文档使用超链接的方式连接起来,再组建图片库,将图片定义成通用字段。然后利用OLE技术将word文档嵌入到表单中来,就可实现图片的浏览。其中“查看插图” 按钮的click事件的代码为:
图4.1生源占学生总数的比例
4.3.5 知识库修改完善
为使用户使用系统过程中,学会故障诊断,并随着自己修车经验的提高,不断扩充、修改和完善知识库,同时,通过使用此软件,不断积累经验,修正错误,最终由一个发动机故障诊断与维护的新手变成专家,本系统特设计了一个知识编辑模块。
此模块的功能是为了方便管理数据和随时完善知识库,但必须取得修改的权限后方可进行编辑修改。而且采用参数传递的智能化设计,界面设计简单明了,容易掌握。
启动困难原因的添加和修改表单的调用方法是:在图4-8(图略)中“启动困难原因编辑”
启动困难排除方法的添加和修改表单的调用方法是:在图4-8(图略)中“启动困难排除方法编辑”按钮的click事件中添加以下代码:
13
山西国际商务职业学院毕业设计
本系统把发动机故障现象和排除方法各分了十类,因此本表单中分别定义了十个调用按钮,与之一一对应。如图4-8(图略)所示。其它表单的调用方法与上述相似。
因为每一个故障的数据库中的表不唯一,应分步进行编辑修改,所以需建立2个表单,并应用参数传递实现对下一个表的编辑修改。
发动机启动困难或无法启动知识库一级原因表的编辑修改界面,如图4-9(图略)所示。发动机启动困难或无法启动知识库故障排除表的编辑修改界面,如图4-10(图略)所示。
4.3.6 知识库浏览、打印模块
在图4-8(图略)、图4-9(图略)所示模块中,用户可详细浏览知识库中各故障现象及其所对应的各级原因及排除方法,并可打印出来形成书面资料。通过此模块,用户可对知识库随时进行修改、添加、删除等操作,从而进一步完善本系统。
4.4 总结
4.4.1系统数据库的建立
在建立系统数据库的过程中,笔者走访了大量的基层驾驶员和维修人员,进行了深入细致的调查研究,翻阅了大量的文献资料和相关技术书籍,在此基础上整理出了发动机常见故障的基础数据库。笔者将发动机常见故障归纳为十大类,多达1200余条的故障现象和诊断处理方法,将此输入本系统。该系统还预留有编辑入口,高级用户可将自己的一些维修经验和知识,通过此入口输入本系统,使系统故障库进一步完善。考虑到基层用户的文化素质,本系统数据库中还收集了400余幅发动机构造和故障排除图片,用户可对照此图片,对症学习知识和处理相关故障。因此,本系统具有一定的实用和推广价值。 4.4.2 系统特点
采用面向对象的软件开发工具VFP开发的发动机故障诊断系统,界面友好,直观,用户易学易操作。同时,在设计思想上实现了:
(1)安全化
本系统是依据数据库中各表的数据信息对发动机的故障原因做出诊断,一定要先保证数据信息的正确性,才能达到诊断结果的准确性。所以,为了确保数据的正确,对进入本系统的人员设置了2级管理权限,权限越高,对系统的关键数据管理的范围越大,而不知道密码的非操作人员是无法进入本系统,更无法对知识库进行编辑修改的。
(2)模块化
根据系统结构化设计方法,把整个系统化分为若干个功能模块,某模块可化分为多
14
4 基于VFP的诊断型专家系统的实现
个子模块,某子模块又可划分为多个二级子模块,经层层分解后,最小的子模块的功能便十分明确和简单了。这样做,不仅展示了一个应用软件系统的整体性和层次性,而且通过屏幕对每个应用模块有明显的提示,在这些提示下,用户可以方便地进入系统的每一层进行操作。只有这样,才可以实现让用户非常方便地使用这一数据库应用系统。
(3)智能化
故障推理:这是本系统的特点之一,用户在知道故障现象的情况下,可让系统自动推断故障原因并提供解决方法,方便快捷。
自动编号加一:为了不给操作人员添加记忆上的麻烦,在对数据库表进行编辑修改时,为本系统设计了故障一级原因编号自动加一的功能,这样,既避免了空号,也防止了重号。
参数传递:因为数据库中的表不唯一,对知识库的编辑修改实际上是对2个以上的表进行操作。为了在编辑修改库表时能够保持前后表内容相关一致,避免发生在编辑修改完前表后,错误地编辑修改了后表的情况,应用参数传递,将前表的主要数据传递给后表,使后表被编辑修改的部分和前表相关一致,以达到准确的进行操作。
15
山西国际商务职业学院毕业设计
5 结论与建议
5.1 结论
本论文根据发动机故障的复杂性,依据计算机数据结构原理, 成功地实现了确定性故障诊断所需的知识库和推理机。运用面向对象程序设计的方法,重点以Microsoft Visual FoxPro为工具开发了农用柴油机故障诊断专家系统。该系统主要实现的功能包括:发动机确定性故障诊断功能,故障模糊查询功能,用户诊断数据库浏览、打印功能,知识库维护修改和自扩充的功能,发动机构造和维修图解功能等。
(1)采用故障树的数据结构完成知识表示,建立了知识库。从故障树的顶事件至每一个底事件形成了故障分析支路。这样的支路在程序实现时均与一个链表结构对应。
(2)确定性故障诊断推理机的基本思想是:首先用户选择故障现象,找到相应的故障入口,然后根据故障入口给出相应的提问,并在用户回答问题以后进行推理,引导用户完成诊断。
(3)采用目前公认的大众数据库—VFP开发工具开发,利用关系数据库原理建立的知识库,故障库表简单易懂,便于用户理解掌握,使计算机根据用户掌握的故障线索及存储在计算机内部的知识库中的数据进行选择推理,最终确定发动机的故障部位,并提出维修建议。其特点是:检索速度快,用户可很方便地浏览打印知识库数据,并可根据实践经验随时修改、完善知识库。但是,对复杂故障推理难于实现。
取得的主要结论可供农机使用者参考。由于本系统实现的故障现象库和故障排除方法库中的记录达千余条;发动机构造和维修图400余幅,大量的数据信息有着很实用的参考价值。
5.2 建议
(1)本系统是使用VFP开发的单机版的故障诊断系统,由于时间限制,没有开发出网络版系统,在网络技术飞速发展的今天,应利用VFP工具软件和SQL Server技术相结合,开发网络环境下的发动机故障诊断系统。
(2)应进一步完善该系统:为更多的用户所使用。就系统本身而言,为了方便普通用户的需要,制作发动机维护过程的视频资料,使用户更直观、清晰地判断发动机的故障现象和掌握发动机的构造和使用维护方法。
16