资源描述
第一章 前言
1.1 课题的意义:
本毕业设计旨在学习并比较各种自适应控制算法,掌握matlab语言,利用simulink对自适应控制系统模型进行仿真分析。
自适应控制是人们要求越来越高的控制性能和针对被控系统的高度复杂化,高度不确定性的情况下产生的,是人工智能渗入到应用科技领域的必然结果。并在常规控制理论的基础上得到进一步的发展和提高。进入21世纪以来,智能控制技术和远程监测技术继续飞速发展,逐渐被应用到电力、交通和物流等领域。从卫星智能控制,到智能家居机器人;从公共场所的无线报警系统,到家用煤气、自来水等数据的采集。可以说,智能控制技术和远程监测技术己经渗透到了人们日常生活之中,节约了大量的人力和物力,给人们的日常生活带来了极大的便利。目前,自适应控制的研究以认知科学、心理学、社会学、系统学、语言学和哲学为基础,有效的把数字技术、远程通信、计算机网络、数据库、计算机图形学、语音与听觉、机器人学、过程控制等技术有机的结合,提供了解决复杂问题的有效手段。
自适应控制是在人们在追求高控制性能、高度复杂化和高度不确定性的被控系统情况下产生的,是人工智能渗入到应用科技领域的必然结果,并在常规控制理论的基础上得到进一步的发展和提高。主要研究对象从单输入、单输出的常系数线性系统,发展为多输入、多输出的复杂控制系统。自适应控制理论的产生为解决复杂系统控制问题开辟了新的途径,成为当下控制领域的研究和发展热点。
1.2 国内外研究概况及发展趋势:
1943年,心理学家W·Mcculloch和数理逻辑学家W·Pitts在分析、总结神经元基本特性的基础上首先提出神经元的数学模型。此模型沿用至今,并且直接影响着这一领域研究的进展。因而,他们两人可称为人工神经网络研究的先驱。1945年冯·诺依曼领导的设计小组试制成功存储程序式电子计算机,标志着电子计算机时代的开始。1948年,他在研究工作中比较了人脑结构与存储程序式计算机的根本区别,提出了以简单神经元构成的再生自动机网络结构。但是,由于指令存储式计算机技术的发展非常迅速,迫使他放弃了神经网络研究的新途径,继续投身于指令存储式计算机技术的研究,并在此领域作出了巨大贡献。虽然,冯·诺依曼的名字是与普通计算机联系在一起的,但他也是人工神经网络研究的先驱之一。
50年代末,F·Rosenblatt设计制作了“感知机”,它是一种多层的神经网络。这项工作首次把人工神经网络的研究从理论探讨付诸工程实践。当时,世界上许多实验室仿效制作感知机,分别应用于文字识别、声音识别、声纳信号识别以及学习记忆问题的研究。然而,这次人工神经网络的研究高潮未能持续很久,许多人陆续放弃了这方面的研究工作,这是因为当时数字计算机的发展处于全盛时期,许多人误以为数字计算机可以解决人工智能、模式识别、专家系统等方面的一切问题,使感知机的工作得不到重视;其次,当时的电子技术工艺水平比较落后,主要的元件是电子管或晶体管,利用它们制作的神经网络体积庞大,价格昂贵,要制作在规模上与真实的神经网络相似是完全不可能的;另外,在1968年一本名为《感知机》的著作中指出线性感知机功能是有限的,它不能解决如异感这样的基本问题,而且多层网络还不能找到有效的计算方法,这些论点促使大批研究人员对于人工神经网络的前景失去信心。60年代末期,人工神经网络的研究进入了低潮。
另外,在60年代初期,Widrow提出了自适应线性元件网络,这是一种连续取值的线性加权求和阈值网络。后来,在此基础上发展了非线性多层自适应网络。当时,这些工作虽未标出神经网络的名称,而实际上就是一种人工神经网络模型。随着人们对感知机兴趣的衰退,神经网络的研究沉寂了相当长的时间。80年代初期,模拟与数字混合的超大规模集成电路制作技术提高到新的水平,完全付诸实用化,此外,数字计算机的发展在若干应用领域遇到困难。这一背景预示,向人工神经网络寻求出路的时机已经成熟。美国的物理学家Hopfield于1982年和1984年在美国科学院院刊上发表了两篇关于人工神经网络研究的论文,引起了巨大的反响。人们重新认识到神经网络的威力以及付诸应用的现实性。随即,一大批学者和研究人员围绕着 Hopfield提出的方法展开了进一步的工作,形成了80年代中期以来人工神经网络的研究热潮。
1985年,Ackley,Hinton,and Sejnowski将模拟退火算法应用到神经网络训练中,提出了Boltzmann机,该算法具有逃离极值的优点,但是训练时间需要很长。1986年,Rumelhart,Hinton,and Williams提出了多层前馈神经网络的学习算法,即BP算法。它从证明的角度推导算法的正确性,是学习算法有理论依据。从学习算法角度上看,是一个很大的进步。1988年,Broomhead and Lowe第一次提出了径向基网络:RBF网络。
1.3 设计要求
1、 设计要求
1) 首先完成简单控制系统模块的仿真分析;
2) 提出自适应控制系统设计的方法;
3) 建立基于神经网络的自适应控制系统的仿真模型;
4) 利用simulink对基于神经网络的自适应控制系统模型进行仿真;
5) 从仿真结果分析基于神经网络模型的自适应控制算法的性能。
2、 原始资料
1) MATLAB语言;
2) 控制系统设计的基础理论;
3) Simulink中控制系统模块的应用;
4) 翻译相关课题英文资料。
第二章 神经网络
2.1神经网络简介
人工神经网络(artificial neural network,ANN)是模仿生物神经网络功能的一种经验模型。生物神经元受到传入的刺激,其反应又从输出端传到相联的其它神经元,输入和输出之间的变换关系一般是非线性的。神经网络是由若干简单(通常是自适应的)元件及其层次组织,以大规模并行连接方式构造而成的网络,按照生物神经网络类似的方式处理输入的信息。模仿生物神经网络而建立的人工神经网络,对输入信号有功能强大的反应和处理能力[9]。
神经网络是由大量的处理单元(神经元)互相连接而成的网络。为了模拟大脑的基本特性,在神经科学研究的基础上,提出了神经网络的模型。但是,实际上神经网络并没有完全反映大脑的功能,只是对生物神经网络进行了某种抽象、简化和模拟[8]。神经网络的信息处理通过神经元的互相作用来实现,知识与信息的存储表现为网络元件互相分布式的物理联系。神经网络的学习和识别取决于各种神经元连接权系数的动态演化过程。
若干神经元连接成网络,其中的一个神经元可以接受多个输入信号,按照一定的规则转换为输出信号。由于神经网络中神经元间复杂的连接关系和各神经元传递信号的非线性方式,输入和输出信号间可以构建出各种各样的关系,因此可以用来作为黑箱模型,表达那些用机理模型还无法精确描述、但输入和输出之间确实有客观的、确定性的或模糊性的规律。因此,人工神经网络作为经验模型的一种,在化工生产、研究和开发中得到了越来越多的用途。
2.2神经网络结构与学习规则
2.2.1 人工神经元模型
图3-1表示出了作为人工神经网络(artificial neural network,以下简称NN)的基本单元的神经元模型,它有三个基本要素:
图3-1 人工神经网络模型
(i)一组连接(对应于生物神经元的突触),连接强度由各连接上的权值表示,权值为正表示激活,为负表示抑制。
(ii)一个求和单元,用于求取各输入信号的加权和(线性组合)。
(iii)一个非线性激活函数,起非线性映射作用并将神经元输出幅度限制在一定范围内(一般限制在或之间)。
此外还有一个阈值(或偏置)。
以上作用可分别以数学式表达出来:
, ,
式中为输入信号,为神经元之权值,为线性组合结果,为阈值,为激活函数,为神经元的输出。
若把输入的维数增加一维,则可把阈值包括进去。例如
,
此处增加了一个新的连接,其输入为(或),权值为(或),如图3-2所示。
图3-2 复杂人工神经网络模型
激活函数可以有以下几种:
(i)阈值函数
即阶梯函数。这时相应的输出为
其中,常称此种神经元为模型。
(ii)分段线性函数
它类似于一个放大系数为1的非线性放大器,当工作于线性区时它是一个线性组合器,放大系数趋于无穷大时变成一个阈值单元。
(iii)sigmoid函数
最常用的函数形式为
参数可控制其斜率。另一种常用的是双曲正切函数
这类函数具有平滑和渐近性,并保持单调性。
Matlab中的激活(传递)函数如下表所示:
表2-1 传递函数
函数名
功 能
purelin
线性传递函数
hardlim
硬限幅传递函数
hardlims
对称硬限幅传递函数
satlin
饱和线性传递函数
satlins
对称饱和线性传递函数
logsig
对数S形传递函数
tansig
正切S形传递函数
radbas
径向基传递函数
compet
竞争层传递函数
各个函数的定义及使用方法,可以参看Matlab的帮助(如在Matlab命令窗口运行help tansig,可以看到tantig的使用方法,及tansig的定义为)。
2.2.2 网络结构及工作方式
除单元特性外,网络的拓扑结构也是NN的一个重要特性。从连接方式看NN主要有两种。
(i)前馈型网络
各神经元接受前一层的输入,并输出给下一层,没有反馈。结点分为两类,即输入单元和计算单元,每一计算单元可有任意个输入,但只有一个输出(它可耦合到任意多个其它结点作为其输入)。通常前馈网络可分为不同的层,第层的输入只与第层输出相连,输入和输出结点与外界相连,而其它中间层则称为隐层。
(ii)反馈型网络
所有结点都是计算单元,同时也可接受输入,并向外界输出。
NN的工作过程主要分为两个阶段:第一个阶段是学习期,此时各计算单元状态不变,各连线上的权值可通过学习来修改;第二阶段是工作期,此时各连接权固定,计算单元状态变化,以达到某种稳定状态。
从作用效果看,前馈网络主要是函数映射,可用于模式识别和函数逼近。反馈网络按对能量函数的极小点的利用来分类有两种:第一类是能量函数的所有极小点都起作用,这一类主要用作各种联想存储器;第二类只利用全局极小点,它主要用于求解最优化问题。
2.2.3 神经网络的学习方式
学习是神经网络的主要特征之一。学习规则就是修正神经元之间连接强度或加权系数的算法,使获得的知识结构适应周围环境的变化。在学习过程中,执行学习规则,修正加权系数。神经网络的学习方式主要分为有导师(指导式)学习、无导师(自学式)学习和再励学习(强化学习)三种:
(l)有导师学习:就是在学习的过程中,有一个期望的网络输出,学习算法根据给定输入的神经网络实际输出与期望输出之间的误差来调整神经元的连接强度,即权值。因此学习需要有导师来提供期望输出信号。
(2)无导师学习:就是在学习过程中不需要有期望输出,因而不存在直接的误差信息。网络学习需要建立一个间接的评价函数,每个处理单元能够自适应连接权值,以对网络的某种行为趋向作出评价。
(3)再励学习:这种学习介于上述两种情况之间,外部环境对系统输出结果只给出评价(奖或罚)而不是给出正确答案,学习系统经过强化那些受奖励的行为来改善自身性能。
2.2.4 神经网络的学习规则
神经网络通常采用的网络学习规则包括以下三种:
(l)误差纠正学习规则
令是输入时神经元k在n时刻的实际输出,表示应有的输出(可由训练样本给出),则误差信号可写为:
误差纠正学习的最终目的是使某一基于的目标函数达到要求,以使网络中每一输出单元的实际输出在某种统计意义上逼近应有输出。一旦选定了目标函数形式,误差纠正学习就变成了一个典型的最优化问题,最常用的目标函数是均方误差判据,定义为误差平方和的均值:
其中E为期望算子。上式的前提是被学习的过程是平稳的,具体方法可用最优梯度下降法。直接用J作为目标函数时需要知道整个过程的统计特性,为解决这一问题,通常用J在时刻n的瞬时值代替J,即:
问题变为求E对权值w的极小值,据梯度下降法可得:
其中为学习步长,这就是通常所说的误差纠正学习规则。
(2)Hebb学习规则
由神经心理学家Hebb提出的学习规则可归纳为“当某一突触连接两端的神经元同时处于激活状态(或同为抑制)时,该连接的强度应增加,反之应减弱”用数学方式可描述为:
由于与的相关成比例,有时称为相关学习规则。
(3)竞争学习规则
顾名思义,在竞争学习时,网络各输出单元互相竞争,最后达到只有一个最强者激活,最常见的一种情况是输出神经元之间有侧向抑制性连接,这样原来输出单元中如有某一单元较强,则它将获胜并抑制其它单元,最后只有此强者处于激活状态。最常用的竞争学习规则可写为:
第三章 仿真环境
3.1 Matlab简介
MATLAB(Matrix Laboratory)是美国 MathWorks 公司开发的用于概念设计,算法开发,建模仿真,实时实现的理想的集成环境,是目前最好的科学计算类软件。MATLAB 已发展成为适合众多学科,多种工作平台、功能强大的大型软件,成为了诸多领域的开发首选软件,并且, MATLAB 还具有500 余家第三方合作伙伴,分布在科学计算、机械动力、化工、计算机通讯、汽车、金融等领域,接口方式包括了联合建模、数据共享、开发流程衔接等等。在欧美等国家的高校,MATLAB已成为线性代数、自动控制理论、数理统计、数字信号处理、时间序列分析、动态系统仿真等高级课程的基本教学工具。成为攻读学位的本科、硕士、博士生必须掌握的基本技能。在设计研究单位和工业开发部门,MATLAB被广泛的应用于研究和解决各种具体问题。
3.2 MATLAB的主要组成部分:
3.2.1开发环境(development Environment):
为MATLAB用户或程序编制员提供的一套应用工具和设施。由一组图形化用户接口工具和组件集成:包括MATLAB桌面、命令窗口、命令历史窗口、编辑调试窗口及帮助信息、工作空间、文件和搜索路径等浏览器;
3.2.2 MATLAB数学函数库(Math Function Library):
数学和分析功能在MATLAB工具箱中被组织成8个文件夹。
elmat 初步矩阵,和矩阵操作。
elfun 初步的数学函数。求和、正弦、余弦和复数运算等
specfun 特殊的数学函数。矩阵求逆、矩阵特征值、贝塞尔函数等;
matfun 矩阵函数-用数字表示的线性代数。
atafun 数据分析和傅立叶变换。
polyfun 插值,多项式。
funfun 功能函数。
sparfun 稀疏矩阵。
3.2.3 MATLAB 语言:
MATLAB Language一种高级编程语言(高阶的矩阵/数组语言),包括控制流的描述、函数、数据结构、输入输出及面对对象编程;
3.2.4 句柄图形(Handle Graphics) :
MATLAB制图系统具有2维、三维的数据可视化,图象处理,动画片制作和表示图形功能。可以对各种图形对象进行更为细腻的修饰和控制。允许你建造完整的图形用户界面(GUI),以及建立完整的图形界面的应用程序。制图法功能在MATLAB工具箱中被组织成5个文件夹:
graph2d 二维数图表。
graph3d 三维图表。
specgraph 专业化图表。
graphics 制图法。
uitools 图形用户界面工具。
3.2.5 应用程序接口 (Applied Function Interface) :
MATLAB的应用程序接口允许用户使用C或FORTRAN语言编写程序与MATLAB连接。
图3-1 Matlab开发环境
3.3 MATLAB的语言特点
一种语言之所以能如此迅速地普及,显示出如此旺盛的生命力,是由于它有着不同于其他语言的特点。正如同FORTRAN和C等高级语言使人们摆脱了需要直接对计算机硬件资源进行操作一样,被称作为第四代计算机语言的MATLAB,利用其丰富的函数资源,使编程人员从繁琐的程序代码中解放出来。MATLAB的最突出的特点就是简洁。MATLAB用更直观的、符合人们思维习惯的代码,代替了C和FORTRAN语言的冗长代码。MATLAB给用户带来的是最直观、最简洁的程序开发环境。以下简单介绍一下MATLAB的主要特点。
①语言简洁紧凑,使用方便灵活,库函数极其丰富。MATLAB程序书写形式自由,利用其丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。由于库函数都由本领域的专家编写,用户不必担心函数的可靠性。可以说,用MATLAB进行科技开发是站在专家的肩膀上。
具有FORTRAN和C等高级计算机语言知识的读者可能已经注意到,如果用FORTRAN或C语言去编写程序,尤其当涉及矩阵运算和画图时,编程会很麻烦。例如,如果用户想求解一个线性代数方程,就得编写一个程序块读入数据,然后再使用一种求解线性方程的算法(例如追赶法)编写一个程序块来求解方程,最后再输出计算结果。在求解过程中,最麻烦的要算第二部分。解线性方程的麻烦在于要对矩阵的元素作循环,选择稳定的算法以及代码的调试都不容易。即使有部分源代码,用户也会感到麻烦,且不能保证运算的稳定性。解线性方程的程序用FORTRAN和C这样的高级语言编写至少需要好几十行。再如用双步QR方法求解矩阵特征值,如果用FORTRAN编写,至少需要四百多行,调试这种几百行的计算程序可以说很困难。以下为用MATLAB编写以上两个小程序的具体过程。
用MATLAB求解下列方程,并求矩阵A的特征值。
其中:
解为:x=A\b;设A的特征值组成的向量为e,e=eig(A)。
可见,MATLAB的程序极其简短。更为难能可贵的是,MATLAB甚至具有一定的智能水平,比如上面的解方程,MATLAB会根据矩阵的特性选择方程的求解方法,所以用户根本不用怀疑MATLAB的准确性。
②运算符丰富。由于MATLAB是用C语言编写的,MATLAB提供了和C语言几乎一样多的运算符,灵活使用MATLAB的运算符将使程序变得极为简短,具体运算符见附表。
③MATLAB既具有结构化的控制语句(如for循环、while循环、break语句和if语句),又有面向对象编程的特性。
④语法限制不严格,程序设计自由度大。例如,在MATLAB里,用户无需对矩阵预定义就可使用。
⑤程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。
⑥MATLAB的图形功能强大。在FORTRAN和C语言里,绘图都很不容易,但在MATLAB里,数据的可视化非常简单。MATLAB还具有较强的编辑图形界面的能力。
⑦MATLAB的缺点是,它和其他高级程序相比,程序的执行速度较慢。由于MATLAB的程序不用编译等预处理,也不生成可执行文件,程序为解释执行,所以速度较慢。
⑧功能强劲的工具箱是MATLAB的另一重大特色。MATLAB包含两个部分:核心部分和各种可选的工具箱。核心部分中有数百个核心内部函数。其工具箱又可分为两类:功能性工具箱和学科性工具箱。功能性工具箱主要用来扩充其符号计算功能、图示建模仿真功能、文字处理功能以及与硬件实时交互功能。功能性工具箱能用于多种学科。而学科性工具箱是专业性比较强的,如control、toolbox、signal processing toolbox、communication toolbox等。这些工具箱都是由该领域内的学术水平很高的专家编写的,所以用户无需编写自己学科范围内的基础程序,而直接进行高、精、尖的研究。下表列出了MATLAB的核心部分及其工具箱等产品系列的主要应用领域。
⑨源程序的开放性。开放性也许是MATLAB最受人们欢迎的特点。除内部函数以外,所有MATLAB的核心文件和工具箱文件都是可读可改的源文件,用户可通过对源文件的修改以及加入自己的文件构成新的工具箱。
第四章 基于BP神经网络的自适应控制算法
4.1 BP神经网络
4.1.1 BP神经网络定义
BP (Back Propagation)神经网络是一种神经网络学习算法。其由输入层、中间层、输出层组成的阶层型神经网络,中间层可扩展为多层。相邻层之间各神经元进行全连接,而每层各神经元之间无连接,网络按有教师示教的方式进行学习,当一对学习模式提供给网络后,各神经元获得网络的输入响应产生连接权值(Weight)。然后按减小希望输出与实际输出误差的方向,从输出层经各中间层逐层修正各连接权,回到输入层。此过程反复交替进行,直至网络的全局误差趋向给定的极小值,即完成学习的过程。
4.1.2 BP神经网络模型及其基本原理
BP神经网络是误差反向传播神经网络的简称,它由一个输入层,一个或多个隐含层和一个输出层构成,每一次由一定数量的的神经元构成。这些神经元如同人的神经细胞一样是互相关联的。其结构如图4-1所示:
图4-1 BP神经网络模型
生物神经元信号的传递是通过突触进行的一个复杂的电化学等过程, 在人工神经网络中是将其简化模拟成一组数字信号通过一定的学习规则而不断变动更新的过程,这组数字储存在神经元之间的连接权重。网络的输入层模拟的是神经系统中的感觉神经元,它接收输入样本信号。输入信号经输入层输入, 通过隐含层的复杂计算由输出层输出,输出信号与期望输出相比较,若有误差,再将误差信号反向由输出层通过隐含层处理后向输入层传播。在这个过程中,误差通过梯度下降算法,分摊给各层的所有单元,从而获得各单元的误差信号,以此误差信号为依据修正各单元权值,网络权值因此被重新分布。此过程完成后, 输入信号再次由输入层输入网络,重复上述过程。这种信号正向传播与误差反向传播的各层权值调整过程周而复始地进行着,直到网络输出的误差减少到可以接受的程度,或进行到预先设定的学习次数为止。权值不断调整的过程就是网络的学习训练过程。
BP 神经网络的信息处理方式具有如下特点:
1)信息分布存储。人脑存储信息的特点是利用突触效能的变化来调整存储内容, 即信息存储在神经元之间的连接强度的分布上, B P神经网络模拟人脑的这一特点,使信息以连接权值的形式分布于整个网络。
2) 信息并行处理。人脑神经元之间传递脉冲信号的速度远低于冯·诺依曼计算机的工作速度,但是在很多问题上却可以做出快速的判断、决策和处理,这是由于人脑是一个大规模并行与串行组合的处理系统。BP神经网络的基本结构模仿人脑,具有并行处理的特征,大大提高了网络功能。
3)具有容错性。生物神经系统部分不严重损伤并不影响整体功能,BP神经网络也具有这种特性,网络的高度连接意味着少量的误差可能不会产生严重的后果,部分神经元的损伤不破坏整体,它可以自动修正误差。这与现代计算机的脆弱性形成鲜明对比。
4)具有自学习、自组织、自适应的能力。BP神经网络具有初步的自适应与自组织能力,在学习或训练中改变突触权值以适应环境,可以在使用过程中不断学习完善自己的功能,并且同一网络因学习方式的不同可以具有不同的功能,它甚至具有创新能力,可以发展知识,以至超过设计者原有的知识水平。
4.1.3 BP神经网络的主要功能
目前,在人工神经网络的实际应用中。绝大部分的神经网络模型都采用BP神经网络及其变化形式。它也是前向网络的核心部分,体现了人工神经网络的精华。
BP网络主要用于以下四方面。
函数逼近:用输入向量和相应的输出向量训练一个网络以逼近一个函数。
模式识别:用一个待定的输出向量将它与输入向量联系起来。
分类:把输入向量所定义的合适方式进行分类。
数据压缩:减少输出向量维数以便传输或存储。
4.2 基于BP神经网络的PID自适应控制实例
4.2.1实例原理
PID控制要取得好的控制效果,就必须通过调整好比例、积分和微分三种控制作用,在形成控制量中相互配合又相互制约的关系。神经网络具有逼近任意非线性函数的能力,而且结构和学习算法简单明确。可以通过对系统性能的学习来实现具有最佳组合的PID控制。采用基于BP神经网络的PID自适应控制,可以建立参数、、自学习的神经PID控制,从而达到参数自行调整的。
实例控制器由两部分组成:
(1)经典的PID控制器:直接对被控对象进行闭环控制,仍然是靠改变三个参数、、来获得满意的控制效果。
(2)神经网络:根据系统的运行状态,调节PID控制器的参数,以其达到某种性能指标的最优化。采用如图4-2的系统结构,即使输出层神经元的输出状态对应于PID控制器的三个可调参数、、,通过神经网络的自身学习、加权系数调整,从而使其稳定状态对应于某种最优控制规律下的PID的控制器各个参数。
采用基于BP神经网络的PID控制的系统结构如图4-2所示:
BP神经网络
被控对象
PID控制器
+
r kp ki kd u y
- e
图4-2 基于BP神经网络的PID控制结构图
图4-2中的BP神经网络选如图4-3的形式,采用三层结构:一个输入层,一个隐含层,一个输出层,j表示输入层节点,i表示隐层节点,l表示输出层节点。输入层有m个输入节点,隐含层有q个隐含节点,输出层有3个输出节点。输入节点对应所选的系统运行状态量,如系统不同时刻的输入量和输出量,偏差量等。输出节点分别对应PID控制器的三个参数、、,由于、、不能为负,所以输出层神经元活化函数取非负的Sigmoid函数。
i
j l
输入节点
输出层节点
隐层节点
图4-3 BP神经网络结构图
由图可见,此处BP神经网络的输入层输出为
j=1,2,3…m
隐层输入为:
隐层输出为:
=1,2…
式中,为输入层到隐含层加权系数,上标(1)、(2)、(3)分别代表输
入层、隐含层、输出层,f(x)为正负对称的Sigmoid函数,即
。
最后网络输出层三个节点的输入为
最后的输出层的三个输出为 :
=1,2,3
即
式中,为隐层到输出层加权系数,输出层神经元活化函数为
取性能指标函数
用梯度下降法修正网络的权系数,并附加一使搜索快速收敛全局极小的惯性项,则有:
为学习率,为惯性系数。其中:
(4-1)
这里需要用到的变量,由于模型可以未知,所以未知,但是可以测出的相对变化量,即:
也可以近似用符号函数:
取代,由此带来计算上的不精确可以通过调整学习速率来补偿。这样做一方面可以简化运算,另一方面避免了当很接近时导致式(4-1)趋于无穷。这种替代在算法上是可以的,因为是式(4-1)中的一个乘积因子,他的符号的正负决定着权值变化的方向,而数值变化的大小只影响权值变化的速度,但是权值变化的速度可以通过学习步长加以调节。
由式:
可得:
(4-2)
这样,可得BP神经网络输出层权计算公式为
把上式代入后得:
可令,则上式可写为:
由式(4-2)可确定,由符号函数代替,由可得。
同理可得隐含层权计算公式为
=1,2,…,
令 则:
=1,2,…,
该控制器的算法如下:
(1)确定BP神经网络的结构,即确定输入节点数M和隐含层节点数Q,并给各层加权系数的初值和,选定学习速率和惯性系数,此时k=1;
(2)采样得到rin(k)和yout(k),计算该时刻误差error(k)=rin(k)-yout(k);
(3)计算神经网络NN各层神经元的输入、输出,NN输出层的输出即为PID控制器的三个可调参数,,;
(4)根据经典增量数字PID的控制算法(见下式)计算PID控制器的输出u(k);
(5)进行神经网络学习,在线调整加权系数和实现PID控制参数的自适应调整;
(6)置k=k+1,返回到(1)。
4.2.2 实例运行结果(程序见附录一)
仿真输入: rin(k)=1.0;
仿真输出:a(k)=1.2*(1-0.8*exp(-0.1*k)); yout(k)=a(k)*y_1/(1+y_1^2)+u_1;
BP网络参数:IN=4;H=5;Out=3;
图4-4预想输出与实际输出
图4-5 输入与输出间的误差
图4-6 PID参数
仿真输入: rin(k)=sin(1*2*pi*k*ts);
仿真输出:a(k)=1.2*(1-0.8*exp(-0.1*k)); yout(k)=a(k)*y_1/(1+y_1^2)+u_1;
BP网络参数:IN=4;H=5;Out=3;
图4-7预想输出与实际输出
图4-8 输入与输出间的误差
图4-6 PID参数
4.3 仿真结果
通过仿真实例可以直观地看出:基于BP神经网络的PID控制器可以通过学习自动调整PID参数,使系统误差调整在允许误差范围内。
4.4 结果分析
BP神经网络最主要的优点是具有极强的非线性映射能力。理论上,对于一个三层和三层以上的BP网络,只要隐层神经元数目足够多,该网络就能以任意精度逼近一个非线性函数。其次,BP神经网络具有对外界刺激和输入信息进行联想记忆的能力。这是因为它采用了分布并行的信息处理方式,对信息的提取必须采用联想的方式,才能将相关神经元全部调动起来。BP 神经网络通过预先存储信息和学习机制进行自适应训练,可以从不完整的信息和噪声干扰中恢复原始的完整信息。这种能力使其在图像复原、语言处理、模式识别等方面具有重要应用。再次,BP 神经网络对外界输入样本有很强的识别与分类能力。由于它具有强大的非线性处理能力,因此可以较好地进行非线性分类, 解决了神经网络发展史上的非线性分类难题。另外, BP 神经网络具有优化计算能力。BP神经网络本质上是一个非线性优化问题, 它可以在已知的约束条件下,寻找一组参数组合,使该组合确定的目标函数达到最小。不过,其优化计算存在局部极小问题,必须通过改进完善。
由于BP网络训练中稳定性要求学习效率很小,所以梯度下降法使得训练很慢。动量法因为学习率的提高通常比单纯的梯度下降法要快一些,但在实际应用中还是速度不够,这两种方法通常只应用于递增训练。
多层神经网络可以应用于线性系统和非线性系统中,对于任意函数模拟逼近。当然,感知器和线性神经网络能够解决这类网络问题。但是,虽然理论上是可行的,但实际上BP网络并不一定总能有解。
对于非线性系统,选择合适的学习率是一个重要的问题。在线性网络中,学习率过大会导致训练过程不稳定。相反,学习率过小又会造成训练时间过长。和线性网络不同,对于非线性多层网络很难选择很好的学习率。对那些快速训练算法,缺省参数值基本上都是最有效的设置。
非线性网络的误差面比线性网络的误差面复杂得多,问题在于多层网络中非线性传递函数有多个局部最优解。寻优的过程与初始点的选择关系很大,初始点如果更靠近局部最优点,而不是全局最优点,就不会得到正确的结果,这也是多层网络无法得到最优解的一个原因。为了解决这个问题,在实际训练过程中,应重复选取多个初始点进行训练,以保证训练结果的全局最优性。网络隐层神经元的数目也对网络有一定的影响。神经元数目太少会造成网络的不适性,而神经元数目太多又会引起网络的过适性。
第五章 基于RBF神经网络的自适应控制算法
5.1 RBF网络
5.1.1 RBF网络的结构
RBF神经元网络即Radial Basis Function Neural Network,它的产生具有很强的生物学背景。在人的大脑皮层区域中,局部调节及交叠的感受野(Receptive Field)是人脑反应的特点。基于感受野这一特性,Moody和Darken提出了一种神经网络结构,即RBF网络。图5-1是这种思想的结构图。
图5-1 RBF神经网络
这是一种前向网络的拓扑结构,隐含层的单元是感受野单元,每个感受野单元输出为
ωi=Ri(X) =Ri(‖X-ci‖/σi), i= 1,…,H
X是N维输入向量,ci是与X同维数的向量,Ri(·)具有局部感受的特点。例如Ri(·)取高斯函数,即Ri(X)=exp(-‖X-ci‖2/σ2i),Ri(·)只有在ci周围的一部分区域内有较强的反应,这正体现了大脑皮质层的反应特点。RBF神经元网络不仅具有上述的生物学背景,而且还有数学理论的支持。利用正则化方法证明了如下结论。
若S={(Xi,Yi)∈Rn×R i=1,…,N}是训练集合,φ(·,w)表示未知的函数,其中w也未知。正则化问题的学习过程是寻找φ及参数w使H[φ] =∑(Yi-φ(Xi,w))2+λ‖Pφ‖2最小。用变分原理可以证明φ应该选择径向基函数(Ra-dial Basis Function) 。
5.2 RBF网络的自适应控制算法
RBF 网络是一种三层前馈网络, 由输入层、输出层和隐层组成。其中, 输入层和输出层皆由线性神经元组成; 隐层的激活函数( 核函数) 采用中心径向对称衰减的非负非线性函数, 其作用是对输入信号在局部产生响应。输入层与隐层之间的权值固定为1, 只有隐层与输出层之间的权值可调。
设输入矢量 , 隐层节点个数为m, RBF 网络的输出可表示为:
式中: 是第i 个隐层节点与输出层之间的权值; 为隐层激活函数。通常采用如下高斯函数
式中: 和分别表示该隐层节点的宽度和中心矢量;||.||是欧氏范数。
RBF 选取得越多, 网络的逼近精度越高, 但同时也会使网络的泛化能力下降, 因此, 在满足一定逼近精度的条件下, 应选取尽可能少的中心向量, 以保证网络有较好的泛化能力。本文提出的算法, 根据网络的输出误差在输入空间的非均匀分布, 以及每个RBF 对网络所作贡献的大小, 通过相应的添加和删除策略对网络参数进行自适应调整, 使网络的逼近性能和泛化能力都达到较高
展开阅读全文