1. 引言
核电厂运行数字孪生系统是在全范围模拟机技术基础上发展而来的,是针对核电厂DCS及现场设备的全范围、高精度仿真系统,作为核电厂物理实体的虚拟映射,核电厂数字孪生系统需要具备与参考机组同步操作的能力,以及与参考机组响应一致的特性 [1]。在机组的实际运行过程中,由于运行参数和设计数据存在一定偏差,某些参数无法通过高精度的测量和计算得到,管网等设备的工作特性会随着时间推移变化,仿真模型中的经验公式会引入一定误差等因素的综合影响,导致运行数字孪生系统无法完全匹配机组的运行情况。该问题的解决方案就是对仿真模型中的部分参数进行调试,使仿真模型的表现符合预期。但在目前的仿真模型调试中,仍然需要有经验的工程师对仿真参数进行繁重的手动调试,虽然也存在根据调试经验开发的调试工具,但这些工具大多基于逻辑策略实现,只能处理单模型中局部参数的简单调节,无法适用于复杂度高、多模型耦合的运行数字孪生系统。
综上,引入智能化技术来解决运行数字孪生系统中的仿真模型调试问题,实现对机组状态的自动匹配,是核电厂运行数字孪生发展过程中必须解决的问题。
2. 调试对象
本文选取了某核电机组全范围模拟机流网系统中二回路的某一蒸汽系统作为待优化对象,蒸汽系统仿真采用两相流网模型以及汽轮机、阀门、汽水分离再热器、凝汽器等设备模型。其中两相流网模型基于气液两相混合的质量、能量和动量三大守恒方程,将实际管道的管网等效为节点,节点与节点之间采用仿真管道进行连接。系统示意图如图1所示。
仿真节点图依据电厂的P & ID图按照一定的规则开发完成并输入管道、设备结构参数以及边界参数后,依据满功率工况运行参数以及工程师的经验来确定某些关键参数,并按照一定的标定方法计算出管道导纳、汽轮机级组效率后,填入仿真模型,加载后就可以得到与当前工况较接近的仿真结果。如果需要得到更精确的仿真结果,就必须在此基础上进行微调。
Figure 1. Diagram of the main steam system node (part)
图1. 主蒸汽系统节点图(部分)
3. 自动调试引擎
为了解决上述仿真模型的调试问题,本文开发了自动调试引擎AFE (Automatic Finetune Engine),该引擎通过粒子群、差分进化等智能优化算法来解决数字孪生系统中仿真模型的自动调试问题。
受到人类智能、生物群体社会性或自然想象规律的启发,人们发明了很多智能优化算法来解决复杂的优化问题,这些算法具有简单、通用、便于并行处理等特点。相较于其他的智能优化算法,差分进化算法具有原理简单、超参数量少和鲁棒性强的特点,因此,本文选取了其中的差分进化算法进行测试和改进方案方面的研究。
差分进化算法(Differential Evolution, DE)由Storn等人于1995年提出 [2]。差分进化算法和遗传算法类似,也是基于群体智能的优化算法,是通过群体内个体间的合作与竞争产生的智能优化搜索。差分进化算法的关键思想在于把种群中两个个体间的加权差向量加到第三个基向量上来产生一个变异向量,然后将变异向量与目标向量按照一定规则进行交叉,进而产生一个实验向量。种群中所有的个体都要经历上述过程,然后保留每个个体的历史最佳向量。通过这种变异和交叉产生新个体的方式,差分进化可以获得收敛性很好的结果,引导搜索过程向全局最优解逼近。
差分进化主要基于变异和交叉两个操作实现,公式如下:
其中,
xr1,xr2,xr3:随机选择的三个个体;
F:伸缩函数;
v:变异向量;
rcj:[0, 1]上均匀分布分随机数;
c:给定的交叉率;
Jr:[1, n]上的随机整数;
uj:交叉得到的试验向量;
在算法迭代过程中,需要记录每个种群的历史最优个体和所有种群的全局最优个体,然后从最优个体中选择。根据产生变异向量时基向量选择方案的不同,差分进化演化出了众多不同的变种 [3] [4]。本文采用的方案是使用种群中的全局最优个体作为基向量来产生变异向量,即
4. 测试与验证
4.1. 优化问题构建
针对蒸汽系统,本文梳理出其中的待优化参数107项,主要包括管道导纳和级组效率等;优化目标20项,主要包括高压缸和低压缸的抽汽流量、压力及温度等。为了合理的评价优化结果的优劣,根据工程经验给优化目标设置了不同的权重。为了减少优化参数的维度,缩小搜索空间,还根据实际管道的连接关系梳理出了待优化参数间的约束关系。
差分进化算法的超参数均设定为80个种群,最大迭代次数100次,伸缩函数F设置为[0.1, 0.5]区间内均匀分布的随机数,交叉率固定为0.5,采用加权均方差作为损失函数来评价预测值和目标值的偏差。本测试中的损失函数定义为:
其中,
wi:第i项的权重;
pred:模型预测值
target:优化目标值
优化过程中,通过差分进化算法对待优化参数进行调节,然后获得待优化参数对应的预测值,进而使用损失函数评价预测值的优劣,不断迭代,以获取最佳的待优化参数。
因为差分进化本质上也是一种随机搜索算法,为了减小随机性对结果分析的影响,测试中对蒸汽系统进行20次优化计算,然后对每次优化计算的最佳损失函数进行统计分析。根据是否使用人工调试的结果作为初始值将问题划分为有初值问题和无初值问题两类。根据上一节中的损失函数定义,人工调试结果的损失函数为111.28,后续测试以此参数作为参考,损失函数越小,说明调试的效果越好。
4.2. 测试结果
4.2.1. 有初值vs.无初值
使用差分进化对蒸汽系统进行优化,测试中将人工调试参数作为初始优化参数的定义为有初值问题,随机初始化参数的定义为无初值问题。自动调试引擎20次测试的最小损失函数的统计值如表1所示:
Table 1. Resulting data of automatic finetune
表1. 自动调试结果统计表
从统计结果中可以看出,有初值问题可以获取很好的调试结果,20次测试的均值为1.41,远远优于人工调试的精度。但对于无初值问题,自动调试引擎的结果不佳,测试均值仅为161.24,其主要原因是该优化问题的维度太大,对优化算法的全局搜索能力提出了较高的要求。因此,需要采用一些改进方案来增强优化算法的全局搜索性能。
4.2.2. 算法改进
针对无初值调试效果不佳的问题,本文采用了两种优化方案:接续计算和模拟退火。其中接续计算是指连续进行两次优化计算,在第一次优化后仅保留最佳种群,然后随机重置其他种群,增加种群的随机性。模拟退火是受固态物质退火现象启发的随机寻优算法 [5]。在本文中,使用模拟退火来挑选变异的基向量,以增强算法的随机性。此外,在模拟退火中,为了增强算法的适应性,避免冷却速度过快或过慢造成退火性能不佳的问题,还引入了动态调节退火温度的机制来控制算法的退火概率,测试中退火概率分别设置为10%、20%和30%。自动调试引擎20次测试的最小损失函数的统计结果如表2所示:
Table 2. Resulting data of improved scheme without initial value
表2. 无初值问题改进方案测试结果统计表
从表2的统计结果中可以看到,两种优化策略对无初值问题均有明显的改进效果。在只采用一种改进方案时,接续优化的平均结果精度提升为76.40,模拟退火在30%退火概率下精度最好,均值提升至85.55。如果将接续优化和模拟退火相结合,最好测试均值能够提升至25.93,明显好于改进前的结果。由此证明了这两种方案能够有效的提升调试引擎的优化效果。
5. 结论
本文研究了差分进化算法在数字孪生系统仿真模型自动调试中的应用。开发了自动调试引擎AFE,通过测试表明,在人工调试的基础上,自动调试引擎能够大幅提高仿真模型的调试精度。对于没有人工调试作为参考的情况,本文测试了接续计算和模拟退火两种算法改进方案,测试结果表明两种优化方案对结果提升均能取得较好的改进效果,两种优化方案结合使用时效果最佳。
本文提供了一种运行数字孪生系统自动调试的解决方案,可以较好地应对自动调试的应用需求,为运行数字孪生系统的发展提供了技术支撑。