专家系统在故障诊断领域的应用非常广泛,长期以来,在航空、航天、电力、机械、化工、船舶等许多领域,故障检测与诊断技术与专家系统相结合,使工程的安全性与可靠性得到保证[10]。故障诊断专家系统除了具备专家系统的一般结构外,还具有自己的特殊性[1]。
它具有如下特点:
(1) 知识可以从类似机器和工作实际、诊断实例中获取,即知识来源比较规范。
(2) 诊断对象多为复杂的、大型的动态系统,这种系统的大部分故障是随机的,普通人很难判断,这时就需要通过讨论或请专家来进行诊断。但对于一些新型机器,可能无处获得诊断知识;或者对于非定型生产的机器,由于其工作特性和常用机器相比差异很大,知识获取也十分困难。
而专家系统恰恰适用于复杂的、知识来源规范的大型动态系统,它可以汇集众多专家的知识,进行分析、比较、推理,最终得出正确的结论。现场技术人员可以充分利用各种信息和症兆,在计算机系统的帮助下有效地解决工程实际问题,这也是故障诊断专家系统近年来成为热门研究课题的原因[4]。
1.2 国内外的发展及应用
2 故障诊断专家系统分析和开发工具简介
2.1 计算机故障类型
把计算机故障分为启动时的故障,运行故障,显示器故障,键盘故障,打印机故障,软盘故障,硬盘故障七个部分。这些故障判断相对简单些,可以画出解决问题的流程图。
2.2 专家系统知识库的表示
采用合理的形式表达专家知识是构建知识库的重要环节,根据数据结构原理,把计算机的故障用故障树的数据结构和关系数据库原理完成知识的表示同时建立知识库,从而实现故障所需的知识库和推理机。本文是以程序语言C#为开发工具设计开发PC机故障诊断专家系统,实现PC机的故障诊断功能,知识库修改,自学习功能等模块。
2.3 开发工具介绍
PC机故障诊断专家系统的开发工具是C#
2.3.1C#介绍
C#的来源可追溯至FORTRAN和Algol,FORTRAN是FORmula TRANsltor的缩写,开发于1950年,它是第一种高级命令语言,其主要目的是将数学公式编译成汇编语言指令序列,与以前的语言相比,Algol语言在清晰性和一致性上迈出了一大步,它是最原始的块结构化语言,并且对大部分编程语言都产生了巨大的影响[11]。
1998年,Anders Hejlsberg以及他的微软开发团队开始设计C#语言的第一个版本。2000年9月,ECMA成立了一个任务组,着力为C#编程语言定义一个Microsoft建议标准。据称,其设计目标是制定“一个简单、现代、通用、面向对象的编程语言”,于是出台了ECMA-334标准,这是一种令人满意的简洁的语言,它有类似JAVA的语法,但显然又借鉴了C++和C的风格。设计C#语言是为了增强软件的健壮性,为此提供了数组越界检查和“强类型”检查,并且静止使用未初始化的变量。C#语言的正式推出是从2002年伴随着Visual Studio开发平台一起推出的。C#是一种面向对象的编程语言,主要用于开发可以在.NET平台上运行的应用程序。C#的语言体系都构建在.NET框架上,它是从C和C++派生来的一种简单、现代,面向对象和类型安全的编程语言,并且能够与.NET框架完美结合,C#具有以下突出的特点[12]
(1) 语法简洁,不允许直接操作内存,去掉了指针操作。
(2) 彻底的面向对象设计,C#具有面向对象语言所应有的一切特性:封装、继承和多态。
(3) 与Web精密结合,C#支持绝大多数的Web标准,例如,HTML、XML、SOAP等。
(4) 强大的安全性机制,可以消除软件开发中的常见错误(如语法错误),.NET提供的垃圾回收器能够帮助者有效地管理内存资源。 PC机故障诊断专家系统设计(2):http://www.751com.cn/zidonghua/lunwen_9278.html