?wij???
?Jp?wij
???
?Jp?neti
p
?
?neti?wij
p
???
?Jp?neti
p
?
??wij
M
(?wijoj??i)???ioj
j?1
ppp
(2-22)
式中,?为学习速率,?>0。
?i??
p
?Jp?neti
p
??
?Jp?oi
p
?
?oi
pp
?neti
??
?Jp?oi
p
?g(neti)??
'p
?Jp?oi
p
?oi(1?oi)
pp
(2-23)
由于隐含层一个单元输出的改变会影响与该单元相连接的所有输出单元的输入,即
??Jp?oi?oi
p
L
???
k?1L
?Jp?netk
p
?
?netk?oi
p
pL
???
k?1L
?Jp?netkwki
p
?
??oi
p
q
(?wkioi??k)
i?1
p
?
?Jp
p
?
?
k?1
(?
?Jp?net
pk
(2-24)
)?wki?
??
k?1
pk
因此,隐含层的任意神经元i的加权系数修正公式为
L
?wij???io
p
pj
??oi(1?oi)(??kwki)oj
k?1
pppp
(2-25)
式中,oip为隐含节点i在样本p作用时的输出;ojp为在输入节点j在样本p作用时的输出,即输入节点j的输入(因对输入节点两者相当)。
输出层的任意神经元k在样本p作用时的加权系数改进公式为
?wki(k?1)??wki(k)???koi
p
p
(2-26)
隐含层的任意神经元i在样本p作用时的加权系数改进公式为
?wij(k?1)??wij(k)???ioj
p
p
(2-27)
由式(2-17)和(2-18)可知,对于给定的某一个样本p,可根据误差要求调整网络的加权系数使其满足要求;对于给定的另一个样本,再根据误差要求调整网络的加权系数使其满足要求,直到所有样本作用下的误差都满足要求为止。这种计算过程称为在线学习过程。
如果学习过程按使误差函数J减小最快的方向调整加权系数,采用类似的推导过程可得输出层和隐含层的任意神经元k和i在所有样本作用时的加权系数增量公式
N
?wki(k?1)??wki(k)????koi
p?1N
pp
(2-28)
p
?wij(k?1)??wij(k)????ioj
p?1
p
(2-29)
根据式(3-19)和(3-20)所得权的修正是所有样本输入后,计算完总的误差后进行的,这种修正称为批处理学习或称为离线学习。批处理修正后可保证其总误差J向减少的
方向变化,在样本多的时候,它再比在线学习的收敛速度快。
因此,BP网络的学习可采用两种方式,即在线学习和离线学习。在线学习是对训练集内每个模式对逐一更新网络权值的一种学习方式,其特点是学习过程中需要较少的存储单元,但有时会增加网络的整体输出误差,以上推导即为在线学习过程。因此,使用在线学习时一般应使学习因子足够小,以保证用训练集内每个模式训练一次后,权值的总体变化充分接近于最快速下降。所谓离线学习也称为批处理学习,是指用训练集内所有模式依次训练网络,累加各权值修正量并统一修正网络权值的一种学习方式,它能使权值变化沿最快速下降方向进行。其缺点是学习过程中需要较多的存储单元,好处是学习速度较快。在具体实际应用中,当训练模式很多时,可以将整个训练模式分为若干组,采用分组批处理学习方式。
2.9 BP网络学习算法的计算步骤
(1)初始化:置所有的加权系数为最小的随机数
(2)提供训练集:给出顺序赋值的输入量x1,x2…xN和期望的输出向量t1,t2…tN; (3)计算实际输出:按式(2-10)~式(2-16)计算隐含层、输出层各神经元的输出; (4)按式(2-17)或式(2-18)计算期望值与实际输出的误差; (5)按式(2-26)或式(2-28)调整输出层的加权系数wki; (6)按式(2-27)或式(2-29)调整隐含层的加权系数wij; (7)返回计算(3)步,直到误差满足要求为止。
2.10本章小结
本章在介绍神经网络基本理论知识的基础上,着重给出了BP多层前向网络神经网络的结构、学习算法,为以后引入BP神经网络PID控制算法提供了理论基础。
第3章 BP神经网络PID控制方法研究
3.1引言
所谓“神经网络”是以一种简单计算处理单元(即神经元)为节点,采用某种网络拓扑结构构成的活性网络,可以用来描述几乎任意的非线性系统;不仅如此,神经网络还具有学习能力、记忆能力、计算能力以及各种智能处理能力,在不同程度和层次上模仿人脑神经系统的信息处理、存储和检索功能。
神经网络在控制系统中的应用提高了整个系统的信息系统处理能力和适应能力,提高了系统的智能水平。由于神经网络己具有逼近任意连续有界非线性函数的能力,对于长期困扰控制界的非线性系统和不确定性系统来说,神经网络无疑是一种解决问题的有效途径。采用神经网络方法设计的控制系统具有更快的速度(实时性)、更强的适应能力和更强的鲁棒性。
正因为如此,近年来在控制理论的所有分支都能够看到神经网络的引入及应用,对于传统的PID控制当然也不例外,以各种方式应用于PID控制的新算法大量涌现,其中有一些取得了明显的效果。
传统的控制系统设计是在系统数学模型己知的基础上进行的,因此,它设计的控制系统与数学模型的准确性有很大的关系。神经网络用于控制系统设计则不同,它可以不需要被控对象的数学模型,只需对神经网络进行在线或离线训练,然后利用训练结果进行控制系统的设计。神经网络用于控制系统设计有多种类型,多种方式,既有完全脱离传统设计的方法,也有与传统设计手段相结合的方式。
一般来说,基于神经网络的PID控制器的典型结构主要有两种,单神经元网络PID控制器和神经网络PID控制器两种控制算法。本章将详细介绍基于BP神经网络的PID控制算法,然后对单闭环调速系统的进行设计,对其进行Matlab算法仿真。
3.2基于BP神经网络的PID整定原理
PID控制要取得好的控制效果,就必须通过调整好比例、积分和微分三种控制作用在形成控制量中相互配合又相互制约的关系,这种关系不一定是简单的“线性组合”,而是从变化无穷的非线性组合中找出最佳的关系。BP神经网络具有逼近任意非线性函数的能力,而且结构和学习算法简单明确。通过网络自身的学习,可以找到某一最优控制规律下的P、I、D参数。
基于BP神经网络的PID控制系统结构如图3-1所示。控制器由两部分组成:①经典的PID控制器:直接对被控对象进行闭环控制,并且三个参数kp、ki、kd为在线调整方式。②BP神经网络:根据系统的运行状态,调节PID控制器的参数,以其达到某种性能指标的最优化,即使输出层神经元的输出状态对应于PID控制器的三个可调参数kp、ki、
kd,通过神经网络的自身学习、加权系数调整,从而使其稳定状态对应于某种最优控制
规律下的PID的控制器参数 。
图3-1 基于BP神经网络自适应PID控制系统
经典增量式数字PID的控制算式为
u(k)?u(k?1)?kp(e(k)?e(k?1))?kie(k)?kd(e(k)?2e(k?1)?e(k?2))(3-1)
式中kp、ki、kd分别为比例、积分、微分系数。
将kp、ki、kd视为依赖于系统运行状态的可调系数时,可将(3-1)描述为
u(k)?f[u(k?1),kp,ki,kd,e(k),e(k?1),e(k?2)]
(3-2)
式中,f(.)是与kp、ki、kd、u(k-1)、e(k)等有关的非线性函数,可以用BP神经网络通过训练和学习找到这样一个最佳控制规律。
设BP神经网络NN是一个采用三层BP结构,其结构如图3-2所示,它有m个输入节点,q个隐含节点,3个输出节点。输入变量的个数m取决于被控系统的复杂程度。输出节点分别对应PID控制器的三个参数kp、ki、kd,由于kp、ki、kd不能为负,所以输出层神经元活化函数取非负的Sigmoid函数。
图3-2 BP神经网络结构图
由图可见,网络隐含层的输入为
(1)j
o
网络隐含层的输入输出为
?x(j)
j=1,2…m (3-3)