利用simulink对自适应控制系统模型进行仿真分析.doc
《利用simulink对自适应控制系统模型进行仿真分析.doc》由会员分享,可在线阅读,更多相关《利用simulink对自适应控制系统模型进行仿真分析.doc(70页珍藏版)》请在冰点文库上搜索。
第一章前言
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,andSejnowski将模拟退火算法应用到神经网络训练中,提出了Boltzmann机,该算法具有逃离极值的优点,但是训练时间需要很长。
1986年,Rumelhart,Hinton,andWilliams提出了多层前馈神经网络的学习算法,即BP算法。
它从证明的角度推导算法的正确性,是学习算法有理论依据。
从学习算法角度上看,是一个很大的进步。
1988年,BroomheadandLowe第一次提出了径向基网络:
RBF网络。
1.3设计要求
1、设计要求
1)首先完成简单控制系统模块的仿真分析;
2)提出自适应控制系统设计的方法;
3)建立基于神经网络的自适应控制系统的仿真模型;
4)利用simulink对基于神经网络的自适应控制系统模型进行仿真;
5)从仿真结果分析基于神经网络模型的自适应控制算法的性能。
2、原始资料
1)MATLAB语言;
2)控制系统设计的基础理论;
3)Simulink中控制系统模块的应用;
4)翻译相关课题英文资料。
第二章神经网络
2.1神经网络简介
人工神经网络(artificialneuralnetwork,ANN)是模仿生物神经网络功能的一种经验模型。
生物神经元受到传入的刺激,其反应又从输出端传到相联的其它神经元,输入和输出之间的变换关系一般是非线性的。
神经网络是由若干简单(通常是自适应的)元件及其层次组织,以大规模并行连接方式构造而成的网络,按照生物神经网络类似的方式处理输入的信息。
模仿生物神经网络而建立的人工神经网络,对输入信号有功能强大的反应和处理能力[9]。
神经网络是由大量的处理单元(神经元)互相连接而成的网络。
为了模拟大脑的基本特性,在神经科学研究的基础上,提出了神经网络的模型。
但是,实际上神经网络并没有完全反映大脑的功能,只是对生物神经网络进行了某种抽象、简化和模拟[8]。
神经网络的信息处理通过神经元的互相作用来实现,知识与信息的存储表现为网络元件互相分布式的物理联系。
神经网络的学习和识别取决于各种神经元连接权系数的动态演化过程。
若干神经元连接成网络,其中的一个神经元可以接受多个输入信号,按照一定的规则转换为输出信号。
由于神经网络中神经元间复杂的连接关系和各神经元传递信号的非线性方式,输入和输出信号间可以构建出各种各样的关系,因此可以用来作为黑箱模型,表达那些用机理模型还无法精确描述、但输入和输出之间确实有客观的、确定性的或模糊性的规律。
因此,人工神经网络作为经验模型的一种,在化工生产、研究和开发中得到了越来越多的用途。
2.2神经网络结构与学习规则
2.2.1人工神经元模型
图3-1表示出了作为人工神经网络(artificialneuralnetwork,以下简称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命令窗口运行helptansig,可以看到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.1Matlab简介
MATLAB(MatrixLaboratory)是美国MathWorks公司开发的用于概念设计,算法开发,建模仿真,实时实现的理想的集成环境,是目前最好的科学计算类软件。
MATLAB已发展成为适合众多学科,多种工作平台、功能强大的大型软件,成为了诸多领域的开发首选软件,并且,MATLAB还具有500余家第三方合作伙伴,分布在科学计算、机械动力、化工、计算机通讯、汽车、金融等领域,接口方式包括了联合建模、数据共享、开发流程衔接等等。
在欧美等国家的高校,MATLAB已成为线性代数、自动控制理论、数理统计、数字信号处理、时间序列分析、动态系统仿真等高级课程的基本教学工具。
成为攻读学位的本科、硕士、博士生必须掌握的基本技能。
在设计研究单位和工业开发部门,MATLAB被广泛的应用于研究和解决各种具体问题。
3.2MATLAB的主要组成部分:
3.2.1开发环境(developmentEnvironment):
为MATLAB用户或程序编制员提供的一套应用工具和设施。
由一组图形化用户接口工具和组件集成:
包括MATLAB桌面、命令窗口、命令历史窗口、编辑调试窗口及帮助信息、工作空间、文件和搜索路径等浏览器;
3.2.2MATLAB数学函数库(MathFunctionLibrary):
数学和分析功能在MATLAB工具箱中被组织成8个文件夹。
elmat初步矩阵,和矩阵操作。
elfun初步的数学函数。
求和、正弦、余弦和复数运算等
specfun特殊的数学函数。
矩阵求逆、矩阵特征值、贝塞尔函数等;
matfun矩阵函数-用数字表示的线性代数。
atafun数据分析和傅立叶变换。
polyfun插值,多项式。
funfun功能函数。
sparfun稀疏矩阵。
3.2.3MATLAB语言:
MATLABLanguage一种高级编程语言(高阶的矩阵/数组语言),包括控制流的描述、函数、数据结构、输入输出及面对对象编程;
3.2.4句柄图形(HandleGraphics):
MATLAB制图系统具有2维、三维的数据可视化,图象处理,动画片制作和表示图形功能。
可以对各种图形对象进行更为细腻的修饰和控制。
允许你建造完整的图形用户界面(GUI),以及建立完整的图形界面的应用程序。
制图法功能在MATLAB工具箱中被组织成5个文件夹:
graph2d二维数图表。
graph3d三维图表。
specgraph专业化图表。
graphics制图法。
uitools图形用户界面工具。
3.2.5应用程序接口(AppliedFunctionInterface):
MATLAB的应用程序接口允许用户使用C或FORTRAN语言编写程序与MATLAB连接。
图3-1Matlab开发环境
3.3MATLAB的语言特点
一种语言之所以能如此迅速地普及,显示出如此旺盛的生命力,是由于它有着不同于其他语言的特点。
正如同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、signalprocessingtoolbox、communicationtoolbox等。
这些工具箱都是由该领域内的学术水平很高的专家编写的,所以用户无需编写自己学科范围内的基础程序,而直接进行高、精、尖的研究。
下表列出了MATLAB的核心部分及其工具箱等产品系列的主要应用领域。
⑨源程序的开放性。
开放性也许是MATLAB最受人们欢迎的特点。
除内部函数以外,所有MATLAB的核心文件和工具箱文件都是可读可改的源文件,用户可通过对源文件的修改以及加入自己的文件构成新的工具箱。
第四章基于BP神经网络的自适应控制算法
4.1BP神经网络
4.1.1BP神经网络定义
BP(BackPropagation)神经网络是一种神经网络学习算法。
其由输入层、中间层、输出层组成的阶层型神经网络,中间层可扩展为多层。
相邻层之间各神经元进行全连接,而每层各神经元之间无连接,网络按有教师示教的方式进行学习,当一对学习模式提供给网络后,各神经元获得网络的输入响应产生连接权值(Weight)。
然后按减小希望输出与实际输出误差的方向,从输出层经各中间层逐层修正各连接权,回到输入层。
此过程反复交替进行,直至网络的全局误差趋向给定的极小值,即完成学习的过程。
4.1.2BP神经网络模型及其基本原理
BP神经网络是误差反向传播神经网络的简称,它由一个输入层,一个或多个隐含层和一个输出层构成,每一次由一定数量的的神经元构成。
这些神经元如同人的神经细胞一样是互相关联的。
其结构如图4-1所示:
图4-1BP神经网络模型
生物神经元信号的传递是通过突触进行的一个复杂的电化学等过程,在人工神经网络中是将其简化模拟成一组数字信号通过一定的学习规则而不断变动更新的过程,这组数字储存在神经元之间的连接权重。
网络的输入层模拟的是神经系统中的感觉神经元,它接收输入样本信号。
输入信号经输入层输入,通过隐含层的复杂计算由输出层输出,输出信号与期望输出相比较,若有误差,再将误差信号反向由输出层通过隐含层处理后向输入层传播。
在这个过程中,误差通过梯度下降算法,分摊给各层的所有单元,从而获得各单元的误差信号,以此误差信号为依据修正各单元权值,网络权值因此被重新分布。
此过程完成后,输入信号再次由输入层输入网络,重复上述过程。
这种信号正向传播与误差反向传播的各层权值调整过程周而复始地进行着,直到网络输出的误差减少到可以接受的程度,或进行到预先设定的学习次数为止。
权值不断调整的过程就是网络的学习训练过程。
BP神经网络的信息处理方式具有如下特点:
1)信息分布存储。
人脑存储信息的特点是利用突触效能的变化来调整存储内容,即信息存储在神经元之间的连接强度的分布上,BP神经网络模拟人脑的这一特点,使信息以连接权值的形式分布于整个网络。
2)信息并行处理。
人脑神经元之间传递脉冲信号的速度远低于冯·诺依曼计算机的工作速度,但是在很多问题上却可以做出快速的判断、决策和处理,这是由于人脑是一个大规模并行与串行组合的处理系统。
BP神经网络的基本结构模仿人脑,具有并行处理的特征,大大提高了网络功能。
3)具有容错性。
生物神经系统部分不严重损伤并不影响整体功能,BP神经网络也具有这种特性,网络的高度连接意味着少量的误差可能不会产生严重的后果,部分神经元的损伤不破坏整体,它可以自动修正误差。
这与现代计算机的脆弱性形成鲜明对比。
4)具有自学习、自组织、自适应的能力。
BP神经网络具有初步的自适应与自组织能力,在学习或训练中改变突触权值以适应环境,可以在使用过程中不断学习完善自己的功能,并且同一网络因学习方式的不同可以