当前位置:文档之家› 毕设 利用BP神经网络PID控制器进行优化

毕设 利用BP神经网络PID控制器进行优化

毕设 利用BP神经网络PID控制器进行优化
毕设 利用BP神经网络PID控制器进行优化

引言

PID控制是最早发展起来的控制策略之一,由于其算法简单、鲁棒性好和可靠性高,被广泛应用于工业控制过程,尤其适用于可建立精确数学模型的确定性控制系统。而实际工业生产过程中往往具有非线性,时变不确定性,因而难以建立精确的数学模型,应用常规PID控制器不能达到到理想的控制效果,在实际生产过程中,由于受到参数整定方法繁杂的困扰,常规PID控制器参数往往整定不良,性能欠佳,对运行工况的适应性很差[1]。因此常规PID控制的应用受到很大的限制和挑战。人们对PID应用的同时,也对其进行各种改进,主要体现在两个方面:一是对常规PID本身结构的改进,即变结构PID控制。另一方面,与模糊控制、神经网络控制和专家控制相结合,扬长避短,发挥各自的优势,形成所谓智能PID控制。这种新型控制器己引起人们的普遍关注和极大的兴趣,并已得到较为广泛的应用。它具有不依赖系统精确数学模型的特点,对系统参数变化具有较好的鲁棒性。主要算法有:基于规则的智能PID自学习控制算法、加辨识信号的智能自整定PID控制算法、专家式智能自整定PID控制算法、模糊PID控制算法、基于神经网络的PID控制算法、自适应PID预测智能控制算法和单神经元自适应PID 智能控制等多种控制算法。

本设计正是利用BP神经网络PID控制器对一个单闭环调速系统进行仿真研究,并和常规的PID控制进行对比,从而得出BP神经网络PID控制器具有较强的自整定、自适应的优点。

第1章绪论

1.1课题背景

随着科学技术的迅速发展和进步,对控制系统提出了新的更高要求。由于各种实际工程系统的发展规模越来越大,复杂性越来越高,常规控制的理论和技术已无法满足工程上对提高自动化水平和扩大自动化范围的要求,因此,科学技术的进步促使了智能控制技术的建立与发展。

智能控制是一类无需人的干预就能够独立的驱动智能机器实现其目标的自动控制。目前的智能控制技术包括:神经元网络技术、模糊控制技术、遗传算法优化技术、专家控制系统、基于规则的仿人智能控制技术等已进入工程化和实用化的时代,并已有商品出售。

在控制系统的实验研究中,可以在实际物理系统上进行,也可以通过物理装置模型进行研究。当前,由于控制系统的对象规模越来越大,对象结构越来越复杂.对象种类越来越繁多,控制手段越来越复杂,因此,在控制系统的设计过程中,控制系统的仿真研究也就基本取代了物理系统的实验研究。一般只有到了控制系统设计的最后阶段——系统调试阶段,才有可能进行实际系统实验。

计算机仿真目前已经成为解决工程实际问题的重要手段,MATLAB/Simulink 软件已成为其中功能最强大的仿真软件之一。当然,该软件对BP神经网络的PID控制研究提供了非常大的帮助。它不仅能得出精确的数据,还有比较直观的图形。给我们提供了较好的理论依据,以便更好的研究。

1.2神经网络技术的发展与现状

人工神经网络(简称神经网络,NN)是由人工神经元(简称神经元)互联组成的网络。是1943年由心理学家McCulloch和数学家Pitts提出的。他们提出了第一个神经元模型MP 模型。

1949年心理学家Hebb提出了改变神经元连接强度的Hebb规则。1958年Rosenblatt提出了感知器(Perceptron)模型,为神经网络模型的研究提供了重要的方向。1960年Widrow 和Hoff提出了自适应线性元件(Adaline)模型以及神经网络PID控制器研究及仿真Widrow 一Hoff学习规则。从而在60年代,掀起了神经网络研究的第一次热潮。

但是此后随着研究的深入,人们在应用和实现方面遇到了一时难以解决的难题。而同时由于数字计算机的成功,使得整个学术界陶醉于数字计算机的成功中,从而掩盖了发展新型模拟计算机和人工智能技术的必要性和迫切性,使得神经网络的研究走向低潮。

80年代,美国加州工学院物理学家HoPfield提出了HNN模型,使神经网络的研究有了突破性进展。他通过引入“能量函数”的概念,给出了网络的稳定性判据;此外,HNN 的电子电路实现为神经计算机研究奠定了基础,同时开拓了神经网络用于联想记忆和优化计算的新途径,引起了工程技术界的普遍关注,从而掀起了神经网络研究的又一次热潮。在这一时期,随着大量开拓性研究工作的深入开展,数百种网络结构、学习算法应运而生,硬件实现的研究工作也在积极开展,神经网络理论的应用研究己经渗入到各个领域,并在智能控制、模式识别、自适应滤波和信号处理、非线性优化、传感技术和机器人、生物医学工程等方面取得了令人鼓舞的进展。使神经网络的研究进入了一个空前

高涨的时期。主要的研究集中在网络结构、学习算法和实际应用方面。

尽管这些年来,神经网络理论及其应用研究取得了可喜的进步,但是应该看到,神经网络的理论仍有许多缺陷,尚待进一步发展与完善。

1.3研究本课题的意义

神经网络应用时不需考虑过程或现象的内在机理一些高度非线性和高度复杂的问题能较好地得到处理,因此神经网络在控制领域取得了较大的发展,特别在模型辨识、控制器设计、优化操作、故障分析与诊断等领域迅速得到应用。神经网络控制作为二十一世纪的自动化控制技术,国内外理论与实践均充分证明,其在工业复杂过程控制方面大有用武之地。而工业现场需要先进的控制方法,迫切需要工程化实用化的神经网络控制方法,所以研究神经网络在控制中的应用,对提高我国的自动化水平和企业的经济效益具有重大意义。PID控制是工业过程控制中最常见的一种控制方法,这是因为PID控制器结构简单,实现容易,且能对相当一些工业对象(或者过程)进行有效的控制。但是常规的PID控制的局限性在于:当被控对象具有复杂的非线性特性,难以建立精确的数学模型,且在工业过程控制中,受控系统的参数常是未知的,有时还因为原料、环境和工况等的变化而引起参数的时变现象和不可忽视的随机扰动,所以常规的PID控制要进行在线参数整定是十分困难的。而常规自校正控制是在被控对象为线性对象的前提下进行研究的,面对工业过程的非线性对象,它也存在许多不尽人意之处。神经网络具有很强的非线性逼近能力和自学习能力,所以将BP神经网络算法与PID控制相结合产生的间接自校正控制策略,能自动整定控制器的参数,使系统在较好的性能下运行。PID控制是最早发展起来的控制策略之一,但应用常规PID控制器对于具有非线性、时变不确定的系统,无法达到理想的控制效果。随着现代控制理论,诸如智能控制技术的研究发展,出现了许多PID控制器,为解决复杂无规则系统的控制开辟了新途径。在实际生产现场中,由于受到参数整定方法繁杂的困扰,常规PID控制器参数往往整定不良、性能欠佳,对运行工况的适应性也很差。

针对以上问题,本文进行了一些相关的探索,通过对BP神经网络的研究对PID控制进行了深入的探讨。采用BP网络不但可以加快学习速率并减少震荡,而且能够实现神经网络和PID控制规律的本质结合。BP神经网络根据系统的运行状态,不断调节PID控制器的三个参数,以期达到某种性能指标的最优化,使输出神经元的输出状态对应于PID控制器的三个可调参数Kp,Ki,Kd并通过神经网络的自学习、加权系数自调整使神经网络的输出对应于某种最优规律下的PID控制器参数。

第2章 数字PID 控制简介

自从计算机进入控制领域以来,用数字计算机代替模拟计算机调节器组成计算机控

制系统,不仅可以用软件实现PID 控制算法,而且可以利用计算机的逻辑功能,使PID

控制更加灵活。数字PID 控制在生产过程中是一种最普遍采用的控制方法,在冶金、机

械、化工等行业中获得了广泛的应用。本章主要介绍PID 控制的基本原理、数字PID 控

制算法及其改进和几种常用的数字PID 控制系统。

2.1 PID 控制原理

在模拟控制系统中,按偏差的比例(P )、积分(I )和微分(D )进行控制的PID 控

图2-1 PID 控制系统原理框图

常规PID 控制系统原理框图如图2-1所示,系统主要由模拟PID 控制器和被控对象

组成。它根据给定值rin (t)与实际输出值yout (t)构成控制偏差

e(t)=rin(t)-yout(t) (2-1)

PID 控制规律为

