0 引言
PID控制具有鲁棒性高且易于操作等优点,是现在工业中广泛应用的一种控制方法[1].传统PID的参数一旦确定就无法在线调整,难以满足时变系统的控制要求.自适应PID在传统PID的基础上引入了在线调参的思想,使其能够根据系统状态的变化调整PID参数,提高了系统的响应速度.目前应用比较广泛的自适应PID控制器有:模糊PID控制器[2],它以误差和误差变化率作为输入,通过查询模糊矩阵表进行参数调整,从而满足PID参数自整定的要求,但这种设计方法需要较多的先验知识,存在大量的参数优化问题[3];基于神经网络的自适应PID控制[4-5],利用神经网络对非线性结构的良好逼近能力,无需辨识复杂的非线性被控对象就能够达到有效的控制,但是监督学习中的教师信号难以获取[6];强化学习自适应PID控制器[7-8],利用强化学习非监督特性解决了教师信号难以获取的问题,而且控制过程无需复杂的参数优化.其中执行器—评价器(Actor-Critic,AC)自适应PID[9-10]是应用最为广泛的强化学习控制器,但由于AC算法中前后学习数据的相互关联,影响了控制器的收敛速度[11]. Google的DeepMind团队提出的异步优势执行器评价器(Asynchronous Advantage Actor-Critic,A3C)学习算法[12].利用CPU多线程并行的特性,异步地训练多个智能体(agent),并行中的agent会经历不同的学习状态,从而打破了学习样本的相关性[13],这种高效的异步结构执行方式已经应用到多个领域[14-15].
本文结合A3C结构多线程异步训练的方式以及其自身的无模型在线学习能力,自适应调整PID参数,研究提出一种基于异步优势执行器评价器的自适应PID控制器设计方法,并在仿真实验中验证了该方法的优越性和有效性.
1 PID控制器基本结构形式典型的控制系统结构如图 1所示.增量式PID[16]是一种通过对控制量的增量进行PID控制的算法,计算公式如式(1):
(1) |
其中:
其中, y′(t)表示当前的实际信号值,y(t)表示当前系统的输出值,e(t)表示当前误差,Δe(t)为一次误差,Δ2e(t)为二次误差.
2 A3C学习的自适应PID控制A3C算法是一种深度强化学习算法,该算法在Actor-Critic框架基础上引入了异步训练的思想,在提升性能的同时大大加快了训练速度. A3C学习框架由一个中央网络(global net)和多个Actor-Critic结构组成,系统通过创建多个agent在多个环境实例中并行执行和学习.中央网络负责更新和存储Actor-Critic网络参数,不同agent将学习数据传递给中央网络用以更新自身参数.其中,Actor负责学习策略,而Critic负责估计价值函数.
2.1 A3C-PID控制器结构基于A3C学习的自适应PID控制器的设计思路就是在增量式PID控制器的基础上结合了A3C异步学习结构,其结构设计图 2所示.
在图 2中,对于每一个agent,初始化误差em(t)经状态转换器计算出Δem(t)、Δ2em(t)以生成状态向量Sm(t)=[em(t),Δem(t),Δ2em(t)]T用于表示不同时刻的系统状态特征. Actor(m)通过神经网络将状态向量Sm(t)映射成PID控制器的kP、kI、kD三个参数值,新的参数作用于增量式PID控制器从而产生控制量增量,系统计算下一时刻的误差em(t+1)并根据式(2)计算奖励值rm(t),以此完成一步样本采样.待系统完成n步采样后,Critic(m)输出状态的估计值V(St+n,W′v)并计算n步TD误差值δTD.其中,V(St+n,W′v)和δTD作为评判Actor网络在t时刻决策优劣程度的重要依据. Global Net将Actor(m)网络参数W′a、Critic(m)网络参数W′v以及δTD作为学习样本并.按照策略梯度和梯度下降的方式分别更新自身的Wa、Wv参数.参数更新后,Global Net将Wa和Wv传递给Actor(m)和Critic(m)从而实现了AC网络的异步更新.
(2) |
多层前馈神经网络[17]又称BP神经网,是一种多层前向网络的反向传播算法,具有较强的非线性映射能力,适合于求解内部机制复杂的问题.因此,本文使用两个BP神经网络分别实现Actor策略函数和Critic值函数的学习,其网络结构如图 3、图 4所示.
如图 3所示,Actor网络共有3层:
第1层为输入层,输入向量为系统的状态向量,可表示为Sm(t)=[em(t),Δem(t),Δ2em(t)]T.
第2层为隐藏层,隐藏层的输入如式(3)
(3) |
其中,k表示隐藏层神经元的个数.隐藏层的输出如式(4)
(4) |
第3层为输出层,输出层的输入如式(5)
(5) |
输出层的输出如式(6)
(6) |
Actor网络并不是直接输出kP、kI、kD值而是输出这3个参数的均值和方差,最终通过高斯分布估计出kP、kI、kD的实际值. Critic网络结构同样采用三层BP神经网络表示,结构如图 4所示,前两层的结构与Actor网络前两层结构相同,不同在于Critic网络的输出层只有一个节点,输出了不同时刻状态的值函数V(St,W′v).
在A3C结构中,Actor与Critic网络均采用n步TD误差的方法[18-19]来学习动作概率函数和值函数.在n步TD学习算法中,TD误差δTD的计算由起始状态St的状态估计值V(St+n,W′v)与n步后样本的估计值qt的差分实现,即式(7):
(7) |
其中,0 < γ < 1,表示折扣因子,用来确定延迟回报与立即回报的比例,W′v为Critic网络权值.误差δTD反应了Actor网络所选动作的优劣程度,系统学习的性能指标为式(8)
(8) |
在计算出TD误差后,A3C结构中的每个Actor-Critic网络并不会直接更新自身的网络权值,而是用自身的梯度去更新中央网络存储的Actor-Critic网络参数,更新公式见式(9)、式(10):
(9) |
(10) |
其中,Wa为中央网络存储的Actor网络权值,W′a表示每个AC结构的Actor网络的权值,Wv为中央网络存储的Critic网络权值,W′v表示每个AC结构的Critic网络权值,αa为Actor的学习率,αc为Critic的学习率.
2.3 控制系统收敛性分析控制系统的收敛性取决于网络的学习率,以下利用李亚普诺夫稳定性原理确保控制系统在学习过程中收敛.定义李亚普诺夫函数:
(11) |
令
其中,δTD(n0+n)=δTD(n0)+ΔδTD(n0),TD误差变化量
若使ΔL(n0) < 0,则只需满足
网络的初始参数直接影响了闭环控制系统的稳定性,神经网络PID控制由于教师信号难以获取,需要按照经验或人工试凑确定网络参数.强化学习的非监督学习特性使得控制器通过K次迭代学习便可获取最优的网络初始参数.然而,AC-PID控制器由于AC算法获取的学习样本具有前后关联性,导致了较慢的收敛速度. A3C-PID在多线程中异步学习网络参数,破坏了样本关联性,提高了收敛速率. A3C-PID网络参数学习过程与2.1节中叙述相似,但不同在于A3C-PID在迭代学习时设置m值大于2,而当A3C-PID在线控制时m值为1.
2.5 A3C-PID控制器设计流程基于A3C并行学习的体系结构和以n步TD误差为性能指标的网络学习方式,归纳出A3C-PID控制器的设计流程如下:
a) 设置采样周期ts,A3C算法的线程个数m,更新周期n,通过K次迭代学习,初始化每个AC结构的网络参数;
b) 计算系统误差em(t),构造出系统状态向量Sm(t),作为Actor(m)和Critic(m)的输入;
c) Critic(m)输出V(St,W′v);
d) Actor(m)输出kP、kI、kD值,根据式(1)计算系统输出um(t),并观测下一采样时间系统误差em(t+1),根据式(2)计算奖励值函数rm(t);
e) 判断是否更新Actor、Critic参数,若达到更新条件,Critic输出状态估计值V(St+n,W′v)根据式(9)和式(10)更新Global Net参数Wa和Wc,否则更新Sm(t)并返回步骤d);
f) Global Net传递Actor(m)和Critic(m)新的参数值W′am和W′cm;
g) 判断是否满足控制结束条件,若满足结束条件,退出控制,否则更新并Sm(t)返回步骤c).
3 PID控制仿真实验为验证本文算法的有效性和优越性,分别基于BP-PID、AC-PID和A3C-PID对于非线性对象[16]进行仿真分析,该对象的离散模型为
(12) |
其中,
(13) |
参数设置如下:采样周期为1 s,m=4,αa=0.001,αc=0.01,ε=0.001,γ=0.9,n=30,K=3000,用均方根误差(RMSE)和算术平均误差(MAE)来描述控制器的精度,仿真结果如图 5~图 7和表 1所示.
仿真结果可以看出,A3C-PID控制器的均方根误差(RMSE)和平均绝对误差(MAE)值达到了最低.相比其他两种控制器,A3C-PID具有更高的控制精度.
4 二相混合式步进电机位置控制 4.1 步进电机闭环控制结构步进电机是一种低速永磁同步电机,它以脉冲序列作为输入,通过改变励磁状态实现角度执行元件,常应用于数字控制系统.步进电机通常在闭环控制中加入光电编码器、旋转变压器等测量反馈元件以实现高精度定位控制,其闭环伺服控制系统组成框图见图 8,闭环内环为电流环和速度环,电流环以实现二相混合式步进电机绕组电流对给定电流的跟踪,使二相混合式步进电机在微步驱动下平稳输出转矩;速度环控制使负载电能够跟踪设定速度,达到速度控制的效果.外环为位置环,目的是使负载输出跟踪给定位置,位置环控制器通常采用PID控制.因此,本文在位置环中加入A3C-PID以测试控制器的有效性.
4.2 二相混合步进电机建模与仿真本文采用应用较为广泛的二相混合步进电机进行控制仿真实验,首先需要对其建立数学模型,由于二相混合式步进电机是高度非线性的机电装置,对其进行精确描述存在各种困难,因此本文在研究二相混合式步进电机的数学模型时对其进行如下简化和假定:近似永磁体磁链在相绕组中产生的磁链随转子位置按正弦规律变化;不考虑磁滞和涡流效应,只考虑气隙磁导的平均分量和基波分量;忽略二相绕组间互感.在以上限定基础上,二相混合式步进电机额数学模型可按式(14)~式(18)描述,数学模型主要包括基本电路方程和机械运动方程.
(14) |
(15) |
(16) |
(17) |
(18) |
式中,ua、ub及ia、ib分别为A、B两相的电压和电流;R为绕组电阻,L为绕组电感;ke为转矩系数;θ、ω分别为电机转动角度及转动角速度;Nr为转子齿数;Te为混合式步进电动机的电磁转矩;TL为负载转矩;J、B分别为负载转动惯量和粘滞摩擦系数.从二相混合式步进电机的数学模型可以看出,二相混合式步进电机在一系列简化条件下仍是一个高度非线性、耦合性的系统.
在Matlab中使用Simulink仿真工具搭建二相混合式步进电机伺服控制系统的仿真模型,如图 9.
电机参数选取如下:L=0.5 H,Nr=50,R=8 Ω,J=2 g·cm2,B=0 N·m·s/rad,N=100,TL=0,ke=17.5 N·m/A,其中N为谐波减速器的减速比. A3C-PID控制器参数设置如下:m=4,αa=0.001,ts=0.001 s,αc=0.01,ε=0.001,γ=0.9,n=30,K=3 000.仿真结果见图 10~12及表 2.
控制器 | 超调量 /% | 上升时间 /ms | 稳态误差 | 调节时间 /ms |
A3C-PID | 0.127 1 | 18 | 0 | 33 |
AC-PID | 0.102 1 | 21 | 0 | 48 |
BP-PID | 2.170 5 | 12 | 0 | 32 |
图 10为A3C,BP,AC自适应PID控制器对于参考模型的位置跟踪;表 1为控制器性能对比.从表 1可以看到,3个控制器都有着较好的控制精度,即稳态误差都为0.动态性能方面,见图 10.在仿真初期(大约20个仿真周期内),BP-PID控制器有着更快的响应速度,上升时间更短,为12 ms,但是BP-PID具有2.170 5%的较高超调量.相反AC-PID和A3C-PID都具有较小的0.127 1%和0.102 1%的超调,但是AC-PID的调节时间较长,为48 ms,上升时间21 ms.相比之下,A3C-PID控制器有着更好的控制稳定性和快速性.
图 11为A3C-PID控制器参数自适应变换的过程.由图 11可以看出,A3C-PID控制器能够根据不同周期内的误差调整PID参数值.在仿真开始,系统跟踪误差较大,为保证系统有较快的响应速度,kP不断增大,kD减小,同时避免系统出现较高的超调量,限制了kI的增加;随着误差不断减小,kP开始减小,为消除累计误差kI值逐渐增加,但同时造成了少量的超调,由于此阶段kD值于系统影响较大,所以趋于稳定;最终跟踪误差为0,kP、kI、kD值达到稳定状态.仿真结果可以看出,A3C-PID控制器有着良好的自适应能力.
强化学习的目标是学习最优策略从而最大化由起始状态到终止状态的折扣回报值U,计算公式见式(19).
(19) |
图 12为AC-PID与A3C-PID折扣回报值曲线.从图 7可以看出,在进行3 000次迭代训练后,A3C-PID相比AC- PID获得了更高的回报值.除此之外,A3C-PID在约1 800次迭代训练后渐渐趋于稳定状态,而AC-PID在2 500次迭代后才出现收敛的趋势.由此可得,A3C-PID相比AC-PID有着更快的收敛速度.
5 结论本文详细分析了多种自适应PID控制器,并在增量式PID控制器的基础上引入了A3C的异步学习体系.结合该体系,把多个AC结构置于相同环境中并行进行学习,为使控制器搜索到最优整定策略,使用BP神经网逼近每个AC结构中的策略函数和值函数,并采用n步TD学习策略和Global Net机制异步更新Actor-Critic参数.多个仿真实验验证了A3C-PID有着较好的收敛速度和自适应能力,对于非线性系统具有良好的系统跟踪性能.由此可见,本文提出了一种有效的自适应PID控制器,可应用于电机控制等工业领域.
[1] | Adel T, Abdelkader C. A particle swarm optimization approach for optimum design of PID controller for nonlinear systems[C]//International Conference on Electrical Engineering and Software Applications. Piscataway, NJ, USA: IEEE, 2013: 1-4. |
[2] | Savran A. A multivariable predictive fuzzy PID control system[J]. Applied Soft Computing, 2013, 13(5): 2658–2667. DOI:10.1016/j.asoc.2012.11.021 |
[3] |
谢朝杰, 保宏, 杜敬利, 等.
一种新隶属度函数在非线性变增益模糊PID控制中的应用[J]. 信息与控制, 2014, 2014(5): 1–7.
Xie Z J, Bao H, Du J L, et al. Application of a new membership function in nonlinear fuzzy PID controllers with variable gains[J]. Information & Control, 2014, 2014(5): 1–7. |
[4] | Patel R, Kumar V. Multilayer neuro PID controller based on back propagation algorithm[J]. Procedia Computer Science, 2015, 54: 207–214. DOI:10.1016/j.procs.2015.06.023 |
[5] |
李草苍, 张翠芳.
基于最小资源分配网络的自适应PID控制[J]. 计算机应用研究, 2015, 32(1): 167–169.
Li C C, Zhang C F. Adaptive neuron PID control based on minimum resource allocation network[J]. Application Research of Computers, 2015, 32(1): 167–169. DOI:10.3969/j.issn.1001-3695.2015.01.037 |
[6] | Wang X S, Cheng Y H, Wei S. A proposal of adaptive PID controller based on reinforcement learning[J]. Journal of China University of Mining & Technology, 2007, 17(1): 40–44. |
[7] | Shang X Y, Ji T Y, Li M S, et al. Parameter optimization of PID controllers by reinforcement learning[C]//Computer Science and Electronic Engineering Conference. Piscataway, NJ, USA: IEEE, 2013: 77-81. |
[8] | Sedighizadeh M, Rezazadeh A. Adaptive PID controller based on reinforcement learning for wind turbine control[C]//Proceedings of World Academy of Science, Engineering and Technology. Piscataway, NJ, USA: IEEE, 2008: 257-262. |
[9] |
陈学松, 杨宜民.
基于执行器-评价器学习的自适应PID控制[J]. 控制理论与应用, 2011, 28(8): 1187–1192.
Chen X S, Yang Y M. A novel adaptive PID controller based on actor-critic learning[J]. Control Theory & Applications, 2011, 28(8): 1187–1192. |
[10] | Akbarimajd A. Reinforcement learning adaptive PID controller for an under-actuated robot arm[J]. International Journal of Integrated Engineering, 2015, 7(2): 20–27. |
[11] | Wang Z, Bapst V, Heess N, et al. Sample efficient actor-critic with experience replay[J]. arXiv preprint arXiv: 1611.01224, 2016. |
[12] | Mnih V, Badia A P, Mirza M, et al. Asynchronous methods for deep reinforcement learning[C]//International Conference on Machine Learning. Piscataway, NJ, USA: IEEE, 2016: 1928-1937. |
[13] |
刘全, 翟建伟, 章宗长, 等.
深度强化学习综述[J]. 计算机学报, 2018, 41(1): 1–27.
Liu Q, Zhai J W, Zhang Z Z, et al. A survey on deep reinforcement learning[J]. Chinese Journal of Computers, 2018, 41(1): 1–27. |
[14] | Lai M. Giraffe: Using deep reinforcement learning to play chess[J]. arXiv preprint arXiv: 1509.01549, 2015. |
[15] |
秦蕊, 曾帅, 李娟娟, 等.
基于深度强化学习的平行企业资源计划[J]. 自动化学报, 2017, 43(9): 1588–1596.
Qin R, Zeng S, Li J J, et al. Parallel enterprises resource planning based on deep reinforcement learning[J]. Acta Automatica Sinica, 2017, 43(9): 1588–1596. |
[16] |
文波, 孟令军, 张晓春, 等.
基于增量式PID算法的水温自动控制器设计[J]. 仪表技术与传感器, 2015(12): 113–116.
Wen B, Meng L J, Zhang X C, et al. Design of water temperature automatic controller based on incremental PID algorithm[J]. Instrument Technique & Sensor, 2015(12): 113–116. DOI:10.3969/j.issn.1002-1841.2015.12.033 |
[17] |
刘智斌, 曾晓勤, 刘惠义, 等.
基于BP神经网络的双层启发式强化学习方法[J]. 计算机研究与发展, 2015, 52(3): 579–587.
Liu Z B, Zeng X Q, Liu H Y, et al. A heuristic two-layer reinforcement learning algorithm based on BP neural networks[J]. Journal of Computer Research & Development, 2015, 52(3): 579–587. |
[18] | Xu X, Zuo L, Huang Z. Reinforcement learning algorithms with function approximation:Recent advances and applications[J]. Information Sciences, 2014, 261: 1–31. DOI:10.1016/j.ins.2013.08.037 |
[19] | Seijen H, Sutton R. True online TD (lambda)[C]//International Conference on Machine Learning. Piscataway, NJ, USA: IEEE, 2014: 692-700. |