教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 法律文档 >

神经网络PID控制算法的MATLAB仿真及其在环境控制中的应用(8)

来源:网络收集 时间:2026-09-02
导读: 南林林业大学毕业设计(论文) 之间的关联信息分布地存储于连接权中。由于连接权的个数很多,个别神经元的损坏只对输入、输出关系有较小的影响,因此BP网络显示了较好的容错性。 BP网络由于其很好的逼近非线性映射

南林林业大学毕业设计(论文)

之间的关联信息分布地存储于连接权中。由于连接权的个数很多,个别神经元的损坏只对输入、输出关系有较小的影响,因此BP网络显示了较好的容错性。

BP网络由于其很好的逼近非线性映射的能力,因而它可应用于信息处理、图像识别、模型辨别、系统控制等多方面。对于控制方面的应用,其很好的逼近特性和泛化能力是一个优点。 而收敛速度慢却是一个很大的缺点,这一点难以满足具有适应功能的实时控制的要求,它影响了该网络在许多方面的实际应用。为此,许多人对BP网络的学习算法进行了广泛的研究,提出了许多改进的算法,下面介绍典型的几种。 1)引入惯性项

有时为了使收敛速度快些,可在加权系数修正公式中增加一个惯性项,使加权系数变化更平稳些。

输出层的任意神经元k在样本p作用时的加权系数增量公式为

wki(k?1)?wki(k)???kpoip????wki(k)?wki(k?1)??

隐含层的任意神经元i在样本p作用时的加权系数增量公式为

pp wij(k?1)?wij(k)???ioj????wij(k)?wij(k?1)??

式中,?为惯性系数,大于0,小于1. 2)引入动量项

上述标准BP算法实质上是一种简单的最速下降静态寻优算法,在修正w(k)时,只是按k时刻的负梯度方式进行修正,而没有考虑以前积累的经验,即以前时刻的梯度方向,从而常常使学习过程发生振荡,收敛缓慢。为此,有人提出了如下的改进算法,即

w(k?1)?w(k)???(1??)D(k)??D(k?1)?

式中,w(k)既可表示单个的连接权系数,也可表示连接权向量;D(k)???j/?w(k)为k时刻的负梯度;D(k-1)是k-1时刻的负梯度;?为学习速率,?大于0;?为动量项因子。

该方法所加入的动量项实质上相当于阻尼项,它减小了学习过程的振荡趋势,改善了收敛性,这是目前应用比较广泛的一种改进算法

3)变尺度法

标准的BP学习算法所采用的是一阶梯度法,因而收敛较慢。若采用二阶梯度法,则可以大大改善收敛性。二阶梯度法的算法为

2w(k?1)?w(k)?????j(k)???j(k)

?1?j?2j2,?j(k)?2,0???1 其中,?j(k)??w(k)?w(k)虽然二阶梯度法具有比较好的收敛性,但是它需要计算J对w的二阶导数,这个计算量是很大的。所以一般不直接采用二阶梯度法,而常常采用变尺度法或共轭梯度法,它们

- 35 -

南林林业大学毕业设计(论文)

具有二阶梯度法收敛较快的优点,而又无须直接计算二阶梯度。下面具体给出变尺度法的算法,即

w(k?1)?w(k)??H(k)D(k)?w(k)?wT(k)H(k?1)?D(k)?DT(k)H(k?1)

H(k)?H(k?1)?T??w(k)?D(k)?DT(k)H(k?1)?D(k)4.5 基于BP神经网络的PID整定原理

PID控制要取得较好的控制效果,就必须通过调整好比例、积分和微分三种控制作用,形成控制量中既相互配合又相互制约的关系,这种关系不一定是简单的“线性组合”,从变化无穷的非线性组合中可以找出最佳的。神经网络所具有的任意非线性表达能力,可以通过对系统性能的学习来实现具有最佳组合的PID控制。采用BP网络,可以建立参数

kp,ki,kd自学习的PID控制器。

基于BP网络的PID控制系统结构如图4-3所示,控制器由两部分构成:

隐含

输输出层 X1 Y1 X2 Y2 ┇ ┇ XNYM1 WJI2 WJI

图4-3:BP网络结构

(1)经典的PID控制器,直接对控制对象进行闭环控制,并且三个参数kp,ki,kd为在线调整方式。

(2)神经网络,根据系统的运行状态,调节PID控制器的参数,以期达到某种性能