01()()())t d i T de t e t d t T dt +?p u(t)=k (e(t)+

(2-2) 写成传递函数形式

()1()(1)()d i U s G s kp T s E s T s =

=++ (2-3)

式中,

kp -比例系数,i T -积分时间常数,d T -微分时间常数; 比例(P )控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例

关系。当仅有比例控制时系统输出存在稳态误差(Steady-state error )。

在积分(I )控制中,控制器的输出与输入误差信号的积分成正比关系。对一个自

动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的或简

称有差系统(System with Steady-state Error)。为了消除稳态误差,在控制器中必须引入“积分项”。积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。因此,比例+积分(PI)控制器,可以使系统在进入稳态后无稳态误差。

在微分(D)控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳。其原因是由于存在有较大惯性组件(环节)或有滞后(delay)组件,具有抑制误差的作用,其变化总是落后于误差的变化。解决的办法是使抑制误差的作用的变化“超前”,即在误差接近零时,抑制误差的作用就应该是零。这就是说,在控制器中仅引入“比例”项往往是不够的,比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势,这样,具有比例+微分的控制器,就能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。所以对有较大惯性或滞后的被控对象,比例+微分(PD)控制器能改善系统在调节过程中的动态特性。

在PID控制器中,比例部分产生与偏差成正比的输出信号,以便消除偏差;积分部分产生与偏差的积分值成正比的输出信号,以便消除系统的静态误差;微分部分产生与偏差的变化率成正比的输出信号,以便加快控制器的调节速率,缩短过度时间,减少超调。如果这三部分配合适当,便可得到快速敏捷,平稳准确的调节效果。

因此,控制器的关键问题是如何选择比例、积分、微分系数,而这些参数的整定的困难使PID控制器的应用受到限制。实际上,PID控制规律是一种线性的控制规律,它也具有传统控制理论的弱点,仅在简单的线性单变量系统中有较好的控制效果,而在复杂的系统的控制效果不佳。

概括而言,PID控制器的比例、积分和微分三个校正环节的作用如下:

比例环节:能迅速反映控制系统的误差,减少稳态误差,但比例控制不能消除稳态误差,比例放大系数的加大,会引起系统的不稳定。

积分环节:主要用于消除系统稳态误差,只要有足够的时间,积分控制将能完全消除误差,使系统误差为零,但积分作用太强会使系统超调加大,甚至使系统产生振荡;积分作用的强弱取决于积分时间常数i T越大,积分作用越弱。

微分作用:减少超调量及克服振荡,使系统的稳定性提高,同时加快系统的动态响应速度,减少调整时间,从而改善系统的动态性能。但是,PID控制主要局限性在于它对被控对象的依赖性,一般需预先知道被控对象的数学模型方可进行设计。而这在实际的工业控制中,由于被控对象具有非线性、时变性等特性,难以建立精确的数学模型或其特征参数难以在线获得,从而使其应用受到限制。

2.2 数字PID控制

由于近年来微机技术的迅猛发展,实际应用中大多数采用数字PID控制器。与连续PID控制相比,数字PID控制有其优越性,因为计算机程序灵活性,很容易克服连续PID 控制中存在的问题,经修正得到更完善的数字PID算法。数字PID控制算法通常可分为位置式PID控制算法和增量式PID控制算法。

2.2.1位置式PID 控制算法

计算机控制是一种采样控制,它只能根据采样时刻的偏差值计算控制量。因此PID

控制律的实现,必须用数值接近法。当采样周期相当短时,可以用求和代替积分,用差

商代替微分,即做如下近似变换:

()()()000()()((1))()(1)

t kT k k t e t T e jT T e j j j de t e kT e k T e k e k dt T T ?????????????=≈=∑∑?==----≈= (2-4)

式中,k -采样序号,k=1,2,…,T -采样周期。

显然,上述离散化过程中,采样时间T 必须足够短,才能保证有足够的精度。将(2-4)

代入(2-2),可得离散的PID 表达式为

()(()()(()(1)))0k T

Td u k kp e k e j e k e k Ti T j =++--∑= (2-5) 或 (()(1)()()

()0k e k e k u k k p e k k i e j T k d T j --=++∑= (2-6) 式中, kp

ki Ti =,kd kpTd =。(1)e k -和()e k 分别为第(k-1)和第k 时刻所得的偏差信号,u

(k)为第k 次采样时刻的计算机输出值。

由于计算机输出u (k)直接去控制执行机构,u (k)的值与执行机构的位置是一一对

应,所以式(2-5)或式(2-6)为位置式PID 控制算法。

位置式PID 控制算法的缺点是:由于是全量输出,所以每次输出均与过去的状态有

关,计算时要对误差进行累加,计算机运行工作量大。计算机若出现故障,会引起执行

机构位置大幅度的变化,这种情况往往在生产实践中不允许,在某些场合,还可能造成

重大生产事故,因而产生增量式PID 控制的控制算法[2]。

2.2.2 增量式PID 控制算法

所谓增量式PID 是指数字控制器输出只是控制量的增量u (k),当执行机构需要的是

控制量的增量时,应采用增量式PID 控制。根据递推原理可得

10(1)(2)(1)(1)()k p

i d j e k e k u k k e k k e j T k T

==----=-++∑ (2-7) 用式(2-6)减式(2-7),可得增量式PID 控制算法

()2(1)(2)()(()(1))()e k e k e k u k k p e k e k k i e k T k d T

--+-?=--++ (2-8) 式(2-8)称为增量式PID 控制算法,将其进一步可改写为

012()()(1)(2

)u k a e k a e k a e k ?=--+- (2-9) 式中,0(1)d p i T

T a k T T =++,12(1)d

p i T a k T =+,2d p i T a k T =

用增量式PID 控制算法有以下优点:

1.增量算法不需要累加,控制量增量的确定仅与最近几次误差采样值有关,存在

计算误差与精度不足时,对控制量计算影响较小。

2.增量式算法得出的是控制量的增量,误动作影响小。

3.手动—自动切换时冲击比较小。

2.3 PID 控制器参数整定

PID 控制器的参数整定是控制系统设计的核心内容。它是根据被控过程的特性确定

PID 控制器的比例系数、积分时间和微分时间的大小。PID 控制器参数整定的方法很多,

概括起来有两大类:一是理论计算整定法。它主要是 依据系统的数学模型,经过理论

计算确定控制器参数。这种方法所得到的计算数据未必可以直接用,还必须通过工程实

际进行调整和修改。二是工程整定方法,它主 要依赖工程经验,直接在控制系统的试

验中进行,且方法简单、易于掌握,在工程实际中被广泛采用。PID 控制器参数的工程

整定方法,主要有临界比例法、反应 曲线法和衰减法。三种方法各有其特点,其共同

点都是通过试验,然后按照工程经验公式对控制器参数进行整定。但无论采用哪一种方

法所得到的控制器参数,都需 要在实际运行中进行最后调整与完善。现在一般采用的

是临界比例法。利用该方法进行 PID 控制器参数的整定步骤如下:(1)首先预选择一个

足够短的采样周期让系统工作;(2)仅加入比例控制环节,直到系统对输入的阶跃响应出

现临界振荡, 记下这时的比例放大系数和临界振荡周期;(3)在一定的控制度下通过公

式计算得到PID 控制器的参数。 在实际调试中,只能先大致设定一个经验值,然后根据调节效果修改。

对于温度系统:P (%)20--60,I (分)3--10,D (分)0.5--3 。

对于流量系统:P (%)40--100,I (分)0.1--1 。

对于压力系统:P (%)30--70,I (分)0.4--3。

对于液位系统:P (%)20--80,I (分)1--5 。

参数整定找最佳,从小到大顺序查。 先是比例后积分,最后再把微分加。 曲线振荡很频繁,比例度盘要放大。 曲线漂浮绕大湾,比例度盘往小扳。

曲线偏离回复慢,积分时间往下降。

曲线波动周期长,积分时间再加长。

曲线振荡频率快,先把微分降下来。

动差大来波动慢,微分时间应加长。

理想曲线两个波,前高后低4比1。

一看二调多分析,调节质量不会低。

2.4本章小结

本章首先分析了传统PID控制的基本原理、PID三个参数比例、积分、微分的作用及其在实际控制过程中存在参数整定的问题,然后介绍了两种数字PID控制算法,即位置式PID控制算法和增量式PID控制算法,并阐述它们各自的优缺点。并介绍了PID 控制器的参数整定,本章为后面介绍神经网络PID控制算法打下铺垫。

第3章 神经网络原理和应用

人工神经网络(ANN ,ArtifieialNeuralNetworkS)是对人脑神经系统的模拟而建立起来

的。它是由简单信息处理单元(人工神经元,简称神经元)互联组成的网络,能够接受并

处理信息。网络的信息处理是由处理单元之间的相互作用(连接权)来实现的。多年来,

学者们己经建立了多种神经网络模型,其中决定它们整体性能的因素主要是:神经元(信

息处理单元)的特性;神经元之间相互连接的形式—拓扑结构;为适应环境而改善性能的

学习规则等三个要素[3]。

3.1 MP 模型

MP 模型是1943年由MeCulloch 和Pitts 共同提出的第一个神经网络模型,如图3.1

所示,它是一个多输入、多输出的非线性信息处理单元。

图3-1 MP 神经元模型结构

其中,i y :神经元i 的输出,它可以与其他多个神经元通过权连接。

i x :神经元的输入。 ij w :神经元的连接权值。 i θ:神经元的阈值。 ()i f u :神经元的非线性作用函数。 神经元的输出i y ,可用下式描述:

1()()n

i i j j i j y f w y i j θ==-≠∑ (3-1)

1n

i ij j j u w θ==-∑ (3-2)

()i i y f u = (3-3)

根据激发函数的不同,人们把人工神经元分成以下几种类型:

1x 2x n x

1.分段线性函数其激发函数如图3-2a 所示

(3-4a )

2. Sigmoid 函数其激发函数如图3-2b 所示 1exp()

()1exp()x f x x --=+- (3-4b )

3. 高斯函数其激发函数如图3-2c 所示

22(/)()x f x e δ-= (3-4c )

图3-2 人工神经元激发函数

3.2几种典型的学习规则

学习是神经网络的主要特征之一。学习规则就是修正神经元之间连接强度或加权系

数的算法,使获得的知识结构适应周围环境的变化。在学习过程中,执行学习规则,修

正加权系数。学习算法可分为有监督学习和无监督学习两类,并可表示如下:

(1)()()i i ij w k w k w k +=+? (3-5)

式中:()ij w k ?为随过程递减的学习信号。

常用的三种学习规则有以下几种:

1.无监督的Hebb 学习规则

Hebb 学习是一类相关学习,其基本思想是:如果两个神经元同时被激活,则它们之间

的联接强度的增强与它们激励的乘积成正比,以i o 表示神经元i 的激活值,j o 表示神经

元j 的激活值,ij w 表示神经元i 和神经元j 的连接权值,则Hebb 学习规则可表示

()()()ij j i w k o k o k η?= (3-6) 式中:η为学习速率。

2.有监督的Delta 学习规则

在Hebb 学习规则中,引入教师信号,即将j o 换成希望输出j d 与实际输出j o 之差,

就构成有监督学习的学习规则

()(()()(i j j j i w k d k o k o k

η?=- (3-7) 这种学习规则使神经元通过关联搜索对未知的外界做出反应,即在教师信号 ()()k k i i d o -的指导下,对环境信息进行相关的学习和自组织,使相应的输出增强或削弱[8]。

3.3典型的多层前向网络—BP 网络的结构及算法

多层前向网络包含一个输出层和一个输入层,一个或多个隐含层。隐含层的变换函

数一般为非线性函数,如S 型函数或双曲正切函数(tanh x )。输出层的变换函数可以是

非线性的,也可以是线性的,这由输入、输出映射关系的需要而定。多层前向网络能逼

近任意非线性函数,在科学领域中有广泛的应用。在众多前向网络中,最为典型的就是

误差反向传播神经网络BP 网络。BP 网络中引入了最小二乘学习算法,即在网络学习过

程中,使网络的输出与期望输出的误差边向后传播边修正连接强度(加权系数),以使

其误差均方值最小。其学习过程可分为前向网络计算和反向误差传播—连接权系数修正

两部分,这两部分是相继连续反复进行的,直到误差满足要求。不论学习过程是否结束,

只要在网络的输入节点加入输入信号,则这些信号将一层一层向前传播,通过每一层时

要根据当时的连接加权系数和节点的活化函数与阀值进行相应计算,所得的输出再继续

向下一层传送。这个前向网络的计算过程,既是网络学习过程的一部分,也是将来网络

的工作模式。在学习过程结束之前,如果前向网络计算的输出和期望输出之间存在误差,

则转入反向传播,将误差将沿着原来的连接通路回送,作为修改加权系数的依据,目标

是使误差减少[8]。

3.3.1 BP 神经网络的前向计算

前向计算是在网络各神经元的活化函数和连接强度都确定情况下进行的。以具有m

个输入、q 个隐含节点、r 个输出的三层BP 神经网络结构为例,按逐个输入法依次输入

样本,则BP 神经网络输入层的输出为

(1)()j o x j = j=1,2.......m (3-8)

隐含层第i 个神经元的输入、输出可写成

(2)

(2)(1)()m j i ij j o

net k w o ==∑ (3-9)

2(2)()(())i i o k f net k = i=1,2……q (3-10) 式中,隐含层加权系数;上标(1)、(2)、(3)分别代表输入层、隐含层、

输出层,f()-活化函数,这里取为Sigmoid 活化函数[8]。 1

()1exp[()]i f net net θ=+-+ (3-11)

1exp[()]

()1exp[()]i i net f net net θθ--+=+-+ (3-12)

式中参数i θ表示阀值。输出将通过加权系数向前传播到第l 个神经元作为它的输

入之一,而输出层的第l 个神经元的总输入为

(3)(2)(3)

0()()q i ij i i net k k w o ==∑ (3-13)

输出层的第l 个神经元的总输出为

(3)

(3)()(())i i k g net k o = l =1,2……r (3-14)

式中,(3)li w :为输出层加权系数,(.)g :活化函数。

在神经网络的正常工作期间,上面的过程即完成了一次前向计算,而若是在学习阶

段,则要将输出值和样本输出值之差回送,以调整加权系数。

3.3.2 BP 神经网络的误差反向传播和加权系数的调整

在前向计算中,若实际输出k o 与理想输出k d 不一致,就要将其误差信号从输出端反

向传播回来,并在传播过程中对加权系数不断修正,使输出层神经元上得到所需要的期

望输出k d 为止。为了对加权系数进行调整,二次型误差性能指标函数

221111()22m m k k k k k E d o e ===-=∑∑ (3-15)

以误差函数E 减少最快方向调整,即使加权系数按误差函数E 的负梯度方向调整,使网

络逐渐收敛。按照最速下降法,可得到神经元j 到神经元i 的权系数调整值,ij w ?与ij E

w ??

的负值成正比。

由式(3-15)可知,需要变换出E 相对于该式中网络此刻实际输出的关系,因此, .i ij i ij E

E net w net w ???=??? (3-16)

而其中的 ()i k ik k

net k w o =∑ (3-17)

所以

()ik k i

k j ij ij w o net o w w ??==??∑ (3-18)

将(3-18)代入式(3-16),可以得到:

..i j ij i ij i E

E net E o w net w net ????==???? (3-19)

i i E

net σ?=-? (3-20)

可以得到: i j i j o ησ?= (3-21) 其中,η为比例系数,在这里为学习率[10]。 计算i δ可分为以下两种情况:

1.若i 为输出层神经元,即i =k

当i 为输出层神经元时,注意到:

.i i i i i E

E o net o net σ???=-=???

'()()i i i d o f net =- (3-22)

故当i 为输出层神经元时,它对应的连接权ij w 应该按照下列公式进行调整:

ij ij i j w w o ησ=+

'()(i i wij d o f net =+- (3-23)

2.若i 为隐含层神经元。

当i 为输出层神经元时,此时 .i

i i i i

E E o net o net σ???=-=-??? '()i i

E f net o ?=-? (3-24) 考虑式(3-15)

221111()22m H k k k k k E d o e ===-=∑∑

中的k o 是它所有前导层的所有神经元的输出i o 的函数。当前的i o 通过它的直接后继层

的各个神经元的输出去影响下一层各个神经元输出,最终影响到k o 。而目前只用考虑

将i o 送到它的直接后继层各个神经元。不妨假设当前层(神经元i 所在层)的后继层为

第h 层,该层各个神经元i δk 的网络输入为所以,E 对i o 的偏导可以转换成如下形式:

1h

H k j kj j net w o ==∑ (3-25)

所以,E 对i o 的偏导可以转换成如下形式

1(.)h H k i k j E

E net o net oi =???=???∑ (3-26)

由式(3-25),可得

1h H kj j j ki i i w o E

w o o =??=

=??∑ (3-27) 1

(.)h H k j k j E

E

net o net oj =???=???∑

1(

.)h H kj k j E w net =?=?∑ (3-28)

与式(3-20)中的i net 相比,式(3-28)中的k net 为较后一层的神经元网络输入。所以,

按照遵从ij w ?的计算是从输出层开始,逐层向输入层推进的顺序,当要计算i 所在层的

联接权的修改量时,神经元k 所在层k δ已经被计算出来。即

k k net ??就是k δ-。从而

1()h H k ki i k E w o δ=?=-?∑ (3-29) 将其代入(3-24)

'.()

i i i E f net o δ?=-

? '1

(.).()h H k ki i k w f net δ==∑ (3-30)

故对隐含层的神经元联接权有,

ij ij i j w w o ησ=+

'1(.).()h

H ij k ki i k w w f net ηδ==+∑ (3-31)

3.4 本章小结

本章在介绍神经网络基本理论知识的基础上,着重给出了BP 多层前向网络神经网

络的结构、学习算法,为以后引入BP 神经网络PID 控制算法提供了理论基础。

第4章 BP 神经网络PID 控制方法研究

4.1引言

所谓“神经网络”是以一种简单计算处理单元(即神经元)为节点,采用某种网络

拓扑结构构成的活性网络,可以用来描述几乎任意的非线性系统;不见如此。神经网络

还具有学习能力、记忆能力、计算能力以及各种智能处理能力,在不同程度和层次上模

仿人脑神经系统的信息处理、存储和检索功能。

神经网络在控制系统中的应用提高了整个系统的信息系统处理能力和适应能力,提

高了系统的智能水平。由于神经网络己具有逼近任意连续有界非线性函数的能力,对于

长期困扰控制界的非线性系统和不确定性系统来说,神经网络无疑是一种解决问题的有

效途径。采用神经网络方法设计的控制系统具有更快的速度(实时性)、更强的适应能力

和更强的鲁棒性[7]。

正因为如此,近年来在控制理论的所有分支都能够看到神经网络的引入及应用,对

于传统的PID 控制当然也不例外,以各种方式应用于PID 控制的新算法大量涌现,其中

有一些取得了明显的效果。

传统的控制系统设计是在系统数学模型己知的基础上进行的,因此,它设计的控制

系统与数学模型的准确性有很大的关系。神经网络用于控制系统设计则不同,它可以不

需要被控对象的数学模型,只需对神经网络进行在线或离线训练,然后利用训练结果进

行控制系统的设计。神经网络用于控制系统设计有多种类型,多种方式,既有完全脱离

传统设计的方法,也有与传统设计手段相结合的方式[4]。

一般来说,基于神经网络的PID 控制器的典型结构主要有两种,单神经元网络PID

控制器和神经网络PID 控制器两种控制算法。本章将详细介绍基于BP 神经网络的PID

控制算法,然后对单闭环调速系统的进行设计,对其进行Matlab 算法仿真。

4.2基于BP 神经网络的PID 控制

4.2.1 PID 控制器的离散差分方程

在模拟调节系统中,PID 控制算式的表达式为

01()()(()())t d p i T d e t u t k e t e t d t T d t

=++? (4-1) 式中,kp —比例系数,i T —积分时间常数,d T —微分时间常数

当采样周期较小时,离散化后得到

0()(()()(()(1)))k d p i j T

T u k k e k e j e k e k T T ==++--∑ (4-2)

即 2()[()()()]d

i T T u k kp e k e k e k T T ?=?++? (4-3)

4.2.2基于BP 神经网络的PID 整定原理

PID 控制要取得好的控制效果,就必须通过调整好比例、积分和微分三种控制作用

在形成控制量中相互配合又相互制约的关系,这种关系不一定是简单的“线性组合”,

而是从变化无穷的非线性组合中找出最佳的关系。BP 神经网络具有逼近任意非线性函

数的能力,而且结构和学习算法简单明确。通过网络自身的学习,可以找到某一最优控

制规律下的P 、I 、D 参数[10]。

基于BP (Back Propagation )神经网络的PID 控制系统结构如图4-1所示。控制器

由两部分组成:①经典的PID 控制器:直接对被控对象进行闭环控制,并且三个参数

p k 、i k 、d k 为在线调整方式。②BP 神经网络:根据系统的运行状态,调节PID 控制器

的参数,以其达到某种性能指标的最优化,即使输出层神经元的输出状态对应于PID 控

制器的三个可调参数p k 、i k 、d k ,通过神经网络的自身学习、加权系数调整,从而使其

稳定状态对应于某种最优控制规律下的PID 的控制器参数[1]。

图4-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 =-+--++--+- (4-4) 式中p k 、i k 、d k 分别为比例、积分、微分系数。

将p k 、i k 、d k 视为依赖于系统运行状态的可调系数时,可将(4-4)描述为

()[(1),,,,(),(1),(2)]p i d u k f u k k k k e k e k e k =--- (4-5) 式中,(.)f 是与p k 、i k 、d k 、u(k-1)、y(k)等有关的非线性函数,可以用BP 神经网络通

过训练和学习找到这样一个最佳控制规律。

设BP 神经网络NN 是一个采用三层BP 结构,其结构如图4-2所示,它有m 个输

入节点,q 个隐含节点,3个输出节点。输入节点对应所选的系统运行状态量,如系统

不同时刻的输入量和输出量等,必要时进行归一化处理。输出节点分别对应PID 控制器

的三个参数p k 、i k 、d k ,由于p k 、i k 、d k 不能为负,所以输出层神经元活化函数取非负

的Sigmoid 函数。

由图可见,BP 神经网络的输入为负,所以输出层神经元活化函数取非负的Sigmoid

函数[6]。

图4-2 BP 神经网络结构图

由图可见,BP 神经网络的输入为

(1)()j x j o

= j =1,2…m (4-7) (2)

(2)()(())i i k f net k o = i =1,2…q (4-8)

式中,{}(2)li w 为隐含层加权系数,上标(1)

、(2)、(3)分别代表输入层、隐含层、输出层,f(x)为双曲正切函数,即()()/()x x x x f x e e e e --=-+。

最后,网络输出层三个节点的输入、输出分别为

(3)

(3)(2)0()()i

q l

l i i n e t k w o k ==∑ (4-9) (3)(3)()(())l l o k g net k = l =1,2,3 (4-10)

(3)1(3)2(3)3()()()p i d o k k o k k o k k ?=?=??=?

(4-11)

式中,(3)li w 为输出层加权系数,输出层神经元活化函数为 ()/()x x x g x e e e -=+。

取性能指标函数

21

()(()())

2E k r i n k y o u t k =- (4-12) 用最陡下降法修正网络的权系数,即按E 对加权系数的负梯度方向搜索调整,并附加一

使搜索快速收敛全局极小的惯性项,则有

(3)(3)(3)

()()(1)li li li E k w k w k w ργ??=-+?-? (4-13)

ρ为学习率,γ为惯性系数。而

(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 ??????=?????? (4-14) 这里需要用到的变量()/()y k u k ??,由于()/()y k u k ??未知,所以近似用取代,由此带来

计算不精确的影响可以通过调整学习速率ρ来补偿。

由(4-6)式得

(3)1(3)2(3)3()

()(1)()

()

()()()

()2(1)(2)()u k e k e k o k u k e k o k u k e k e k e k o k ??=--?????=?????=--+-???

(4-15) 这样,可得BP 神经网络输出层权计算公式为 (3)(3)

(2)(3)()()(1)l i l i l i w k o k w k ρδ

γ?=+?- (4-16) (3)

'(3)(3)()()()(())()()l l l y k u k e k g net k u k o k δ??=?? l =1,2,3 (4-17)

同理可得隐含层权计算公式为

(2)(2)(1)(2)()()(1)i j i j l i w k o k w k ρδ

γ?=+?- (4-18) 3(2)

'(2)(3)(3)1(())()i i l l i l f n e t k w k δδ

==∑ i =1,2,…, q (4-19)

基于BP 网络的PID 控制器控制算法归纳如下:

1.确定BP 神经网络结构,即确定输入层节点及数目m 、隐含层数目q ,并给出

各层权系数的初值(2)(0)ij w 和(3)(0)li w 、选定学习率η、惯性系数α,此时k=1;

2.采样得到rin (k)、yout (k),计算该时刻误差()()()error k rin k yout k =-;

3.计算神经网络NN 各层神经元的输入、输出,NN 输出层的输出即为PID 控制

器的三个可调参数p k 、i k 、d k ;

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

5.进行神经网络学习,在线调整加权系数(2)()ij

w k 和(3)()li w k ;实现PID 控制参数的自适应调整;

6.置k =k+1,返回到1[9]。

其算法流程图如图4-3所示:

图4-3 BP网络算法流程图

4.3本章小结

本章主要是对BP神经网络的PID控制的方法进行了详细的阐述,为下一章的仿真打下了理论基础。

第5章仿真研究

5.1 MATLAB背景和发展

MATLAB 的名称源自Matrix Laboratory ,它是一种科学计算软件,专门以矩阵的形式处理数据。MATLAB 将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,从而被广泛地应用于科学计算、控制系统、信息处理等领域的分析、仿真和设计工作,而且利用MATLAB 产品的开放式结构,可以非常容易地对MATLAB 的功能进行扩充,从而在不断深化对问题认识的同时,不断完善MATLAB 产品以提高产品自身的竞争能力。

目前MATLAB 产品族可以用来进行:数值分析、数值和符号计算、工程与科学绘图、控制系统的设计与方针、数字图像处理、数字信号处理、通讯系统设计与仿真、财务与金融工程。

MATLAB 是MATLAB 产品家族的基础,它提供了基本的数学算法,例如矩阵运算、数值分析算法,MATLAB 集成了2D 和3D 图形功能,以完成相应数值可视化的工作,并且提供了一种交互式的高级编程语言——M 语言,利用M 语言可以通过编写脚本或者函数文件实现用户自己的算法。

MATLAB Compiler 是一种编译工具,它能够将那些利用MATLAB 提供的编程语言—— M 语言编写的函数文件编译生成为函数库、可执行文件COM 组件等等。这样就可以扩展MATLAB 功能,使MATLAB 能够同其他高级编程语言例如C/C++ 语言进行混合应用,取长补短,以提高程序的运行效率,丰富程序开发的手段。

利用M 语言还开发了相应的MATLAB 专业工具箱函数供用户直接使用。这些工具箱应用的算法是开放的可扩展的,用户不仅可以查看其中的算法,还可以针对一些算法进行修改,甚至允许开发自己的算法扩充工具箱的功能。目前MATLAB 产品的工具箱有四十多个,分别涵盖了数据获取、科学计算、控制系统设计与分析、数字信号处理、数字图像处理、金融财务分析以及生物遗传工程等专业领域。

Simulink 是基于MATLAB 的框图设计环境,可以用来对各种动态系统进行建模、分析和仿真,它的建模范围广泛,可以针对任何能够用数学来描述的系统进行建模,例如航空航天动力学系统、卫星控制制导系统、通讯系统、船舶及汽车等等,其中了包括连续、离散,条件执行,事件驱动,单速率、多速率和混杂系统等等。Simulink 提供了利用鼠标拖放的方法建立系统框图模型的图形界面,而且Simulink 还提供了丰富的功能块以及不同的专业模块集合,利用Simulink 几乎可以做到不书写一行代码完成整个动态系统的建模工作。

Stateflow 是一个交互式的设计工具,它基于有限状态机的理论,可以用来对复杂的事件驱动系统进行建模和仿真。Stateflow 与Simulink 和MATLAB 紧密集成,可以将Stateflow 创建的复杂控制逻辑有效地结合到Simulink 的模型中。

在MATLAB 产品族中,自动化的代码生成工具主要有Real-Time Workshop (RTW )和Stateflow Coder ,这两种代码生成工具可以直接将Simulink 的模型框图和Stateflow 的状态图转换成高效优化的程序代码。利用RTW 生成的代码简洁、可靠、易读。目前RTW 支持生成标准的 C 语言代码,并且具备了生成其他语言代码的能力。整个代码的生成、编译以及相应的目标下载过程都是自动完成的,用户需要做得仅仅使用鼠标点击几个按钮即可。MathWorks 公司针对不同的实时或非实时操作系统平台,

BP神经网络预测的matlab代码

BP神经网络预测的matlab代码附录5: BP神经网络预测的matlab代码: P=[ 0 0.1386 0.2197 0.2773 0.3219 0.3584 0.3892 0.4159 0.4394 0.4605 0.4796 0.4970 0.5278 0.5545 0.5991 0.6089 0.6182 0.6271 0.6356 0.6438 0.6516

0.6592 0.6664 0.6735 0.7222 0.7275 0.7327 0.7378 0.7427 0.7475 0.7522 0.7568 0.7613 0.7657 0.7700] T=[0.4455 0.323 0.4116 0.3255 0.4486 0.2999 0.4926 0.2249 0.4893 0.2357 0.4866 0.2249 0.4819 0.2217 0.4997 0.2269 0.5027 0.217 0.5155 0.1918 0.5058 0.2395 0.4541 0.2408 0.4054 0.2701 0.3942 0.3316 0.2197 0.2963 0.5576 0.1061 0.4956 0.267 0.5126 0.2238 0.5314 0.2083 0.5191 0.208 0.5133 0.1848 0.5089 0.242 0.4812 0.2129 0.4927 0.287 0.4832 0.2742 0.5969 0.2403 0.5056 0.2173 0.5364 0.1994 0.5278 0.2015 0.5164 0.2239 0.4489 0.2404 0.4869 0.2963 0.4898 0.1987 0.5075 0.2917 0.4943 0.2902 ] threshold=[0 1] net=newff(threshold,[11,2],{'tansig','logsig'},'trainlm');

神经网络pid控制matlab程序

%Single Neural Adaptive PID Controller clear all; close all; x=[0,0,0]'; xiteP=0.40; xiteI=0.35; xiteD=0.40; %Initilizing kp,ki and kd wkp_1=0.10; wki_1=0.10; wkd_1=0.10; %wkp_1=rand; %wki_1=rand; %wkd_1=rand; error_1=0; error_2=0; y_1=0;y_2=0;y_3=0; u_1=0;u_2=0;u_3=0; ts=0.001; for k=1:1:1000 time(k)=k*ts; yd(k)=0.5*sign(sin(2*2*pi*k*ts)); y(k)=0.368*y_1+0.26*y_2+0.1*u_1+0.632*u_2; error(k)=yd(k)-y(k); %Adjusting Weight Value by hebb learning algorithm M=4; if M==1 %No Supervised Heb learning algorithm wkp(k)=wkp_1+xiteP*u_1*x(1); %P wki(k)=wki_1+xiteI*u_1*x(2); %I wkd(k)=wkd_1+xiteD*u_1*x(3); %D K=0.06; elseif M==2 %Supervised Delta learning algorithm wkp(k)=wkp_1+xiteP*error(k)*u_1; %P wki(k)=wki_1+xiteI*error(k)*u_1; %I wkd(k)=wkd_1+xiteD*error(k)*u_1; %D K=0.12; elseif M==3 %Supervised Heb learning algorithm wkp(k)=wkp_1+xiteP*error(k)*u_1*x(1); %P wki(k)=wki_1+xiteI*error(k)*u_1*x(2); %I wkd(k)=wkd_1+xiteD*error(k)*u_1*x(3); %D K=0.12; elseif M==4 %Improved Heb learning algorithm wkp(k)=wkp_1+xiteP*error(k)*u_1*(2*error(k)-error_1); wki(k)=wki_1+xiteI*error(k)*u_1*(2*error(k)-error_1); wkd(k)=wkd_1+xiteD*error(k)*u_1*(2*error(k)-error_1); K=0.12; end x(1)=error(k)-error_1; %P

基于BP神经网络的PID控制器的设计

基于BP神经网络的PID控制器的研究与 实现 课程名称:人工神经网络

目录 前言 (3) 一、BP神经网络 (4) 二、模拟PID控制系统 (5) 三、基于BP神经网络的PID控制器 (6) 四、仿真程序 (10) 五、运行结果 (17) 六、总结 (18) 参考文献 (19)

前言 人工神经网络是以一种简单神经元为节点,采用某种网络拓扑结构构成的活性网络,可以用来描述几乎任意的非线性系统。不仅如此,人工神经网络还具有学习能力、记忆能力、计算能力以及各种智能处理能力,在不同程度和层次上模仿人脑神经系统的信息处理、存储和检索的功能。不同领域的科学家,对人工神经网络有着不同的理解、不同的研究内容,并且采用不同的研究方法。对于控制领域的研究工作者来说,人工神经网络的魅力在于:①能够充分逼近任意复杂的非线性关系,从而形成非线性动力学系统,以表示某种被控对象的模型或控制器模型;②能够学习和适应不确定性系统的动态特性;③所有定量或定性的信息都分布储存于网络内的各神经单元,从而具有很强的容错性和鲁棒性;④采用信息的分布式并行处理,可以进行快速大量运算。对于长期困扰控制界的非线性系统和不确定性系统来说,人工神经网络无疑是一种解决问题的有效途径。正因为如此,把人工神经网络引入传统的PID 控制,将这两者结合,则可以在一定程度上解决传统PID 调节器不易在线实时整定参数、难于对一些复杂过程和参数慢时变系统进行有效控制的不足。

一、BP神经网络 BP神经网络是一种有隐含层的多层前馈网络,其结构如图1-1所示。如果把具有M个输入节点和L个输出节点的BP神经网络看成是从M维欧氏空间到L维欧氏空间的非线性映射,则对于具有一定非线性因数的工业过程被控对象,采用BP网络来描述,不失为一种好的选择。在BP神经网络中的神经元多采用S型函数作为活化函数,利用其连续可导性,便于引入最小二乘学习算法,即在网络学习过程中,使网络的输出与期望输出的误差边向后传播边修正加权系数,以期使误差均方值最小。BP神经网络的学习过程可分为前向网络计算和反向误差传播——连接加权系数修正两个部分,这两个部分是相继连续反复进行的,直至误差满足要求。不论学习过程是否已经结束,只要在网络的输入节点加入输入信号,则这些信号将一层一层向前传播;通过每一层时要根据当时的连接加权系数和节点的活化函数与阈值进行相应计算,所得的输出再继续向下一层传输。这个前向网络计算过程,既是网络学习过程的一部分,也是将来网络的工作模式。在学习过程结束之前,如果前向网络计算的输出和期望输出之间存在误差,则转入反向传播,将误差沿着原来的连接通路回送,作为修改加权系数的依据,目标是使误差减小。

基于BP神经网络预测模型指南

基于BP神经网络的国际黄金价格预测模型 公文易文秘资源网顾孟钧张志和陈友2009-1-2 13:35:26我要投稿添加到百度搜藏 [摘要] 为了寻找国际黄金价格与道琼斯工业指数、美国消费者指数,国际黄金储备等因素之间的内在关系,本文对1972年~2006年间的各项数据首先进行归一化处理,利用MATLAB神经网络工具箱进行模拟训练,建立了基于BP神经网络的国际黄金价格预测模型 [摘要] 为了寻找国际黄金价格与道琼斯工业指数、美国消费者指数,国际黄金储备等因素之间的内在关系,本文对1972年~2006年间的各项数据首先进行归一化处理,利用MATLAB神经网络工具箱进行模拟训练,建立了基于BP神经网络的国际黄金价格预测模型。 [关键词] MATLAB BP神经网络预测模型数据归一化 一、引言 自20世纪70年代初以来的30多年里,世界黄金价格出现了令人瞠目的剧烈变动。20 世纪70年代初,每盎司黄金价格仅为30多美元。80年代初,黄金暴涨到每盎司近700美元。本世纪初,黄金价格处于每盎司270美元左右,此后逐年攀升,到2006年5月12日达到了26年高点,每盎司730美元,此后又暴跌,仅一个月时间内就下跌了约160美元,跌幅高达21.9%。最近两年,黄金价格一度冲高到每盎司900多美元。黄金价格起伏如此之大,本文根据国际黄金价格的影响因素,通过BP神经网络预测模型来预测长期黄金价格。 二、影响因素 刘曙光和胡再勇证实将观察期延长为1972年~2006年时,则影响黄金价格的主要因素扩展至包含道琼斯指数、美国消费者价格指数、美元名义有效汇率、美国联邦基金利率和世界黄金储备5个因素。本文利用此观点,根据1972年~2006年各因素的值来建立神经网络预测模型。 三、模型构建

BP神经网络实验 Matlab

计算智能实验报告 实验名称:BP神经网络算法实验 班级名称: 2010级软工三班 专业:软件工程 姓名:李XX 学号: XXXXXX2010090

一、实验目的 1)编程实现BP神经网络算法; 2)探究BP算法中学习因子算法收敛趋势、收敛速度之间的关系; 3)修改训练后BP神经网络部分连接权值,分析连接权值修改前和修改后对相同测试样本测试结果,理解神经网络分布存储等特点。 二、实验要求 按照下面的要求操作,然后分析不同操作后网络输出结果。 1)可修改学习因子 2)可任意指定隐单元层数 3)可任意指定输入层、隐含层、输出层的单元数 4)可指定最大允许误差ε 5)可输入学习样本(增加样本) 6)可存储训练后的网络各神经元之间的连接权值矩阵; 7)修改训练后的BP神经网络部分连接权值,分析连接权值修改前和修改后对相同测试样本测试结果。 三、实验原理 1 明确BP神经网络算法的基本思想如下: 在BPNN中,后向传播是一种学习算法,体现为BPNN的训练过程,该过程是需要教师指导的;前馈型网络是一种结构,体现为BPNN的网络构架 反向传播算法通过迭代处理的方式,不断地调整连接神经元的网络权重,使得最终输出结果和预期结果的误差最小 BPNN是一种典型的神经网络,广泛应用于各种分类系统,它也包括了训练和使用两个阶段。由于训练阶段是BPNN能够投入使用的基础和前提,而使用阶段本身是一个非常简单的过程,也就是给出输入,BPNN会根据已经训练好的参数进行运算,得到输出结果 2 明确BP神经网络算法步骤和流程如下: 1初始化网络权值 2由给定的输入输出模式对计算隐层、输出层各单元输出 3计算新的连接权及阀值, 4选取下一个输入模式对返回第2步反复训练直到网络设输出误差达到要求结束训练。

