APP下载

基于Android 的故障诊断专家系统设计与实现

2015-12-24范会敏

石油管材与仪器 2015年4期
关键词:知识库故障诊断故障

范会敏 陈 棚 张 萌

(西安工业大学计算机科学与工程学院 陕西 西安 710032)

0 引 言

专家系统产生于20 世纪60 年代中期,经过多年的科学研究,理论和技术越来越成熟,其应用已经渗透到了许多领域,成为人工智能开始走向实用化的标志[1]。专家系统在故障诊断领域的应用非常广泛,长期以来,广泛的应用在航空、农业、医疗、电力、化工、石油、船舶、等领域,故障诊断技术与专家系统相结合,使工程的安全性与可靠性得到保证[2、3]。

但是传统的专家系统往往都在PC 机上开发,缺乏便携性,难以满足在外工作人员的需求,这都显示了传统专家系统的局限性。近年来,Android 技术和移动互联网技术的不断发展为解决移动性、语言差异、平台差异所带来的高代价系统集成提出了一个很好的解决方案。Android 是首个为移动终端打造的真正开发和完整的移动软件平台,Android 的特点是其开放性,软件开发人员可以自由开发出优秀的软件。移动互联网技术的快速发展使得Android 设备能更快、更方便地访问互联网[4]。基于Android 的专家系统是专家系统新的发展方向,是专家系统广受欢迎的模式。

1 故障诊断专家系统

专家系统指的是在某一个特殊的领域内,以人类专家的水平去解决该领域中的困难问题的计算机程序。这个程序系统内部具有大量专家的领域知识与经验,它能利用人类专家可用的知识和推理方法来解决这些问题,并且得到与专家相同的结论[1]。

专家系统与传统应用程序最根本的区别是:专家系统处理知识,传统程序处理数据。一个最基本的专家系统应由知识库、数据库、推理机、解释机构、知识获取机构和人机接口6 个部分组成,如图1 所示。

图1 专家系统结构

专家系统是人工智能从理论研究向实际应用的一个转折点,它作为人工智能的一个分支,在人工智能商品化中取得了很大成功,一方面因为专家系统是能满足某种实际需要的应用程序,另一方面因为它是可以实现的[5]。在很多领域,如化学、地质、医疗诊断等领域,专家系统的质量已经达到了很高的水平,发挥了很大的作用,在为人类专家与用户之间的良好信息处理和沟通媒介,促进了特定领域中理论形成和应用的发展。

故障诊断是一个系统内的某一部件结构失效的准确诊断过程。诊断的最终目标是充分确认造成故障的最终原因,以便能很好地排除其它故障[6]。

故障诊断技术运用电子技术、信息技术、信号分析技术以及计算机技术等先进手段,获取设备运行过程中各参数的变化信息,分析其特征,如果发现设备当前未处于正常状态,则认为其发生故障,并进一步检查出故障的部位、类型、及严重程度,最后给出诊断结论[7、8]。故障诊断技术是典型的多学科相互交叉渗透的综合性技术。

故障诊断技术与专家系统相结合,就构成故障诊断型专家系统。

2 移动互联网技术

2.1 移动互联网简介

移动互联网是当前信息技术领域最热门的话题之一,它体现了“无处不在的网络、无所不能的业务”的思想,正在改变着人们的生活方式和工作方式。移动互联网能让用户在移动中通过移动设备随时、随地访问Internet、获取信息,进行商务、娱乐等各种网络服务[9]。自从中国3G 网络的投入运营,iPhone、Android 等智能手机终端以及应用平台的出现,使得移动互联网得以如此迅猛地发展。

移动互联网终端平台的竞争正从封闭、一家掌控式的平台向开放式创新、产业协同的平台发展,平台的领导者将真正成为产业链的领导者,不同平台的竞争将演化为不同产业生态体系的竞争。

2.2 Android 简介

Android,是一个以Linux 为基础的开放源代码移动设备操作系统,主要用于移动设备,由Google 成立的OHA(开放手持设备联盟)持续领导与开发中。在优势方面,Android 平台首先就是其开发性,开发的平台允许任何移动终端厂商加入到Android 联盟中来[10]。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。

2.3 移动互联网的主流移动方案

