神经网络PID
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
BP神经网络PID控制方法研究
引言
所谓“神经网络”是以一种简单计算处理单元(即神经元)为节点,采用某种网络拓扑结构构成的活性网络,可以用来描述几乎任意的非线性系统;不仅如此,神经网络还具有学习能力、记忆能力、计算能力以及各种智能处理能力,在不同程度和层次上模仿人脑神经系统的信息处理、存储和检索功能。
神经网络在控制系统中的应用提高了整个系统的信息系统处理能力和适应能力,提高了系统的智能水平。由于神经网络己具有逼近任意连续有界非线性函数的能力,对于长期困扰控制界的非线性系统和不确定性系统来说,神经网络无疑是一种解决问题的有效途径。采用神经网络方法设计的控制系统具有更快的速度(实时性)、更强的适应能力和更强的鲁棒性。
正因为如此,近年来在控制理论的所有分支都能够看到神经网络的引入及应用,对于传统的PID控制当然也不例外,以各种方式应用于PID控制的新算法大量涌现,其中有一些取得了明显的效果。
传统的控制系统设计是在系统数学模型己知的基础上进行的,因此,它设计的控制系统与数学模型的准确性有很大的关系。神经网络用于控制系统设计则不同,它可以不需要被控对象的数学模型,只需对神经网络进行在线或离线训练,然后利用训练结果进行控制系统的设计。神经网络用于控制系统设计有多种类型,多种方式,既有完全脱离传统设计的方法,也有与传统设计手段相结合的方式。
一般来说,基于神经网络的PID控制器的典型结构主要有两种,单神经元网络PID控制器和神经网络PID控制器两种控制算法。本章将详细介绍基于BP神经网络的PID控制算法,然后对单闭环调速系统的进行设计,对其进行Matlab 算法仿真。
基于BP神经网络的PID整定原理
PID控制要取得好的控制效果,就必须通过调整好比例、积分和微分三种控制作用在形成控制量中相互配合又相互制约的关系,这种关系不一定是简单的“线性组合”,而是从变化无穷的非线性组合中找出最佳的关系。BP神经网络具有逼近任意非线性函数的能力,而且结构和学习算法简单明确。通过网络自身的学习,可以找到某一最优控制规律下的P、I、D参数。
基于BP神经网络的PID控制系统结构如图3-1所示。控制器由两部分组成:
①经典的PID 控制器:直接对被控对象进行闭环控制,并且三个参数p k 、i k 、d k 为在线调整方式。②BP 神经网络:根据系统的运行状态,调节PID 控制器的参数,以其达到某种性能指标的最优化,即使输出层神经元的输出状态对应于PID 控制器的三个可调参数p k 、i k 、d k ,通过神经网络的自身学习、加权系数调整,
从而使其稳定状态对应于某种最优控制规律下的PID 的控制器参数 。
图3-1 基于BP 神经网络自适应PID 控制系统
经典增量式数字PID 的控制算式为
()(1)(()(1))()(()2(1)(2))p i d u k u k k e k e k k e k k e k e k e k =-+--++--+-(3-1)
式中p k 、i k 、d k 分别为比例、积分、微分系数。
将p k 、i k 、d k 视为依赖于系统运行状态的可调系数时,可将(3-1)描述为
()[(1),,,,(),(1),(2)]p i d u k f u k k k k e k e k e k =--- (3-2)
式中,(.)f 是与p k 、i k 、d k 、u(k-1)、e(k)等有关的非线性函数,可以用BP 神经网络通过训练和学习找到这样一个最佳控制规律。
设BP 神经网络NN 是一个采用三层BP 结构,其结构如图3-2所示,它有m 个输入节点,q 个隐含节点,3个输出节点。输入变量的个数m 取决于被控系统的复杂程度。输出节点分别对应PID 控制器的三个参数p k 、i k 、d k ,由于p k 、i k 、
d k 不能为负,所以输出层神经元活化函数取非负的Sigmoid 函数。
图3-2 BP 神经网络结构图
yout 学习算法 PID BP 神经网络 被控对象
rin
u k p k i k d
由图可见,网络隐含层的输入为
(1)()
j
x j o
=
j =1,2…m (3-3)
网络隐含层的输入输出为
(2)
(2)(1)
()m
i
ij j
j net k w o ==∑ (3-4)
(2)(2)()(())i i
k f net k o
= i =1,2…q (3-5)
式中,{}(2)
ij w 为隐含层加权系数,上标(1)
、(2)、(3)分别代表输入层、隐含层、输出层,f(x)为双曲正切函数,即()()/()x x x x f x e e e e --=-+。
最后,网络输出层三个节点的输入、输出分别为
(3)
(3)(2)
0()()i q
l
li i net k w o k ==∑ (3-6)
(3)(3)()(())l l o k g net k = l =1,2,3 (3-7)
即
(3)1(3)
2(3)
3()()()p i d o k k o k k o k k ⎫
=⎪=⎬
⎪=⎭
(3-8)
式中,(3)
li w 为输出层加权系数,输出层神经元活化函数取为非负的Sigmoid 函数
()/()x x x g x e e e -=+。
取性能指标函数
2
1
()(()())2E k rin k yout k =- (3-9)
按照梯度下降法修正网络的权系数,即按E(k)对加权系数的负梯度方向搜索调整,并附加一使搜索快速收敛全局极小的惯性项,则有
(3)
(3)
(3)
()()(1)li
li li
E k w k w k w ηγ∂∆=-+∆-∂ (3-10) η为学习率,γ为惯性系数。而
(3)(3)(3)(3)(3)(3)
()()
()()()()....()()()()l l li l l li o k net k E k E k y k u k w y k u k o k net k w ∂∂∂∂∂∂=∂∂∂∂∂∂ (3-11) 这里需要用到的变量()/()y k u k ∂∂,由于()/()y k u k ∂∂未知,所以近似用符号函数来取代,由此带来计算不精确的影响可以通过调整学习速率η来补偿。
由(3-1)式得