pid神经网络控制器的设计

第三章 PID 神经网络结构及控制器的设计 在控制系统中,PID 控制是历史最悠久,生命力最强的控制方式,具有直观、实现简单和鲁棒性能好等一系列优点。但近年来随着计算机的广泛应用,智能控制被越来越广泛的应用到各种控制系统中。智能控制方法以神经元网络为代表,由于神经网络可实现以任意精度逼近任意函数,并具有自学习功能,因此适用于时变、非线性等特性未知的对象,容易弥补常规PID 控制的不足。将常规PID 控制同神经网络相结合是现代控制理论的一个发展趋势。 3.1 常规PID 控制算法和理论基础 3.1.1 模拟PID 控制系统 PID(Proportional 、Integral and Differential)控制是最早发展起来的控制策略之一,它以算法简单、鲁捧性好、可靠性高等优点而梭广泛应用于工业过程控制中。 PID 控制系统结构如图3.1所示: 图3.1 模拟PID 控制系统结构图 它主要由PID 控制器和被控对象所组成。而PID 控制器则由比例、积分、微分三个环节组成。它的数学描述为: 1() ()[()()]t p D i de t u t K e t e d T T dt ττ=+ +? (3.1) 式中,p K 为比例系数; i K 为积分时间常数: d K 为微分时间常数。 简单说来,PID 控制器各校正环节的主要控制作用如下: 1.比例环节即时成比例地反映控制系统的偏差信号()e t ,偏差一旦产生,控制器立即产生控制作用,以减少偏差。