在移动互联网背景下,主流的移动方案主要有3 种,分别是基于B/S 构架模式的Web 应用、原生客户端应用和移动Web 应用。

Web 应用是通过使用Website 和Web 浏览器技术,跨越网络完成一个或者多个任务的应用程序,通过基于B/S 架构模式实现。但它的缺点明显,无法使用移动设备提供的高级硬件功能,如摄像头。

移动Web 应用是在原生客户端中嵌入基于前端技术构建的HTML 页面视图,能够通过移动设备中的浏览器进行查看和操作,最主要的目的是为了解决跨平台访问信息问题。移动Web 应用一般通过HTML5、CSS3、JavaScript 或前端框架技术来构造页面视图,可以被客户端内置的WebKit 浏览器解析[11]。缺点是受限于浏览器引擎的处理能力,部分类型的操作可能需要与Web 端通信,动画、图形内容因需要缓冲而时常存在响应延迟。

原生客户端应用和Web 应用正好相反,原生应用程序被安装在Android 手机上,它可以使用手机硬件功能,而且采用Java 语言编写,能够本地精细化定制,对用户的操控响应灵敏。

本文采用原生客户端开发模式设计和实现了一款应用,该应用基于Android 平台,以故障诊断专家系统为主题,通过Http 请求实现客户端和服务器之间的信息交互,从而让用户快速获取相关数据。

3 移动式故障诊断专家系统的设计与实现

3.1 系统总体需求

对故障设备能够进行正确的诊断,用户通过智能手机输入故障设备的特征,系统通过推理后给出输入故障的故障原因,并给出故障处理意见。

通过Android 智能手机,知识工程师可以向知识库添加新的知识。

设计系统要充分考虑故障知识的特点,运用适当的表示方法表示故障知识。根据故障型专家系统特点,采用产生式表示法和框架表示法进行表示故障知识。

选择框架表示结构性知识,选择产生式表示法表示诊断性过程知识。

故障诊断专家系统的设计内容主要包括故障知识库、推理机、知识获取机构以及人机交互界面。

3.2 系统体系架构

本系统采用C/S 结构,因为C/S 结构最大的优势是,交互性好,数据安全性高。Android 客户端通过移动互联网访问专家系统服务器,如果需要数据访问,则访问后台数据库,如图2 所示。

图2 系统体系架构图

3.3 系统功能模块设计

系统由四个部分构成:故障诊断、知识库管理、操作指南和用户管理。故障诊断是使用专家系统进行故障诊断的入口,在故障诊断中可以输入故障现象进行故障诊断,知识库管理是向专家系统中添加知识的入口,维护知识库时通过该入口进入,操作指南是对专家系统的功能说明以及各种操作帮助信息,操作指南并不是可有可无的部分,它的详细程度有时直接影响到操作者操作专家系统的准确度甚至是操作信心,用户管理是为管理用户权限而设,因为不同的权限使用专家系统的功能可能不同,有的用户可能没有添加知识的权限,当他用没有添加知识的权限登录专家系统时,发现需要使用知识添加功能,则可以使用重新登录界面更换用户名登录,重新登录为更换用户登录提供了方便。系统功能模块图如图3 所示。

图3 系统功能模块图

3.3.1 知识库设计

故障诊断专家系统知识库的核心是专家知识。知识库中的知识的完整性很大程度上决定了专家系统的能力,所以专家系统建立的关键是知识库的建立。由于故障诊断知识库比较复杂,所以将知识库建立成知识库表,各表之间通过关键字建立联系。

特别说明的是专家系统有使用权限,不同权限的人员只能在自己的权限范围内操作,有利于区分专家系统操作人员的职能。所以在各事实库表之外,还有一个独立的用户权限表。

3.3.2 推理机设计

推理机是专家系统的灵魂。推理机就是根据一定的规则从已有条件推出结论的过程。它根据用户权限,从数据库中提取用户条件,在知识库中选择合适的规则,找到合适的故障推理应根据用户当前输入的故障特征,利用知识库中的知识,模拟该领域专家的思维过程,按照一定的推理规则和策略进行推理,选择知识库中对当前问题可用的知识进行推理,求解出故障原因。推理机是在知识库的基础上推导的,推理方法才有产生式规则,推理方法包括正向推理,逆向推理和混合推理。本系统采用双向推理技术,采用正向推理和逆向推理相结合的方法。先进行正向推理,如果没有得出结果或者需要进一步推导,则进行逆向推理。

