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控制器:直接对被控对象进行闭环控制,并且三个参数pk、ik、dk为在线调整方式。②BP神经网络:根据系统的运行状态,调节PID控制器的参数,以其达到某种性能指标的最优化,即使输出层神经元的输出状态对应于PID控制器的三个可调参数pk、ik、dk,通过神经网络的自身学习、加权系数调整,从而使其稳定状态对应于某种最优控制规律下的PID的控制器参数。图3-1基于BP神经网络自适应PID控制系统经典增量式数字PID的控制算式为()(1)(()(1))()(()2(1)(2))pidukukkekekkekkekekek(3-1)式中pk、ik、dk分别为比例、积分、微分系数。将pk、ik、dk视为依赖于系统运行状态的可调系数时,可将(3-1)描述为()[(1),,,,(),(1),(2)]pidukfukkkkekekek(3-2)式中,(.)f是与pk、ik、dk、u(k-1)、e(k)等有关的非线性函数,可以用BP神经网络通过训练和学习找到这样一个最佳控制规律。设BP神经网络NN是一个采用三层BP结构,其结构如图3-2所示,它有m个输入节点,q个隐含节点,3个输出节点。输入变量的个数m取决于被控系统的复杂程度。输出节点分别对应PID控制器的三个参数pk、ik、dk,由于pk、ik、dk不能为负,所以输出层神经元活化函数取非负的Sigmoid函数。图3-2BP神经网络结构图yout学习算法PIDBP神经网络被控对象rinukpki、kd由图可见,网络隐含层的输入为(1)()jxjoj=1,2…m(3-3)网络隐含层的输入输出为(2)(2)(1)0()miijjjnetkwo(3-4)(2)(2)()(())iikfnetkoi=1,2…q(3-5)式中,(2)ijw为隐含层加权系数,上标(1)、(2)、(3)分别代表输入层、隐含层、输出层,f(x)为双曲正切函数,即()()/()xxxxfxeeee。最后,网络输出层三个节点的输入、输出分别为(3)(3)(2)0()()iqlliinetkwok(3-6)(3)(3)()(())llokgnetkl=1,2,3(3-7)即(3)1(3)2(3)3()()()pidokkokkokk(3-8)式中,(3)liw为输出层加权系数,输出层神经元活化函数取为非负的Sigmoid函数()/()xxxgxeee。取性能指标函数21()(()())2Ekrinkyoutk(3-9)按照梯度下降法修正网络的权系数,即按E(k)对加权系数的负梯度方向搜索调整,并附加一使搜索快速收敛全局极小的惯性项,则有(3)(3)(3)()()(1)lililiEkwkwkw(3-10)为学习率,γ为惯性系数。而(3)(3)(3)(3)(3)(3)()()()()()()....()()()()lllilllioknetkEkEkykukwykukoknetkw(3-11)这里需要用到的变量()/()ykuk,由于()/()ykuk未知,所以近似用符号函数来取代,由此带来计算不精确的影响可以通过调整学习速率来补偿。由(3-1)式得(3)1(3)2(3)3()()(1)()()()()()()2(1)(2)()ukekekokukekokukekekekok(3-12)这样,可得BP神经网络输出层权计算公式为(3)(3)(2)(3)()()(1)lililiwkokwk(3-13)(3)'(3)(3)()()()(())()()lllykukekgnetkukokl=1,2,3(3-14)同理可得隐含层权计算公式为(2)(2)(1)(2)()()(1)ijijliwkokwk(3-15)3(2)'(2)(3)(3)1(())()iillilfnetkwki=1,2,…,q(3-16)基于BP网络的PID控制器控制算法归纳如下:1.确定BP神经网络结构,即确定输入层节点及数目m、隐含层数目q,并给出各层权系数的初值(2)(0)ijw和(3)(0)liw、选定学习率、惯性系数γ,此时k=1;2.采样得到rin(k)、yout(k),计算该时刻误差()()()errorkrinkyoutk;3.计算神经网络NN各层神经元的输入、输出,NN输出层的输出即为PID控制器的三个可调参数pk、ik、dk;4.计算PID控制器的输出u(k);5.进行神经网络学习,在线调整加权系数(2)()ijwk和(3)()liwk;实现PID控制参数的自适应调整;6.置k=k+1,返回到1。其算法流程图如图3-3所示:图3-3BP网络算法流程图初始化给定输入向量和目标输出求隐含层、输出层各节点输出求目标值与实际输出的偏差计算反向误差权值学习学习结束?结束YN