APP下载

基于Q网络的磁悬浮自学习控制系统设计

2021-10-13黄涛班晓军吴奋黄显林

电机与控制学报 2021年9期
关键词:磁悬浮小球稳态

黄涛, 班晓军, 吴奋, 黄显林

(1.哈尔滨工业大学 控制理论与制导技术研究中心,哈尔滨 150001;2.Department of Mechanical and Aerospace Engineering,North Carolina State University, Raleigh 27695-7910, USA)

0 引 言

磁悬浮系统具有低阻力、无噪声、寿命长等特点,在交通、机械、材料、电器等诸多领域都有着广泛的运用。磁悬浮球系统具有非线性、开环不稳定等特性, 又因其结构简单,而经常被用来作为验证控制算法的研究对象。

针对磁悬浮球系统,学者们提出了许多先进的控制算法[1],包括变结构控制[2]、模糊控制[3-5]、神经网络控制[6-7]、鲁棒控制[8-9]等等。文献[2]对存在干扰和抖动的磁悬浮球实验平台,通过积分补偿设计了离散滑模变结构控制器;文献[3-4]采用了模糊控制,在磁悬浮系统控制上起到了良好的效果;文献[5]将模糊控制与滑模控制相结合,进一步提高了磁悬浮系统的控制精度;文献[6-7]使用RBF神经网络控制器,对系统进行辨识后进行了神经网络自适应状态反馈控制器设计,在磁悬浮系统控制上也取得了良好的效果。

磁悬浮球系统在建模的过程中做了很多假设(如忽略磁漏、边际效应等),一些物理参数难以准确获得,这些问题都制约了建模精度,给基于精确模型的控制方法的设计带来了困难。而PID控制、模糊控制等,虽然不需要精确的模型,但这些方法需要研究者根据经验或实验来选择合适的控制规则或参数,受人为因素影响较大,且很难给出在特定指标下的最优控制。

针对以上问题,本文提出一种基于强化学习的Q网络自学习控制方法,在无需系统模型的情况下,通过强化学习方法设计出一种磁悬浮系统自学习控制器。在基于Q网络的强化学习算法训练过程中,由于系统稳态的数据远多于系统调节过程的数据,从而导致网络对系统不同初状态的泛化能力较弱。针对以上问题,本文首次提出基于系统加权平均状态(weighted average state,WAS)的训练算法,通过系统状态滤波值,自适应调节每回合训练的步数,提早结束每回合的训练。最后通过数值仿真验证了磁悬浮系统自学习控制器的有效性。数值仿真结果表明,相比常规的控制算法,在强化学习训练中,本文提出的WAS算法能够保证数据记忆库中有更多系统调节状态的数据,从而提高了网络对系统不同初状态的调节能力。

1 磁悬浮系统动力学模型

本研究中,采用文献[10]中磁悬浮球系统的结构以及具体参数,磁悬浮球控制系统结构如图1所示。

图1 磁悬浮球控制系统结构图Fig.1 Structure of magnetic levitation ball control system

图中:以电磁下表面中点为原点o,竖直向下为正方向建立坐标系;x为小球距原点位移;d0为小球期望工作点;d为小球相对工作点的位移。

将小球看作质点,假设在气隙中磁场分布均匀,并忽略磁场的涡流、磁滞等非线性因素。系统的运动学方程如下:

(1)

方程中参数含义如表1所示。

表1 系统参数

2 自学习控制器设计

强化学习(reinforcement learning,RL)是一种无监督机器学习算法,它通过智能体与环境的交互进行探索,再通过交互信息对采取的动作进行评价,进一步指导后续动作,最终得到最优的动作策略[14]。

2.1 DQN算法

Q学习(Q-learning)是一种基于状态-行为值的异策略、无模型时序差分强化学习方法[15-16]。状态-动作值函数Q(s,a)定义如下:

(2)

即在状态s下,根据策略π采取动作a取得的期望累计回报,其中Rt+k+1为t+k+1步的即时回报。

DeepMind公司于2013年首次提出深度Q学习(DQN)算法,并于2015年在Nature上提出改进的DQN算法[17]。相比于传统的基于神经网络的Q学习方法,其提出了两方面改进:设置记忆库,以及设置两个值函数网络,用以解决基于神经网络Q学习环节中,神经网络训练不稳定、难收敛问题。

DQN算法中,值函数网络的损失函数设置如下:

(3)

值函数更新如下:

(4)

