一种并行优化的强化学习自适应PID控制方法与流程

文档序号:14389453阅读:5113来源:国知局
一种并行优化的强化学习自适应PID控制方法与流程

本发明涉及一种自适应pid控制方法,属于控制类技术领域,具体地说是一种基于并行优化的执行器评价器的改进的自适应pid(比例-积分-微分)控制算法。



背景技术:

pid(proportional/integral/differential;比例/积分/微分)控制系统,是一种线性控制器,依据偏差原理进行控制的,由于它的原理简单、鲁棒性强、整定简单以及不需要得到对象的精确数学模型等优点,已成为工业控制中最常用的一种控制系统。在pid控制系统参数整定的工程实践中,特别是关于线性、时不变、弱时滞系统的pid控制参数整定的工程实践中,传统整定方法取得了丰富的经验,并得到广泛的应用。然而在实际工业过程控制工程实践中,许多被控制对象具有时变不确定性、纯滞后等特征,控制过程机理较复杂;在噪声、负载扰动等因素的影响下,过程参数、甚至模型结构,均会发生变化。由此要求在pid参数能够实现在线调整以满足实时控制的要求。此种情况下,传统参数整定方法则难以满足工程实践的要求,显现出很大的局限性。

自适应pid控制技术是解决此类问题的一种有效途径。自适应pid控制模型吸取了自适应控制思想和常规pid控制器两者的优点。首先,它是自适应控制器,具有自动辨识被控过程、自动整定控制器参数、能够适应被控过程参数变化等优点;其次,又具有常规pid控制器结构简单、鲁棒性好、可靠性高等优点。由于具有此种优势,使其成为工程实践中的一种理想的工业过程控制装置。自适应pid控制被提出后,便受到了广泛学者的研究,相继提出了模糊自适应pid控制器,神经网络自适应pid控制器,actor-critic自适应pid控制器。

例如文献1:刘国荣,阳宪惠.模糊自适应pid控制器[j].控制与决策,1995(6).中提出了基于模糊规则的自适应pid控制器,其主要思想是:当系统给定突变、出现状态干扰或结构干扰时,其瞬态响应可以分为9种情况,当在每个采样时刻获得了系统响应后,就可以根据此时刻系统响应偏离给定的情况及变化趋势,依据已有的系统控制知识,运用模糊控制方法,适当加大控制力度或减小控制力度,以扼制响应朝偏离给定的方向变化,使输出尽快趋于给定。但是这种控制方法需要专业人员的经验和参数优化才能控制复杂的系统,模糊规则设定的不准确控制效果则达不到满意的效果。

文献2廖芳芳,肖建.基于bp神经网络pid参数自整定的研究[j].系统仿真学报,2005提出了基于bp神经网络的自适应pid控制,其控制思想是:神经网络辨识器将控制偏差传回到神经网络自身神经元,从而修正其自身权值,对象的设定输入和对象的实际输出的偏差通过辨识器后反向传播给神经网络控制器,其利用误差信号对网络权值进行修正,经过多次学习,便能逐渐跟上系统的变化。该方法一般采用监督学习进行参数优化,但是教师信号难以获取。

文献3陈学松,杨宜民.基于执行器-评价器学习的自适应pid控制[j].控制理论与应用,2011提出了一种actor-critic结构的自适应pid控制。该控制思想为:利用ac学习的无模型在线学习能力,对pid参数进行自适应调整,采用一个rbf网络同时实现actor的策略函数和critic的值函数学习,解决了传统pid控制器不易在线实时整定参数的不足,且具有响应速度自适应能力强等优点。但是ac学习结构本身的不稳定性往往导致算法难以收敛。

专利cn201510492758公布了一种执行机构自适应pid控制方法,该控制方法结合了专家pid控制器和模糊pid控制器并且分别与执行机构连接,执行机构根据当前状态信息以及期望信息选择专家pid控制器或者模糊pid控制器,这种控制器虽然可以减小超调量,具有控制精度高的特点,但是这种控制器仍然需要专业人员的大量先验知识,来决策控制器的使用。



技术实现要素:

本发明目的:针对自适应pid控制的特点,提出了基于并行优化的执行器评价器学习的自适应pid控制(a3c)的方法,用于工业中对系统的控制。该发明较好地解决了以往自适应pid存在的问题,利用a3c学习的多线程并行学习的特性,提高了算法的稳定性和学习效率。基于a3c的自适应pid控制器具有响应速度快,自适应能力强,抗干扰能力强等优点。

基于并行优化的执行器评价器学习的自适应pid控制方法,包括以下步骤:

步骤s1:运用matlab(matlab,美国mathworks公司出品的商业数学软件)软件,定义一个被控制系统的任意阶连续传递函数,通过零阶保持器法将其离散化,得到一个自定义时间间隔的离散化传递函数,初始化控制器参数和m个控制线程进行并行学习,其中参数主要包括bp神经网络参数和pid控制环境参数,每一个线程为一个独立的控制agent;

