基于Web的电力设备故障诊断专家系统

/ 2

基于Web的电力设备故障诊断专家系统

王玉1宋鹏2

王玉1宋鹏2

(1.四川省电力公司德阳供电公司四川德阳618200;2.中国人民解放军71481部队河南新乡453002)

摘要:随着在医学、农业等领域以及政府部门的广泛应用,基于Web的专家系统越来越成熟。所以在智能电网的电力设备故障诊断系统中,基于Web的专家系统也是必然的发展趋势。为此本文对基于Web的电力设备故障诊断专家系统的基本原理结构进行了初步设想。在对其功能进行阐述的基础上,主要对其软件系统开发过程中的关键技术进行了探索。

关键词:Web专家系统,故障诊断,电力设备

1基于Web电力设备故障诊断专家系统的优势

在电力系统中关于基于Web的专家系统研究的比较少,特别是在电力设备故障诊断中应用的就更少了。将Web技术应用到专家系统中,然后作为电力设备故障诊断的系统,有以下几个优势[1]:

(1)Web可以提供多媒体用户界面,简化传统专家系统的人机界面的开发步骤,并且界面更加友好,易于操作。

(2)为运行和操作人员提供了灵活而方便的访问方式,无论在哪里只要可以连接到相关的Internet上,就可以方便地访问。

(3)基于Web技术的专家系统,采用知识库和推理机相分离的方式,使专家系统的升级和维护更加方便。

(4)能够使诊断系统方便地嵌入到电力系统生产信息化管理系统或ERP内部去。

在智能电网的网络结构中,随着千兆以太网和实时以太网等技术的应用,变电站网络速度和数据实时处理效率可大大提高[2]。利用Internet的Web技术实现数据的共享和运行操作的交互,能够使电力设备的故障诊断结果更加可靠、准确、及时。

2系统功能分析

基于Web的专家系统主要由电力设备在线监测系统、数据库系统、Web服务器系统、专家系统和交互系统等几个主要功能模块,各模块的功能如下:

电力设备在线监测系统将实时监测的电力设备各项检测数据通过网络传输到变电站的实时数据库服务器中。

图2-1系统功能结构图

数据库系统是实现基于Web的专家系统的功能的两个核心硬件设备之一,是用来存取在线监测数据、建立数据库和知识库的硬件设备。

Web服务器系统是实现该系统功能的另外一个核心硬件设备,用来实现动态Web的主要设备和部分专家系统的功能,主要包含了推理、解释和数据存储功能。

本地接口和知识获取模块的作用是在系统建造过程中进行知识获取;在系统建造后,便于知识库的扩充和故障诊断系统的维护。

3基于Web电力设备故障诊断专家系统设计

3.1硬件配置

建立一个基于Web的专家系统需要的硬件设备有:电力设备在线监测装置、数据库服务器、Web服务器和相关网络设备。在智能电网中,数据库服务器是必不可少的设备,而且为了保证运行的可靠性,网络设备一般采取冗余结构。也就是说在智能电网中,至少有两台数据库服务器。另外,作为Web的服务器的硬件配置要求并不高,相反作为智能电网的数据库服务器,由于是作为整个变电站的数据存储仓库,所以要求反而更高一些。所以用智能电网的组网设备作为架设Web专家系统的网络装置完全够用了。

3.2软件实现中关键技术探讨

3.2.1开发环境的选择

Jess是1995年由美国Sandia国家实验室分布式系统计算组成员ErnestJ.Friedman-Hill用Java实现的一个经过扩充的CLIPS版本。除继承了CLIPS的优点外,还具有许多自己独特的特征。由于Jess是基于java语言的,所以在动态Web实现中选择JSP、Servlet、JDBC。Web服务器选择Apache为静态页面请求提供服务,Tomcat作为一个插件,以实现动态功能。数据库选择功能强大、灵活性好、有丰富的接口和结构轻巧的MySQL数据库。运行平台,采用智能电网现有的系统平台。

3.2.2专家系统的开发

Jess开发的专家系统可以有以下几种形式[3]:

(1)命令行形式。可以将Jess代码编写保存为一个文本文件,并由Jess.main或者javamain()函数调用执行。

(2)Windows界面。通过在Jess代码中调用Java可视组建类库(Swing等)或在Java程序中嵌入Jess代码形式来构造Windows用户界面。

(3)Applet。可将Jess代码通过Applet的形式嵌入到网页中,在远程用户调用时下载,以/“胖客户”的形式构造用户界面。

(4)Servlet。通过Servlet和JSP技术,可以在网页代码中嵌入并调用Jess程序,将Jess扩展到企业家应用如J2EE上,实现甩户远程“瘦客户”方式访问专家系统。

3.2.3Web中嵌入Jess[4]

JSP是一种基于Java跨平台动态网页开发技术,由普通的HTML语句和镶嵌在<%与%>符号之间的Java代码组成。在Java程序中集成Jess主要通过下面几中做法:

(1)使用JESS库。jess.Rete类是JESS库的核心类,从某种意义上说,jess.Rete的一个实例就是JESS的一个实例。创建一个jess.Rete类很容易:

importjess.*;

Reter=newReteO;

创建了一个jess.Rete实例后,可以用executeCommand方法来操作JESS。executeCommand方法接受一个string参数并返回一个jess.Value。String参数被解释为一个JESS的表达式,而返回值即为JESS对其操作的结果。

(2)在Java中使用Fact对象。除了使用executeCommand、fetch,store来从Java中获得、申明事实外,还可以使用直接构造jess.Fact对象,每一个jess.Fact对象都与一个deftemplate相关联,它描述了事实的属性。

(3)使用JavaBeans。我们可以使用Rete.defclass来注册类,用Rete.definstance来定义实例,用Rete.undefinstance来移除对象。

(4)在Java中调用JESS函数。大部分的JESS函数都包含在了Rete类中,作为Java的公共方法,还有些包含在其他一些类中,比如JESS的gensym*函数就包含在了jess.RU类中。其他的类我们可以通过jess.Funcall帮助类来创建实例。

参考文献

[1]宋鹏.数字化变电站电力设备故障诊断专家系统[D].济南:山东大学电气工程学院,2010

[2]张增科,阳宪惠.计算机网络[M].北京:清华大学出版社,2006.

[3]陈鸣琪,基于规则的软件故障诊断专家系统及JESS实现[D],上海:同济大学,2005

[4]路耀华,使用JESS技术开发基于Web的专家系统研究[D].上海:同济大学,2007

作者简介

王玉(1983.7.14),女,学历:南昌大学,研究方向:电气工程及其自动化,