宋 辉,陆古兵,金传喜
(海军工程大学核能科学与工程系,武汉 430033)
核动力装置是一个高度复杂的系统,系统中不同设备之间既相互联系又执行着不同的功能。核动力装置运行过程的可靠性、安全性为核电厂提供了强有力的安全保障。因此,提高核动力装置的故障诊断能力显得十分重要。蒸汽发生器(以下简称SG)是核动力装置中的重要设备,也是核动力装置运行中发生故障最多的设备之一[1]。SG 作为一、二回路之间的枢纽,将反应堆产生的热量传给二回路,产生的蒸汽推动汽轮机做功,同时防止带有放射性的冷却剂流入二回路。一旦SG 出现故障,将降低电厂机组运行效率,并带来严重的后果。通过对SG 常见故障进行分析,基于Labview平台建立了SG 故障诊断系统,对故障进行实时诊断与显示,并提供相应的运行指导,操纵员可以及时获取故障信息,做出正确的决策以保证核动力系统的安全。
人工神经网络是一种模拟生物神经元特征与功能的人工系统,作为人工智能重要的组成部分,具有很强的学习、泛化、信息处理和鲁棒容错等能力,在模式识别、智能控制、故障诊断等方面有着广泛的应用;神经网络主要利用联想、记忆功能,通过学习阶段获取的知识来实现故障诊断。随着人工神经网络(ANN)技术的兴起,神经网络在核动力领域开始获得应用[2]。Labview 提供了一个虚拟仪器开发环境,可以根据需要高效、快速地建立用户界面,并提供一个虚拟仿真的环境对信息实时显示。相比于使用传统的C、VB 等文本语言进行程序的编写,大大缩短了系统开发时间,提高了故障诊断效率。
本工作对SG 故障原因和故障处置对策进行了分析,将径向基人工神经网络与Labview 相结合用于SG 故障的诊断与显示,取得了良好的效果。
对SG 的动态特性分析中,水位是反映SG 是否处于正常运行状态的重要指标,SG 的水位会随蒸汽流量或给水流量的改变而发生相应的变化,SG 在运行过程中的异常变化会在一、二回路运行参数中反映,由SG 传热平衡方程可知,多种因素都可造成SG 水位超限,通过对这些因素分析,SG 在运行中出现的主要故障有:蒸汽出口阀卡死,汽轮给水泵进汽调节阀故障;给水泵叶轮、口环等损坏;汽轮给水泵轴承烧毁;给水加热器泄露;主给水调节阀自控失调;SG 中U 型传热管破裂。
SG 发生故障时征兆参数具有不同特性及变化范围,为了区分故障发生时相关参数所处的状态,通过引入模糊的概念,将SG 发生故障时的征兆参数模糊量化处理,根据变化趋势分为急剧变大、变大、正常、变小、急剧变小五种不同的状态,分别用数值1、0.75、0.5、0.25、0 表示。采用核动力装置运行过程中的13 个参数作为SG 故障样本集的征兆参数,将SG 故障征兆所对应的6 种常见故障类型作为人工神经网络故障识别的输出结果。SG 典型故障样本知识库见表1,其中Z 表示征兆集,F 表示故障集;Z1为主冷却剂平均温度;Z2为主冷却剂压力;Z3为SG 二次侧水位;Z4为二次侧顶端温度;Z5为SG 给水流量;Z6为SG 给水温度;Z7为SG 蒸汽流量;Z8为汽轮给水泵转速;Z9为汽轮给水泵出口压力;Z10为汽轮给水泵流量;Z11为稳压器水位;Z12为SG 排污水放射性含量检测;Z13为冷凝器抽气器排汽口放射性含量检测;F1为汽轮给水泵进汽调节阀故障或给水泵叶轮、口环等损坏;F2为汽轮给水泵轴承烧毁;F3为蒸汽出口阀卡死;F4为给水加热器泄露;F5为主给水调节阀自控失调;F6为SG 中U 型传热管破裂。
由于SG 的故障与征兆之间的关系不能用确切的语言或数据来表示。因此,将征兆参数模糊化处理,量化到[0,1]范围后;输入到神经网络进行训练,经过训练后的神经网络,可实现征兆与故障之间的非线性映射,由神经网络的输出结果可判别出对应的故障类型。
表1 SG 典型故障样本知识库
Powell D 于1985年提出了多变量插值径向基函数(Radial Basis Function,RBF)方法,1988年,Broomhead 和Lowe 等首先将RBF 用于神经网络设计,从而确立了径向基神经网络[5]。RBF 神经网络即径向基函数神经网络的简称,是一种性能良好的神经网络,具有较好的泛化能力,可以任意精度逼近任意的非线性函数;相比于BP 神经网络具有更强的自适应、学习等能力。RBF 神经网络作为一种新兴的神经网络,目前,已广泛地用于故障诊断研究。本工作采用RBF 人工神经网络对SG 出现的故障进行识别,可准确而又快速地判断故障类型,为及早发现并排除故障起到了重要的作用。
RBF 神经网络是一种多层前馈神经网络,已证明该神经网络具有全局逼近的能力,不存在局部最小化问题[6]。假定输出层只含一个节点,结构如图1 所示。一般神经网络包含了3 层结构,即输入层、隐含层、输出层。RBF 神经网络输入层到隐含层是权值为1 的固定连接,隐含层到输出层为权连接;神经网络的输出为隐含层输出的线性加权求和。RBF 神经网络隐含层的基函数选取的是关于中心对称的高斯函数,即
式(1)中x 为输入向量,ci∈Rn为隐层第i 个基函数的中心,σi决定了基函数围绕中心点的宽度。该函数对输入数据局部产生响应,当数据靠近高斯函数中心时,隐含层节点产生较大的输出,反之,产生较小的输出[7]。隐层神经元数可以在神经网络训练时自适应调整,使得网络的适应性得到了加强。RBF 神经网络的输入层实现x→Ri(x)的非线性映射,输出层实现Ri(x)→y 之间的线性映射。其输出为
图1 RBF 神经网络结构
式(2)中w=[w1,w2,…,wm]T,wi为隐含层第i 个节点到输出的连接权值。
RBF 神经网络主要依靠在学习过程中确定隐含层基函数中心、方差以及隐含层至输出层的连接权值这几个主要参数;从而建立输入与输出之间的映射关系。本工作采用Matlab 神经网络工具箱中的newrb()函数来实现RBF 神经网络的设计。其调用格式:net=newrb(P,T,goal,spread,MN,DF),其中P 与T 分别为输入向量和目标输出向量;goal 为神经网络的目标误差;spread 为扩展常数;MN 为神经元个数最大值;DF 为训练过程最大频率;通过调整该函数的训练参数值来达到网络的训练效果,该函数初始时不含有径向基函数神经元,采用迭代的方法,每迭代一次可自动增加隐含层神经元数,直到网络达到指定的均方差目标值为止[8]。
将核动力装置传感器中传来的样本数据用于神经网络的训练。从样本数据中提取征兆参数并进行归一化处理,处理后的参数作为输入向量送入设计好的RBF 神经网络进行训练;针对每种故障类型选取了10 个故障样本用于训练,训练成熟后的神经网络内部参数值将不再改变;此时神经网络记忆了每种故障类型的相应特征;训练好的神经网络可用于SG 的故障诊断。当输入的征兆与训练过程中神经网络记忆的某个故障类型的特征较为接近时,神经网络通过训练阶段获取的知识判断出该组征兆所对应的故障,并将对应故障作为神经网络的输出结果。
Labview(laboratory virtual instrument engineering workbench)是美国国家仪器公司提供的一个图形化编程环境,俗称G 语言。运用模块化的编程思想,将任务分由几个不同子程序完成,在主程序中集合不同的子程序实现不同的功能。该软件程序编写简单、直观、易于理解。每一个程序称为VI,每个VI 由前面板、程序框图和图标连接端口构成[9]。程序设计与传统语言相似,用户可在前面板自定义控件来模拟真实的物理仪器,建立基于虚拟仪器的交互式用户界面,便于系统开发。
由于Labview 未提供神经网络工具箱,在Labview 中实现神经网络的方法主要有3 种:通过Labview 中的CIN 节点调用外部编译好的C 语言代码;直接使用Labview 编写程序;调用Labview 中的Matlab Script 节点,用Matlab 编写程序[10]。基于前两种方法的神经网络算法实现较为复杂,神经网络训练效率难以保证。因此,本工作采用Labview 调用Matlab Script 节点的方式,借助Matlab 中提供的神经网络工具箱,使用newrb()函数训练RBF 神经网络,以此来提高故障诊断效率。
在Labview 前面板中诊断系统界面易于设计,扩展性强,RBF 神经网络适合用于故障诊断研究。将Labview 与RBF神经网络结合建立了故障诊断系统,系统结构示于图2。从核动力装置采集到的参数信息经过提取后得到SG 故障征兆参数值,送入Labview 平台对征兆参数进行处理,处理后的数据作为神经网络的输入,通过调用Matlab Script 节点使用编译好的RBF 神经网络对其进行学习和训练,训练成熟后的神经网络用于SG 故障诊断。将神经网络进行故障识别后的输出结果输入故障诊断子VI,故障诊断子VI 由输出结果寻找该故障类型所在位置并输出故障代码,进一步送入已建好的故障数据库中,故障数据库查找该代码所对应的故障信息;将查找后的诊断结果显示于前面板。故障诊断流程如图3 所示。
图3 故障诊断流程
故障诊断子VI 根据设定的阈值进行故障类型的判断与显示。若神经网络诊断后的输出结果某列最大值大于0.9,经故障数据库查找后显示该故障诊断结果及有关信息;同时布尔控件指示灯显示红色报警信息。若某列最大值在0.6与0.9 之间,则显示为此次诊断不可靠,指示灯为黄色。若某列最大值小于0.6,则显示无故障,此时指示灯显示绿色,表示正常。障诊断子VI 程序框图见图4。蒸汽发生器故障诊断系统主界面由4 个模块构成。分别为参数处理模块,神经网络训练模块;故障诊断模块;系统帮助模块。4 个模块分别由4 个不同的子VI 构成,分别完成不同功能;系统帮助模块详细介绍蒸汽发生器故障诊断系统构成以及故障诊断原理。从核动力装置采集到的征兆参数送入参数处理模块进行处理,再由神经网络训练模块进行故障识别;最后故障诊断模块调用经神经网络识别后的输出结果并在前面板显示故障信息。
图4 故障诊断子VI 程序框图
某蒸汽发生器运行过程中,表现出一组征兆,征兆参数经过模糊量化处理后为:(0.75、0.5、0.5、0.75、0.27、0.5、0.75、0.5、0.5、0.5、0.5、0.5、0.5),将其输入到训练好的RBF 神经网络中,调用Matlab Script 节点,经sim()函数仿真计算后;神经网络的输出结果:(-0.011 1、-0.004 9、1.022 9、-0.005 7、0.005 4、-0.006 6);神经网络通过聚类功能识别出故障,由故障诊断模块显示该组征兆所对应的故障类型;故障诊断结果前面板如图5 所示。
图5 故障诊断模块前面板
由诊断结果可知,该组征兆所对应的故障为蒸汽发生器蒸汽出口阀卡死。通过故障诊断模块可以知道是否存在故障,当故障诊断模块处于运行状态时,表示正在诊断;一旦存在故障,前面板布尔指示灯显示红色,并给出可能的故障原因及运行指导。点击“生成报表”可以将故障信息以报表的形式显示。该故障诊断系统给出的诊断结论为:
1)诊断结果:蒸汽出口阀卡死。
2)故障原因:可能为阀门机械故障或阀门控制机构失灵。
3)运行决策指导:启动核设备故障应急方案,检查阀门及控制机构线路;以恢复蒸汽出口阀正常功能。
4)诊断时间:2014 -6 -23 11:09:19。
将RBF 神经网络用于蒸汽发生器的故障诊断,使用Labview 来实现诊断系统的界面设计,节省了系统开发时间,便于故障诊断。本工作重点了故障诊断系统的软件设计,通过Labview 与Matlab 混合编程,借助两者的优势;将复杂的算法应用于虚拟仪器开发中,实现有效地结合;可快速开发功能强大的故障诊断系统用于故障的实时诊断与显示。实验表明,基于智能虚拟仪器技术建立的故障诊断系统易于实现、界面友好、能够对故障进行有效地判断。核动力装置是个复杂的系统,设备故障存在多方面的原因,因此,需要不断地从实际运行经验中获取知识,完善故障样本知识库,从而建立完整的故障诊断系统;Labview 仿真软件具有强大的数据采集、处理等功能,可应用于核动力装置状态监测、故障诊断及控制系统仿真研究中。
[1]张大发.船舶核反应堆运行与管理[M].北京:原子能出版社,1997.
[2]周刚,张大发,蔡章生.人工神经网络理论在核动力领域的应用与展望[J].核技术2004,27(3):237-240.
[3]丁训慎.压水堆核电厂蒸汽发生器传热管破裂事故及其处理[J].核电工程与技术,1991,4(3):20-24.
[4]史凯,孙建华.付明玉,等.船舶核电厂蒸汽发生器故障诊断系统研究[J].哈尔滨工程大学学报,2001,22(3):1-4.
[5]徐丽娜.神经网络控制[M].北京:电子工业出社,2003.
[6]Binchi M,Fransconi P,Gori.Learning without Local Minima in Radial Basis Function Networks[J].IEEE Trans on Neural Networks,1995,6(3):749-755.
[7]周东华,叶银忠.现代故障诊断与容错控制[M].北京;清华大学出版社,2000.
[8]周开利,康耀红.神经网络模型及其Matlab 仿真程序设计[M].北京:清华大学出版社,2004.
[9]乔瑞萍.Labview 大学实用教程[M].3 版.北京:电子工业出版社,2008.
[10]熊秀,石秀华.用Labview 实现神经网络控制[J].测控技术.2005,24(3):51-54.