基于改进的BP神经网络PID控制器

 摘 要:本文提出了一种分层调整学习速率的改进方法,并设计了以改进的BP神经网络参数为基础的自整定PID控制器,在MATLAB中对其进行仿真实验。

基于改进的BP神经网络PID控制器

关键词:BP;神经网络;PID控制器

1 分层调整学习速率的改进BP算法

BP算法本质上是梯度下降法。若要改进BP算法,首先要熟悉了解梯度下降法的原理。

设函数f(x)具有一阶连续导数,假设在x=x*处取得函数极小值,用xk代表在第k次接近极小值点,则在第k+1次接近极小值点为xk+1=xk+λpk,对函数f(x)在xk+1处进行泰勒级数展开:

f(xk+1)=f(xk+λpk)=f(xk)+λ?荦f(xk)Tpk+o(λ)(1-1)

上式中?荦f(xk)为函数f(x)在xk处的梯度,当λ取得非常小的值时,o(λ)为λ的高阶无穷小。如果有

?荦f(xk)Tpk<0 (1-2)

能推出

f(xk+λpk)

这就表明在第k+1次迭代时的函数值小于第k次迭代的函数值。为了使?荦f(xk)Tpk取得最小值,对其求模变化:

?荦f(xk)Tpk=||?荦f(xk)||・||pk||・cosθ (1-4)

上式中,θ为向量?荦f(xk)与pk的夹角。

假设||pk||为固定值,当θ=0时,即向量?荦f(xk)与pk同向,则cosθ=1,?荦f(xk)Tpk取得最大值;反之,当θ=180时,即向量?荦f(xk)与pk反向,则cosθ=-1,?荦f(xk)Tpk<0,所以向量pk的正方向就是梯度的负方向。沿其负梯度方向进行搜索能够使f(x)函数值减小的速率加快,能够快速地找到极小点。

根据式(1-1)可知,λ作为梯度?荦f(xk)与向量pk的系数,称为步长,同时影响着网络在负梯度方向上的搜索能力。选取最佳步长的计算公式如下:

λk=(1-5)

把求得最佳步长代入式(1-3)得

f(xk-λkpk)

我们在最佳步长的计算中能够发现,公式(1-5)的计算增加了网络计算量,可以通过使用学习速率η替代步长来降低计算量。在文章中我们提出了一种分层调整学习速率的方法,它能够同时调整输入层与隐含层及隐含层与输出层之间的网络连接权值的学习速率。

设定网络的学习速率η为一个较小的值,当满足f(xk-λkpk)

η?坩2η (1-7)

当满足f(xk-λkpk)>f(xk)条件时,则学习速率的改变趋势为:

η?坩0.5η (1-8)

2 以改进的BP神经网络参数为基础的自整定PID控制器

相比较其他而言,BP神经网络主要优胜点在于能够将网络连接权值不断代入计算来修正误差,使之可以不断接近适应度函数。学习算法的实现难度比较小,所以在构建PID控制器时,用BP网络结构来构建是比较常见的。以BP算法为基础的.神经网络能够通过自学及自适应能力找到一组最优PID参数,使系统的性能达到最优。

①常规的PID控制器:闭环控制被控对象,在线整定KP、KI、KD参数;

②BP神经网络:BP神经网络通过自学习和自适应能力不断更新整定网络的连接权值,通过不断整定使输出值极限接近目标值。当输出值为KP、KI、KD时,系统的性能为最佳。

假定BP神经网络优化PID控制器是一个由三层网络构成的,且其输入层节点有M个,隐含层节点Q个、输出层节点3个。

输出节电输出对应KP、KI、KD可调参数值,隐含层的激发函数可以取Sigmoid函数,可正可负。然而输出层的激发函数为非负。

BP神经网络输入层节点的输出为

公式中,g′(x)=g(x)・(1-g(x)),f′(x)=(1-f2(x))/2。

以改进的BP神经网络为基础的PID控制器算法:

一是对BP神经网络的结构进行明确,在明确了网络结构的同时也就明确了输出层及隐含层的节点个数。并对各层的(0)初始化,k=1;

二是为计算e(k)=r(k)-y(k),可以通过样本采集得到的r(k)及y(k)代入计算;

三是在将r(i),y(i),u(i-1),e(i)(i=k,k-1,...,k-p)输入到神经网络之前进行统一化处理;

四是通过式(2-2)和(2-3)将各层神经元的输入输出计算出来,输出层输出的数据就是PID控制器的KP(k)、K1(k)、KD(k);

五是PID的控制输出u(k)可以由式u(t)=KP[e(t)]得到;

六是当所有网络权值刷新一次之后,若误差e(k+1)满足e(k+1)<

e(k),那么按照式(1-7)对其学习速率增大,当误差不再变化时,此时记录连接权值。若误差e(k+1)满足e(k+1)>e(k),那么按照式(1-8)对其学习速率减小,当误差减小时,记录连接权值

七是将k赋值为k+1,返回第二步。

3 改进的BP神经网络PID仿真

将被控对象假定为:

网络结构采用4-5-3结构,输入信号为γ(k)=1.0,此信号是阶跃信号。网络结构中的4代表输入层有四个输入,为给定输入r(k)、

e(k)=r(k)-y(k)、y(k)和1。网络结构中的3代表输出层有三个参数,为KP、KI、KD。η=0.01,加权系数初值在[-1,1]区间内随机赋值。经过仿真得到的曲线图如图1和图2所示。

图1 单位阶跃响应曲线图

图2 误差变化曲线

被控对象是二阶的,所以阶跃响应曲线以正弦的方式衰减,并在系统稳定水平线上下振荡。从图1和图2可以看出,刚启动时系统振荡幅度较大,误差也比较大,系统在0.2s左右时振荡幅度变小,误差也迅速变小,在0.3s之后系统达到稳定运行,误差几近于0。由图可知在单位阶跃响应中改进的BP神经网络相较BP神经网络而言,超调量小,收敛速度快。

4 总结

提出了一种分层调整学习速率的BP神经网络改进方法,并把改进的方法与传统的PID结合。并基于MATLAB平台建立了模型进行仿真验证,仿真结果验证了改进的BP神经网络PID具有更快的响应速度、更高的精度,且稳定性更强。

参考文献:

[1]李楠.基于神经网络直流无刷电机控制策略的研究[D].兰州理工大学,2005.

[2]黄家圣.人工神经网络在无刷直流电动机中的应用研究[D].上海海事大学,2005.

[3]王国玲,李振宇,范自道.无刷直流电机自适应模糊PID控制系统[J].机电工程技术,2013(2):30~33.

[4]焦竹青,屈百达,徐保国.基于BP神经网络PID控制的BLDCM调速系统[J].微计算机信息,2007(2):112~114.

[5]彭韬,鱼振民.基于改进BP神经网络PID的无刷直流电动机速度控制的研究[J].微电机,2005,38(4):17~20.