面向对象及实时故障诊断系统及设计.docVIP

面向对象及实时故障诊断系统及设计.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
面向对象及实时故障诊断系统及设计

面向对象的实时故障诊断系统的设计 摘要:文章从分析传统专家系统入手,把WINDOWS下的可视化技术和面向对象技术引入到人工智能程序设计中来。讨论了故障树模型的面向对象表示方法及其推理算法。根据雷达故障诊断中的典型故障树,给出了一个基于Visual Basic语言的故障诊断专家系统设计实例。 关键词:Visual Basic;故障诊断;专家系统;面向对象 1 前言 传统的专家系统开发一般有两种方法:一种是采用专用的人工智能设计语言,如逻辑处理语言PROLOG和列表语言LISP,可以方便地编写出人工智能的程序;另一种是人工智能的外壳程序,如著名的专家系统MYCIN所开发的专家系统外壳工具DMYCIN,利用它只需要按其格式填入相应的知识库,就可以开发出具有一定水平的专家系统。但是随着计算机软件技术的日益发展,这两种工具都难以满足专家系统的需要,主要问题有:(1)实时性差,两种工具主要是完成逻辑推理过程,不具备数学处理能力,也不进行数学运算,开发的应用程序的局限性大,无法结合数据采集处理程序形成实时的诊断系统;(2)开放性差,在WINDOWS平台上,无法利用其通用性和开放性。 Visual Basic(以下简称VB)语言开发人工智能程序有很大的优势。其作为一种面向对象的语言,不仅界面设计方便,可以把主要精力集中于专家系统的核心程序开发上,在短期内迅速开发出具有专业水平的软件。同时VB具有高级的接口函数,适应性好,虽然其低层控制能力比较差,但是它能通过高级API函数实现各种接口功能,也能连接WINDOWS下的动态连接库(DLL),功能大大扩展。另外,VB可与多种数据库连接,它提供的开放式数据库功能,使专家系统中的知识库、事实库等许多数据库的建立与管理都变得容易。 2 面向对象的故障树模型 2.1 故障树模型的面向对象表示 故障树分析就是当系统运行在某种不期望状态时,对系统进行分析,利用故障树提供的数据、信息,找到所有可能使不期望状态发生的途径。不期望事件或故障事件是根节点,引起这一事件的原因是子节点。在对树的每一枝节进行分析时,若某个节点无法继续分析(即无子节点),该节点称为目标节点,它是引起故障的基本事件,也是诊断的目标。 对每个故障树节点事件用一个对象表示(如图1)其成员数据表中包括该节点的代号、内容、类型、指向父、子节点的指针、路由选择以及所代表故障事件的细节。路由选择为在多个子节点的情况下的路径选择原则。故障事件的细节有该事件的对顶重要性及其它描述等。 事件对顶重要性是指该节点事件的发生对父节点事件的发生的重要程度,它反映了该节点事件及其子树各节点事件对父节点事件发生的相对责任。显然,根节点没有对顶重要性,而目标节点的子节点指针项为空指针。 2.2 故障树模型的诊断算法 故障树节点对象具有封装性,可以用框架结构来表示。诊断时,所有节点对象都存放于一个表中,对应事件位置在表中固定,对象指针指向对象所在的位置,这样安排可以使系统尽快根据故障信息找到故障对象,并根据指针遍历故障树。 在诊断过程中,从根节点的不期望事件(即故障事件)出发,根据路由选择方案选择子节点,并由对象指针指引遍历故障树,直至找到目标节点,系统停止诊断,得出诊断结果。故障树中每一个节点对象只表示一个故障事件,从而根据事件对象的父节点指针可以找到以该事件为前因的所有事件。同样,一个事件的所有前因事件都可以在该事件对象的子节点表中找到。 如果诊断系统未发现任何基本故障事件,而的确有较高层故障事件发生,说明所建故障树尚不完善,需要对其进行补充:找到该较高层故障事件,在其子节点组中加入一基本故障事件。由于故障树用面向对象的表示,所要进行的操作只是加入新节点并改动与之相关的几个指针即可。 建造实例 通常,在电子装备的故障诊断过程中,专家往往是依照对电路拓扑结构的分析和信号的实际处理过程,以由前到后或由后到前的顺序来逐级压缩故障。把专家诊断的过程表达出来,就可以形成故障树。雷达诊断中的典型故障树如图2所示。 3.1 知识内部表示 对这种知识内部采用结构的形式来表示,可以采用一个node结构: Type node myID As Integer ‘本节点标示符 图2 雷达诊断中的典型故障树 nextIDY As Integer nextIDN As Integer statements As String *200 ‘节点说明 answerY As Integer ‘Y支路节点类型 questionY(2) As String*200 explainY (2) As String*200 answerN Ad Integer questionN(2) As String*2

文档评论(0)

liwenhua00 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档