巴少华,夏 虹,王 武
(哈尔滨工程大学核安全与先进核能技术重点实验室,黑龙江 哈尔滨 150001)
反应堆堆芯是核电厂的核心,用于进行可控链式裂变反应。其中,控制棒是反应堆功率控制的重要手段。在某种工况下,当主控制棒组不在核电厂所规定的棒位时,通常称之为控制棒失步故障。失步步数较多可能会引起反应堆中子通量保护,从而造成意外停堆。即使失步步数较少,也需要在短时间内判断出失步的控制棒位置并对其进行校正或容错。由于执行器、堆芯、传感器整体是一个开环控制系统,因此判断控制棒失步故障是否发生、确定控制棒失步的步数以及提供相应的容错控制策略,都对反应堆功率的控制有着重大的意义。
随着自动化理论的不断完善,控制系统的复杂程度逐渐提高,核电厂对于控制系统的要求也逐渐趋向数字化和智能化。在反应堆运行中,通过自动调节控制棒的棒位就可以实现对反应堆功率的控制。而在核电厂出现堆内故障后,对控制棒失步故障进行在线实时监测与诊断[1],不但能为操作员提供相应的故障信息,而且可以作为整体仪控系统的新增功能模块,以提高反应堆的稳定性能。
对于控制棒失步故障状态监测的方法,目前已有相关研究人员通过棒位测量指示灯、控制棒驱动线圈电流波形、移动控制棒所产生的麦克风噪声等手段检测出控制棒是否发生失步故障。但这些方法都无法进行故障定位[2]。因此,本文通过堆芯物理实时仿真(real-time multi-group advanced reactor kinetics,REMARK)程序得出的堆内中子计数,并基于Simulink设计控制棒失步状态监测与故障诊断系统,实现了控制棒失步故障的在线检测。系统具有异常监测、故障定位和故障程度等功能。
秦山一期反应堆为压水堆,是一个直径为5 m、高为16 m的圆柱形反应堆,内部由堆芯、压力容器、堆内构件和控制棒驱动机构四部分组成[3]。堆内有121个燃料组件、37个控制棒组件、52个可燃毒物组件和4个中子源组件。堆芯径向控制棒分布如图1所示。堆芯径向共有37束控制棒:T组棒为调节棒,A组棒为停堆棒。其中,T4组是自动调节功率的主控制棒组。
图1 堆芯径向控制棒分布示意图Fig.1 Schematic diagram of core radial control rod distribution
REMARK程序是由美国GES公司开发的。该程序采用节块法将秦山一期反应堆堆芯从径向上划分为121个节块、轴向上划分为10层。基于中子扩散方程建立三维堆芯功率分布模型[4],可计算得出每个节块的中子通量密度和中子计数。
反向传播(back propagation,BP)神经网络是一种多层前馈型神经网络。其神经元的激活函数是S型函数,输出为0到1之间的连续量,可以实现从输入到输出的任意非线性映射。由于其权值的调整采用BP学习算法,在人工神经网络的实际应用中,大部分神经网络模型都采用BP神经网络及其变化形式。BP神经网络也是前向神经网络的核心部分,体现了人工神经网络的精髓。BP神经网络主要应用于以下几个方面[5]。
①函数逼近:用输入量和相应的输出量训练神经网络,以逼近一个函数。
②模式识别:用一个待定的输出量将它与输入矢量联系起来。
③分类:对输入量所定义的合适方式进行分类。
④数据压缩:减少输出矢量维数,以便传输或存储数据。
典型BP神经网络结构如图2所示。
图2 典型BP神经网络结构Fig.2 Typical BP neural network structure
BP神经网络主要由输入层、隐含层和输出层三部分组成。其中:输入信号为P;输入层神经元数目为S;输入层到隐含层的权值矩阵为W;隐含层输出信号为y,隐含层神经元数目为L;隐含层到输出层的权值矩阵为V;输出信号为O,输出层神经元数目为M。
无论是模式识别还是函数逼近,都必须对BP神经网络进行训练[6]。训练前,首先要获取样本。样本中需包含输入信号以及相应的期望输出信号。BP神经网络按照以下方式对每组输入的数据进行训练。首先,把输入信号P经过初始权值矩阵W处理后传递到隐含层。然后,隐含层将信号y经过初始权值矩阵V处理后传递到输出层。对此时的输出信号O与期望信号之间的误差进行处理,即可得出新的误差函数。通过误差函数反向分别对输出节点、隐含节点、输入节点求导。最后,通过梯度下降法不断对权值和阈值进行修正,使得误差函数逐渐变小,直到输出得到期望信号。
隐含层节点数的选取对三层BP神经网络的性能有着相当重要的作用[7]。其不仅与输入层和输出层的节点数息息相关,还需要根据实际的训练结果进行确定。隐含层的节点数选取往往使用以下三个经验公式进行粗略估计[8-11]:
(1)
式中:b为0~5之间的常数。
(2)
L≥log2S
(3)
当某一工况下发生控制棒失步故障时,由于中子计数实际值与正常状态的设定值存在较大偏差,无论哪个棒发生故障,都可以通过“T4,1”“T4,2”“T4,3”这三个组件的中子计数建立相应的状态监测与故障诊断系统,并及时诊断出故障定位与故障程度。为更好地对反应堆控制棒失步故障进行监测和诊断,本文通过REMARK仿真程序计算得到的“T4,1”“T4,2”“T4,3”这三组件第八层节块中子计数,对T4组每束控制棒失步进行故障诊断。状态监测与故障诊断系统结构如图3所示。
图3 状态监测与故障诊断系统结构Fig.3 Structure of condition monitoring and fault diagnosis system
状态监测与故障诊断系统主要包括状态监测模块和故障诊断模块。针对100%FP(额定功率)、80%FP、50%FP这三种不同的工况,当控制棒发生失步故障后,状态监测模块根据T4组组件中三个中子探测器的计数检测出控制棒的运行状态并判断是否发生故障。故障诊断模块会根据中子计数进行失步定位并诊断出故障程度。三种不同工况下的故障诊断是通过三个BP神经网络来完成的。最后,通过数据处理与整合,显示出最终的诊断结果。
状态监测模块是故障诊断的“开关”。当该模块检测到异常时,就会触发后续的故障诊断模块动作。本文采用阈值检测法进行状态监测[12]。反应堆堆芯在正常运行时,堆内中子探测器的中子计数在设定值附近上下波动,但是这种波动的幅度很小。如果在工况没有变化的情况下,中子计数出现较大的波动,则认为控制棒发生了故障。因此,可以对不同工况下的中子计数设定一个上下阈值。当中子计数超过或者低于阈值时,状态监测模块就会诊断出异常,并将故障状态下的中子计数持续输入故障诊断模块。
状态监测模块计算每一时刻的中子计数与该工况下的正常设定值之差。当差值没有超出阈值时,故障信号将单独输出显示为1。此时,系统选择正常运行状态下的执行器。当差值超出了阈值,则系统将输出故障信号,显示为0。同时将故障下的三个中子探测器计数输入故障诊断模块。状态监测模块结构如图4所示。
图4 状态监测模块结构Fig.4 Structure of state monitoring module
首先,通过REMARK仿真程序计算“T4,1”“T4,2”“T4,3”这三个组件第八层的中子计数,分别得到100%FP(额定功率)、80%FP和50%FP工况下的正常设计值以及失步状态下的中子计数,通过两者之间的差值确定工况判断和状态监测这两个模块的阈值。通过零阶保持器对输入的三个中子计数进行采样,并将采样周期设定为1 s。此时,数据传送到工况判断模块。该模块采用阈值检测法,针对“T4,2”组件的中子计数进行判断,根据设定好的中子计数上下阈值,分别对100%FP、80%FP、50%FP进行选择。当该模块判断出所处工况后,数据将传送到对应该工况的状态监测模块。不同工况状态监测模块功能的实现是计算输入的三个中子计数与对应位置的正常设定值之差,将得到的差值与设定的上下阈值进行比较。当输出显示异常时,则数据处理模块将故障的三个中子计数整合成BP神经网络的输入向量,并将其传送到故障诊断模块,同时将在故障信息模块上显示故障信号。
故障诊断模块功能是通过训练三个并行的BP神经网络实现的。三个并行的BP神经网络分别对应三种不同工况,利用控制棒失步后的中子计数对故障定位和故障程度进行诊断。首先,训练三种不同工况下的神经网络。三个BP神经网络的输入层节点为3,输入层样本是通过REAMRK仿真程序计算得到的“T4,1”“T4,2”“T4,3”这三个组件第八层的中子计数。根据经验公式和仿真数据训练结果,选定隐含层节点为7、输出层节点为5,输出层样本是对应REMARK仿真程序的控制棒失步步数,输出向量分别代表“T4,1”“T4,2”“T4,3”“T4,4”“T4,5”这五束棒的失步状态。当数值为0时,代表该束棒无失步故障;当数值为正数时,代表该束棒少插相应的数值步数;当数值为负数时,代表该束棒过插了相应的数值步数。在三个BP神经网络训练好后,通过gensim函数将其封装成Simulink的模块,并与相应工况的状态监测模块连接。当状态监测模块检测到异常状态时,将三个组件的中子计数输入到相应工况的故障诊断模块,通过神经网络得到主控制棒组五束棒的失步状态。最后,由于失步的步数为整数,需要对神经网络的输出作取整处理,即输出在区间[0.5,1.5)范围内时取整数1,在区间[1.5,2.5)范围内时取整数2。这样在取整的过程中,允许神经网络的训练过程中存在一定的目标误差。
采用MCNP5软件建立秦山一期反应堆模型,分别仿真50%FP工况下“T4,3”控制棒过插1步故障、80%FP工况下“T4,1”控制棒少插2步故障、100%FP工况下“T4,5”控制棒少插3步故障,计算得到相应的去归一化的“T4,1”“T4,2”“T4,3”这三个组件第八层堆芯中子计数。将故障状态下的中子计数输入状态监测与故障诊断系统的端口。故障诊断系统结果如表1所示。
表1 故障诊断系统结果Tab.1 Results of the fault diagnosis system
通过表1可以看出,故障信号均为0,表示状态监测模块已检测到异常,输出向量表示最终的诊断结果。当输出为[0,0,-1,0,0]时,“T4,1”“T4,2”“T4,4”“T4,5”这四束棒处于正常运行状态,T4,3棒发生失步故障,并过插1步;当输出为[2,0,0,0,0]时,“T4,2”“T4,3”“T4,4”“T4,5”这四束棒处于正常运行状态,“T4,1”棒发生失步故障,并少插2步;当输出为[0,0,0,0,3]时,“T4,1”“T4,2”“T4,3”“T4,4”这四束棒处于正常运行状态,“T4,5”棒发生失步故障,并少插3步。根据采集的故障数据,说明诊断结果与仿真数据一致,证明该系统能准确地诊断出故障定位和故障程度。
本文提出了一种针对反应堆控制棒失步进行故障诊断的方法,建立了相应的状态监测与故障诊断系统。通过仿真验证,表明该系统能够很好地诊断出不同工况下控制棒故障的位置以及相应的失步步数。但是,该系统只能对单束控制棒失步进行故障诊断,而对于多束控制棒失步则需要更多的数据进行BP神经网络的训练。在此基础上,仍需对控制棒失步后的容错策略作进一步研究,从而保证反应堆的安全性和可靠性。