基于CLIPS的循环流化床锅炉故障诊断专家系统
2018-06-07姜继伟陶国锋
姜继伟,秦 磊,陶国锋
(中石油华东设计院有限公司,山东 青岛 266071)
1 引言
循环流化床锅炉以其独特的流化床燃烧技术,自问世以来得到了快速发展和应用。锅炉规模的大型化、自动化和复杂化,带来的锅炉故障处理难度不断加大。故障原因的及时发现和处理,不仅能减小故障的进一步扩大,而且能减少维修费用,提高设备的利用率,从而提高经济效益[1]。
循环流化床锅炉故障诊断专家系统是人工智能在锅炉故障诊断的应用。利用专业知识解决只有专家才能解决的问题,在信息不完整和不确定的情况下给出合理的解释。本文利用CLIPS开发了用于锅炉故障诊断的专家系统,用户在Visual C++6.0(简写VC++)编制的界面上选择出现的故障征兆,专家系统便能自动诊断故障发生的原因并给出推理结果。
2 VC++与CLIPS开发工具介绍
VC++作为系统的开发语言,是基于C/C++语言,运行于Windows上的交互式可视化集成开发环境。VC++集程序的代码编辑、编译、连接、调试等于一体,给编程人员提供了一个完整而又方便的开发界面,并提供了许多有效的辅助开发工具[2]。
CLIPS是“C语言集成产生式系统(C Language Integrated Production System)”的首字母缩略词,是由美国航空航天管理局(NASA)开发的基于规则的通用专家系统开发工具。作为一个产生式专家系统开发工具,CLIPS 能提供完整的开发环境,建造基于规则或基于对象的专家系统。CLIPS 结构简洁、程序设计具有模块化的特点。推理过程采用独特的Rete模式匹配算法,极大的提高了系统的反应速度[3]。
3 故障诊断专家系统的组成
3.1 专家系统的总体结构
专家系统主要由故障事实库、知识库、推理机和人机界面组成,其中知识库和推理机是两个重要组成部分,总体结构如图1所示。
3.2 专家系统知识库的建立
专家系统知识库基于CLIPS语言编写,按照CLIPS语法构成自定义模板、自定义事实和自定义规则三个部分。如“对流烟道受热面迎风面磨损”。
图1 专家系统总体结构Fig.1 General Structure of Expert System
故障,可表示为:
(defrule rule-1 “受热面磨损” (Heating surface wear-1)=> (printout t crlf crlf "【故障现象】对流受热面磨损"crlf crlf"【原因分析】对流烟道受热面迎风面磨损。"crlf"【处理措施】采用在受热面迎风面加装金属防磨盖板的方法,在易磨损的部位采用耐磨性能高的钢材"。
系统中所有模式必须都与事实匹配,规则才会激活并放入议程中,按CLIPS的优先级顺序执行。
3.3 专家系统推理机的实现
专家系统推理采用CLIPS推理机制-基于产生式系统,推理机的工作过程如下:
第一步:模式匹配。扫描规则库,把所有规则的模式(LHS)与事实表中的事实进行匹配,检查哪些规则的条件能够满足。
第二步:激活所有匹配成功的规则,把它们放进待议事件表(Agenda)中。
第三步:弹出堆栈顶部的规则(优先级最高),执行其后件(RHS)部分所规定的动作。
第四步:重复以上过程,直到待议事件表变为空。
4 VC++与CLIPS的动态嵌入技术
循环流化床锅炉故障诊断专家系统是采用CLIPS专家系统工具嵌入VC++开发平台实现。当前开发CLIPS嵌入式专家系统是使用CLIPS提供的动态链接库方式。该方式具有简单灵活,传统程序编程和专家系统的开发独立进行的特点,使得专家系统的后续维护与扩充方便灵活[4-5]。
5 专家系统的实现
在运行开始加载CLIPS动态库和规则知识库,加载成功后提示加载成功。如不成功则会弹出对话框提示并指示出错的原因,推理运行加载流程如图2所示。
图2 推理运行界面加载程序流程Fig.2 The flow diagram for loading program of inference movement interface
在CLIPS加载成功后,可以选择故障种类和故障事实,如“受热面磨损”故障对话框如图3所示。
图3 受热面磨损对话框Fig.3 The dialog box of heating surface attrition
在故障事实选择后,专家系统运行推理后,可给出故障诊断结果并输出结果对话框,如图4所示。
图4 专家系统运行推理结果Fig.4 Results of expert system movement inference
6 结语
基于CLIPS的循环流化床锅炉故障诊断专家系统,实现了CLIPS与VC++的混合编程。利用VC++构造专家系统人机界面,按照CLIPS编码规则编写专家知识库,通过CLIPS推理机对故障进行诊断分析,最终完成循环流化床锅炉故障诊断专家系统的开发。该系统还具有故障知识的自动获取功能,在应用过程中,可以不断丰富知识规则库的内容。
[1] 刘德昌,陈汉平,张世红.循环流化床锅炉燃烧故障及预防[J].热电技术,2007(2):1-7.
[2] 付灵丽,柴 欣.Visual C++程序设计基础[M].北京:中国铁道出版社,2004:243-304.
[3] 吴鹤龄.专家系统工具CLIPS及其应用[M].北京:北京理工大学出版社,1991:1-125.
[4] 谢晓方,姜 震.一种结合CLIPS和VC++开发专家系统的方法[J].计算机系统应用,2004,13(12):61-63.
[5] 邓海平,何玉林,杜 静,等.CLIPS嵌入VC技术的实现与应用[J].计算机工程与应用,2005(15):88-91.