2.积分环节主要用于消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数i T ,i T 越大,积分作用越弱,反之则越强。 3.微分环节能反映偏差信号的变化趋势(变化速率),并能在偏差信号值变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减少调节时间。 具体说来,PID 控制器有如下特点: (1)原理简单,实现方便,是一种能够满足大多数实际需要的基本控制器; (2)控制器能适用于多种截然不同的对象,算法在结构上具有较强的鲁棒性,在很多情况下,其控制品质对被控对象的结构和参数摄动不敏感。 3.1.2 数字PID 控制算法 在计算机控制系统中,使用的是数字PID 控制器,数字PID 控制算法通常又分为位置式PID 控制算法和增量式PID 控制算法。 1.位置式PID 控制算法 由于计算机控制是一种采样控制,它只能根据采样时刻的偏差值计算控制量,故对式(3.1)中的积分和微分项不能直接使用,需要进行离散化处理。按模拟PID 控制算法的算式(3.1),现以一系列的采样时刻点kT 代表连续时间t ,以和式代替积分,以增量代替微分,则可以作如下的近似变换: t kT = (0,1,2,3...)k = ()()()k k t j j e t dt T e jT T e j ==≈=∑∑? ()()[(1)]()(1) de t e kT e k T e k e k dt T T ----≈= (3.2) 式中,T 表示采样周期。 显然,上述离散化过程中,采样周期T 必须足够短,才能保证有足够的精度。为了书写方便,将()e kT 简化表示()e k 成等,即省去T 。将式(3.2)代入到(3.1)中可以得到离散的PID 表达式为: 0(){()()[()(1)]}k D p j I T T u k K e k e j e k e k T T ==+ + --∑ (3.3) 或 0 ()()()[()(1)]}k p I D j u k K e k K e j K e k e k ==++--∑ (3.4) 式中,k ——采样序号,0,1,2...k =; ()u k ——第k 次采样时刻的计算机输出值;

