鄢 霞,何 勇,张庆铭,姚凯学,杨秀文
(1.贵州大学a.公共大数据国家重点实验室;b.计算机科学与技术学院,贵阳 550025;2.贵州民族大学数据科学与信息工程学院,贵阳 550025)
永磁同步电机(permanent magnet synchronous motor,PMSM)具有尺寸小、控制方便、转矩精度高和动态性能好等优点,在工业领域具有极其广泛的应用,如航空航天、工业机器人等领域[1]。当永磁同步电机应用于高精度控制系统时,需要更快的响应速度、更高的转速精度和更宽的调速范围。所以,PMSM的速度控制是一个重要的研究问题。PID控制方法是最早发展起来的控制策略之一,被广泛应用于工业过程控制[2]。但是在PMSM系统中,当电机负载转矩无规则变化、内部参数易变等情况时,使用PID方法难以实现精确控制[3]。因此,研究PMSM中的智能控制对提高系统的总体性能有着重要的现实意义。
深度强化学习(deep reinforcement learning,DRL)不依赖于具体的环境内部信息,它凭借深度学习对复杂环境的感知和理解能力,使用误差反向传播优化目标函数;同时凭借强化学习在序列决策问题中的优势定义控制策略[4]。DRL在一定程度上能够解决一些复杂的自动化控制问题。因此,DRL适用于存在大扰动和参数易变的PMSM系统模型。
目前,国内外学者对PMSM的智能控制问题有不少研究。RAHAYU、GAO等[5-8]提出基于机器学习、深度学习方法实现PMSM的智能控制,如利用粒子群优化算法、径向基函数神经网络方法调整电机PID控制参数。这些方法一定程度上解决了电机在负载时传统控制方法人工经验调参的不足。但基于神经网络的PID控制方法应用于电机的参数调整存在训练模型较大。因此,SONG等[9]基于深度强化学习DQN(deep Q-networks,DQN)算法提出一种PMSM的转速控制方法,该方法将转速控制建模为马尔可夫决策问题,并将实际转速大小和转速误差作为输入,预测下一时刻的最佳转速,从而得到相应的最优调节方案。虽然DQN方法在PMSM的转速控制中取得了不错效果,但该方法局限于处理离散动作问题。对于具有非线性、多变量、强耦合的PMSM系统而言,其控制效果无疑大打折扣。因此,有相关研究对其进行优化,即引入深度确定性策略梯度(deep deterministic policy gradient,DDPG)方法,其在DQN基础上扩展到用于处理连续动作问题。CHEN、张振宇等[10-13]基于DDPG算法提出一种自适应控制方法应用在电机和伺服系统中,其主要思想是利用DDPG智能控制器代替传统PID控制中的速度回路和电流回路实现控制。实验结果显示该算法能有效提升电机和伺服系统的快速性、稳定性及抗干扰能力。虽然该算法在控制电机上有较好的性能,但训练时存在对超参数敏感、探索能力弱、容易陷入局部最优和过估计等问题,进而导致网络训练过拟合以及收敛较慢。
综上所述,针对上述方法的不足,本文引入最大熵DRL算法(soft actor-critic,SAC),该方法具有较好的探索能力、鲁棒性和泛化能力。另外,其在目标函数中加入信息熵,使策略更加随机化,当系统面对干扰时更容易做出调整,与此同时还能提高训练速度。因此,本文通过建立PMSM数学模型,根据模型特点确定q轴电压为动作输出,设计奖励函数,并通过系统数据训练得到SAC代理直接替换传统PID控制中的速度环实现PMSM的智能控制。
本文智能控制的对象为PMSM,首先给出PMSM的数学模型,然后在MATLAB/Simulink上搭建仿真环境。由于直接对PMSM微分方程进行分析较为复杂,所以采用坐标变化法对其进行简化[14]。因此,本文只对d-q轴进行分析,d-q轴下电机的电压方程为:
(1)
此外,d-q轴下磁链方程为:
(2)
将式(2)代入式(1)得到:
(3)
式中:ud、uq表示d、q轴的电压,id、iq表示d、q轴的电流,Ld、Lq表示d、q轴的电感,ψd、ψq表示d、q轴的磁链,ψf表示永磁体磁链,Rs表示定子电阻,ωe表示电机的电角速度。
在PID控制中,通常需用控制电流的方式实现电子换相功能,但从式(3)中可知,d-q轴电流具有较强的耦合关系。为实现d-q轴电流静态解耦,需要将d轴电流设置为id=0,因此得到:
(4)
根据式(4)可知,d轴电压仅与iq有关,仅控制iq就能得到转矩大小。并且当id=0时也可降低PMSM的损耗。基于以上讨论,建立了PMSM模型,为后续搭建仿真环境奠定基础。
SAC是一种DRL算法,它具有稳定性好、探索能力强和鲁棒性高等特点,可以有效防止策略过早地收敛到一个糟糕的局部最优解[15]。同时,SAC克服了DQN以及DDPG算法在智能控制中存在的不足。因此,本文提出一种用SAC算法实现PMSM的智能控制方法。图1为基于SAC智能控制的原理图。由图1可知,将基于SAC智能控制分为两个模块,首先是SAC智能控制器模块,该模块替换传统PID控制中的速度环直接输出q轴电压。紧接着将d-q轴电压经过坐标转换、空间矢量脉宽调制模块和逆变器实现控制PMSM,并通过PMSM反馈实际电机转速实现智能控制。
图1 基于SAC智能控制原理
对于传统PID控制,当存在负载转矩无规则变化时,易导致控制系统出现超调现象。与传统PID不同,SAC智能控制器因引入最大熵可以使策略更加随机化,而且在训练时熵最大化使得策略可以更好的泛化各种扰动,使得在实验验证时即使出现负载转矩无规则变化等情况时,算法也不会出现超调现象。这表明该方法能充分利用系统输入输出数据之间的关系实现PMSM的高性能智能控制。
2.1.1 状态空间(State Space)
状态空间是环境中所有可能状态的集合,通过状态空间使PMSM能够制定更好的智能控制策略。
(5)
2.1.2 动作空间(Action Space)
动作是智能体根据状态做出的决策。在本文的SAC智能控制器中,将uq作为连续动作输出,与DDPG智能控制的确定性策略方法相比,SAC智能控制器是随机策略方法,每个状态下输出的动作不同,可以增加智能控制器的抗干扰能力,使PMSM控制系统更稳定。因此本文动作空间定义为:
at={uq}
(6)
2.1.3 奖励函数(Reward Function)
奖励为智能体在当前状态st下采取某个动作at后环境给予的反馈信号。奖励值越大,表明在当前状态下采取该动作是有利的;相反则表明动作与实际输出存在较大误差。为了提高PMSM的控制性能,本文中奖励定义为:
(7)
式中:|e(t)|表示参考速度与实际速度之间的误差,通过大量实验验证,当ε=-1/1000,χ=2000,η=-100时,所得到的奖励函数能较好的引导SAC代理找到最优策略。当误差绝对值大于χ=2000时,将会得到η=-100的负奖励,表明此时的动作在当前状态下已偏离正确动作范围,即惩罚。当误差绝对值小于χ=2000时表明智能体在学习正确的策略,能够做出正确动作,此时得到正奖励。
对于传统的DRL算法,如DQN、DDPG等,其学习目标是直接学习一个策略使得累加的奖励期望值最大化为:
(8)
但SAC与一般DRL算法存在区别,前者将信息熵加入到目标函数中作为待优化的目标之一。具体地,SAC尝试让智能体的预期回报最大化,同时也让策略熵最大化,即在最大化奖励的同时使智能体尽可能采取随机的动作,以增加智能体的鲁棒性和探索能力[16]。SAC的优化目标为:
(9)
式中:π*表示最优策略,st和at分别为t时刻的状态值和动作值,H(π(·|st))表示在st时,策略π采取动作的熵值,熵值越高表明策略给出的动作不确定性越大,从而获得更强的鲁棒性和探索能力。为了控制熵对策略的影响,引入温度系数α进行调控,其决定熵相对于奖励的重要程度,控制策略的随机程度[17]。
SAC算法包含1个Actor网络和4个Qi(i=1,2)Critic网络。Actor负责与PMSM环境交互,QiCritic负责辅助Actor的训练,指导Actor执行较好的行为策略。其算法的迭代过程主要分为两个阶段,即策略评估和策略提升,具体过程如图2所示。
图2 SAC算法流程图
根据图2可知,Actor观察环境状态st,并依据当前状态st执行动作at,当前动作at作用于环境后,使环境状态发生改变并进入下一状态st+1,同时获得环境反馈的奖励rt。定义et={st,at,st+1,rt}表示一条经验样本数据,并将其存入经验池(experience replay buffer,ERB)中以供网络参数的训练更新。当ERB中存储的样本数据达到一定数量后,从ERB中随机取出小批量样本(mini-batch)分别更新Actor和QiCritic网络参数。而对于QiCritic目标网络参数是定期的把QiCritic网络的参数以软更新的方式进行。
(1)策略评估。策略评估指在策略网络Actor的网络参数固定不变的情况下,更新软QiCritic网络参数的过程。因此,对于SAC中的软Qi函数Qθ(st,at)需要更新的网络参数为θ。软Qi函数使用软贝尔曼残差最小为:
(10)
V(st)=Eat~π[Q(st,at)-αlogπ(at|st)]
(11)
同时对参数θ的更新方式是使用梯度进行优化:
(12)
(13)
(2)策略提升。策略提升指在软QCritic网络参数不变的情况下,更新策略网络Actor的网络参数的过程。具体为使用式(9)求解最大化熵正则化奖励的优化。其优化过程为:
(14)
式中:Z(s)是归一化常数,表示为:
(15)
为使网络的参数是正向更新的,即当前更新步的参数相比于前一更新步的参数更优。因此,使用KL(kullback leibler,KL)散度衡量前后更新步网络参数的差异[16]为:
(16)
软策略迭代拓展到更实用的函数近似设定下时,它采用在价值函数和策略函数之间进行交替优化的方式学习,而不仅仅通过估计策略π的Q值来提升策略。与确定性策略算法相比,SAC网络输出的并不是一个确定的可执行动作,而是一个分布函数,对分布函数进行采样得到可执行的动作。控制策略的目标函数为:
Jπ(φ)=Est~D[Eat~πφ[αlog(πφ(at|st))-Qθ(st,at)]]
(17)
由于SAC中Actor网络输出的策略是一个分布,动作at是根据策略采样得到,无法对其进行直接求导,因此需使用重新参数化技巧进行重构[16]为:
at=fφ(εt,st)
(18)
式中:εt是一个单位高斯分布,f是一个关于ε的表达式。通过式(18)得到控制策略的优化目标函数为:
Jπ(φ)=Est~D,εt~N[αlog(πφ(fφ(εt;st|st))-
Qθ(st,fφ(εt;st))]
(19)
同理,利用式(19)即可对参数φ使用随机梯度进行优化得到:
(20)
式中:▽φ表示对φ进行求导,▽at表示对at进行求导。类似地,策略网络更新其网络参数的实现过程为:
(21)
随着策略逐渐变得更好,熵可能会在任务之间和训练期间发生不可预测的变化。此时,需要自动更新超参数温度系数α,在最大化预期收益的同时策略应该满足最小熵的约束。通过最小化相同的目标函数来学习每一步的最佳温度参数,即可得到计算α的梯度目标为:
(22)
同理,温度系数α更新其网络参数的实现过程为:
(23)
最后得到更新目标网络权重的实现过程为:
(24)
式中:τ表示目标网络更新步长。综上所述,本文基于SAC智能控制算法具体过程如表1所示。
表1 最大熵SAC智能控制算法
本文使用MATLAB/Simulink对SAC智能控制算法进行仿真分析。在本节中,首先需要根据第一节所建立的数学模型搭建仿真环境,搭建仿真环境使用的主要参数如表2所示。
表2 永磁同步电机参数
利用表2参数在MATLAB/Simulink上搭建仿真环境,图3为SAC智能控制系统架构图。
图3 SAC智能控制系统架构图
根据图3可知,SAC智能控制系统架构包含3个模块,分别是PMSM模块、处理模块和DRL代理模块。其中,PMSM模块包括环境的内部信息,当其运行时,将产生式(5)中定义的环境状态信息并提交给处理模块。处理模块将处理环境观测信息st,并反馈DRL代理模块做出的决策动作所得到的奖励rt以及是否终止训练等信息。DRL代理模块则根据处理模块中的观测信息st,做出具体的速度控制策略,输出具体的电压值uq。
另外,在本文搭建的DRL代理网络模型包含一个输入层、一个隐藏层和一个输出层,且相关层的主要网络参数说明如表3所示。
表3 SAC智能控制器的训练参数
本文在恒速和变速条件下,比较并分析了传统PID控制、DDPG智能控制方法和SAC智能控制方法的性能,验证了SAC智能控制适用于PMSM调速系统。
3.2.1 恒速
考虑到负载对系统的干扰,本文将电机的给定转速设置为Nref=1000 r/min的恒速状态,分别对比空载、负载和负载突变情况下上述3种方法的控制性能。其中,蓝线表示设置的参考值,绿色虚线表示传统PID控制,红色虚线表示SAC智能控制以及黑色虚线表示DDPG智能控制。当负载转矩TL=0 N·m,此时空载启动的仿真结果如图4所示。
图4 恒速空载速度对比图 图5 恒速负载速度对比图
从图4可知,在空载下启动,就波动幅度和跟踪速度而言,PID的最大速度误差和收敛时间分别约为200 rpm和0.12 s。DDPG的最大速度误差和收敛时间分别约为150 rpm和0.09 s。而SAC的最大速度误差和收敛时间最小分别约为90 rpm和0.05 s。
当负载转矩设置为TL=50 N·m,在负载下的仿真结果如图5所示。
从图5可知,在负载下启动,波动幅度和收敛时间分别是PID的最大速度误差和收敛时间分别约为270 rpm和0.15 s。DDPG的最大速度误差和收敛时间分别约为210 rpm和0.13 s。而SAC的最大速度误差和收敛时间最小,分别约为180 rpm和0.1 s。综上分析表明SAC智能控制器没有实现速度超调,能快速跟踪到参考速度。
当负载转矩启动时TL=0 N·m,在0.5 s时突变为TL=50 N·m,如图6所示为3种方法的对比结果图。
图6 恒速负载突变速度对比图
从图6可知,箭头所指为负载转矩TL在0.5 s时突变的放大。在0 s时波动幅度和收敛时间与图4、图5分析一致。在0.5 s时负载转矩突变,3种算法均发生不同幅度的波动,PID的波动幅度最大速度误差约为18 rpm;DDPG波动幅度最大速度误差约为7 rpm,而SAC的波动幅度最大速度误差约为5 rpm,是3种方法里最稳定的。从以上分析结果表明,在突变负载的条件下,SAC具有较好的抗干扰能力和鲁棒性。
3.2.2 变速
为进一步证明所提出的SAC智能控制方案的有效性,本文的另一种工况是转速基于正弦波变化。其中,给定的参考转速信号振幅在[500,1500] rpm之间呈正弦规律变化,正弦波的交流频率为10 Hz。
与恒速验证的情况相同,首先是负载转矩TL=0 N·m,空载启动得到速度的变化情况如图7所示。
图7 变速空载速度对比图 图8 变速负载速度对比图
另一种是负载转矩变为TL=50 N·m,其速度的变化情况如图8所示。
从图7和图8可以清晰地观察到。在初始启动时,SAC智能控制的跟踪性能明显优于另两种方法。传统的PID方法不能及时跟踪设定的正弦参考速度信号,在图7、图8中PID方法最大的速度误差约为200 rpm,图7需要0.1 s才收敛至参考速度,图8需要0.15 s才收敛。与此相对应的是DDPG,波动幅度最大的速度误差是105 rpm,收敛时间约为0.09 s。但SAC的波动幅度最小,最大的速度误差才85 rpm,收敛时间约为0.07 s即可快速收敛至参考值。综上分析可知,即使转速成正弦波变化,无论是空载启动还是在负载的情况下,SAC依然能够快速跟踪到设定的参考速度信号。
最后是负载转矩在启动时TL=0 N·m,到0.5 s时突变为TL=50 N·m。如图9所示为3种方法的实验结果对比图。
图9 变速负载突变速度对比图
从图9可知,在0 s时波动幅度和收敛时间与图7、图8相同。与此同时,当负载转矩TL在0.5 s突变时,PID方法出现较大波动且需要0.1 s后才能再次收敛至参考值。但基于DDPG和SAC的智能控制却能保持很好的稳定性,这表明智能控制在存在负载转矩突变的情况下也没有实现超调并且具有很好的跟踪性能。
根据以上仿真结果分析可知,SAC智能控制方法相比于传统的PID控制方法和DDPG方法而言,该方法在平均最大速度误差分别提高约54.8%和24%,平均收敛时间分别提高约37.8%和27.8%。这表明SAC控制在遵循参考速度时具有更好的稳定性和更高的跟踪精度。此外,它可以显著提高在负载转矩突变等干扰下的鲁棒性,增加了PMSM速度控制系统的整体伺服性能。
本文针对永磁同步电机存在干扰大、参数时变等导致传统PID方法难以满足系统控制需求问题。通过引入SAC算法,替换传统PID控制中的速度环,直接输出电压实现智能控制。首先建立永磁同步电机数学模型,然后设计SAC智能控制器,并在MATLAB/Simulink搭建仿真模型,最后在变负载和变转速的不同情况下实现3种方法的实验对比。实验结果表明,相较于PID方法和DDPG智能控制而言,SAC智能控制方法可以增强对负载扰动的鲁棒性,具有较好的稳定性,能够提高PMSM速度控制系统的跟踪性能。