其中:θ、θ-为值函数网络参数;α∈(0,1)为学习步长。

2.2 奖励函数设计

奖励函数是强化学习的优化指标,决定了最终策略的性能。本文的目标是通过迭代学习,最终获得能使小球稳定地悬浮于指定工作点的控制策略。首先定义变量

Δd=|dold|-|dnew|。

(5)

其中:dold为小球上一时刻相对目标点位移;dnew为小球当前时刻位移;Δd反应了小球距目标点的距离随时间变化的趋势。

设计基于位移误差的奖励函数

(6)

其中:dmax为小球允许调节范围;d为小球距目标点的偏差;r1为距离误差奖励;相对上一时刻,小球朝向目标点运动,函数值为正,反之为负。

为提高系统稳定性,设计基于小球速度的奖励如下:

(7)

其中:vmax为最大允许速度;v为小球实时速度;r2为速度奖励,小球速度绝对值越小,函数值越大,此奖励为系统增加了阻尼项,以提高系统的稳定性。

以上奖励函数都是基于标量进行设计,为了让小球具有向工作点运动的趋势,提高强化学习的收敛速度,本文还设计了基于运动方向的奖励函数

(8)

当小球向工作点运动时,函数值为1,反之为-1。总奖励函数R为三者的加权和,即

R=a1×r1+a2×r2+a3×r3。

(9)

其中a1、a2、a3为加权系数。

2.3 Q网络设计

为了实现连续状态空间下的系统控制,本文设计了基于Q网络的自学习控制器。以小球距工作点的偏移量、速度、以及控制电流作为控制器的状态输入,电压等距离散为15份,作为强化学习的有限动作空间,亦为系统的控制输入,设计基于Q网络的强化学习控制器如图2所示。

图2 系统控制框图Fig.2 Block diagram of system control

使用DQN算法中经验回放、单独设置目标网络的方法来训练Q网络。将系统状态作为网络输入,动作空间中每个动作对应的状态值作为输出,设计隐藏层含有20个节点的两层神经网络作为估值网络及目标网络,如式(10)所示,采用relu作为隐藏层激活函数,网络结构如图3所示。

图3 Q网络结构Fig.3 Structure of Q-network

(10)

2.4 基于系统加权平均状态的训练算法

在强化学习训练中,通常以连续运行步数、以及智能体运动范围作为控制每回合结束的指标。针对稳定控制问题,随着训练过程中网络逐渐收敛,每回合系统的调节时间远小于系统处于稳态的时间,从而使强化学习记忆库中,系统调节过程的数据逐渐被稳态数据所淹没,导致网络对系统不同状态的调节能力变弱。

为了提高网络对不同初始状态的泛化能力,在常规算法的基础上,本文提出了一种基于系统加权平均状态(weighted average state,WAS)的训练算法,本文称之为WAS训练方法。具体来讲,首先定义系统位移的渐消加权平均值形式如下:

avg_dk=(1-λ)(dk+λdk-1+λ2dk-2+…)=

(1-λ)dk+λ(1-λ)(dk-1+λdk-2+…)=

(1-λ)dk+λavg_dk-1。

(11)

其中,权值λ∈(0,1),dk为k时刻小球相对目标工作点的位移。每回合训练开始时,初始化avg_d0=d0,当avg_dk

为了平衡学习策略中对未知状态空间的探索以及对已获得知识的利用,训练过程中采用强化学习中常用的ε-贪婪策略,策略定义如下:

(12)

其中:ε∈[0,1]为动作探索概率;a(st)为st状态下选择的动作。每次进行动作选择时,以1-ε的概率采用贪婪策略选择最大值函数对应的动作;以ε的概率在所有动作中以均匀随机取样的方法进行动作选择,以探索新策略。

综上,基于WAS的强化学习训练算法流程如图4所示。

图4 算法流程图Fig.4 Algonithm flowchart

3 数值仿真

3.1 参数设置

设置仿真步长为0.1 ms,使用四阶龙格库塔法进行解算,控制系统的采样周期为1 ms。

奖励函数取值如下:

R=2.2r1+r2+0.3r3。

由于系统主要目标是在工作点的稳定控制,因此基于距离的奖励函数r1取较大的权值,而r3为离散值,为了提高策略的稳定性,所以赋予其较小的权值。

为了在训练前期探索更多的策略,本文采用了时变ε设置,取ε初值为1,并在训练的每一时间步中以0.000 1的幅值递减,直到变为0.1不再变化。

