周天泽 虞凯程 程懋松 戴志敏,3
1(上海科技大学 上海 201210)
2(中国科学院上海应用物理研究所 上海 201800)
3(中国科学院大学 北京 100049)
熔盐堆是第四代先进核能系统之一,其利用熔盐作为燃料与冷却剂,其研究始于20世纪40年代末的美国[1-2],美国橡树岭国家实验室(Oak Ridge National Laboratory,ORNL)于1954年建造了2.5 MW空间动力试验反应堆(Aircraft Reactor Experiment,ARE),展示了很好的稳定性以及易控制性[3]。熔盐堆具备高温、低压、高化学稳定性等特性,可被应用于高温制氢、放射性同位素制备、内陆地区发电等场景[4-6]。在熔盐堆运行过程中,需要及时识别可能的事故瞬态并采取措施,以防止事故瞬态进一步恶化,确保反应堆安全。目前,核电站采用的瞬态识别方法主要依靠操作员根据监测数据进行人为识别,这种方法存在着较大的人为因素[7]。为了尽量减少人为因素的引入,确保核电安全,可以采用机器学习方法建立核反应堆系统瞬态识别模型,在较少的人为因素下对核反应堆系统瞬态工况进行快速、准确地识别。
目前,国内外已有许多团队进行了基于机器学习核电站系统瞬态识别模型的开发。哈尔滨工程大学Wang等[8]利用卷积神经网络提取输入参数特征后再利用迁移学习降低不同功率水平下的特征分布差异,实现不同功率水平下的核电站系统瞬态识别。来自东北大学的Li等[9]提出了一种无监督聚类方法,能够自动准确地匹配运行瞬态与预先设计的瞬态,从而减少操作员主观判断瞬态类型带来的误差。Ramezani等[10]采用多种特征过滤方法以确定核电站瞬态识别的重要输入参数,以降低训练系统瞬态识别模型所带来的计算成本,结果表明,采用邻成分分析滤波方法进行特征过滤的系统瞬态识别模型拥有最好的性能,并确定了模型达到90%识别准确率所需的最少输入参数类型。dos Santos等[11]开发了一种基于5层深度整流神经网络的系统瞬态识别模型,用于巴西压水堆瞬态事故识别,在识别12种瞬态事故与稳态运行工况时的准确率达到99.03%。Mendoza和Tsvetkov[12]利用主成分分析和支持向量机、深度神经网络和卷积神经网络开发了故障检测与诊断监控系统FDDMS(Fault Detection and Diagnosis Monitoring System),可用于核电站功率调节瞬态识别,卷积神经网络在Raw类型的数据中可以达到99%以上的识别准确率。Mena等[13]使用AutoML和TPOT等工具,基于6种机器学习方法建立了6种不同的系统瞬态识别模型,用于识别APR1400的系统瞬态,并且6种模型均达到95%以上的识别准确率,其中基于逻辑回归的系统瞬态识别模型达到了98%以上的识别准确率。目前,国内外的相关研究主要集中在压水堆、沸水堆等堆型,缺乏针对熔盐堆的系统瞬态识别模型研究,鉴于熔盐堆独特的设计和运行方式,需要基于机器学习方法开发适用于熔盐堆的系统瞬态识别模型。
为了减少熔盐堆运行过程中人为因素,提高熔盐堆运行安全,基于K近邻(K-nearest Neighbor,KNN)机器学习方法,建立了熔盐堆系统瞬态识别模型,并对系统瞬态识别模型在噪声下的鲁棒性进行详细分析和优化。
基于KNN的熔盐堆系统瞬态识别模型的开发流程主要包括两个部分:数据集生成和系统瞬态识别模型的建立,如图1所示。使用熔盐堆系统分析程序RELAP5-TMSR进行建模与仿真,获得对应瞬态工况的运行数据,生成数据集并划分为训练集与测试集。而系统瞬态识别模型的建立过程则基于前一过程中所得到的训练集与测试集。这一过程主要包含对系统瞬态模型的训练、优化与测试:通过训练集训练及优化基于KNN的系统瞬态识别模型的超参数,然后使用测试集数据对优化好的系统瞬态识别模型进行测试,并对系统瞬态识别模型的泛化能力进行评估。
图1 熔盐堆系统瞬态识别模型开发流程Fig.1 Development process of the system transient identification model
KNN是一种基于实例的监督学习算法,可以用于分类和回归问题[14];同样是一种懒惰学习方法[15],它不需要训练阶段,只需存储训练数据集。
对于分类问题,KNN根据未知类别的样本点的K个最近邻样本点中出现最多的类别来确定未知样本点的类别。因此,在KNN算法中,K这一超参数的选取至关重要。通常情况下,如果K值过小,识别结果对近邻点非常敏感,容易过拟合;如果K值过大,模型容易受到样本分布的影响,导致欠拟合。KNN的优点是可以快速对新的测试样本进行分类;缺点是对于大规模数据集,计算距离的复杂度较高。如果采用暴力搜索(Brute Force)计算数据所有点之间的距离,在面对大量的高维数据时,将耗费大量时间和计算资源。采用K-D树或球数等算法[16-17]可以解决暴力搜索的低效率问题。同时,在KNN方法中,近邻点距离的计算方法也很重要[18]。欧氏距离和曼哈顿距离是两种距离计算方法,n维空间点a(x11,x12,…,x1n)与b(x21,x22,…,x2n)之间的两种距离数学表达d12E和d12M分别如式(1)和(2)所示:
在熔盐堆系统瞬态识别模型中(图2),KNN方法依据待识别瞬态样本在多维空间中的K个最近邻瞬态样本,按照少数服从多数原则,确定待识别瞬态样本的瞬态类型。
图2 基于KNN的熔盐堆系统瞬态识别模型Fig.2 KNN-based system transient identification model for the MSR system
基于KNN的系统瞬态识别模型的超参数选取也大致围绕这几方面进行展开,如表1所示,待优化的超参数包含邻近点数K(N_neighbors)、邻近点查找方法(Algorithm)、距离计算方法(P)和邻近点权重方式(Weights)。
基于KNN的系统瞬态识别模型框架如图3所示。模型的输入为N种熔盐堆内的系统运行参数,如反应堆功率、温度、压力和质量流量等。模型的输出是P种瞬态工况在对应N种运行参数下的概率,最终模型从这些瞬态工况中选取概率最大的瞬态作为最终的识别结果。
图3 基于KNN的系统瞬态识别模型框架Fig.3 Framework of the KNN-based system transient identification model
20世纪60年代,美国橡树岭国家实验室设计并建造了熔盐实验堆(Molten Salt Reactor Experiment,MSRE),并于1965年成功运行。本文以MSRE为对象,建立和训练熔盐堆系统瞬态识别模型。由于相关报告中的瞬态实验数据不足,因此使用由中国科学院上海应用物理研究所团队[19-21]扩展开发的RELAP5-TMSR系统分析程序对MSRE的瞬态工况进行建模与仿真,产生所需数据集。MSRE的RELAP5-TMSR模型节点图如图4所示。
图4 MSRE的RELAP5-TMSR节点图Fig.4 RELAP5-TMSR nodalization of the MSRE
为了开展系统瞬态识别研究,参考ORNL的MSRE相关报告[22],选择了表2中所列的瞬态工况,并使用RELAP5-TMSR程序进行建模与仿真。除了考虑瞬态工况的选择,还需要选择合适的熔盐堆系统运行参数作为系统瞬态识别模型的输入特征。在选取输入特征时,参考实际熔盐堆中操作人员容易获得的一些参数,选取了表3中所列的功率、堆芯出入口温度、回路压力和质量流量等11种熔盐堆运行参数。为了更好地测试系统瞬态识别模型的泛化能力,将熔盐堆系统瞬态识别模型的数据集划分为训练集与测试集,两者独立生成。为确保模拟结果的稳定性和可靠性,相应的瞬态工况在MSRE稳态运行100 s后引入。训练集在1~8 MW的热功率下均匀分成8种功率水平,在每个功率水平下对瞬态工况进行建模与仿真,每隔1 s提取对应时刻的11种熔盐堆运行参数作为熔盐堆系统识别的特征参数。最终,获取的训练数据集由72 356个数据点组成。测试数据集在1~8 MW的随机反应堆功率下的11种不同运行状态生成,由25 055个数据点组成,以更全面地评估系统瞬态识别模型的性能和识别能力。
表2 MSRE运行工况类型Table 2 MSRE operation condition type
表3 熔盐堆系统识别特征参数Table 3 Feature parameters of identification in MSR system
本节利用生成的数据集训练和优化基于KNN的系统瞬态识别模型,进一步提高系统瞬态识别模型的识别准确率和泛化能力。
2.2.1 超参数优化
通过对超参数优化,从超参数组合中寻找到最优的超参数组合,使得基于KNN的系统瞬态识别模型在验证集的性能最佳。采用5折交叉法和随机搜索相结合的方式对超参数组合进行筛选。
在超参数优化中,需要确定优化指标以评估不同超参数组合下的系统瞬态识别模型性能。在机器学习中,基于KNN的系统瞬态识别模型是一种分类模型,通常用表4的形式来表述二分类结果。真正例(True Positive,TP)是模型正确地将正例预测为正例的数量。假正例(False Positive,FP)是模型错误地将负例预测为正例的数量。真反例(True Negative,TN)是模型正确地将负例预测为负例的数量。假反例(False Negative,FN)是模型错误地将正例预测为负例的数量。这4个二分类指标可以进一步组成不同的性能指标。在熔盐堆系统瞬态识别模型的超参数优化中选用最常用的准确率(Accuracy)作为评估指标,其数学表达形式如式(3)所示。
表4 二分类结果Table 4 Binary classification results
2.2.2 系统瞬态识别模型优化结果
对表1所选取的超参数组合进行优化,优化结果如图5所示。邻近点查找方法、邻近点数K、距离计算方法对于基于KNN的系统瞬态识别模型准确率影响不明显。但在邻近点权重方式中,采用“distance”方式进行邻近点权重略优于采用“uniform”方式进行邻近点权重。其中最优超参数组合列于表5中。
表5 基于KNN的系统瞬态识别模型超参数优化结果Table 5 Hyper-parameters optimization results of KNN-based system transient identification model
图5 基于KNN的系统瞬态识别模型超参数优化结果Fig.5 Hyper-parameter optimization results of the KNN-based system transient identification model
在评估系统瞬态识别模型时需要选择评估指标,在上一小节的模型优化过程中采用了准确率,但是在某些情况下,单纯依赖准确率并不能完全反映系统瞬态识别模型的性能。在类别不平衡的情况下,即某一类别的样本数量明显少于另一类别时,仅使用准确率评估分类器的性能会产生偏差,因为此时分类器可能会倾向于预测样本数量较多的类别。在评估熔盐堆系统瞬态识别模型时,需要引入其他指标来更全面地对系统瞬态识别模型的性能进行评估。除准确率外,额外选取了在机器学习分类方法中常用的其他三个评估指标:精确率(Precision)、召回率(Recall)和F1分数(F1-score)[23],它们的具体数学表达形式如下:
精确率反映了被模型正确识别的正样本数量占模型识别的所有正样本数量的比例,精确率越高,说明模型正确识别出的正样本数量越多。召回率反映了被模型正确识别的正样本数量占总正样本数量的比例,召回率越高,说明模型正确识别出的正样本数量越接近于总正样本数量。而F1分数综合考虑精确率和召回率,是精确率和召回率的调和平均数。
采用混淆矩阵(Confusion Matrix)评估系统瞬态识别模型在测试集上的识别性能。混合矩阵图中的数字为样本数,横坐标为系统瞬态识别模型对瞬态的识别类别,纵坐标为真实瞬态类别,位于对角线上的样本为系统瞬态识别模型正确识别的样本。基于KNN的熔盐堆系统瞬态识别模型的测试结果如图6所示。
图6 基于KNN的系统瞬态识别模型混淆矩阵图Fig.6 Confusion matrix for the KNN-based system transient identification model
基于KNN的系统瞬态识别模型的准确率、精确率、召回率和F1分数均为99.99%,如表6所示。基于KNN的系统瞬态识别模型正确识别了25 055个瞬态工况样本中的25 054个瞬态工况,只有一例3根控制棒误提升样本被误识别为2根控制棒误提升。此外,单独瞬态的F1分数结果列于表7中,基于KNN的系统瞬态识别模型在测试集上表现出极佳的识别性能。这表明了本文建立的基于KNN的熔盐堆系统瞬态识别模型能够高效、准确地识别MSRE中的多种瞬态工况。
表6 基于KNN识别模型测试结果Table 6 Test results of KNN-based identification models
表7 单独瞬态的F1分数Table 7 F1-score of individual transient
在熔盐堆实际运行过程中,测量仪表的测量数值会受到不同程度的噪声干扰。因此,在系统瞬态识别模型对熔盐堆系统瞬态进行识别的过程中,需要考虑系统瞬态识别模型的输入参数在实际应用时的噪声干扰,开展对熔盐堆系统瞬态识别模型在噪声下的鲁棒性分析。测量仪表在t时刻测得的运行参数数值X(t)可以表示为[24]:
式中:S(t)是运行参数在t时刻的真实数值;D(t)是t时刻噪声对测量仪表的干扰。这些噪声干扰通常来自多个不同噪声源,并且具有一定的随机性。随着噪声源数量的增加,这些噪声之和近似服从高斯分布,通过假设噪声干扰的总和为高斯白噪声以模拟未知的真实噪声[25]。
噪声的大小通常采用信噪比(Signal to Noise Ratio,SNR)来衡量[26],表示为:
式中:Psignal代表信号功率;Pnoise代表噪声功率;Asignal代表信号幅度;Anoise代表噪声幅度。在核电站内,测量仪表受到的噪声干扰不会太大,最大噪声干扰的SNR在30 dB左右[27]。本文通过在测试集中添加20~50 dB的高斯白噪声干扰,分析基于KNN的系统瞬态识别模型的鲁棒性。
基于KNN的系统瞬态识别模型在含噪声测试集中的测试结果如图7所示。4种评估指标呈现出随着SNR的增长而不断上升的趋势,在低SNR下较低,并在40 dB左右基本达到一致水平。其中准确率在不同SNR下均高于其他三个评估指标;而精确率在低SNR时和准确率保持一致,但是其上升趋势较慢;召回率与F1分数在不同SNR下基本保持一致,但均低于准确率与精确率的数值。
图7 鲁棒性测试结果Fig.7 Robustness test results
对基于KNN的系统瞬态识别模型在30 dB SNR下的鲁棒性进一步分析。基于KNN的系统瞬态识别模型在30 dB SNR下识别准确率为97.41%,精确率达到94.47%,召回率和F1分数也分别达到94.61%和94.31%,如表8所示,4项评估指标均高于94%,具有较好的鲁棒性。但是准确率明显高于精确率、召回率和F1分数,准确率作为综合指标,可能会忽略某几种瞬态带来的影响,而精确率、召回率和F1分数考虑了单一瞬态带来的影响,可以推断是因为误识别瞬态分布集中导致。相比较在无噪声下达到99.99%的识别结果,在30 dB噪声下的识别结果较低,需要进一步优化系统瞬态识别模型的鲁棒性。
表8 系统瞬态识别模型在30 dB SNR下的识别结果Table 8 Results of system transient identification model under 30 dB SNR
3.2.1 含噪声数据训练的系统瞬态识别模型
含噪声数据训练的系统瞬态识别模型通过在数据集中加入噪声,使用含噪声数据对基于KNN的系统瞬态识别模型重新训练,从而进一步优化系统瞬态识别模型在噪声下的鲁棒性。在数据集中添加SNR为30 dB的噪声,使得训练集中的数据含有噪声,从而增加系统瞬态识别模型在噪声下对瞬态工况的识别能力。
3.2.2 含噪声数据训练的系统瞬态识别模型优化
与基于KNN的系统瞬态识别模型超参数优化过程一样,通过5折交叉法和随机搜索相结合的方式对表1中的超参数组合进行筛选。含噪声数据训练的系统瞬态识别模型优化结果如图8所示,最优超参数组合列于表9中。
表9 含噪声数据训练的系统瞬态识别模型超参数优化结果Table 9 Hyper-parameters optimization results of system transient identification model trained by data with noise
图8 含噪声数据训练的系统瞬态识别模型超参数优化结果Fig.8 Hyper-parameter optimization results of the system transient identification model trained on noisy data
3.2.3 含噪声数据训练的系统瞬态识别模型测试及评估
同样使用准确率、精确率、召回率和F1分数4个评估指标对含噪声数据训练的系统瞬态识别模型的泛化能力进行评估。首先在不含噪声的测试集上,对基于KNN的含噪声数据训练的系统瞬态识别模型的性能进行测试,其测试结果如图9所示。
图9 基于KNN的含噪声数据训练的系统瞬态识别模型在无噪声测试集上的混淆矩阵图Fig.9 Confusion matrix for the KNN-based system transient identification model trained using noisy data on noiseless test datasets
基于KNN含噪声数据训练的系统瞬态识别模型无噪声测试集数据中的准确率为99.69%、精确率为99.26%、召回率和F1分数均为99.22%,如表10所示。其在无噪声测试集上的4项评估指标也均超过99%,具有较好的熔盐堆系统瞬态识别性能。
表10 基于KNN含噪声数据训练的系统瞬态识别模型在无噪声测试集上的测试结果Table 10 Results of KNN-based system transient identification model trained by data with noise on noiseless test datasets
但是无噪声只是一种理想环境,在熔盐堆实际运行过程中,仪表测量往往会受到环境噪声干扰,因此主要在噪声环境下对含噪声模型进行分析。需要在有噪声测试集上,对含噪声数据训练的系统瞬态识别模型进行测试。因为在训练集中添加的噪声为30 dB SNR,所以在测试集上同样添加了30 dB SNR的噪声。采用混合矩阵评估含噪声数据训练的系统瞬态识别模型对含噪样本的识别情况。基于KNN的含噪声数据训练的瞬态模型在含噪测试集中的表现结果如图10所示。
图10 基于KNN的含噪声数据训练的系统瞬态识别模型在含噪声测试集上的混淆矩阵图Fig.10 Confusion matrix for the KNN-based system transient identification model trained using noisy data on noisy test datasets
基于KNN含噪声数据训练的系统瞬态识别模型在30 dB SNR的含噪声测试集数据中的准确率为99.89%、精确率为99.73%、召回率和F1分数均为99.73%,如表11所示。含噪声数据训练的系统瞬态识别模型正确识别了25 055个瞬态工况样本中的25 028个瞬态工况,其中27个被误识别的瞬态工况均为控制棒误提升瞬态,有17例2根控制棒误提升瞬态被误识别为3根控制棒误提升。使用含噪声数据训练的系统瞬态识别模型在含噪声测试集上的识别性能非常优越,具体单独瞬态的F1分数结果列于表12中。表明了本文建立的基于KNN的含噪声数据训练的熔盐堆系统瞬态识别模型能够在30 dB SNR的噪声环境下准确地识别MSRE中的多种瞬态工况。
表11 基于KNN含噪声数据训练的系统瞬态识别模型测试结果Table 11 Results of KNN-based noise-added system transient identification model in test datasets
表12 基于KNN含噪声数据训练的系统瞬态识别模型识别单独瞬态的F1分数Table 12 F1-scores of individual transients using KNN-based system transient identification model trained by data with noise
3.2.4 含噪声数据训练的系统瞬态识别模型鲁棒性分析
相较于不含噪声数据的系统瞬态识别模型,使用含噪声数据训练的系统瞬态识别模型在30 dB SNR的高斯白噪声下具有较高的鲁棒性。但是考虑到熔盐堆在实际运行中,仪表测量受到的噪声干扰未知,30 dB SNR的高斯白噪声仅能反映含噪声数据训练的系统瞬态识别模型在最大噪声下具有较好的性能,仍需要对含噪声数据训练的系统瞬态识别模型在不同程度SNR的高斯白噪声下的鲁棒性进行分析。基于KNN的含噪声数据训练的系统瞬态识别模型在20~50 dB SNR噪声下的鲁棒性测试结果如图11所示。
图11 含噪声数据训练的系统瞬态识别模型鲁棒性测试结果Fig.11 Robustness test results of the system transient identification model trained on noisy data
4种评估指标呈现出先随着SNR的增长而不断上升,再随着SNR的增长而不断缓慢降低的趋势,转折点在27 dB左右。准确率在不同SNR下依旧高于其他三个评估指标,并且在高SNR下依旧明显高于其他三个评估指标。在低SNR下,精确率、召回率和F1分数的差别较为明显,精确率较高而F1分数最差;在高SNR下,这三种指标几乎保持一致。相较于鲁棒性优化前的识别模型,鲁棒性优化后的系统瞬态识别模型在噪声下具有更好的识别性能,这也表明了采用含噪声数据训练方法可以有效提高识别模型在噪声下的鲁棒性,同时也证明了鲁棒性优化后的基于KNN的熔盐堆系统瞬态识别模型在高斯白噪声下具有极高的识别性能,可以在噪声下准确识别MSRE瞬态工况。
为了减少熔盐堆系统瞬态识别过程中引入的人为因素,提高熔盐堆运行安全,基于KNN方法建立了熔盐堆系统瞬态识别模型。使用系统分析程序RELAP5-TMSR生成数据集进行系统瞬态识别模型的训练和超参数优化,并对系统瞬态识别模型的性能进行了测试与评估。考虑到熔盐堆实际运行中的测量仪表噪声干扰,对系统瞬态识别模型在噪声下的鲁棒性进行了分析和优化。结果表明:在无噪声情况下,基于KNN方法建立的熔盐堆系统瞬态识别模型识别性能极佳,在噪声下识别性能同样较好,表现出较高的鲁棒性;通过鲁棒性优化,系统瞬态识别模型在噪声下的识别性能进一步提升,鲁棒性得到增强。上述结果表明,所开发的系统瞬态识别模型能够有效识别MSRE系统瞬态工况,具有较大潜力和价值,可以进一步推广至其他熔盐堆系统,提高熔盐堆系统的运行安全性,并为熔盐堆的智能运维提供有力支持。
作者贡献声明周天泽负责进行熔盐堆系统瞬态识别模型的开发、分析及文章撰写;虞凯程负责对文章的知识性内容作批评性审阅及文章修订;程懋松负责提出研究思路,文章审阅与修订;戴志敏负责研究方案指导、研究进度监督和研究项目管理。