2
2
2
第 19 卷第 2 期
2005 年 4 月
甘肃联合大学学报 (自然科学版)
Journal of Gansu Lianhe University (Natural Sciences)
Vol. 19 No. 2
Apr. 2005
文章编号 : 1672
691X(2005) 02
0031
04S
B P 神经网络 PID 控制器仿真实现
(1. 兰州理工大学 计算机科学与通信学院 ,甘肃 兰州 730050 ;2. 兰州教育学院 理科部 ,甘肃 兰州 730020)
何继爱1 ,达正花2
摘 要 :主要研究了 BP 神经网络 PID 控制器的结构 ,分析了 BP 神经网络的学习算法 ,并在 MA TL AB/
SIMUL IN K 下进行仿真实现 ,说明该控制器是一种简单实用的控制器.
关键词 : PID ;神经网络 ;算法 ;仿真
中图分类号 : TP273. 2 文献标识码 :A
0 引言
PID 控制要取得好的控制效果 ,就必须对比
例 、积分和微分三种控制作用进行调整以形成相
互配合又相互制约的关系 ,这种关系不是简单的
“线性组合”,可以从变化无穷的非线性组合中找
出最佳的关系[ 1 ] . B P 神经网络具有逼近任意非线
性函数的能力 ,而且结构和算法简单明确. 通过神
经网络自身的学习 ,可以找到某一最优控制下的
P 、I 和 D 参数 ,从而建立参数 P 、I、D 自学习的
PID 控制器.
1 B P 神经网络的 PID 控制器结构
1. 1 B P 神经网络的 PID 控制器结构模型
基于 B P 神经网络的 PID 控制器结构如图 1
所示[ 1 ,2 ] . 控制器由两部分组成 :一是常规 PID 控
制器 ,用以直接对对象进行闭环控制 ,且三个参数
在线整定 ;二是神经网络 NN ,根据系统的运行状
态 ,学习调整权系数 ,从而调整 PID 参数 ,达到某
种性能指标的最优化.
图 1 基于 BP 网络的 PID 控制器
1. 2 B P 网络结构
B P 网络 (Back p ropagation NN) 是一种单向
传播的多层前向网络. 网络除输入输出节点外 ,还
有一层或多层的隐节点 ,同层节点中没有任何耦
合. 输入节点对应系统的运行状态量 ,如系统不同
时刻的输入量和输出量等 ,必要时要进行归一化
处理 ,输入变量的个数取决于被控系统的复杂程
度 ;输出节点对应的是 PID 的三个可调参数. 由
于输出不能为负 ,所以输出层活化函数取非负的
Sigmoid 函数 ,隐层取正负对称的 Sigmoid 函数.
本系统取 B P 网络的结构为 3
3 型 ,如图 2 所
示.
8
图 2 三层 BP 神经网络结构图
归一化处理可采用模糊归档处理方法.
| x i/ R | ≥0. 8 ,
| x i/ R | ≥0. 5 ,
| x i/ R | ≥0. 3 ,
| x i/ R | ≥0. 1 ,
| x i/ R | ≥0. 03 ,
| x i/ R | ≤0. 03.
5 sgn ( x i)
4 sgn ( x i)
3 sgn ( x i)
2 sgn ( x i)
5 sgn ( x i)
0 sgn ( x i)
X i =
(1)
11
03.
收稿日期 :2004
基金项目 :兰州理工大学科研基金项目 SB20200408.
作者简介 :何继爱 (1969
向的研究.
) ,男 ,甘肃靖远人 , 兰州理工大学计算机科学与通信学院讲师 ,硕士 ,主要从事信息控制方
© 1994-2010 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
23 甘肃联合大学学报 (自然科学版) 第 19 卷
( k) 对加权系数的负梯度方向搜索调整 ,并附加一
使快速收敛全局极小的惯性项
Δw (3)
il
( k) = - η
E ( k)
w (3)
il
+αΔw (3)
il
( k - 1) .
(8)
式中 ,η为学习速率 ;α为惯性系数.
E ( k)
( k)
w (3)
il
=
E ( k)
y ( k)
·
y ( k)
u ( k)
·
u ( k)
o (3)
l
·
l
o (3)
net (3)
l
又
l
il
net (3)
w (3)
E ( k)
y ( k)
·
l
net (3)
w (3)
il
( k)
( k)
.
= o(2)
i
( k) ,
= - error ( k) .
(9)
(10)
(11)
网络输入层的输入 、输出为
若采用增量式数字 PID 控制算法 ,则有
2 B P 算法
网络的学习过程由正向和反向传播两部分组
成. 在正向传播过程中 ,每一层神经单元的状态只
影响到下一层神经网络. 如果输出层不能得到期
望输出 ,也就是实际输出与期望输出有误差 ,那么
转入反向传播过程 , 将误差信号沿原来的连接通
路返回 ,通过修改各层神经元的权值 ,逐次地向输
入层传播 , 去进行计算 , 再经过正向传播过程 , 这
样经过两个过程的反复作用 ,使得误差信号最小.
实际上 ,当误差达到人们所希望的要求时 ,网络的
学习过程就结束了.
2. 1 前向算法[1 ]
j
o(1)
= x ( j)
(2)
式中输入变量的个数 n 取决于被控系统的复杂程
度.
j = 1 ,2 , …, n.
网络隐含层的输入 、输出为
net (2)
i
( k) =
m
j = 1
w (2)
ji o(1)
j
,
(3)
i
( k) = f ( net (2)
o(2)
式中 w (2)
ji 为隐含层的加权系数 ; 上角标 (1) 、(2) 、
(3) 分别代表输入层 、隐含层和输出层.
( i = 1 ,2 , …, q) .
( k) )
i
隐含层神经元的活化函数取正负对称的 Sig
moid 函数
f ( x) = tanh ( x) =
ex - e- x
e x + e- x .
网络输出层的输入输出为
net (3)
l
( k) =
q
i = 0
w (3)
il o (2)
i
( k) ,
( k) ) , ( l = 1 ,2 ,3)
l
o(3)
o(3)
1
o(3)
2
o(3)
3
l
( k) = g ( net (3)
( k) = k p ,
( k) = ki ,
( k) = k d .
(4)
(5)
输出层节点分别对应三个可调参数 k p , ki ,
k d . 由于 k p , ki , k d 不能为负 , 所以输出层神经元
的活化函数取非负的 Sigmoid 函数
g ( x) =
1
2
2. 2 反传算法
(1 + tanh ( x) ) =
ex
e x + e- x .
(6)
取性能指标函数为
u ( k)
o (3)
1
u ( k)
o (3)
2
u ( k)
o (3)
3
= error ( k) - error ( k - 1) ,
= error ( k) ,
= error ( k) -
2error ( k - 1) + error ( k - 2) .
y ( k) /
y ( k) /
由于
u ( k) 未知 , 可用一个神经网络
来代替被控对象 , 即先用 B P 网络建立一个被控
对象的辨识模型 , 再用此模型去训练 B P 网络控
制器 ,以解决权值修正时的导数项
u ( k)
的计算 ; 这 里近 似用 符号 函 数 sign [
u
( k) ]取代. 这样做可以简化计算 , 因为
u
( k) 是权值变化中的一个公共因子 ,最重要的是它
的符号的正负 ,符号的正负决定着权值的变化方
向 ,数值的大小只影响权值变化速度 ,由此带来的
计算不精确的影响可以通过调整学习速率η来补
偿.
y ( k) /
y ( k) /
上述分析网络输出层权值的学习算法为
( k) = αΔw (3)
( k - 1) +ηδ(3)
l o (2)
( k) .
il
i
il
Δw (3)
其中
(12)
δ(3)
l
( k) = error ( k) ·sing n
y ( k)
u ( k)
·
u ( k)
o (3)
( k)
l
·g ( net (3)
l
( k) )
( l = 1 ,2 ,3) .
(13)
同理可得隐含层加权系数的学习算法
ji
Δw (2)
( k) =
( k - 1) +ηδ(2)
i o (1)
j
αΔw (2)
ji
( k) .
(14)
E( k) =
1
2
( rin ( k) - yout ( k) ) 2 .
(7)
δ(2)
i
= f′( net (2)
i
( k) )
3
l = 1
按照梯度下降法修正网络的权系数 , 即按 E
式中
δ(3)
l w (3)
il
( k) .
(15)
© 1994-2010 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
2
g′(·) = g ( x) (1 - g ( x) ) , f′(·) =
(1 -
f 2 ( x) ) / 2.
3 B P 神经网络 PID 控制器 SIMU
L IN K 仿真实现
基于 B P 网络 PID 控制器的控制算法归纳如
下 :
(1) 确定 B P 网络的结构 , 即确定输入层节点
数 m 和隐含层节点数 q , 并给出各层加权系数的
,选定学习速率η和惯性系
初值 w (2)
数α;
(0) , w (3)
(0)
ji
il
(6) 进行神经网络的学习 ,在线调整加权系数
( k) ,实现 PID 控制器的控制参数自
( k) , w (3)
il
ji
w (2)
适应调整 (反传) ;
(7) 返回到 (2) .
根据上面的讨论可以建立 B P 神经网络控制
器如图 3 所示. 图中 f ( u) 是对输入信号归一化处
理 ,B P 算法是用 S
Function 来实现.
第 2 期 何继爱等 :BP 神经网络 PID 控制器仿真实现
33
出 ,NN 输出层的输出即为 PID 控制器的三个可
调参数.
(5) 根据增量式计算 PID 控制器的输出 u
( k) ;
(2) 采样得到 rin ( k) 和 yout ( k) ,计算该时刻
设控制对象 f 为
误差 error ( k) = rin ( k) - yo ut ( k) ;
(3) 对神经网络的输入进行归一化处理 ;
(4) 计算神经网络 NN 各层神经元的输入 、输
G( s) =
5
s + 6
e- 0. 3s ,
仿真模块图及结果如图 4 所示.
图 3 B P 神经网络控制器模块图
图 4 一阶滞后系统仿真模块及结果
4 结论
基于 B P 算法神经网络 PID 控制器算法思想
简单 ,是一种既含有静态特性 ,又含有动态特性的
多层前向神经网络. 通过仿真实现可以看出它具
有自学习 、自适应性等特点 , 网络的收敛速度快 ,
能够对非线性对象很好的控制 , 系统的跟踪性能
很好. 其参数设定无需知道被控对象的具体参数
及其数学模型 ,对不同的对象具有适应性.
参考文献 :
[ 1 ] 刘金琨. 先进 PID 控制及其 MA TL AB 仿真 [ M ]. 北
京 :电子工业出版社 ,2003.
[ 2 ] 李卓 ,萧德云 ,何世忠. 基于神经网络的模糊自适应
PID 控制方法[J ]. 控制与策略 ,1996 ,11 (3) :340
345.
© 1994-2010 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
43 甘肃联合大学学报 (自然科学版) 第 19 卷
[ 3 ] 飞思科技产品研发中心. MA TL AB6. 5 辅助神经网络
分析与设计[ M ]. 北京 :电子工业出版社 ,2003.
Simulation of BP Neural PID Controller
H E J i
ai 1 , D A Zhen g
hua2
(1. College of Comp uter Science and Communication ,Lanzhou University of Technology ,Lanzhou 730050 ,China ;
2. Department of Science ,Lanzhou College of Education ,Lanzhou 730020 ,China)
Abstract :The st ruct ure of B P neural PID cont roller is st udied ,and it s learning algorit hm is analyzed.
The result of simulation in MA TL AB/ SIMUL IN K indicates t hat t he cont roller is easily realized and
applied in engineering.
Key words :PID ;neural net work ;algorit hm ; simulation
© 1994-2010 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net