基于神经网络的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 control1引言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 xx 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)()liE k w ∂∂+αΔw li (3)(k-1) (12) 式中,η为学习速率;α为惯性系数。
(3)()li E k w ∂∂=(3)(3)(3)(3)(3)()()()()()()()()()()l l l l liO 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)δl (2)=f ’(net i (2)(k)) 31l =∑δl (3) w li (3)(k) (i=1,2,...Q) (21)g ’(·)=g(x)(1-g(x)),f ’(·)=(1-f 2(x))/2 (22)因此,基于BP 神经网络的PID 控制算法可归纳为:图2.3.2 基于BP 网络的PID 控制器结构(1) 确定BP 网络的结构,给出各层加权系数的初值,选定学习速率η和惯性系数α,此时K=1;采样得到人r(k)和y(k),计算该时刻误差e(k)=r(k)-y(k);(2) 计算神经网络各层神经元的输入、输出,输出为PID 控制器的三个可调参数Kp 、Ki 、Kd ;根据增量式数字PID 控制算法计算PID 控制器的输出u(k);进行神经网络学习,在线调整加权系数w ij (1)和w li (2)(k),实现PID 控制参数的自适应调整;(3) 置k=k+1,返回到(1);3 仿真分析 设被控对象的近似数学模型为:02()(1)(1)()1(1)a k y k u k y k y k -+-=+-,式中 a 0(k)是慢时变的,a 0(k)=1+0.15sin(k π/25)。
学习速率η=0.3和惯性系数α=0.5。
1、输入信号为正弦信号r(k)=sin(2πk/100)时得出仿真图如图3.1.1所示:图3.1.1 输出信号y(k)跟踪输入信号r(k)的响应曲线图3.1.2 控制信号u(k)的变化曲线3.1.3 PID三个参数的变化曲线3.1.4 误差曲线图2、输入信号为方波信号r(k)=sign(sin(2*pi*k/100))时得到仿真曲线如图3.2.1所示:图3.2.1 输出信号跟踪输入信号的响应曲线图图3.2.2 跟踪误差动态曲线图3.2.3 控制信号u(k)的变化曲线图3.2.4 三个参数的变化曲线分析BP神经网络学习速率η、隐层节点数的选择原则及对控制效果的影响从仿真中来观察发现改变学习速率会对控制效果发生改变,PID的三个参数也会随之发生改变,在一般情况下,倾向于选取较小的学习速率以保证系统的稳定性。
学习速率的选取范围在0.01~0.8之间。
从原理上看,隐含层节点数多,则可以有更多的输入点可供输入,即只要有足够多的隐含层和稳节点,就可实现更复杂的映射关系,但是通过改动模型的实现程序来看,怎样根据特定的问题来具体确定网络的结构尚无很好的方法,依旧需要凭经验和试凑。
所以隐含层的节点数可以影响控制效果,但是如何变的更好的控制效果,任然多和准来判定。
PID参数对控制效果的影响神经网络,根据系统的运行状态,调节PID控制器的参数,以期达到某种性能指标的最优化,使输出层神经元的输出对应于PID控制器的三个可调参数。
对于控制系统的稳定性而言,在系统稳定的前提下,加大比例参数Kp可以减少稳态误差,但不能消除稳态误差,主要还是影响系统的控制速率;而积分参数Ki 有助于提高系统的控制精度,所以对系统控制的稳态性能更大点;微分控制环节的加入微分参数Kd,可以在误差出现或变化瞬间,按偏差变化的趋势进行控制,起到一个早期的修正作用。