设置经验回放记忆库的大小为4 000,训练步数超过4 000后,采用先进先出的原则更新记忆库。设置学习率α=0.01,折扣系数γ=0.9。初始化神经网络的权重初值为[0, 0.3]的均匀随机数,初始化偏置为0.1。每步训练时,从经验回放记忆库中均匀选取32组数据训练Q估值网络。

训练过程中,每隔150步,通过复制Q估值网络参数更新Q目标网络。首先进行50回合随机尝试,然后进行450回合的训练,每回合运行步数上限为1 000步。训练中设置小球的调节范围为工作点附近3 mm,小球速度调节范围为0.3 m/s。取WAS的权值λ=100/101,位移的阈值dexp=0.05 mm。当小球运动速度或是位移超出调节范围,或滤波状态值小于设定阈值,即|avg_dk|

3.2 对比仿真结果

将WAS算法与不依赖系统滤波状态的常规训练算法对比,仿真结果如图5、图6所示。

图5 常规算法训练过程Fig.5 Training process of conventional algorithm

图6 WAS算法训练过程Fig.6 Training process of WAS algorithm

如图所示,训练250回合,在两种算法下,系统都能连续运行1 000步,回合平均奖励函数接近最大值,这表明两种算法的收敛速度基本相同。后续训练中,由于探索概率存在,系统会出现发散的情况,但累计奖励总体趋于稳定,网络训练趋于收敛。

强化学习训练结束后,利用训练好的神经网络控制器进行磁悬浮球系统控制仿真。取6~10 mm范围内任意位置,零初始速度来初始化小球状态,进行50次蒙特卡洛仿真实验,对比实验结果如图7、图8所示。

图7 常规算法仿真Fig.7 Conventional algorithm simulation

图8 WAS算法仿真Fig.8 WAS algorithm simulation

取0.5~3 s,即小球进入稳态后的位置数据,通过计算其均值与标准差来衡量控制精度。50次蒙特卡洛仿真实验结果如表2所示。

表2 仿真结果对比

仿真结果表明,常规算法训练得到的网络控制器可控范围为6~8.7 mm,当初始位置大于8.7 mm,系统发散;基于WAS算法训练得到的Q网络自学习控制器可以实现系统在6~10 mm范围内任意初始位置下的稳定控制。基于常规算法的Q网络控制器,50次实验稳态误差约为0.10 mm,基于WAS算法的控制器,50次实验稳态误差小于0.01 mm。因此,基于WAS算法的Q网络控制器控制可以实现系统的稳定控制,同时相比较于常规训练算法,WAS算法能有效提高网络的泛化能力,扩大系统的有效控制范围,减小稳态误差。

为了考察系统的抗干扰性,在位置信号的测量输出中加入了服从正态分布的随机干扰信号。取小球的初始位置为6~10 mm范围内任意值、初速度为零,进行仿真实验,实验结果如图9所示。

图9 量测噪声干扰下WAS算法仿真Fig.9 Simulation of WAS algorithm under measurement noise interference

50次蒙特卡洛实验结果如表3所示。

表3 量测噪声下仿真结果

50次实验稳态稳态误差小于0.02 mm。仿真结果表明,在量测噪声干扰下,Q网络控制器依然可以实现系统的高精度稳定控制,系统具有良好的抗干扰能力。

4 结 论

本文针对磁悬浮球系统,在不依赖系统模型的情况下,利用强化学习方法,训练得到了基于Q网络的系统自学习控制器;设计了基于系统滤波状态的WAS训练算法,通过系统滤波状态,自适应控制每回合训练的步数,以提高网络对系统不同初始状态的泛化能力。最后通过数值仿真验证了控制器的有效性,并得到以下结论:基于Q网络的磁悬浮系统自学习控制器能够在无模型情况下,实现系统垂直方向高精度的稳定控制,控制器具有良好的抗干扰能力;相比较常规训练算法,WAS训练算法能够有效提高控制器的稳定控制范围并减少稳态误差。

猜你喜欢

磁悬浮小球稳态
可变速抽水蓄能机组稳态运行特性研究
有趣的磁悬浮陀螺
碳化硅复合包壳稳态应力与失效概率分析
第二章 磁悬浮装置
电厂热力系统稳态仿真软件开发
联想等效,拓展建模——以“带电小球在等效场中做圆周运动”为例
小球进洞了
小球别跑
小球别跑
元中期历史剧对社会稳态的皈依与维护