基于S函数的RBF神经网络PID控制器

基于径向基函数的神经网络的PID控制器 摘要 RBF神经网络在分类问题中得到了广泛的应用,尤其是模式识别的问题。许多模式识别实验证明,RBF具有更有效的非线性逼近能力,并且RBF神经网络的学习速度较其他网络快。本文在具有复杂控制规律的S函数构造方法的基础上,给出了基于MATLAB语言的RBF神经网络PID控制器,及该模型的一非线性对象的仿真结果。 关键词:S函数;RBF神经网络PID控制器;Simulink仿真模型径向基函数(RBF-Radial Basis Function)神经网络是由J.Moody和C.Darken 在20世纪80年代末提出的一种神经网络,它具有单隐层的三层前馈网络。由于它模拟了人脑中局部调整、相互覆盖接受域(或称野-Receptive Field)的神经网络结构,因此,RBF神经网络是一种局部逼近网络,已证明它能以任意精度逼近任意连续函数。 1.S函数的编写方法 S函数是Simulink中的高级功能模块,Simulink是运行在MATLAB环境下用于建模、仿真和分析动态系统的软件包。只要所研究的系统模型能够由MATLAB语言加以描述,就可构造出相应的S函数,从而借助Simulink中的S 函数功能模块实现MATLAB与Simulink之间的沟通与联系,这样处理可以充分发挥MATLAB编程灵活与Simulink简单直观的各自优势。当系统采用较复杂的控制规律时,Simulink中没有现成功能模块可用,通常都要采用MATLAB编程语言,编写大量复杂而繁琐的源程序代码进行仿真,一是编程复杂、工作量较大,二来也很不直观。如果能利用Simulink提供的S函数来实现这种控制规律,就可以避免原来直接采取编程的方法,不需要编写大量复杂而繁琐的源程序,编程快速、简捷,调试方便,则所要完成的系统仿真工作量会大大减少。 RBF神经网络PID控制器的核心部分的S函数为: function [sys,x0,str,ts]=nnrbf_pid(t,x,u,flag,T,nn,K_pid,eta_pid,xite,alfa,beta0,w0) switch flag,