3.3.3 服务器端设计

服务器端采用Servlet 响应客户请求,后台数据库采用JDBC 访问数据库。

Android 集成了Apache 的Http client 模块,这样使得HTTP 访问网络成为可能,本文采用HTTP 访问网络。HTTP 是请求/响应的一种机制,定义一个工具类HttpUtil来获得HttpRequest 对象和HttpResponse 对象,以及发送GET 和POST 请求获得返回Response 信息的方法。

后台服务器实现采用JDBC 访问后台数据库,Servlet响应HttpRequest 请求,并返回响应结果。

3.3.4 系统功能实现

火力电站机组设备繁多、结构复杂,大多数设备处于高温高压的工作环境,故障发生率高,一旦发生故障,后果都很严重。机组设备的基本结构、规格型号及参数各不相同,这些因素常常综合作用,影响机组发生故障时的表象,相同性质的故障在不同电站、不同机组上,其外在故障表象可能完全不同,加大了问题的迷惑性,这时候专家的经验和知识就显得特别珍贵,特别需要专家的知识经验去排查故障的共性和个性,以期“对症下药”。

机组锅炉属于多层次的系统,由燃烧、烟风、汽水等子系统组成,每个子系统还可以进一步划分为若干层次的次级子系统和部件,各层次级子系统不是孤立的,而是相互关联,只要某一个子系统功能失效或者出现异常,就可能致使其它子系统的功能失效或者异常,严重的甚至致使整个机组处于故障状态,从而导致停产。

在Android 开发环境中,以电站机组锅炉为例,实现了基于Android 的电站锅炉故障诊断专家系统,图4 是故障诊断的人机界面。

图4 故障现象与诊断结果

4 结束语

在移动互联网飞速发展的今天,基于Android 的故障诊断专家系统有了新的机遇,它可以实现故障诊断和知识库管理功能,能够完成原本PC 机上才能实现的功能,方便工作人员携带,为在外场工作人员提供了极大的便利。通过测试,系统设计方案可行,研究成果可推广到石油钻井设备的故障诊断系统以及其它系统。

[1]刘白林.人工智能与专家系统[M].西安:西安交通大学,2012.

[2]安丽娜,张士杰.专家系统研究现状及展望[J].计算机应用研究:2007,24(12):1 -5,19.

[3]王安炜.基于Android 的手机农业专家系统的设计与实现[D].山东:山东大学,2011.

[4]王红梅.移动互联网现状与趋势浅析[R]. 移动互联网技术与应用,2010.

[5]范会敏,汪尚兵,霍 珍,等. 锅炉故障诊断专家系统领域知识表示方法研究[J]. 电脑知识与技术,2010,2010,6(22):6292 -6294.

[6]吴明强,史 惠,朱晓华,等.故障诊断专家系统研究的现状与展望[J]. 计算机测量与控制. 2005,13(12):1301-1304.

[7]刘白林,刘 震,范跃华.一种故障诊断专家系统的的设计与实现[J].强箭与制导学报,2002,24(3):71 -73.

[8]杨盼盼.基于Web Services 的专家系统的研究及应用[D].西安:西安工业大学,2012.

[9]鲁 维,胡 山. 我国移动互联网业务发展现状及趋势分析[J]. 电信技术,2009,(5):29 -31.

[10]郭宏志.Android 应用开发详解[M].北京:电子工业出版社,2010.

[11]苑志敏,徐 红. 增值式企业移动解决方案开发方法研究与实现[J].计算机工程与设计,2009,30(20):4628 -4631,4776.

猜你喜欢

知识库故障诊断故障
基于包络解调原理的低转速滚动轴承故障诊断
故障一点通
基于TRIZ与知识库的创新模型构建及在注塑机设计中的应用
数控机床电气系统的故障诊断与维修
奔驰R320车ABS、ESP故障灯异常点亮
高速公路信息系统维护知识库的建立和应用
因果图定性分析法及其在故障诊断中的应用
基于Drupal发布学者知识库关联数据的研究
故障一点通
江淮车故障3例