基于神经网络的PID控制
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于神经网络的PID控制
课程名称:智能控制
任课教师:
学生姓名:
学号:
年月日
摘要:本文基于BP神经网络的PID控制方法设计控制器,通过BP神经网络与PID的控制相结合的神经网络控制基本原理和设计来自适应的功能调节PID的的三个参数,并根据被控对象的近似数学模型来输出输入与输出并分析BP神经网络学习速率η,隐层节点数的选择原则及PID参数对控制效果的影响。计算机的仿真结果表示,基于BP神经网络的PID控制较常规的PID控制具有更好的自适应性,能取得良好的的控制结果。
关键字:BP算法神经网络 PID控制
Abstract:In this paper, based on BP neural network PID control method designed controller, through the BP neural network PID control with a combination of neural network control basic principles and design features adaptively adjusting the PID of the three parameters, and based on the controlled object approximate mathematical model to analyze the output and the input and output BP n eural network learning rate η, hidden layer nodes and PID parameter selection principle effect of the control . Computer simulation results indicated that based on BP neural network PID control compared with conventional PID control has better adaptability , can achieve good control results . Keyword:BP algorithms neural networks PID control
1引言
PID控制是最早发展起来的应用经典控制理论的控制策略之一,由于算法简单,鲁棒性好和可靠性高,被广泛应用于工业过程并取得了良好的控制效果。随着工业的发展,对象的复杂程度不断加深,尤其对于大滞后、时变的、非线性的复杂系统,常规PID控制显得无能为力。因此常规PID控制的应用受到很大的限制和挑战。
神经网络在控制系统中的应用提高了整个系统的信息系统处理能力和适应能力,提高了系统的智能水平。此外,神经网络具有逼近任意连续有界非线性函数的能力,对于非线性系统和不确定性系统,无疑是一种解决问题的有效途径。本文将常规PID控制与神经网络控制相结合,发挥各自的优势,形成所谓的智能PID控制。采用BP神经网络方法设计的控制系统具有更快的速度(实时性)、更强的适应性和更好的鲁棒性。
2 基于BP神经网络的PID控制
PID控制要取得较好的控制结果,必须通过调整好比例、积分和微分三种控制作用,形成控制量中既要相互配合又相互制约的关系。神经网络所具有的任意非线性表达能力,可以通过对系统性能的学习来实现最佳组合的PID控制。采用BP网络,可以建立参数Kp、Ki、Kd自学习的PID控制器。基于BP神经网络的PID控制系统结构由常规的PID控制器和神经网络两个部分构成。
2.1常规的PID控制器
PID控制器由比例(P)、积分(I)、微分(D)3个部分组成,直接对被控对象进行闭环控制,并且三个参数 Kp、Ki、Kd为在线调整方式。
2.2 神经网络
根据系统的运行状态,调节PID控制器的参数,以期达到某种性能指标的最
优化,使输出层神经元的输出状态对应于PID 控制器的三个可调参数Kp 、Ki 、Kd 通过神经网络的自学习、加权系数调整,使神经网络输出对应于某种最优控制规律下的PID 控制器的参数。
2.3 基于BP 算法的三层前向网络的PID 控制方案
本文用来控制对象的神经网络模型采用3层BP 网络,其结构如图2.3所示
图2.3.1 控制对象的神经网络模型
经典增量式数字PID 的控制算法为
()()()()()()()()()p i d u k u k 1k error k error k 1k error k k (error k 2error k 1error k 2)=-+--++--+-
式中,k p ,k i ,k d 分别为比例、积分、微分系数。
网络输入层的输入为
O j (1)=x(j) j=1,2,...M (1)
式中,输入变量的个数M 取决于被控系统的复杂程度。
网络隐含层的输入、输出为
net i (2)(k)= 0M j =∑w ij (2) O j (1), (2)
O i (2)(k)=f(net i (2)(k)) (i=1,...Q), (3)
式中,w ij (2)-隐含层加权系数;上角标(1)、(2)、(3)分别代表输入层、隐含层和输出层。
隐层神经元的活化函数取正负对称的Sigmoid 函数 f(x)=tanh(x)= x x
x x e e e e
---+ (4) net i (3)(k)= 0Q i =∑w ij (3) O i (2)(k), (5)
O l (3)(k)=g(net l 3(k)) (l=1,2,3) (6)
O 1(3)(k)=k p (7)
O 2(3)(k)=k i (8)
O 3(3)(k)=k d (9)
输出层输出节点分别对应三个可调参数kp ,ki ,kd 。由于kp ,ki ,kd 不能为负值,所以输出层神经元的激励函数取非负的Sigmoid 函数: g(x)= 12
(1+tanh(x))= x x x e e e -+。 (10) 取性能指标函数为 E(k)=
12
(rin(k)-yout(k))2 (11) 按照最速下降法修正网络的加权系数,即按E(k)对加权系数的负梯度方向搜索调整,并附加一使搜索快速收敛全局绩效的惯性项 Δw li (3)(k)=-η(3)()li
E k w ∂∂+αΔw li (3)(k-1) (12) 式中,η为学习速率;α为惯性系数。
(3)()li E k w ∂∂=(3)(3)(3)(3)(3)()()()()()()()()()()l l l l li
O k net k E k y k u k y k u k O k net k w k ∂∂∂∂∂••••∂∂∂∂∂ (13) (3)(3)()()
l li net k w k ∂∂=(2)()i O k (14) 由于()()y k u k ∂∂未知,所以近似用符号函数sgn (()()
y k u k ∂∂)取代,由此带来计算不精确的影响可以通过调整学习速率η来补偿
由上面公式,可求得
(3)1()()
u k O k ∂∂=e(k)-e(k-1) (15) (3)2()()
u k O k ∂∂=e(k) (16) (3)3()()
u k O k ∂∂=e(k)-2e(k-1)+e(k-2) (17) 上述分析可得网络输出层权的学习算法为
Δw li (3)(k)=αΔw li (3)(k-1)+ηδl (3)O i (2)(k) (18)
δl (3)=error(k)sgn(()()y k u k ∂∂)(3)()()
l u k O k ∂∂g ’(net l (3)(k)) (l=1,2,3) (19) 同理可得隐含层加权系数的学习算法
Δw ij (2)(k)=αΔw ij (2)(k-1)+ηδi (2)O j (1)(k) (20)