卢忝余,杜政瑀,鲍辉,王雅峰,袁光辉
(1.核反应堆系统设计技术重点实验室,成都610041 2.中国核动力研究设计院,成都610041)
为了更好实现对核电站内参数的实时监控,会在反应堆中设置相应的探测部件,例如针对反应堆启停阶段与正常运行阶段中子注量率的探测器和测量仪表、针对反应堆堆芯出口以及环路特定位置的冷却剂温度测量采用的热电偶、针对控制棒在堆芯中位置的控制棒位置指示系统、针对事故发生后的相应设备是否可以按要求运作的事故后检测系统、系统内压力控制系统、特定位置冷却剂液位控制系统等。通过以上的反应堆监测系统,可以实时对反应堆的运行、安全状态进行观察,并且在此基础上,通过相应的控制系统实现对反应堆的调整。当前针对反应堆的控制,可以分为自动控制与人工控制两种形式,这两种控制方式实质上都是为了使反应堆达到某种特定状态而对反应堆局部或者整体的运行状态进行干预[1]。人工控制又称为手动控制,是由运行人员在对运行参数观察的基础上,根据需求进行人工的调整、控制,而自动控制则采用机械或者电器等装置来代替人工控制。由于人工控制相比自动控制更加容易出现失误,例如三里岛、切尔诺贝利事故很大程度上都与人的因素有关,甚至之后的福岛事故也与人的决策判断相关[2],因此为了减小人因导致的失误,在设计上,反应堆系统的自动化程度与先进性在不断提高。
当前在对核电站设计、新型反应堆研发等研究工作过程中,通常会采用数值模拟的方法,而其中最为复杂的属于反应堆系统分析程序。反应堆系统分析程序可以针对反应堆一二回路进行建模,对其中堆芯区域燃料发热、系统中冷却剂流动情况、一二回路热量传递以及主要部件运行状态进行数值模拟[3]。对于系统分析程序而言,分为两种主要的控制方法:①类似于人工控制,当采用系统分析程序用于反应堆系统实时仿真,进行例如操作员培训、模拟机开发等活动时,可以通过平台调度,实现在虚拟盘台上进行操作,进而影响到系统分析程序内对应的运行数据,以此达到控制的需求;②类似于自动控制,通过对具体运行工况的设置,实现对某些特定参数的监测,当这些参数符合预设要求时,对系统中相应的控制对象进行调整从而改变例如冷却剂流动状态或者堆芯功率等。由于在对反应堆系统设计时,需要考虑事故情况下的运行状态,从而进行安全性分析,因此除了实验堆以外,通常采用程序模拟的方法对反应堆进行数值计算。同时因为要进行反应堆系统事故工况下的数值模拟,需要分析多种情况下的安全性能、评估能动/非能动安全系统以及自动控制系统性能等,这个过程中系统分析程序中的控制模块起到非常重要的作用。本文主要介绍了一种系统分析程序中的控制模块构建方法,并且围绕此方法做了进一步分析。
对于系统分析程序而言,其控制系统通常根据某些特定的参数或者用户指定的参数触发,同时,为了有效模拟复杂系统的控制逻辑,会针对各个参数建立较完整的逻辑运算模块,此外,控制模块的运算结果会直接作用在系统的运作上。综上,对于系统分析程序而言,其控制系统组成部分可以分为三部分:①设置;②运算;③反馈。
控制系统的设置包括两部分。首先是规定参与计算的变量,这个变量需要直接对应到程序内的计算变量,因此可以通过两种方法规定:①写入程序可以自动识别的变量名称;②通过符合系统程序的格式设置额外的变量。当确定参与计算的变量后,需要设置其计算逻辑,计算逻辑主要包括以下几种:等于、不等于、大于、大于等于、小于、小于等于、和、或、非。其中前六个是针对参数的计算,而后面三个则是针对逻辑的计算。
对于系统分析程序而言,控制系统通常采用显式计算,即采用已知量进行计算。在计算过程中,根据控制系统的设置,提取相应的变量,之后根据相应的数值计算得到逻辑值,例如在每个时间步长计算中对设置的温度、压力等参数进行判断是否超过特定值等。此外,还可以对多个变量运算的结果进行逻辑运算,例如判断是否条件1 与条件2 都符合,或者是否条件1 不符合等。
当控制系统计算完成后,会输出结果,而这些结果将直接影响对应部件的运行状态,在反应堆系统分析程序中,可以影响泵、阀门、汽轮机等设备的运行状态从而改变系统内冷却剂流动形式,也可以对边界条件进行改变以此模拟特定工况,还可以对控制棒步进做出调整以此影响堆芯整体或者局部的功率。
系统分析程序在进行瞬态计算时,需要将绝大多数参数与时间对应起来,例如记录当前时间步、上一时间步、甚至上上时间步的参数,并以此进行计算。同理,对于控制系统而言,其计算结果也同样需要与时间对应,因此通常会设置每个控制逻辑触发的时刻,当控制逻辑发生改变时,对改变的时间进行记录。下面将介绍两种控制逻辑触发时间设定方法。
第一种方法为将所有逻辑变化对应的时间点都设置在时间步长结束的位置,具体为:在某个时间步长中,当控制逻辑在该时间步长起始位置的值与其在该时间步长结束位置的值不同时,将逻辑的变化时间设置为该时间步长结束位置。例如,假设控制逻辑A 与温度有关,当温度大于100K 时,A 为真,在t1到t2的时间步长中,温度从90K 上升到了110K,如图1 所示,则记录A 的触发时间为t2。
图1 逻辑变化在时间步长结束位置示意
采用这种方法可以在每个时间步长计算完成时得到控制逻辑的触发情况,不需要进行额外计算。同时由于控制逻辑改变时间都位于时间步长结束点的位置,因此对于其影响的部件或者边界条件而言,控制逻辑的变化不会对当前时间步的结果存在影响,只会体现在其下一时间步的计算中。然而这种方法有显而易见的缺陷:存在不超过当前时间步长的时间误差(示例中的误差为t2-t0,其中t0为实际触发的时间点)。当时间步长取值较大或者对计算精度有较高要求时,不建议采用此方法。
第二种方法则在每个时间步长的计算中,当出现控制逻辑变化时,通过线性插值求解触发的时间。例如,在上一个例子的基础上,假设温度达到T0时触发,起始时刻温度为T1,结束时刻温度为T2,如图2 所示,则通过线性插值可以得到触发的时间t3为:
当采用第二种方法时,可以利用时间步起始时刻值与结束时刻值进行线性差分,对触发时间进行估计计算,一定程度上保证了精度(在示例中触发时间的误差为t3-t0)。但是与第一种方法比,这种方法在计算中会用到上一时刻的值,需要程序的支持,同时增加了插值计算,较第一种方法更为复杂。此外,由于控制逻辑的变化时间位于时间步长内,同时也记录了计算得到的改变时间(例如t3),为了保证计算的连续性,通常会在触发时间不为当前时间步结束时刻的情况(即t3不为t2时)中进行回退计算,关于回退计算将在下面展开介绍。
图2 通过线性插值的形式计算触发时间方法示意
在系统程序中,当控制逻辑触发后,会记录触发时间,对于在瞬态进程中会不断判断状态的控制逻辑而言,不仅会记录最新一次触发的触发时间,还会记录触发的次数。而对应到具体的部件,根据触发时间点与当前计算时间点,可以得到触发后经历的时间段,并且利用这个时间段进行相应的计算。而为了保证控制系统的正确性,当触发时间点位于当前时间步内且触发时间点不为结束时间点时,需要进行回退计算。回退计算会将当前已经计算完成的时间步进行分割,划分为控制逻辑触发前与控制逻辑触发后两部分,之后重新对当前时间步进行计算,时间步长分别取起始点到控制逻辑触发点与控制逻辑触发点到结束点两段。本文假设当插值计算确定了当前时间步长内控制触发的时间点后,将不再对此控制触发时间进行迭代计算。计算逻辑为:
图3 瞬态计算中回退计算流程
当时间步长中因为某个控制逻辑发生变化从而导致回退计算时,会记录该控制逻辑的触发时间,再进行瞬态参数回溯,之后在进行修正的时间步长下计算瞬态工况时,不会再对此控制逻辑进行计算。
通过回退计算,可以得到系统在控制逻辑变化时的参数。同时由于控制逻辑发生变化,导致系统中相应的部件运行状态发生变化,因此在此触发点的基础上,对系统进行再一次计算,为下一时间步长的计算提供较准确的起始值。
需要说明的是,当单个时间步长内出现多个相互之间无联系的控制逻辑变化时,会选择在该时间步长中最早变化的控制逻辑,并记录其触发时间点,根据这个点计算得到需要回退计算的时间步。
本文针对反应堆系统分析程序的控制模块计算逻辑展开研究,阐述了在瞬态计算过程中两种控制逻辑计算流程,同时重点对采用线性插值方法计算触发时间并根据触发时间设置回退计算的方法做了介绍。