用matlab编BP神经网络预测程序加一个优秀程序

求用matlab编BP神经网络预测程序 求一用matlab编的程序 P=[。。。];输入T=[。。。];输出 % 创建一个新的前向神经网络 net_1=newff(minmax(P),[10,1],{'tansig','purelin'},'traingdm') % 当前输入层权值和阈值 inputWeights=net_1.IW{1,1} inputbias=net_1.b{1} % 当前网络层权值和阈值 layerWeights=net_1.LW{2,1} layerbias=net_1.b{2} % 设置训练参数 net_1.trainParam.show = 50; net_1.trainParam.lr = 0.05; net_1.trainParam.mc = 0.9; net_1.trainParam.epochs = 10000; net_1.trainParam.goal = 1e-3; % 调用TRAINGDM 算法训练BP 网络 [net_1,tr]=train(net_1,P,T); % 对BP 网络进行仿真 A = sim(net_1,P); % 计算仿真误差 E = T - A; MSE=mse(E) x=[。。。]';%测试 sim(net_1,x) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 不可能啊我2009 28对初学神经网络者的小提示

第二步:掌握如下算法: 2.最小均方误差,这个原理是下面提到的神经网络学习算法的理论核心,入门者要先看《高等数学》(高等教育出版社,同济大学版)第8章的第十节:“最小二乘法”。 3.在第2步的基础上看Hebb学习算法、SOM和K-近邻算法,上述算法都是在最小均方误差基础上的改进算法,参考书籍是《神经网络原理》(机械工业出版社,Simon Haykin著,中英文都有)、《人工神经网络与模拟进化计算》(清华大学出版社,阎平凡,张长水著)、《模式分类》(机械工业出版社,Richard O. Duda等著,中英文都有)、《神经网络设计》(机械工业出版社,Martin T. Hargan等著,中英文都有)。 4.ART(自适应谐振理论),该算法的最通俗易懂的读物就是《神经网络设计》(机械工业出版社,Martin T. Hargan等著,中英文都有)的第15和16章。若看理论分析较费劲可直接编程实现一下16.2.7节的ART1算法小节中的算法. 4.BP算法,初学者若对误差反传的分析过程理解吃力可先跳过理论分析和证明的内容,直接利用最后的学习规则编个小程序并测试,建议看《机器学习》(机械工业出版社,Tom M. Mitchell著,中英文都有)的第4章和《神经网络设计》(机械工业出版社,Martin T. Hargan等著,中英文都有)的第11章。 BP神经网络Matlab实例(1) 分类:Matlab实例 采用Matlab工具箱函数建立神经网络,对一些基本的神经网络参数进行了说明,深入了解参考Matlab帮助文档。 % 例1 采用动量梯度下降算法训练BP 网络。 % 训练样本定义如下: % 输入矢量为 % p =[-1 -2 3 1 % -1 1 5 -3] % 目标矢量为t = [-1 -1 1 1] close all clear clc % --------------------------------------------------------------- % NEWFF——生成一个新的前向神经网络,函数格式: % net = newff(PR,[S1 S2...SNl],{TF1 TF2...TFNl},BTF,BLF,PF) takes, % PR -- R x 2 matrix of min and max values for R input elements % (对于R维输入,PR是一个R x 2 的矩阵,每一行是相应输入的

神经网络PID控制

基于神经网络PID控制算法在多缸电液伺服系统同步控制中的仿真 研究 丁曙光,刘勇 合肥工业大学,合肥,230009 摘要:本文介绍了神经网络控制原理,提出了神经网络PID算法,通过选定三层神经网络作为调节函数,经过Simulink仿真确定了神经网络PID控制器的参数,设计了神经网络PID控制器。推导出多缸液压同步控制系统在各种工况下的传递函数,并把该控制器应用到多缸液压同步控制系统中。经过仿真研究表明该控制器控制效果良好,能满足多缸液压同步的控制要求。 关键词:多缸同步;PID算法;仿真;神经网络 Study on the simulation and appllication of hydraulic servo system of straihtening machine based on Immune Neural network PID control alorithm DING Shu-guang, GUI Gui-sheng,ZHAI Hua Hefei University of Technology, Hefei 23009 Abstract:The principle of immune feedback and immune-neural network PID algorithm was respectively.An immune-neural network PID controller was designed by which an adaline neural network was selected as antibody stay function and parameters of the immune-neural network PID controller were determined by simulation.The transfer function of the hydraulic servo system of crankshaft straightenin on were introduced in different working conditions.The immune-neural network PID controller was applied to hydraulic system of crankshaft straightenin.The simulation and equipment were done,and results show that its control effectiveness is better and can meet the needs of he hydraulic servo-system of crankshaft straightening hydraulic press. Key words:straightening machine; Immune control arithmetic; simulation;neural network 0引言 精密校直液压机(精校机)液压伺服系统是精校机的执行环节,高精度液压位置伺服控制是精校机的关键技术之一,它保证了液压伺服控制系统的控制精度、稳定性和快速性,是完成校直工艺的必要条件。因此,精校机液压伺服控制系统的研究,为精校机产品的设计和制造提供了理论依据,对校直技术和成套设备的开发具有重大的意义[1]。 精校机液压位置伺服系统是一个复杂的系统,具有如下特点:精确模型难建立,要求位置控制精度高、超调量小、响应快、参数易变且难以确定[1]。因此该系统的控制有较大的难度。传统的PID控制虽然简单易行,但参数调整困难,具有明显的滞后特性,PID 控制很难一直保证系统的控制精度,Smith预估补偿 国家重大科技专项资助(项目编号:2009ZX04004-021)安徽省自然科学基金资助(项目编号:090414155)和安徽省科技攻关项目资助(项目编号:06012019A)制方法从理论上为解决时滞系统的控制问题提供了一种有效的方法,但是Smith预估器控制的鲁棒性差,系统性能过分依赖补偿模型的准确性,限制了它在实际过程中的应用[1~5]。 近年来,人们开始将生物系统的许多有益特性应用于各种控制中[1~5],取得了一定成果。自然免疫系统使生物体的一个高度进化、复杂的功能系统,它能自适应地识别和排除侵入肌体的抗原性异物,并且具有学习、记忆和自适应调节功能,以维护肌体内环境的稳定。自然免疫系统非常复杂,但其抵御抗原(antigen)的自适应能力十分显著。生物信息的这种智能特性启发人们利用它来解决一些工程难题,这就引起多种免疫方法的出现。人工免疫系统就是借鉴自然免疫系统自适应、自组织的特性而发展起来的一种智能计算技术。该算法在大量的干扰和不确定环境中都具很强的鲁棒性和自适应性,在控制、优化、模式识别、分类

基于BP神经网络PID整定原理和算法步骤

摘要 神经网络作为一门新兴的信息处理科学,是对人脑若干基本特性的抽象和模拟。它是以人的大脑工作模式为基础,研究自适应及非程序的信息处理方法。这种工作机制的特点表现为通过网络中大量神经元的作用来体现自身的处理功能,从模拟人脑的结构和单个神经元功能出发,达到模拟人脑处理信息的目的。 目前,在国民经济和国防科技现代化建设中神经网络具有广阔的应用领域和发展前景,其应用领域主要表现在信息领域、自动化领域、工程领域和经济领域等。 本文以BP神经网络作为研究对象。研究的内容主要有:首先介绍了神经网络的概念、控制结构,学习方式等。其次,介绍了人工神经元模型,并对BP神经网络的基本原理及推导过程进行详细阐述。再次将BP神经网络的算法应用于PID 中,介绍了基于BP神经网络PID整定原理和算法步骤。最后利用 MATLAB/Simulink 对BP神经网络PID控制系统进行仿真,得出BP神经网络的控制效果明显好,它具有很强的自整定,自适应功能。 关键词:BP算法,PID控制,自整定

ABSTRACT As a kind of emerging information processing science,the neural network can simulate some basic characteristic of human brain. It is an information-processed method which takes person's cerebrum working pattern as a foundation and studies the model of adaptive and non- program. The characteristics of this kind of work mechanism are that it can show its processing function through the massive neurons function in the network. Then, it starts with simulating the human brain structure and the single neuron function to achieve the goal that simulates the human brain to process information. Nowadays, the neural network has wide application fields and prospects in the national economy and modernization of national defense science. It mainly applies in information, automation, economical and so on. This article takes the BP neural network as the research object. The content of the research mainly contain: firstly, it introduces the concept of neural network, control structure and mode of study and so on. Secondly, it introduces the artificial neuron model, the basic principles of BP neural network and the derivation process in detail. Then, it applies BP neural network in the PID, and introduces the tuning principles of PID based the BP neural network and steps of the algorithm. Finally, Matlab/Simulink is used to simulate the BP neural network PID control system. In the consequence, the performance of BP neutral network control significantly good. BP neural network control system has a strong self-tuning, adaptive function. KEY WORDS: BP algorithm, PID control, self-tuning

MATLAB基于BP神经网络PID控制程序

MATLAB基于BP神经网络PID控制程序>> %BP based PID Control clear all; close all; xite=0.20; %学习速率 alfa=0.01; %惯性因子 IN=4;H=5;Out=3; %NN Structure wi=[-0.6394 -0.2696 -0.3756 -0.7023; -0.8603 -0.2013 -0.5024 -0.2596; -1.0749 0.5543 -1.6820 -0.5437; -0.3625 -0.0724 -0.6463 -0.2859; 0.1425 0.0279 -0.5406 -0.7660]; %wi=0.50*rands(H,IN); %隐含层加权系数wi初始化 wi_1=wi;wi_2=wi;wi_3=wi; wo=[0.7576 0.2616 0.5820 -0.1416 -0.1325; -0.1146 0.2949 0.8352 0.2205 0.4508; 0.7201 0.4566 0.7672 0.4962 0.3632]; %wo=0.50*rands(Out,H); %输出层加权系数wo初始化 wo_1=wo;wo_2=wo;wo_3=wo; ts=20; %采样周期取值 x=[0,0,0]; %比例,积分,微分赋初值 u_1=0;u_2=0;u_3=0;u_4=0;u_5=0; y_1=0;y_2=0;y_3=0; Oh=zeros(H,1); %Output from NN middle layer 隐含层的输出I=Oh; %Input to NN middle layer 隐含层输入 error_2=0; error_1=0; for k=1:1:500 %仿真开始,共500步 time(k)=k*ts;

BP神经网络matlab源程序代码

close all clear echo on clc % NEWFF——生成一个新的前向神经网络 % TRAIN——对 BP 神经网络进行训练 % SIM——对 BP 神经网络进行仿真 % 定义训练样本 % P为输入矢量 P=[0.7317 0.6790 0.5710 0.5673 0.5948;0.6790 0.5710 0.5673 0.5948 0.6292; ... 0.5710 0.5673 0.5948 0.6292 0.6488;0.5673 0.5948 0.6292 0.6488 0.6130; ... 0.5948 0.6292 0.6488 0.6130 0.5654; 0.6292 0.6488 0.6130 0.5654 0.5567; ... 0.6488 0.6130 0.5654 0.5567 0.5673;0.6130 0.5654 0.5567 0.5673 0.5976; ... 0.5654 0.5567 0.5673 0.5976 0.6269;0.5567 0.5673 0.5976 0.6269 0.6274; ... 0.5673 0.5976 0.6269 0.6274 0.6301;0.5976 0.6269 0.6274 0.6301 0.5803; ... 0.6269 0.6274 0.6301 0.5803 0.6668;0.6274 0.6301 0.5803 0.6668 0.6896; ... 0.6301 0.5803 0.6668 0.6896 0.7497]; % T为目标矢量 T=[0.6292 0.6488 0.6130 0.5654 0.5567 0.5673 0.5976 ... 0.6269 0.6274 0.6301 0.5803 0.6668 0.6896 0.7497 0.8094]; % Ptest为测试输入矢量 Ptest=[0.5803 0.6668 0.6896 0.7497 0.8094;0.6668 0.6896 0.7497 0.8094 0.8722; ... 0.6896 0.7497 0.8094 0.8722 0.9096]; % Ttest为测试目标矢量 Ttest=[0.8722 0.9096 1.0000]; % 创建一个新的前向神经网络 net=newff(minmax(P'),[12,1],{'logsig','purelin'},'traingdm'); % 设置训练参数 net.trainParam.show = 50; net.trainParam.lr = 0.05; net.trainParam.mc = 0.9; net.trainParam.epochs = 5000; net.trainParam.goal = 0.001; % 调用TRAINGDM算法训练 BP 网络 [net,tr]=train(net,P',T); % 对BP网络进行仿真 A=sim(net,P'); figure; plot((1993:2007),T,'-*',(1993:2007),A,'-o'); title('网络的实际输出和仿真输出结果,*为真实值,o为预测值'); xlabel('年份'); ylabel('客运量'); % 对BP网络进行测试 A1=sim(net,Ptest');

基于神经网络的PID控制

基于神经网络的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控制器的参数,以期达到某种性能指标的最

基于Bp神经网络的股票预测

基于神经网络的股票预测 【摘要】: 股票分析和预测是一个复杂的研究领域,本论文将股票技术分析理论与人工神经网络相结合,针对股票市场这一非线性系统,运用BP神经网络,研究基于历史数据分析的股票预测模型,同时,对单只股票短期收盘价格的预测进行深入的理论分析和实证研究。本文探讨了BP神经网络的模型与结构、BP算法的学习规则、权值和阈值等,构建了基于BP神经网络的股票短期预测模型,研究了神经网络的模式、泛化能力等问题。并且,利用搭建起的BP神经网络预测模型,采用多输入单输出、单隐含层的系统,用前五天的价格来预测第六天的价格。对于网络的训练,选用学习率可变的动量BP算法,同时,对网络结构进行了隐含层节点的优化,多次尝试,确定最为合理、可行的隐含层节点数,从而有效地解决了神经网络隐含层节点的选取问题。 【abstract] Stock analysis and forecasting is a complex field of study. The paper will make research on stock prediction model based on the analysis of historical data, using BP neural network and technical analysis theory. At the same time, making in-depth theoretical analysis and empirical studies on the short-term closing price forecasts of single stock. Secondly, making research on the model and structure of BP neural network, learning rules, weights of BP algorithm and so on, building a stock short-term forecasting model based on the BP neural network, related with the model of neural network and the ability of generalization. Moreover, using system of multiple-input single-output and single hidden layer, to forecast the sixth day price by BP neural network forecasting model structured. The network of training is chosen BP algorithm of traingdx, while making optimization on the node numbers of the hidden layer by several attempts. Thereby resolve effectively the problem of it. 【关键词】BP神经网络股票预测分析 1.引言 股票市场是一个不稳定的非线性动态变化的复杂系统,股价的变动受众多因素的影响。影响股价的因素可简单地分为两类,一类是公司基本面的因素,另一类是股票技术面的因素,虽然股票的价值是公司未来现金流的折现,由公司的基本面所决定,但是由于公司基本面的数据更新时间慢,且很多时候并不能客观反映公司的实际状况,采用适当数学模型就能在一定

相关主题
文本预览
相关文档 最新文档