改进的BP神经网络PID控制器在气体浓度控制中的研究
2020-12-04胡晓兵周韶武
李 航, 杜 璠, 胡晓兵, 周韶武
(1.四川大学机械工程学院, 成都 610065; 2.四川航天长征装备制造有限公司, 成都 610065)
传统的PID控制器由比例、积分、微分三个控制部分组成,由于其算法简单,较为稳定,广泛应用于各个控制系统中.然而在动物缺氧实验气体控制过程中,由于传感器测量存在滞后性,内外部环境不断变化,以及控制对象不确定因素的增多,导致系统呈现出时变非线性的特点,此时使用传统PID 控制会出现较大的误差,无法达到理想的控制效果[1].因此,迫切需要对其进行改良和优化.BP神经网络具有较强的非线性映射能力和自适应能力,将传统PID 控制器与BP神经网络相结合,利用BP神经网络自动生成PID控制器中kp、ki、kd三个参数,能够提高系统的控制精度和适应能力[2-4],从而实现智能控制.
然而,BP神经网络存在着收敛速度慢,并且结果容易陷入局部最优解等问题.针对这些问题,文献[5]在BP神经网络训练时将学习率依照误差自动调整,得到了更快的收敛速度和更小的误差.文献[6]利用免疫遗传算法优化BP神经网络的权值,文献[7]将遗传算法与粒子群算法相结合,形成一种混合优化算法对BP神经网络进行优化改进,利用优化后的神经网络生成PID控制器的参数,实验结果显示,两种方法优化后的控制系统在控制精度和鲁棒性上都有较大提高.
为此,本文设计并提出了一种新型的基于改进的遗传算法优化的BP神经网络PID控制器(简称改进GA-BP-PID控制器).该控制器采用BP神经网络生成PID控制器各项参数,并提出一种改进的遗传算法优化神经网络的权重初始值.为了说明本文提出的改进GA-BP-PID控制器相较于传统的BP神经网络PID控制器(简称BP-PID控制器)具有更优的控制性能,本文以动物缺氧实验中气体浓度控制为例,对以上两种控制器进行仿真分析和比较.结果表明,本文提出的改进的控制器可以更加快速、精准地满足控制要求.
当供应组织的氧不足或组织利用氧障碍时,机体的机能、代谢以及形态结构发生异常变化的病理过程称为缺氧.在小鼠缺氧实验中,观察经缺氧环境刺激后小鼠的生理状态,对高原习服机制的研究具有重大的意义[8].针对这一需求,本文利用一款智能动物实验箱实现氧气浓度的调控,并利用该实验箱记录实验过程中氧气浓度的实时变化数据.实验箱示意图如图1所示.
图1 实验箱示意图Fig.1 Diagram of the experimental box
图2 氧气浓度变化曲线Fig.2 Oxygen concentration curve
实验开始时,外界环境氧气浓度为21%,设定箱体内部环境稳定时氧气浓度为10%,采样时间为1 s,得到各时刻氧气浓度变化数据,如图2所示.
由图2可知,控制过程中氧气浓度在稳定值附近不断振荡,最终并未稳定.系统响应是一条近似的S形单调曲线,且具有一阶延迟系统的特征,因此系统的传递函数可用以下式子近似表示.
(1)
式(1))中,K为静态增益;T为时间常数;τ为延迟时间.本文采用作图法求解相关参数[9].该方法计算简单、易于实现,具体做法是过曲线斜率最大点做切线,利用切线的交点找参数T与τ,静态增益K通过以下公式直接计算.
(2)
式(2)中,r为期望的输出信号;u(0)为初始值;u(∞)为输出稳态值.由图2可得T+τ=55 s,τ=10 s,u(∞)=11,u(0)=0,r=11,因此系统的传递函数表达式为
(3)
3 BP神经网络PID控制器
BP-PID控制器由PID控制器和BP神经网络两部分组成.传统PID控制器适用于简单的线性系统,但对于非线性、时变性的系统控制效果则不太理想.BP神经网络可以利用其自学习能力输出对应于某种最优控制率下的最优PID控制器参数组合以达到期望的控制效果[10-11].BP-PID控制器的整体架构如图3所示.
图3 BP神经网络PID控制器结构
3.1 增量式PID控制算法
传统PID控制器按照偏差的比例、积分和微分对系统进行控制,控制过程如图4所示.
图4 传统PID控制器控制流程
在实际控制过程中,为了降低累积误差的影响,通常采用增量式PID控制算法进行控制.增量式PID控制算法输出的是控制量增量,即在上一次控制量的基础上需要增加或减少的控制量[12],其表达式如下.
Δu(k)=kp[e(k)-e(k-1)]+kie(k)+
kd[e(k)-2e(k-1)+e(k-2)]
(4)
式中,Δu(k)为控制量增量;e(t)为偏差信号;kp为比例系数;ki为积分作用参数;kd为微分作用参数.e(k)=r(k)-y(k),r(k)为系统设定值,y(k)为当前控制对象状态值.由增量式PID控制算法可以看出,一旦确定出kp、ki、kd三个控制参数,利用前后三次采样值的偏差就可以计算出控制量增量,避免了误差的累积.
3.2 BP神经网络
BP神经网络包括输入层、隐藏层和输出层三大部分,网络中每一层的输出都是下一层的输入,其层级结构如图5所示.
图5 BP神经网络结构
其中,X=[x1,x2,…,xn]组成输入层,中间层为隐藏层,最后一层为输出层,负责计算输出Y=[y1,y2,…,ym].对于上述模型,隐藏层结果和最终输出可由以下式表示.
(5)
(6)
网络采用反向传播算法更新参数.首先计算出BP神经网络的损失函数J(Θ),再逐层反向求出J(Θ)对所有参数的偏导数,利用梯度下降算法更新网络参数.输出层参数更新算法过程如下式所示.
(7)
(8)
(9)
式中,J(Θ)代表BP神经网络的损失函数;yi为网络输出;α为学习速率.隐含层参数更新继续向前求偏导数.所有参数更新完后便进行下一次前向传播,直至损失值达到预期效果.
传统的BP神经网络的权重初始值是按照经验随机选取的,这种方法会导致网络的收敛速度和最终结果都存在较大程度的不稳定性.遗传算法具有很好的全局寻优性,利用遗传算法可以快速地搜索出BP 神经网络的最佳初始权重,从而加快网络的训练过程[13-14].但同时遗传算法也存在容易陷入局部最优解,稳定性差等缺点.因此本文提出一种改进的遗传算法,对初始种群的生成过程和交叉过程进行了优化,提高了算法的收敛速度和稳定性.
4.1 遗传算法
遗传算法是模拟生物进化论和遗传机理而形成的一种随机搜索最优解的方法,它把问题存在的所有可能解视作自然界的生物种群,种群中的所有个体按照设定方法进行编码,经过选择、交叉和变异操作后,利用适应度函数评价个体的优良程度,淘汰适应度较差的个体,这样反复循环,直到结果满足条件[15].与其他传统优化算法相比,遗传算法具有较好的收敛性和全局搜索能力,计算时间少,鲁棒性高.虽然遗传算法在许多领域中都有成功的应用,但其自身也存在着较多的缺陷,比如局部搜索能力差,交叉与变异算子具有双重性,并且随着迭代次数的增多,种群多样性也在随之减少,容易使结果陷入局部最优解.
4.2 遗传算法优化
为了确定BP神经网络的初始参数,传统遗传算法从随机初始化的数据中获取初始种群.由于初始种群范围较大,个体之间并无任何联系,导致寻优过程收敛速度较慢.在原有算法基础上,本文提出一种新的初始种群获取方法.
首先,在解空间内随机生成一定规模的M个个体,按照适应度函数取值搜索出得分最优的若干子N个个体组成新的种群,称其为初始优胜个体种群.适应度函数可由以下式表示.
(10)
式中,n为网络输出的节点数;yi为BP神经网络第i个节点的期望输出;oi为第i个节点的预测输出;k为系数.F越小,个体越优.
以每一个初始优胜个体为中心,在每个个体的周围产生新的个体,从而得到若干个优胜种群.这一过程可以用下式表示.
amn=aij+εwij
(11)
wij~U[a,b]
(12)
式中,aij表示优胜个体种群中第i个个体的第j个基因;amn表示以aij为中心生成的新个体基因;wij服从(a,b)之间的均匀分布;ε为系数.
传统遗传算法交叉、变异过程是在种群中所有个体中进行的,为了减小算法中交叉、变异算子的双重性,本文提出不同优胜种群的个体之间进行交叉与变异,将每一个优胜种群按照平均适应度值进行排序,适应度值越优的种群,与其他种群进行交叉与变异的概率越大.该过程可由下式表示.
(13)
(14)
(15)
式中,Fi为个体i的适应度值;K为优胜种群中个体数目;N为优胜种群数目;pk为最终优胜种群k被选中的概率.
种群之间按照概率大小互相选择,选中的种群之间再完成个体的交叉、变异操作,产生新的个体.上述过程完成后,再对新种群中所有个体按照适应度值重新排序、分组,重复上述过程,直至最终产生最优个体.算法步骤如下.(1) 随机确定若干个符合要求的个体;(2) 取前N个体组成初始优胜个体种群;(3) 分别以每一个个体为中心产生新的K个体,组成N个优胜种群;(4) 按照每一个优胜种群的平均适应度favg进行排序,排序靠前的种群按照轮盘赌法从其余种群进行中选择;(5) 互相选中的种群个体之间进行交叉、变异操作,产生新的个体;(6) 新生成的所有个体按照适应度值重新排序、分组,返回步骤(4)继续进行迭代优化,直至产生最优个体.
4.3 改进GA-BP-PID控制器设计
在原有BP-PID控制器的基础上,利用本文提出的改进的遗传算法初始化BP神经网络的权重初始值,加速网络的训练过程,最终构建的改进GA-BP-PID控制器结构如图6所示,算法流程如图7所示.
图6 改进GA-BP-PID控制器结构
图7 控制器算法流程Fig.7 Controller algorithm flow
将传统BP-PID控制器与本文为提出的改进GA-BP-PID控制器分别应用于缺氧实验的气体控制中,并利用MATLAB进行仿真分析,比较两种方法的控制性能.
5.1 参数设置
对于传统BP-PID控制器,设定r(k)=11,采样时间ts=1s,学习率α=0.2,惯性因子ω=0.05,网络权重初始值取[-1,1]之间的随机数.网络采用一层输入层、一层隐含层和一层输出层的三层网络架构,利用试凑法确定隐含层节点数Q=5,x=[r(k),y(k),e(k)]作为网络的输入,每层均添加偏置单元,y=[kp,ki,kd]对应系统的输出,网络结构如图8所示.
图8 气体浓度控制实验中BP神经网络结构
由于隐含层神经元的激活函数sigmoid函数将输出映射到[0,1]之间,但实际PID控制器的三个参数需要在更大的范围进行调整[16],因此设置数组M=[m1,m2,m3]作为网络的输出增益.实验证明,当M取值不同时,系统的性能指标也有所不同.实验结果如下表所示,综合考虑系统的各项性能指标,选取输出增益M=[10,1,10].
表1 m2,m3不变m1取不同值系统性能指标
表2 m1,m3不变而m2取不同值时系统性能指标
表3 m1,m2不变而m3取不同值时系统性能指标
对于改进GA-BP-PID控制器,上述BP神经网络设置不变,利用改进的遗传算法寻找最优的权值和阈值.设定算法交叉概率pc=0.4,变异概率pm=0.2,迭代次数Niter=50,最终将得到的最优个体作为BP神经网络的权重初始值.
5.2 仿真结果
按照上述设置的参数进行仿真实验,图9和图10为传统遗传算法与本文的改进算法在优化过程中最优个体适应度值曲线与平均适应度值曲线.图11和图12为传统BP-PID控制器与改进GA-BP-PID控制器控制效果曲线和控制误差曲线.
图9 遗传算法最佳适应度曲线
图10 遗传算法平均适应度曲线Fig.10 Average fitness curve of genetic algorithm
由图9可以看出,与传统算法相比,改进的遗传算法具有更快的收敛速度和更少的迭代次数,并且最优个体适应度值更优.由图10可以看出,传统遗传算法交叉、变异算子的双重性,产生了适应度值较差的新个体,使得平均适应度并不是持续下降,而改进的遗传算法由于采用了优胜种群间的相互选择,因此具有更好的稳定性.
由图11和图12可以看出,与图2原始方法中不断振荡的输出相比,上述两种方法的输出都大幅度地改善了振荡情况,降低了最大超调量,取得了更好的控制效果.并且与传统的BP-PID控制器相比,改进GA-BP-PID控制器实现了无静差、无超调量,具有更快的响应速度和更小的控制误差.
图11 控制效果曲线图Fig.11 Control effect curve
图12 控制误差曲线图Fig.12 Control error curve
将三种方法前200 s的实验结果进行量化处理得到三个控制器在实验过程中的各项性能指标对比结果.
表4 仿真结果性能指标对比
由表4可见,在实验过程中,使用传统控制方式系统输出无法达到稳定值,最终结果会在稳定值附近不断振荡,因此无法确定系统稳定时间及其稳态误差,其控制效果较差,无法实现精准控制.其余两种控制器最终都将稳态误差控制在较小的范围之内,但与传统的BP-PID控制器相比,改进GA-BP-PID控制器具有更快的上升时间,并且实现了零超调量,控制过程中没有出现振荡情况,系统稳定时间相较于前者有了大幅度的提升.由此可见,在气体浓度控制过程中,本文提出的基于改进的遗传算法优化的BP神经网络PID控制器能够取得更好的控制效果.
本文提出了一种改进的BP神经网络PID控制器,在原有BP神经网络PID控制器的基础上,利用改进的遗传算法寻找神经网络的最优初始权重值,实现对PID控制参数的有效整定.将控制器运用到气体浓度的控制过程中,结果表明,本文所提出的改进的遗传算法具有更优的适应度曲线和更好的稳定性,同时由于控制器合理地确定了神经网络的权重初始值,使得系统能够更快地到达稳定状态,具有更小的控制误差和更优的控制性能,能实现实验中气体浓度的准确控制,从而完成实验体的准确造模,对后续相关研究的开展具有重要的意义.