- 36 -

南林林业大学毕业设计(论文)

指标的最优化,使输出层神经元的输出状态对应于PID控制器的三个可调参数kp,ki,kd通过神经网络的自学习、加权系数调整,使神经网络输出对应于某种最优控制律下的PID控制器参数。

经典增量式数字PID的控制算法为:

u(k)?u(k?1)??u(k)?u(k)?kp(error(k)?error(k?1)?kierror(k)?kd(error(k)?2error(k?1)?error(k?2))

式中kp,ki,kd分别为比例、积分、微分系数。 采用三层BP网络,其结构如图4-3所示。 网络输入层的输入为:

?x(j)(j?1,2,???,M) O(1)j式中,输入变量的个数M取决于被控系统的复杂程度。

网络隐含层的输入、输出为:

(2)(1)net(k)??wijoj(2)ij?0M

oi(2)(k)?f(neti(2)(k))(i?1,2,???,Q)(2)式中,wij为隐含层加权系数;上角标(1)、(2)、(3)分别代表输入层、隐含层和输出层。

隐层神经元的活化函数取正负对称的sigmoid函数:

ex?e?xf(x)?tanh(x)?x?x

e?e网络输出层的输入输出为:

(3)(2)net(k)??wlioi(k)(3)li?0Qol(3)(k)?g(netl3(k))(l?1,2,3)o1(3)(k)?kp(3)o2(k)?ki(3)o3(k)?kd

输出层输出节点分别对应三个可调参数kp,ki,kd。由于kp,ki,kd不能为负值,所以输出层神经元的活化函数取非负的sigmoid函数:

- 37 -

南林林业大学毕业设计(论文)

1exg(x)?(1?tanh(x))?x?x

2e?e取性能指标函数为:

E(k)?1(rin(k)?yout(k))2 2按照梯度下降法修正网络的权系数,即按E(k)对加权系数的负梯度方向搜索调整,并附加一个使搜索快速收敛全局极小的惯性项:

(3)?wli(k)????E(k)(3)???wli(k?1) (3)?wli式中,?为学习速率;?为惯性系数。

?E(k)?E(k)?y(k)??u(k)?ol(3)(k)?netl(3)(k)???(3)??(3)(3)(3)?wil?y(k)??u(k)?ol(k)?netl(k)?wil(k)?net(k)?oi(2)(k)?w(k)由于

(3)l(3)li

?y(k)?y(k))取代,由此带来计算不精确的影未知,所以近似用符号函数sgn(??u(k)??u(k)响可以通过调整学习速率来补偿。

可求得网络输出层权的学习算法为:

?i(3)?error(k)sgn???y(k)???u(k)g(netl(3)(k))(l?1,2,3) ?(3)???u(k)??ol(k)同理可得隐含层加权系数的学习算法:

(2)(2)?wil(k)???wil(k?1)???i(2)o(1)j(k)?(2)i?f'(net(k))??w(k)(2)i(3)l(3)lii?13

式中,g'(?)?g(x)(1?g(x)),f'(?)?(1?f2(x))/2。

基于BP网络的PID控制器结构如图4-4所示,该控制器控制算法归纳如下:

- 38 -

南林林业大学毕业设计(论文)

图4-4 基于bp网络的PID控制器结构

(1)确定BP网络的结构,即确定输入层节点数M和隐含层节点数Q,并给出各层加权系数的初值,选定学习速率和惯性系数,此时k=1;

(2)采样得到rin(k)和yout(k),计算该时刻误差;

(3)计算神经网络NN各层神经元的输入,输出,NN输出层的输出即为PID控制器的三个可调参数;

(4)计算PID控制器的输出u(k);

(1)(2)(5)进行神经网络学习,在线调整加权系数wij,实现PID控制参数的自适应和wil调整;

(6)置k=k+1,返回到(1)。

4.6设计与仿真

一、设被控制对象的近似数学模型为: yout(k)?a(k)yout(k?1)?u(k?1) 21?yout(k?1)式中,系数a(k)是慢时变的,a(k)?1.2(1?0.8e?0.1k). 信号输入(1)rin(k)=1.0;(2)rin(k)=sin(2?t)。 二、仿真结果:

- 39 -

…… 此处隐藏:1683字,全部文档内容请下载后查看。喜欢就下载吧 ……
神经网络PID控制算法的MATLAB仿真及其在环境控制中的应用(8).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/435855.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)