邓 强,王 航,2,3,*,彭敏俊,2,3,王晓昆,徐仁义
(1.哈尔滨工程大学 核科学与技术学院,黑龙江 哈尔滨 150001;2.哈尔滨工程大学 核安全与先进核能技术实验室,黑龙江 哈尔滨 150001;3.哈尔滨工程大学 核安全与仿真技术国防重点学科实验室,黑龙江 哈尔滨 150001)
核动力装置长期连续工作,如若出现事故问题而不能及时发现并维修,可能会演变为严重事故,导致严重的放射性后果,危及运行人员和公众的生命安全。同时,核动力装置系统众多、结构复杂、事故类型繁多,并具有非线性、强耦合、快时变等特性,因此事故诊断难度较高。随着数字化控制技术和传感器技术的发展,现代核动力装置呈现信息化、复杂化、数字化的新趋势[1],因此亟需建立合理准确的事故诊断方法,提高自动化和智能化水平,满足现代核动力装置少人值守和无人值守的需求。
李志金等[2]通过核动力装置确定性知识和模糊性知识的数学表示,基于正向推理方法建立了核动力装置事故诊断专家系统。梁洁等[3]融合了传统专家系统和人工神经网络,建立具有实例学习能力的神经网络推理机,构造了核动力系统神经网络故障诊断专家系统。但是,核动力装置结构复杂,获取完善专家知识依然是基于专家知识的故障诊断方法的最大难点。何川等[4]通过分析核动力装置事故处置规程,建立了事故-征兆映射体系的数学模型,描述征兆与事故之间的映射关系。但是,核动力装置系统众多,很难建立完善的物理模型。
近年来,随着计算能力的增强和有效算法的发展,基于数据驱动的故障诊断方法打开了故障诊断技术在核动力装置实际应用中的瓶颈。数据驱动的故障诊断方法可以从核动力装置采集的大量数据中学习故障特征,及早发现故障,隔离故障,防患于未然。赵鑫等[5]提出了滑动时间窗口的动态时间弯曲故障诊断模型,构建事故标准序列实现待测时间序列的模式类别。王晓龙等[6]提出了一种基于特征事件序列的故障诊断方法,通过构建各种典型事故的标准特征事件序列谱,辨识故障程度及其相对位置。赵鑫等[7]选用支持向量机分类模型作为诊断模型,确定核动力装置事故及严重程度。但是,机器学习算法对非线性映射的表示能力有限,针对复杂分类问题其泛化能力受到影响,而深度神经网络不仅可以自动提取特征,还可以构建深度结构来挖掘数据的高维特征。Lee等[8]提出了一种用于核电厂异常诊断的卷积神经网络(CNN)模型。颉利东等[9]提出了一种基于CNN的船载核动力反应堆管路系统故障诊断方法。在CNN的基础上,Chen等[10]基于非支配遗传算法设计了一种用于核动力装置故障诊断的自适应CNN架构。Wang等[11]使用长短期记忆网络建立了一个故障诊断模型来映射小型压水堆复杂的故障模式。Wang等[12]提出了一种基于卷积门控循环单元的核电厂故障诊断技术,并通过增强粒子群算法对网络进行优化。但目前采用深度学习进行核动力装置故障诊断的研究不多,且大多数算法是建立在CNN的基础上进行的,而CNN组成高层特征的低层特征之间并不存在位姿关系,能够得到的特征信息有限,因此需要大量的故障数据进行训练才能得到较好的诊断效果。但是,核动力装置设备可靠性较高,事故发生频率低,一旦发生事故就会快速解决,同时由于前期数字化程度低,数据积累不够重视,因此有效事故数据较少,很难满足传统深度神经网络训练的数据需求。胶囊网络是近些年在CNN的基础上新提出的网络结构,其特有的向量神经元可以包含更丰富的深度空间信息及数据特征间的相对位置关系,动态路由算法可以不断地调整网络参数,增大特征间的耦合系数,因此具有优秀的少样本学习和快速更新能力。杨德昌等[13]提出了一种基于胶囊网络的变压器故障诊断方法。Chen等[14]采用胶囊网络完成对高速列车转向架单一和复合故障的识别和分类。
为应对以上问题,本文提出一种基于时间卷积胶囊网络的核动力装置事故诊断模型,将时间卷积网络(TCN)与胶囊网络结合,在核动力装置全范围仿真模拟机上获取特定典型事故状态下的运行数据,利用时间卷积核提取运行数据的深度时序特征并降低数据维度,然后输入胶囊网络挖掘数据信息中的向量特征,获取特征之间的位姿关系,并动态路由快速更新网络参数,进一步增大特征间的耦合系数,能够在核动力装置事故数据量较少的情况下得到收敛效果较好的模型训练效果。本研究建立的事故诊断方法可为核动力装置的事故诊断提供参考。
TCN是一种基于CNN且能处理时间序列数据的网络结构。该网络有两个特点:1) 网络的输入长度和输出长度相等;2) TCN具有时间因果性,即t时刻的输出结果只和t时刻之前的输入有关系,并不会有漏接的历史信息。TCN的结构主要有3部分:因果卷积层、扩张卷积层、残差连接[15]。
为了使网络的输出与输入长度相等,TCN使用一位全卷积网络通过使用0填充使得每一层隐层输出序列的长度和输入序列的长度保持一致。为避免将来信息的泄漏和有漏接的历史信息,TCN使用因果卷积,即在卷积中,t时间的输出仅与t时间之前的输入有关。但存在一个问题,若序列的长度过长,则需要增加网络的层数来扩展感受野。因此为了降低网络的复杂性,引入了扩张卷积。
扩张卷积是在标准的卷积中注入空洞,以此来增加感受野。通过扩张卷积增大感受野,输入序列X{x1,x2,…,xn},扩张卷积F(s)为:
(1)
式中:d为扩张因子;k为滤波器大小;s-d·i代表的是过去的方向;f(i)为卷积核函数;s为输入序列中第s个元素。当d=1时,扩张卷积为最普通的卷积;当d的取值大于1时,扩张因子能够使顶层的输出代表更大的输入范围,有效地扩大了感受野,也就解决了上面使用因果卷积带来的问题。
使用残差卷积避免梯度消失问题:
o=Activation(X+F(X))
(2)
式中:X为输入;F(X)为经过残差网络的最后一个隐藏层的输出;Activation为激活函数。
胶囊网络主要由主胶囊层和数字胶囊层等组成[16],具体结构如图1所示。首先通过输入层获取输入数据作为主胶囊层的输入数据,在主胶囊层,每个胶囊都被视为1个神经元组,通过动态路由算法训练连接主胶囊层与数字胶囊层之间的权重,再通过非线性激活函数得到输出变量,最后利用数字胶囊层输出的向量来表示核动力设备的事故类型。
图1 胶囊网络的框架Fig.1 Framework of capsule network
主胶囊层和数字胶囊层利用胶囊向量的输入和输出代替传统神经标量的输入和输出[17],其中向量的方向表示不同的事故类型,向量的长度表示诊断为某种事故的概率。输入向量的计算包括两个阶段。第1阶段是将输入层输出的数据和权重矩阵相乘得到预测向量,其数学计算式为:
Uj,i=UiWj,i
(3)
式中:Wj,i为主胶囊层的权重;Ui为输入层的数据特征;Uj,i为第i个输入特征预测生成的第j个向量。
第2阶段是通过调整耦合系数将主胶囊层的预测向量传输给数字胶囊层,这一过程也被称为动态路由,数学计算式为:
(4)
(5)
bi,j=bi,j+VjUj,i
(6)
式中:Ci,j和bi,j分别为主胶囊层中第i个向量和数字胶囊层中第j个向量之间的耦合系数和偏置系数,其中耦合系数Ci,j由动态路由算法确定,可以让输入的神经元自主选择最好的路径传输到下一层神经元,当Ci,j=1时,表示将主胶囊层的输出信息全部传送到数字胶囊层,当Ci,j=0时,表示将主胶囊层的输出信息全部都不传送到数字胶囊层;Sj为第j层的总输入向量,由主胶囊层的预测向量乘以耦合系数求得;Vj为动态路由过程中数字胶囊层的输出向量。
为了得到数字胶囊层的输出向量Vj,胶囊网络使用了一种矢量的新型非线性激活函数Squash函数,对总输入向量Sj进行非线性变换。Squash函数的数学计算式为:
Vj=Squash(Sj)=
(7)
基于TCN以及胶囊网络,提出时间卷积胶囊网络核动力仿真系统事故诊断模型,通过时间卷积提取核动力仿真系统数据的时序特征,胶囊网络提取向量特征,针对核动力装置事故数据过少的情况能够获得更高的准确率。
图2示出时间卷积胶囊网络模型的结构,其中输入层为M行N列的输入数据,输出层为M行1列的事故诊断结果。除输入层和输出层,模型还有3层TCN层和1层胶囊网络层,每一层网络输出信号作为下一层的输入信号,其中胶囊网络层采用3次动态路由。输入层接受核动力装置全范围模拟机的运行数据,经过3层TCN层自动提取深度时序特征,3层TCN层均采用ReLU激活函数,每层TCN通过因果卷积获取数据的时序特征关系,通过扩张卷积增大感受野减小输出数据的复杂度,通过残差卷积避免网络出现梯度消失的问题。然后将时间卷积层的时序特征输入到胶囊网络层中,通过预测向量将特征数据变为包含向量特征的胶囊,经过动态路由迭代更新主胶囊层和数字胶囊层之间的耦合系数和偏置,准确挖掘事故的向量信息,并通过非线性激活函数Squash进行非线性变换得到输出向量,然后根据输出向量的不同确定事故类型并输出。
图2 时间卷积胶囊网络模型结构Fig.2 Model structure of time convolution capsule network
模型输入层接收的是核动力装置全范围模拟机的运行数据,为了在大量样本数据的基础上保持样本的连续性并尽可能包含更丰富的特征信息,故首先进行数据归一化减小计算难度,避免量纲不一致以及过大和过小数据对训练过程的影响,然后采用滑动时窗的方式进行样本重构。由于全范围模拟机数据采样间隔为1 s,同时考虑数据计算量和数据前后的时间相关性,因此本文的滑动时窗步长设定为1,滑动时窗长度设定为30,将核动力装置全范围模拟机的二维运行数据M×N维,转换为包含滑动时窗步长的三维数据M×D×N维。其中M为数据的长度,N为每条数据的维度,D为滑动时窗的长度。由于本文使用的是交叉熵损失函数,因此需要对核动力装置全范围模拟机的运行数据的标签使用One-Hot编码的形式进行构造,建立标签集。
模型的整个流程如图3所示,其中数据入口条件主要是核动力仿真系统的实时运行数据,可以通过建立实时数据库从核动力仿真系统进行采集;采集到的仿真数据根据所属的子系统在计算机中进行分门别类地管理,同时根据正常、事故状态设定不同的标签,便于后续训练本文所述的事故诊断模型;将所有数据按照同样的标准进行归一化,并通过滑动时窗对数据进行重构;使用One-Hot编码构造标签集,然后将所有的带标签样本随机打乱,按照一定的比例划分为训练集和测试集;建立时间卷积胶囊网络模型,并初始化模型参数,利用训练集数据对模型进行一轮训练并通过计算交叉熵进行反向传播优化时间卷积层和胶囊网络层的超参数,如模型未达到动态路由迭代次数则继续更新胶囊网络层的耦合系数与偏置,若未达到指定训练轮数则再次进行一轮训练,如此反复直至达到指定训练轮数;然后利用测试集数据对模型的性能进行评估测试,测试准确率是否达到要求。一旦模型完成训练,该模型就可应用在核动力仿真系统的事故诊断中。
图3 时间卷积胶囊网络模型建立与训练过程Fig.3 Establishment and training process of time convolution capsule network model
本文结合时间卷积网络和胶囊网络的优点,建立时间卷积胶囊网络核动力仿真系统事故诊断模型,能够在核动力装置事故数据较少的情况下快速收敛,并保证诊断的准确率和可靠性。
本文所述方法由于尚属于研究阶段,为保证所述方法和理论的可行性,本文通过核电厂全范围模拟机获得样本数据。表1列出稳态运行过程中实际核电厂设计值和全范围模拟机得到的计算值,由表1可见,核反应堆一回路系统及化学和容积控制系统仿真模型内的测点参数实际值与计算值误差很小,基本可以模拟实际系统稳态下的运行工况。
表1 一回路系统及化学和容积控制系统内的部分测点参数Table 1 Parameter of some measuring points in primary circuit system and chemical volume control system
由于本文是进行事故诊断研究,需要保证瞬态过程中全范围模拟器与实际核电厂系统对应参数的变化趋势一致,由于文章篇幅所限,因此随机选择冷管段微小破口事故为例,验证仿真模型在瞬态计算过程中的准确性。该事故是指主冷却剂系统中冷管段出现破裂或阀门意外打开导致冷却剂意外丧失。图4示出全范围仿真机与实际核电厂核功率的变化,反应堆在运行187 s后停堆。由图4可见,仿真模型计算值与参考值误差较小,能够反映出核功率的变化趋势。在停堆时刻,反应堆的轴向归一化功率分布如图5所示,由于事故发生过程中堆芯控制棒仅有温度控制棒组发生较小变化,因此在停堆时刻其轴向功率分布与稳态时相比变化较小。
图4 核功率对比 Fig.4 Nuclear power comparison
图5 堆芯轴向归一化功率分布对比Fig.5 Comparison of axial normalized power distribution of core
其他相关过程参数的变化趋势如图6所示,在20 s发生事故后到反应堆在187 s停堆前,所有参数参考值的变化趋势与计算值基本一致,稳压器的压力和水位均呈下降趋势以弥补反应堆内水装量的减少,当稳压器压力到达13 MPa时触发反应堆停堆。因此,通过全范围模拟器获取的正常及事故数据可用于验证本文事故诊断模型的有效性。
图6 相关过程参数的变化趋势Fig.6 Change trend of relevant process parameter
除冷管段微小破口事故,本文还利用核电厂全范围模拟器随机产生的正常数据以及其他6种典型事故数据,将反应堆一回路系统、化学和容积控制系统的过程参数进行提取,形成对应的数据集进行模型训练和测试。为方便诊断结果显示与查看,使用正常、故障1~7这8个标签分别代替正常运行、冷管段微小破口、化学和容积控制系统上充阀泄漏、化学和容积控制系统上充管线泄漏、化学和容积控制系统下泄管线泄漏、化学和容积控制系统下泄阀泄漏、容控箱泄漏、泵三级轴封泄漏的标签。数据样本量的默认值为正常运行和每种事故均为500组数据,随机划分为训练部分和测试部分,其中训练部分占数据总量的20%,来模拟测试核动力系统事故数据较少的情况。
由于时间卷积胶囊网络中涉及到的超参数众多,与其他神经网络共同的超参数包括最大迭代次数、分批次数量、优化器的选择、学习率等,因此无法对这些超参数通过控制变量的方式进行逐一分析对比。通过部分分析表明,这些超参数的微调对整体结果影响不大,因此本文不再对这些超参数进行逐一对比,统一设置最大迭代次数为30次,分批次数量为32批,优化器选择应用最广泛的Adams算法,学习率为0.001;每层时间卷积核的膨胀系数分别为2、4、8,胶囊网络的输出胶囊数为8,输出胶囊维度为32,动态路由迭代次数为3次。
基于以上训练数据和参数设置,本文利用时间卷积胶囊网络进行训练,并在训练过程中将测试集数据代入进行测试,获取每一代模型的测试准确率与损失,观察模型在测试集上是否有同样的收敛效果,对应训练及测试的准确率和交叉熵损失变化如图7所示。由图7可看出:测试准确率略低于训练准确率,但在训练至第10代后基本一直维持在最高准确率,没有较大的波动;而训练和测试过程的交叉熵损失都在迭代训练中逐渐趋于最小值并保持稳定,测试损失较大是由于每一代的测试过程中编码结果没有进行最小值逼近的过程,但也逐渐降低;
图7 训练与测试的准确率(a)与交叉熵损失(b)Fig.7 Accuracy (a) and loss (b) of training and test
通过测试准确率和损失曲线,可以发现在训练过程中没有出现过拟合的问题,模型收敛效果较好。图8示出时间卷积胶囊网络模型通过训练数据训练时,最后一次迭代中最后一次动态路由中各胶囊的标签与真实标签对比的空间分布,由图8可看出,训练的收敛效果较好,得到的标签与真实标签的误差较小,能够准确得到数据的真实标签,说明本文所述方法能够给出准确的事故诊断结果。
图8 各胶囊的空间分布可视化图Fig.8 Visualization of spatial distribution of each capsule
为验证本文所述时间卷积胶囊网络模型进行事故诊断的性能,在相同事故和测试数据集的前提下分别利用CNN、TCN、胶囊网络(CapsNet)以及时间卷积胶囊网络(TC-CapsNet)模型进行事故诊断,其中CNN、TCN和CapsNet与本文TC-CapsNet模型的网络深度及部分共用的超参数设置一致,不同模型训练的准确率和交叉熵损失对比如图9所示。由图9可看出,在小训练集的情况下,TC-CapsNet模型依然能够得到很好的收敛效果,收敛过程非常稳定。
图9 不同模型训练的准确率(a)与交叉熵损失(b) Fig.9 Accuracy (a) and loss (b) of training and test for different models
为进一步验证本文所述方法针对每种事故的准确率均保持在较高水平,如图10所示,本文采用混淆矩阵示出不同模型在不同事故模式下的诊断准确率。由图10可看到,相对于其他诊断方法,TC-CapsNet对于每种事故的诊断准确率均保持在较高水平,其中故障1(冷管段微小破口)的准确率相对较低,这主要是因为这种事故发生初期参数变化趋势与正常时较为接近,从而导致特征的区分度不明显,但在实际上仍维持在较高的准确率水平。不同模型诊断结果的受试者工作特征曲线(ROC)如图11所示,由图11可看出,相对于其他方法TC-CapsNet的诊断正确率较高,诊断虚假率非常低。
a——CNN;b——TCN;c——CapsNet;d——TC-CapsNet图10 不同模型诊断结果的混淆矩阵Fig.10 Confusion matrix of diagnosis result of different models
图11 不同模型诊断结果的ROCFig.11 ROC of diagnostic result of different models
使用测试集计算5次取均值,统计不同模型计算的准确率、综合评价分数(F1-score)、召回率(recall-score)和所需时间进行对比,结果列于表2。测试使用的硬件环境为:2核的CPU,Tesla V100的GPU,内存为16 GB。由表2可以看出,TC-CapsNet模型的诊断准确率、F1-score和recall-score均为最优,在小训练集的情况下诊断准确率大于99%,F1-score和recall-score均在0.999以上,因此证明了本文所述方法可提高事故诊断的准确性。但TC-CapsNet模型相对于CNN和TCN的模型训练时间较长,这主要是由于胶囊网络特征丰富度较高,计算量较大,在挖掘向量特征信息和动态路由迭代过程中所需的计算时间较长。同时,由于本文的测试集较大,因此TC-CapsNet模型所需的诊断时间也是最长的,诊断的实时性略有不足。
表2 不同诊断方法结果对比Table 2 Comparison of result of different diagnostic methods
本文提出了基于时间卷积胶囊网络的核动力仿真系统事故诊断模型,结合时间卷积网络和胶囊网络的优势,可以从核动力仿真系统运行数据中提取深度时序向量特征,提高网络特征的有效性,在小训练集下也能快速收敛,同时获得更高的准确率。通过实验测试数据得出以下结论。
1) 提出的时间卷积胶囊网络模型在训练过程中,随迭代次数增加能够快速稳定地收敛,准确率比其他诊断模型更高,损失更低,且模型训练较充分,未出现过拟合和欠拟合情况。
2) 提出的时间卷积胶囊网络模型在训练集仅占数据集20%的情况下,事故分类准确率能够达到99%以上,优于其他经典事故诊断模型,能够满足核动力装置的事故诊断准确率要求。
本文的研究内容可为核电厂的事故诊断提供支持,能够在核电厂事故数据较少的情况下得到较好的训练模型,能够及时检测出系统的事故类型,减少误报和漏报,并保证了事故诊断的准确率,能够为核电厂的运行维护人员提供技术支持。但本文提出的时间卷积胶囊网络计算量较大,训练和诊断所需时间较长,诊断实时性略有不足,因此在后续工作中主要针对此类问题进行研究。