步骤s2:在步骤s1,初始化bp神经网权值参数和pid控制器的控制对象后,定义一个离散的输入信号rin,将离散后的输入信号按照定义的时间间隔依次传入离散化后的传递函数,计算出传递函数的输出值,并把输入与输出信号的差值作为a3c自适应pid控制算法的输入向量x(t);

步骤s3:把步骤s2中得到的输入向量x(t)传入到搭建好的a3c自适应pid控制系统进行迭代训练,迭代n次后得到训练好的模型;

步骤s31:计算当前误差e(t)、一次误差δe(t)、二次误差δe2(t)作为算法的输入向量x(t)=[e(t),δe(t),δ2e(t)]t,并用sigmod函数对其归一化;

步骤s32:将输入向量传递给每一个线程的actor网络,并得到pid新的参数。actor网络并不是直接输出pid的参数值而是输出pid三个参数的高斯分布的均值和方差,通过三个参数的高斯分布估计出三个参数值,o=1,2,3时,输出层输出的是pid参数的均值,o=4,5,6时,输出的是pid参数的方差。其中actor网络是一个bp神经网络共3层:第1层为输入层,第2层为隐藏层的输入

隐藏层的输出hok(t)=min(max(hik(t),0),6)k=1,2,3…20

第3层为输出层,输出层的输入

输出层的输出

步骤s33:新的pid参数赋给控制器,得到控制输出,计算出控制误差,根据环境奖励函数r(t)计算出奖励值。r(t)=α1r1(t)+α2r2(t)到下一个状态的向量值x′(t);

步骤s34:将奖励函数r(t),当前状态向量x(t),下一个状态向量x′(t)传递给critic网络,critic网络结构与actor网络结构类似,区别在于输出结点只有一个。critic网络主要输出状态值并计算td误差,δtd=r(t)+γv(st+1,wv′)-v(st,wv′);

步骤s35:在计算出td误差后,a3c结构中的每个actor-critic网络并不会直接更新自身的网络权值,而是用自身的梯度去更新中央大脑(global-net)存储的actor-critic网络参数,更新方式为wv=wv+αcdwv,其中wa为中央大脑存储的actor网络权值,w′a为每个ac结构的actor网络的权值,wv为中央大脑存储的critic网络权值,w′v表示每个ac结构的critic网络权值,αa为actor的学习率,αc为critic的学习率,在更新之后中央大脑会传递给每个ac结构一个最新参数;

步骤s36:以上为完成一次训练过程,循环迭代n次,退出训练,保存模型。

步骤s4:使用训练好的模型进行控制测试,记录下输入信号,输出信号,pid参数的变化值;

步骤s41:使用步骤s1定义好的输入信号,传递到训练好的奖励函数最高的线程的控制模型;

步骤s42:s41后计算出当前、一次、二次误差作为输入向量,输入到选择好的控制模型,与训练过程不同的是,只需要actor网络输出的pid参数调整量,并把调整后的pid参数传递给控制器,得到控制器的输出;

步骤s43:保存步骤s42得到的输入信号,输出信号,以及pid参数变化值。

步骤s5:使用matlab可视化步骤s4得到的实验数据其中包括控制器的输入信号,输出信号,pid参数的变化值,并与模糊自适应pid控制,ac-pid自适应pid控制进行控制效果对比。

附图说明

附图1为本发明的处理流程示意图。

附图2为改进的自适应pid控制器结构图

附图3为采用跃阶信号作为输入信号,改进后的控制器的输出信号

附图4为改进后控制器的控制量

附图5为改进自适应pid控制器的控制误差

附图6为a3c自适应pid控制器的参数调整曲线

附图7为改进后控制器与模糊,ac结构自适应pid控制器的比较

附图8不同控制器控制实验对比与分析

具体实施方式

下面结合附图1-5,运用matlab软件,对本发明作进一步的描述:基于并行优化的执行器评价器学习的自适应pid控制,具体实施方案包括如下步骤,步骤如图1所示:

(1)参数初始化。被控制系统选为一个三阶传递函数,离散时间设为0.001s,采用z变化离散化后的传递函数为:yourt(k)=-den(2)yourt(k-1)-den(3)yourt(k-2)-den(4)yourt(k-1)+num(2)u(k-1)+num(3)u(k-2)+num(4)u(k-3),输入信号为值等于1.0的跃阶信号,单次训练步数为1000步,时间为1.0s,初始化4个线程代表4个独立的自适应pid控制器,进行训练。

