摘 要:针对蒸汽发生器精确建模困难和低工况下控制性能差的问题,本文提出了一种基于深度强化学习优化的智能分层(IH)控制器。使用串级PI控制器作为初级控制器,用于直接控制水位。高级控制器采用经过深度强化学习优化的智能体控制器,负责实时对串级PI的参数进行优化,以便获得更好的控制性能。在高级控制器智能体的训练过程中,通过构建状态信息和奖励函数并采用深度残差神经网络逼近作为Q函数和策略函数的逼近器,获得了较好的泛化性能。结果表明:在不同的功率水平下,智能分层方法不仅对蒸汽发生器水位控制具有良好的跟踪能力,而且还具有很好的抗干扰能力。通过仿真验证了控制器的有效性。
关键词:蒸汽发生器; 深度强化学习; 深度确定性策略梯度; 水位控制; 状态信息; 奖励函数; 评价网络; 动作网络
U形管蒸汽发生器(U-tube steam generator, UTSG)是压水堆核动力装置中常用的关键设备之一,是连接一、二回路的枢纽,为了保证核动力装置的安全运行,其水位必须控制在合理范围内[1]。当水位过低时,会导致传热管束损坏;当水位过高时,会影响汽水分离器的分离效果,造成蒸汽品质恶化,危害汽轮机的叶片[2]。UTSG是一个具有非线性和非最小相位的复杂系统,在低功率水平下,呈现出明显的“虚假水位”现象,这给水位控制器设计带来了不少难度。为了解决UTSG的水位控制问题,文献[3-5]分别提出了能准确反映出水位特性的UTSG水位控制模型,其中Irving[5]所提出的模型覆盖了多种运行功率情况,因此被广泛应用于控制算法研究,本文也将采用该模型进行控制算法研究。当前研究人员设计了控制算法来对水位进行控制,比如自适应控制器[5],分数阶(proportional-integral-derivative,PID)控制器[6-7]、增益调度动态滑模控制器[8]、支持向量机预测控制器[9]等,这些控制器均能有效的对蒸汽发生器的水位进行跟踪,并能具有较好的鲁棒性。
深度强化学习是深度学习和强化学习结合的产物,它不仅具有深度学习的优秀数据处理能力,而且具有强化学习的优秀决策能力,已发展成为机器学习领域的一个重要分支。其学习过程通过与环境的相互作用和试错,从而不断改进自身策略,最终实现最优决策。目前深度强化学习已广泛应用于自动化控制,文献[10-12]分别将深度强化学习算法应用于双足机器人、混合动力汽车和水箱液位等控制问题上,与固定参数的PID控制器相比,该算法优化的变参数PID控制器具有超调量小、响应跟踪性能好的优点。由于串级PI(cascade PI,CPI)控制器具有直观、实现简单和鲁棒性好等优点,因此目前仍然广泛应用在核蒸汽发生器水位控制系统中。
为了实现对CPI控制器参数进行实时优化并降低控制器设计难度,本文提出了基于深度强化学习优化的智能分层(intelligent hierarchical, IH)控制器。该控制器以CPI控制器作为初级控制器,并引入深度强化学习来构建具有自主控制能力的智能体控制器,根据环境的状态不断的改进CPI的控制策略。本文采用深度残差神经网络作为Q函数和动作函数的逼近器,提出了状态指标和评价函数识别系统运行状态和评估控制效果,通过仿真实验验证了本文所提出方法的有效性。
1 高级控制器设计
1.1 强化学习
强化学习(reinforcement learning, RL)是机器学习领域的一个重要分支[13],可以通过主动学习获得良好的决策能力,学习过程如图1所示。在训练过程中,通过以最大化累计奖励为目标,强化学习算法根据状态、动作、奖励等信息持续优化策略,最终找到最优状态-动作序列。
图1 强化学习过程
Fig.1 Reinforcement learning process
交互过程可以用马尔可夫决策过程(Markov decision processes,MDP)表示[14]。假设环境是完全可以观测,环境的状态空间用S表示,动作空间用A表示;智能体的行为由策略π定义。在t时刻,at为智能体根据状态st(st∈S)所采取的策略动作,其中at∈A,然后在t+1时刻,状态转移到st+1,在这个过程中,智能体得到的即时奖励可表示为r(st,at)。智能体执行动作at后返回的累积折扣奖励为:
(1)
式中:γ为折扣因子,且γ∈[0,1];st为环境的状态。
为了描述模型在状态st下,智能体采取的动作at后,并在策略π的指导下,所带来的预期回报,常用Q函数来表示[15],定义为:
Qπ(st,at)=Eri≥t,si≥t~s,ai≥t~π[Rt|st,at]
(2)
通过贝尔曼方程可将式(2)转换成递归形式,为:
Qπ(st,at)=Ert,st+1~s[r(st,at)+
γEat+1~π[Qπ(st+1,at+1)]]
(3)
1.2 深度确定性策略梯度
深度确定性策略梯度(deep deterministic policy gradient,DDPG)是一种基于演员-评论家(actor-critic,AC)框架的深度强化学习方法[16],它是在确定性策略梯度(deterministic policy gradient,DPG)的基础上发展而来[17]。在高维状态空间和动作空间处理上,DDPG使用深度神经网络作为Q函数和动作函数的逼近器,同时也会带来一个问题,神经网络的训练过程是需要假设样本是独立且均匀分布的,然而按时间顺序获取的样本显然是不符合这个要求,为了解决该问题,DDPG借鉴了DQN中的经验回放机制[18]和深度神经网络中的小批量训练方式,确保大型非线性网络的训练过程稳定。
在DDPG中,采用确定性策略函数μ描述状态与动作之间的关系,因此可将Q函数表示为:
Qμ(st,at)=Ert,st+1~s[r(st,at)+γQμ(st+1,μ(st+1))]
(4)
为了解决连续控制任务中的探索问题,本文通过在策略μ中加入了奥恩斯坦-乌伦贝克(Ornstein-Uhlenbeck,OU)过程的噪声N,构建了探索策略μ′:
(5)
式中为动作网络逼近器参数。
1.3 值函数与动作函数网络
考虑到神经网络具有较强的适应性,能够以非线性形式逼近任何函数,因此也是目前应用最多的函数逼近器,本文通过堆叠多层残差网络结构[19]构建了深度残差神经网络作为函数逼近器,并针对Q函数和动作函数分别构建了评价网络和动作网络如图2所示,网络逼近器的隐藏层激活函数为线性整流函数(rectified linear unit,ReLU),输出层激活函数为双曲线函数tanh[20],评价网络与动作网络中的神经元个数如表1所示。
图2 网络结构设计
Fig.2 Network structure design
表1 评价网络神经元数量
Table 1 Number of neurons in the critic network
1.4 训练过程
本文将评价网络,动作网络,目标评价网络和目标动作网络分别定义为Q(s,a|θQ),μ(s|θ μ),Q′(s,a|θQ′)和μ′(s|θ μ′),其中θQ,θ μ,θQ′和θ μ′为各个逼近器的参数,行为网络和目标网络拥有相同的网络结构,在第1.3节中已给出相关定义。DDPG算法的伪代码为:
随机初始化评价网络Q(s,a|θQ)和动作网络μ(s|θ μ)的参数θQ和θ μ。
初始化目标网络Q′和μ′的参数:θQ′←θQ,θ μ′←θ μ
初始化经验池R
For episode = 1, 2,M do
初始化探索噪声模型
初始化环境状态s1并保存
For t=1: T do
获取实时动作at=μ′(st)根据探索方法.
执行动作at,并获取奖励rt和下一时刻的状态st+1
保存状态转移元组(st,at,rt,st+1)至经验池R
计算损失函数更新
计算策略梯度
更新动作网络
更新目标网络参数θQ′和θμ′
End for
End for
在训练过程中,行为网络需要在每个时间点进行学习更新,为了保证训练过程平稳,使用小批量训练方式对网络进行训练。假设每次从经验池中抽取N个样本组成训练集R,在训练过程中,为了使由θQ参数化的Q函数最优,可以通过最小化损失函数来对其进行优化:
(6)
其中:
yi=Ri+γQ′(si+1,μ′(si+1|θ μ′)|θQ′)
(7)
初始状态值函数的分布J(s1)的梯度为:
(8)
使用梯度对动作策略网络进行更新:
(9)
使用软更新方法对目标网络Q′(s,a|θQ′)和μ′(s|θ μ′)的参数进行更新:
θQ′=ηθQ+(1-η)θQ′
(10)
θ μ′=ηθ μ+(1-η)θ μ′
(11)
式中η≪1,这使得目标网络更新速度很慢,从而提高了学习过程的鲁棒性。
2 U型管蒸汽发生器控制模型
2.1 U型管蒸汽发生器数学模型
本文使用Irving通过真实运行数据辨识出来的蒸汽发生器模型作为研究对象[5],该模型能准确表示出蒸汽发生器水位的运行特性,故被广泛应用于控制器研究。该模型建立了一个与给水流量Qe,蒸汽流量Qv和窄量程水位Y相关的传递函数模型:
(12)
式中:s为拉普拉斯变量;G1、G2、G3是常数;τ2表示产生“虚假水位”现象的延迟时间;τ1为振荡的延迟时间;T为振荡的周期;第1项通过对进出流量的总和来计算水位的变化,表示SG的宽量程效应;第2项用来描述由于收缩与膨胀效应引起的逆动力学现象;第3项表示给水在环形下降通道内产生的水位振荡带来的影响。
本文针对UTSG分别在低功率(5%)、中功率(50%)和高功率水平(100%)的水位控制展开了研究,该模型参数在3个功率点处的取值如表2所示。
表2 不同功率水平下UTSG水位模型参数
Table 2 UTSG water level model parameters under different power levels
2.2 串级PI控制器
相对单独控制回路,串级控制更加可控和安全,且鲁棒性更好[21],因此本文采用CPI控制器作为基础控制器,CPI控制器的工作过程如图3中初级控制器所示。在外环控制中,期望水位和模型输出水位的差作为控制器的输入,它的作用主要用于控制水位能够跟踪期望值的变化;在内环控制中,外环控制器的输出与蒸汽流量的和再减去给水流量的差作为控制器的输入,该控制器主要用于抑制蒸汽流量扰动。
单个PI控制器的工作原理为:
u(t)=Kp(e(t)+Kie(t)dt)
(13)
式中:e(t)为误差;Kp为比例系数;Ki为积分系数。本文中外环控制器的比例系数和积分系数定义为Kp1、Ki1,内环控制器相应的参数定义为Kp2、Ki2。
2.3 智能分层控制器设计
本文所提出的IH控制器采用了2级控制器结构,如图3所示,初级控制器采用CPI控制器,负责直接控制蒸汽发生器模型的水位;高级控制器采用具有智能特性的智能体控制器,负责在线调节CPI控制器的Kp1、Ki1、Kp2和Ki2,在控制过程中,初级控制器与高级控制器共同协调工作,能够根据系统的状态实时调节控制策略,实现智能化的自主控制。
图3 蒸汽发生器水位控制流程
Fig.3 Steam generator water level control process
将DDPG算法与本文所提出的IH控制器结合,得到蒸汽发生器水位智能控制系统结构如图4所示。图中虚线上部分是基于强化学习的自适应参数调节器,下部分是由CPI控制器和被控对象组成的作为强化学习智能体的环境交互对象。其中St是系统状态向量,初始状态下根据当前St、动作网络的在线策略μ和随机噪声N映射获得一个动作输出。控制器和被控对象执行,并对动作网络返回奖励值Rt和系统下一时刻状态St+1。动作网络将这一状态转换过程(St、St+1、Rt、at)存入经验池中。评价网络将经验池中随机采样的N个转换状态数据作为训练数据,通过前面提到的更新公式进行评价的网络更新。
图4 蒸汽发生器水位智能控制系统结构
Fig.4 Structure of intelligent water level control system of steam generator
2.4 状态信息
本文将相对误差re(t)和re(t)对时间的导数∂re(t)/∂t 在连续3 s内的取值作为状态信息,从而得到误差项的状态向量s1(t),与导数项的状态向量s2(t)为:
(14)
(15)
(16)
式中:ta为目标参考值;w1和w2分别为归一化系数,用于将数值变换到区间[0,1]左右,以便促进神经网络的训练效率,在初始时刻t=0;e(t)=∂re(t)/∂t=0。最后组合状态向量s1(t)和s2(t)得到维度为3×2的综合状态矩阵S(t):
S(t)=[s1(t) s2(t)]
(17)
2.5 奖励函数
奖励函数是强化学习中的重要组成部分,扮演着引导智能体学习的关键角色。为了让智能体有效学习到控制策略,本文构建了分段评价函数r(t)。本文根据相对误差绝对值|re(t)|的不同,指定|re(t)|>200%为异常区,200%≥|re(t)|>15%为大误差区,|re(t)|≤15%为低误差区。在异常区,此时系统偏离目标值太远,将终止正在执行的任务。在大误差区,该阶段系统需要较快的响应速度,奖励值统一设置为-2。在低误差区,此时系统输出值离目标值很近,系统容易发生超调现象,因此该区间的奖励函数设置尤为重要。
本文同时采用相对误差评价项r1(t)和相对误差导数评价项r2(t)来评价控制效果。其中r1(t)用来评价环境状态偏离目标值的程度,如式(15)所示,当稳态误差为0时,该项取到最大值0。
r1(t)=-|w1re(t)|0.8
(18)
r2(t)用来评价环境状态的波动程度,当系统状态稳定时,该项取到最大值0。
(19)
为了防止在控制过程中,参数突变的影响,尤其是参考值阶跃的情况下,误差的导数是非常大的,可以将数值限制在一定范围内:
(20)
针对r2(t)评价项,采用了clip方法进行处理得到:
(t)=clip(1,-1,r2(t))
(21)
将r1(t)和(t)相加得到,低误差区的评价函数:
r3(t)=r1(t)+(t)
(22)
综上所述,最终的奖励函数为:
(23)
3 训练结果与仿真分析
3.1 训练结果
本文中针对水位跟踪性能进行训练来获得最佳的控制性能,在训练过程中,参考水位在第10 s时从0 mm阶跃至100 mm,程序的其他主要参数为:仿真时间T=600 s,采样时间Ts=3 s,迭代次数M=1 500,折扣因子γ=0.993,噪声模型随机数η=1×10-4,噪声模型方差σ=0.07,噪声模型均值δ=0.15,噪声模型常系数a=1×10-5。
由于不同功率水平下,模型具有相似特性,故均能得到相似的训练结果,出于篇幅限制,因此本文仅展示了5%满功率下的训练结果,训练结果如图5所示。在训练过程的早期,由于智能体的收集经验不足,加上训练次数不够,使得累积奖励值偏低,说明该阶段仍然处于一个探索的过程,随着迭代次数的增加,智能体逐渐找到规律,控制效果逐渐变好,此时累积奖励值,处于一个上升趋势,大约1 100次迭代后训练结果开始收敛,此时累计奖励值没有什么明显的变化趋势,说明已经寻找最优的控制方案。
图5 5%功率水平的训练结果
Fig.5 Training results at 5% power level
为了测试训练好的控制器性能,本文针对UTSG开展了水位跟踪测试和抗干扰测试,同时本文将该控制器分别与模糊串级PI控制器(fuzzy cascade PI controller, FCPI)和自适应串级PI控制器(adaptive cascade PI controller, ACPI)的控制效果进行对比。
3.2 水位跟踪测试
为测试系统在阶跃函数作用下系统的输出响应,测试过程中,水位设定值10 s时从0 mm阶跃上升至100 mm。图6显示了所有功率水平下3种方法的对比结果。3种方法均能有效对水位进行调节,本文所提出的方法相比其他2种方法响应速度更快和超调量低;当功率水平为5%时,IH方法提升是最明显的,不仅调节时间短,且超调量控制在2%以内,相比于FCPI调节时间缩短了14%左右,相比于ACPI缩短了40%左右;当功率水平为50%时,IH的调节时间略微领先于FCPI,相比于ACPI缩短了30%左右,但ACPI和IH的超调量优于FCPI。当功率水平为100%时,IH的调节时间比FCPI缩短了10%左右,比ACPI缩短了20%左右,此时3种方法的超调量均比较小,振荡次数均比较少。
图6 不同功率水平下水位跟踪测试结果
Fig.6 Water level tracking test results at different power levels
综上所述,本文提出的控制算法IH在不同的控制阶段均有较好的控制效果,这主要得益于在学习过程中,智能控制体通过不断反复的与环境进行交互,不断累积控制经验,自主的去学习控制经验,并在控制策略空间内探索新的策略,智能体逐渐走向成熟。
3.3 抗干扰测试
为了验证所提出的控制器的抗干扰能力,本文对不同功率模式下的模型进行了蒸汽流量扰动测试。测试过程中,在10 s处加入了35.88 kg/s的蒸汽流量阶跃扰动,测试结果如图7~9所示。
图7 5%功率水平下水位抗干扰测试结果
Fig.7 Water level anti-interference test results at 5% power level
图8 50%功率水平下水位抗干扰测试结果
Fig.8 Water level anti-interference test results at 50% power level
图9 100%功率水平下水位抗干扰测试结果
Fig.9 Water level anti-interference test results at 100% power level
从图7~9中可以看出3种方法均具有优秀的抗干扰能力,能够快速将水位重新恢复至正常状态,并且给水流量能够快速跟随蒸汽流量变化。当功率水平为5%和50%时,本文所提出的方法比其他2种方法能更快的将水位恢复至正常值,在100%功率水平时的抗干扰能力依旧优于其他2种方法。这些充分说明IH控制器具有优秀的抗干扰能力。由于低功率情况下,系统存在明显的非最小相位特征,使得系统恢复时间较长,在不同工况,相同蒸汽流量干扰下,恢复时间排名依次为5%>50%>100%。
4 结论
1)在水位跟踪测试中,本文所提出的方法可以快速的对水位进行跟踪控制,相比于其他智能控制算法,调整时间明显缩短,超调量小,体现出明显的优势。在抗干扰测试中,本文所提出的方法可以轻松应对蒸汽流量扰动,以很快的速度将水位恢复至正常状态,期间给水流量快速跟上蒸汽流量的变化,减少了蒸汽流量扰动对水位的影响,尤其在低功率情况下,恢复时间明显缩短,具有明显的优势。
2)本文所提出的控制器训练方法不需要知道模型的动态特性,因此减少了对模型的依赖程度,为核动力装置智能控制器设计提供了一种思路。
本文所提出的控制器是从零控制经验开始学习的,因此需要较长的学习时间。未来将引进专家控制经验对模型进行预训练,然后再使用强化学习算法进一步优化模型,来提高学习效率。