(2)计算输入向量。t=0时e(t)=rin(0)-yourt(0)=1.0;e(t-1)=0;e(t-2)=0输入向量x(t)=[e(t),δe(t),δ2e(t)]t其中e(t)=rin-yourt=1.0δe(t)=e(t)-e(t-1)=1.0δ2e(t)=e(t)-2*e(t-1)+e(t-2)=1.0;计算的x(t)=[1.0,1.0,1.0]t经过sigmod函数归一化得最终的输入向量为x[t]=[0.73,0.73,0.73]t

(3)训练模型。改进的自适应pid控制器结构如图2所示,在计算出状态向量后,首先把状态向量传递给actor网络,actor网络输出p,i,d三个参数的均值μ和方差σ,根据高斯采样得出p,i,d的实际参数值,把新的参数值赋给增量式pid控制器,控制器根据误差和新的pid参数计算控制量u(t)

u(t)=u(t-1)+δu(t)=u(t-1)+ki(t)e(t)+kp(t)δe(t)+kd(t)δ2e(t)

控制量作用的离散后的传递函数,按照(1)的过程计算下一时刻t+1的输出信号值yourt(t+1)、误差值、状态向量。此外,环境奖励函数根据误差计算出控制agent的奖励值,奖励函数如下:

r(t)=α1r1(t)+α2r2(t)

其中α1=0.6,α2=0.4,e(t)=0.001

奖励函数是强化学习的重要组成部分,在得到奖励值后,把奖励值和下一时刻的状态向量传递给critic网络,critic网络输出t和t+1时刻的状态值,并计算出td误差,计算公式如下:δtd=r(t)+γv(st+1,wv′)-v(st,wv′),wv′为critic网络权值。因为线程的运算速度不是同步的,所以每个控制器不固定顺序得对图2中的globalnet中存储的actor网络和critic网络参数进行更新,更新公式为:其中wa为中央大脑存储的actor网络权值,w′a为每个ac结构的actor网络的权值,wv为中央大脑存储的critic网络权值,w′v表示每个ac结构的critic网络权值,αa=0.001为actor的学习率,αc=0.01为critic的学习率,在此已完成一次的训练,迭代3000次后,算法即可到达稳定的状态。

(4)采集实验数据。使用训练好的控制器模型,因为设定了4个线程进行控制训练,在控制测试的时候选取累计奖励最高的线程作为测试控制器。按照(1)中设定的控制参数进行控制测试,控制时长为1s,即进行1000次控制。按照(2)中的计算方式,计算状态向量,并且传入已经训练好的模型,在控制测试过程中,critic网络不再起作用,actor输出p,i,d参数值,在控制测试的过程中,把yourt,rin,u,p,i,d值保存用于可视化分析。

(5)数据可视化。将(4)中保存的数据利用matlab软件可视化工具,可视化分析:如附图3所示,附图3表示yourt的输出值,控制器可以在不到0.2s的时间内达到稳定状态并且具有很快的调节能力。附图4为控制器的控制量的输出信号,从图可得控制器可以很快的达到稳定的状态。附图5为控制器的控制误差,其中控制误差等于输入信号量减去输出信号量。附图6为控制器p,i,d参数的变化情况,可以看出在达到稳定之前3个参数存在着不同程度的调整,在系统稳定后,参数则不再变化。使用相同的控制对象和输入信号,对模糊自适应pid控制器和actor-critic自适应pid控制器进行实验对比,三种控制器的信号输出对比图可见附图7,详细控制分析可见附图8,如图8所示,本发明的控制器在不需要太多专业人员先验知识的同时,与模糊pid控制器同样有着较小的超调量但是响应速度更快,在比ac-pid控制器具有更快的学习速度的同时,超调量和响应速度都占有很大的优势。

本发明的目的是解决以往自适应pid控制器存在的问题,模糊自适应pid以及专家自适应pid控制器需要大量专业人员的相关知识,神经网络自适应pid控制器的教师信号难以获取,但是因为a3c学习结构是强化学习的一种学习算法,无需模型在线学习的能力不需要太多专业人员的先验知识和教师信号从而解决了模糊,专家自适应pid控制器和神经网络自适应pid控制器存在的问题。又因为该学习算法在cpu多线程并行学习大大提高了ac-pid控制器的学习速率,并有着更好的控制效果。具体控制效果比较可见附图7,附图7为选用的三种控制器:模糊pid控制器,ac-pid控制器以及本发明的a3c-pid控制器进行相同参数下的控制比较,详细控制分析可见附图8:本发明的控制器在不需要太多专业人员先验知识的同时,与模糊pid控制器同样有着较小的超调量但是响应速度更快,在比ac-pid控制器具有更快的学习速度的同时,超调量和响应速度都占有很大的优势。

本发明不局限于上述具体实施方式,根据上述内容,按照本领域的普通技术知识和惯用手段,在不脱离本发明上述基本技术思想前提下,本发明还可以做出其它多种形式的等效修改、替换或变更,均属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1