基于遗传算法控制直线多级倒立摆_第1页
基于遗传算法控制直线多级倒立摆_第2页
基于遗传算法控制直线多级倒立摆_第3页
基于遗传算法控制直线多级倒立摆_第4页
基于遗传算法控制直线多级倒立摆_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

GA-LQR算法在线性倒立摆系统实时控制中的实现第一章绪论1.1课题的研究背景和意义对于倒立摆系统最初的研究始于二十世纪五十年代,麻省理工学院(MIT)的控制论专家根据火箭发射助推器原理设计出一级倒立摆实验设备。在此基础上,研究人员经过不断的深入,设计出两级倒立摆和线性三、四级倒立摆。目前,按照倒立摆的结构来分,倒立摆系统分为以下几种类型:直线倒立摆系列、环形倒立摆系列、平面倒立摆系列和复合倒立摆系列。研究倒立摆系统具有很强的理论意义,首先针对倒立摆系统的机器结构,其形象直观、结构简单、构件组成和形状易于改变、设计成本较低,便于应用模拟和数字的方法进行控制;其次,作为一个经典被控对象,倒立摆是一个绝对不稳定、高阶次、多变量、强耦合的非线性系统,因而对倒立摆系统的控制会涉及控制理论研究中的诸多关键性问题,如非线性问题、鲁棒性问题、镇定性问题、跟踪问题以及随动问题等。需要采用行之有效的控制策略使之稳定;倒立摆系统的动态平衡效果非常明了,可以通过测量小车的位移、摆动角度和稳摆时间来直接分析,对系统稳定效果的分析可以反映许多抽象的控制理论概念,如稳定性、运动模态[1]、能控能观性、快速性和鲁棒性等。到目前为止,有多种控制理论和方法可以对倒立摆系统进行控制,如经典的PID控制[2,3]、线性状态反馈[4,5,6]和最优控制[7,8]、基于遗传算法的智能控制[9,10,11,12,13]以及基于遗传算法的线性最优控制[14,15]等。当一种新的控制策略和方法被提出后,可以借助对倒立摆被控对象的控制效果的分析来判断其有效性和实用性,进而研究该算法是否具有卓越的处理多变量、非线性和绝对不稳定性问题的能力,并找出算法存在的不足以提出改进思路和改进方案。研究倒立摆系统具有深远的工程实践意义,平面单级倒立摆与火箭飞行控制相关,两级倒立摆控制与人的步态和双足机器人的行走姿态具有相似性。因而倒立摆研究具有重要的现实意义,由该研究产生的相关方案和技术在半导体及精密仪器加工、机器人控制技术、人工智能、导弹拦截控航空对接控制、火箭发射过程中的姿态调整、卫星飞行中的姿态控制仪及工业应用等方面具有广阔的开发前景。由此,倒立摆控制成为控制领域的充满活力的热门研究课题。1.2遗传算法研究的发展与应用领域遗传算法(GeneticAlgorithm,简称GA)起源于对生物系统所进行的计算机模拟研究,以自然选择和遗传理论为基础,将生物进化过程中的适者生存规则与群体内部染色体的随机信息交换机制相结合的高效全局寻优搜索算法。它模拟自然界生物进化过程,采用人工进化的方式对目标空间进行随机优化搜索。GA将问题域中的可能解看作是群体中的一个个体或染色体,并将每一个个体编码成符号串形式,模拟达尔文的遗传选择和自然淘汰的生物进化过程,对群体反复进行基于遗传学的操作(遗传、交叉和变异)。根据预定的目标适应度函数对每个个体进行评估,依据适者生存、优胜劣汰的进化规则,不断得到更优的群体,同时以全局并行搜索方式来搜索优化群体中的最优个体,以求得满足要求的最优解[16]。20世纪60年代美国Michigan大学Holland教授及其学生受到生物模拟技术的启发,创造出一种基于生物遗传和进化机制的适合于复杂系统优化的自适应概率优化技术——遗传算法。在1967年,Holland教授的学生Bagley在其博士论文中首次提出“遗传算法”一词,他进一步发展了复制、交叉、变异、显性、倒位等遗传算子,在个体编码上使用双倍体的编码方法。Holland用GA思想对自然和人工适应系统进行研究,提出GA的基本定理——模式定理(SchemaTheorem),并与1975年出版了第一本系统论述遗传算法和人工自适应系统的专著《AdaptationNaturalandArtificialSystem》。20世纪80年代,Holland教授实现了第一个基于遗传算法的机器学习系统,开创了遗传算法的机器学习的新概念。1975年,DeJong基于遗传算法的思想在计算机上进行了大量的纯数值函数优化计算实验,建立了遗传算法的工作框架,得到了一些重要且具有指导意义的结论。1989年,Goldberg出版著作《GeneticAlgorithminSearch,OptimizationandMachineLearning》,系统地总结了遗传算法的主要研究成果,全面完整地论述了遗传算法的基本原理及其应用。1991年,Davis出版了《HandbookofGeneticAlgorithms》一书,介绍遗传算法在科学计算、工程技术和社会经济中的大量实例。1992年,Koza将遗传算法应用于计算机程序的优化设计及自动生成,提出了遗传编程(GeneticProgramming,简称GP)的概念。在控制系统的离线设计方面遗传算法被众多的使用者证明是有效的新策略,Krishnakumar和Goldberg、Bramlette和Cusin已证明使用遗传优化方法在太空应用中导出的优异的控制器结构比使用传统的LQR和Powell的增音机设计所用的时间要少(功能评估)。纵观整个遗传算法的发展过程,20世纪70年代是兴起阶段,20世纪80年代是发展阶段,20世纪90年代是高潮阶段。目前,遗传算法作为一种实用、高效、鲁棒性强的优化技术,有着广阔的发展前景和良好的发展势头,始终是国内外学者的研究热点[17]。遗传算法提供了一种求解非线性、多模型、多目标等复杂系统优化问题的通用框架,它不依赖于待解决问题的具体领域,已经广泛应用于图像处理、函数优化、组合优化、机器人学、人工生命、机器学习和自动控制等科技领域,并在相关领域具有典型的成功应用范例。1.3倒立摆系统控制算法的研究时至今日,国内外研究人员对各类倒立摆系统的起摆和稳摆控制已经进行了很多研究,研究人员试图通过不同的控制方法实现对倒立摆的控制。对于一级和二级倒立摆控制已有成功的记载。目前对倒立摆的研究可以抽象为以下两个问题:(1)使倒立摆迅速地从初始位置达到竖直向上平衡位置的起摆控制(2)摆在平衡点附近的稳定性控制1.3.1起摆控制算法的研究状况倒立摆的自起摆控制方法主要集中在基于能量控制、最优控制和智能控制等方面。这些控制算法在实现复杂度和控制效果上是各有利弊的,能量控制是对摆杆的能量进行控制代替对小车的位移和速度的控制来达到起摆的控制目的;最优控制方法在系统输出的状态变量较少时,可以实现对最优控制率的计算,当状态变量较多同时系统又具有终点约束条件时,基于最优控制的起摆控制器难于实现;基于模糊控制的自起摆控制器符合人类的智能思维习惯,不依赖摆系统的数学模型,容易理解和设计,但是具体的控制效果要充分考虑控制规则的要求以及如何确定优异的规则集[18,19]。1.3.2稳摆控制的研究在研究倒立摆系统稳定控制的过程中,深入地探索控制理论,以寻求新的优越的控制算法,进而将其应用到现实的更广泛的被控制对象中。各种控制理论和相应领域的控制方法以及各种控制方法的有机结合产生的新的算法可以在倒摆实时系统中得到充分的应用,并不断被改进。(1)基于经典控制理论的算法经典线性系统理论分析和解决单输入——单输出线性定常系统是比较有效的。而一级倒立摆系统是一个单输入(控制力)两输出(小车位移和摆杆角度)的非最小相位系统,通过对系统进行经典力学或拉格朗日能量分析,得出系统在竖直向上平衡位置附近的近似线性模型,进而可以借助经典控制理论的解决方案:根轨迹法、频域分析法以及PID控制方法实现对一级倒立摆的稳摆控制。然而,由于经典控制理论难以有效处理多输入——多输出系统的局限性,则对于二级倒立摆和多级倒立摆系统,经典控制难以获得理想的控制效果。(2)基于现代控制理论的算法依据现代控制理论为指导设计控制器实现对倒立摆的稳定控制,主要是借助状态反馈来实现的,这其中比较有效的控制方案如线性二次型调节控制(LQR)。应用线性理论控制算法首先要分析倒立摆系统的物理模型,经过一定的线性化方法建立系统的数学模型——状态空间表达,进而设计状态反馈控制器实现对倒立摆的稳定控制。但是随着倒立摆级数的增加,控制复杂度加大,单一依靠线性控制理论算法实现对多级倒立摆的控制难度增加而且难于达到预期的控制效果。(3)基于智能控制理论的算法相对于传统控制依据被控对象的数学模型的模型论控制方式,智能控制可称之为“控制论”即智能决策论。智能控制具有鲜明的特点:①智能控制通常是一个混合的控制过程,建立在非数学模型和数学模型的基础上的控制过程;②智能控制的核心是对高水平实际过程的管理、决策、规划和控制;③智能控制是利用人工智能、系统理论、专家经验、神经网络、模式识别、遗传优化和基于遗传的机器学习、推理、空间技术、计算机科学技术相协调去解决复杂控制问题;④智能控制是新的研究发展领域,处于良好的发展势头中,是目前解决复杂控制问题很受青睐的方案[20,21]。针对倒立摆系统现已提出的智能控制方案主要有下述几种:(1)模糊控制方法模糊控制是智能控制较早的形式,它吸取了人类的思维具有模糊性的特点,是一种应用模糊集合理论,统筹考虑系统的一种控制方式。模糊控制不需要被控对象精确的数学模型,是解决不确定性系统控制的一种有效途径,因此在对倒立摆系统控制的研究中,模糊控制方法是应用最多的一种,它的鲁棒性较好。通过倒立摆控制系统进行分析归纳得到模糊控制规则,进而设计模糊控制器对倒立摆系统进行控制。在实际中,常规的模糊控制器具有一定的局限性,随着倒立摆系统级数的增加,模糊控制规则的建立难度随之加大。目前由文献记载以及仿真数据表明,常规模糊控制方法可以成功地实现对一级倒立摆系统的控制。改进的模糊控制、模糊控制与其他方法的有机结合可以实现对多级倒立摆的控制,并达到比较理想的控制效果。文献表明,早在2002年,北京师范大学的李洪兴教授利用变论域模糊控制方法成功的实现对三级、四级倒立摆的仿真控制实验[22,23]。(2)神经网络控制方法神经网络控制研究和利用人脑的结构机理以及人的知识和经验对系统进行控制,采用神经网络的控制问题,可以看成是模式识别问题,被识别的模式是映射成“行为”信号的变化信号。理论研究表明,神经网络控制系统的智能性、鲁棒性均很好,更为重要的是神经网络具有学习能力,不断修正神经元之间的连接权值,并离散存储在连接网络中,因而神经网络能处理高维、非线性、强耦合和不确定性的难以建模的复杂控制问题[24,25]。应用神经网络方法能够对倒立摆模型进行无模型学习控制,神经网络控制和模糊控制在对倒立摆系统的控制方面各有特点,理论上,如果将神经网络控制与模糊控制结合起来,可以获得更佳的控制效果。(3)遗传算法遗传算法这种模拟自然进化过程而得到的随机性全局优化方法,现在被广泛地研究和应用。遗传算法在自动控制科学中,已经成功地用来研究离散时间的最优控制问题、Riccati方程的求解问题和控制系统的鲁棒稳定问题等。在实际应用中,通常将遗传算法与其他控制算法相结合,以克服单一控制算法存在的弊端,发挥两者各自的鲜明优点,达到理想的控制效果。目前,遗传算法在BP神经网络的训练中、模糊规则的优化中、LQR控制权值矩阵参数的寻求中应用很广泛。由于BP网络本身的训练机理,在权值优化过程中容易陷入局部最优解,理论和实践表明利用遗传算法的全局寻优功能,可以很好的克服BP网络这一缺点;在模糊控制中,模糊规则的建立非常大程度地依赖专家和操作者的调试经验,规则的建立过程是一个不断归纳分析和实验测试的过程,将遗传算法应用到模糊规则的建立中,优化有效的控制规则,剔除冗余的语言规则,可以加速模糊控制器的设计过程,提高模糊控制器的控制精度;而遗传算法在LQR权值矩阵参数寻优的应用将在本文中详细论述。1.4课题的研究思路和内容1.4.1课题的研究思路以固高科技GLIP2003型倒立摆系统硬件平台[26]为基础,建立一、二级倒立摆系统的数学模型,应用MATLABR2007b(Matlab7.5.0)开发环境的m语言编写GA-LQR算法,借助动态仿真集成环境Simulink设计基于GA-LQR控制器以实现对一级和二级直线倒立摆的稳摆控制;编写基于C-MEX的S-Function形式的能量反馈控制器以完成对直线一级倒立摆的自起摆控制。设计完成直线一级自起摆控制器和一、二级倒立摆的稳摆控制器后,借助Matlab/GUI图形界面开发环境进行稳摆控制器控制效果的仿真调试,得到满意的仿真控制效果后,应用Matlab实时工作间——Real-TimeWorkshop(RTW)在VisualC++6.0语言编译环境下将Simulink下的仿真模型转化为c代码,在外部模式下,进行硬件在回路的半实物实时控制。1.4.2课题的研究内容⑴深入探讨遗传算法的基本概、基本原理及其在控制领域中的应用。⑵借助牛顿力学和拉格朗日能量分析法建立一、二级倒立摆系统的在竖直向上平衡位置的近似线性化数学模型,在得到的数学模型基础上借助Matalb矩阵分析法分析系统的稳定性、能控性和能观性。⑶针对LQR控制器的权重矩阵Q和R在工程实践中难于确定的问题,利用遗传算法的全局搜索能力来寻优并确定参数矩阵Q和R,并对简单遗传算法提出改进方案,借助Matlab的m语言实现GA算法编程,同时调试和改进算法性能。=4\*GB2⑷借助动态仿真集成环境Simulink设计基于GA-LQR控制器以实现对一级和二级直线倒立摆的稳摆控制。=5\*GB2⑸编写基于C-MEX的S-Function形式的能量控制器用于控制直线一级摆的自起摆,其稳摆控制由GA-LQR控制器来实现。=6\*GB2⑹应用Matlab的图形用户界面GUI开发直线两级倒立摆仿真模型的仿真调试界面,完成对建好的倒立摆系统的Simulink模型的仿真测试。=7\*GB2⑺借助Matalb/RTW将直线两级倒立摆稳摆控制的Simulink模型以及直线一级倒立摆的自起摆的Simulink模型转化为C代码,进而进行硬件在回路的半实物实时控制,确保GA-LQR稳摆控制方案的切实可行性。=8\*GB2⑻对本论文的工作进行概括性总结及其展望。第二章遗传算法的理论和应用2.1遗传算法的基本概念遗传算法是模仿自然界生物进化机制发展起来的随机全局搜索和优化方法,它借鉴孟德尔的遗传学说和达尔文的进化论。其本质是一种高效、并行、全局搜索方法,它在搜索过程中自动获取和积累有关搜索空间的知识,并自适应地控制搜索过程以求得最优解。遗传算法操作依据适者生存的原则,在潜在的解决方案种群中逐次产生一个近似最优的方案。在遗传算法的每一代中,根据个体在问题域中的适应度值和从遗传学中借鉴的再造方法进行个体选择,产生一个新的近似解。在这个过程中种群中的个体得到进化,产生的新的个体比原来的个体具有更优的适应性。生物的进化过程主要是通过染色体之间的交叉和变异来完成的。基于对自然界中生物遗传与进化机理的模仿,针对不同的问题,遗传算法研究者设计了许多不同的编码方法来表示问题的可行解,应用不同的遗传算子来模仿不同环境下的生物遗传特性。进而由不同的编码方法和不同的遗传算子就构成了各种不同的遗传算法。2.2遗传算法的理论基础遗传算法的有效性理论依据是模式定理和积木假设[27,28,29,]。模式定理保证了较优模式(遗传算法的较优解)的样本程指数级增长,从而满足了寻找最优解的必要条件,即遗传算法存在寻找到最优解的可能性;而积木假设指出,遗传算法具备寻找到全局最优解的能力,即有低阶、短距、高平均适应度的模式,在遗传算子作用下,相互结合,能生成高阶、长距、高适应度的模式,最终找到全局最优解。2.2.1模式定理模式定理最初由Holland提出,是遗传算法重要的里程碑,通过不断的完善,模式定理已成为遗传算法最为成熟和重要的理论。模式定理从一定程度上解释了染色体编码结构在进化过程中的一些规律性的表现。为了不失一般性,论文中以二进制串作为编码方式来说明模式定理。定义1基于三值字符串所产生的一类能描述具有某些结构相似性的0,1字符串集的编码称作模式。以长度为5的字符串为例,模式*0001描述了在位置2、3、4、5具有形式“0001”的所有字符串,即(00001,10001)。进而可知模式的概念提供一种简洁的用于描述在某些位置上具有结构相似性的0、1字符串集合的方法。引入模式的概念后。可以看到一个串实际上隐含着多个模式(长度为n的二进制串隐含着2n个模式,一个模式可以隐含在多个串中,不同的串之间通过模式而相互联系。在遗传算法中串的运算实际上是模式的运算。定义2设有模式H,H中确定位置的个数称为该模式的阶数,记作。定义3模式H中第一个确定位置和最后一个确定位置之间的距离称作该模式的定义距,记作。模式的阶数和定义距描述了模式的基本性质。接着通过分析遗传算法的三种基本遗传操作来讨论模式定理。设代表第t代基因串的群体,以表示第t代中第j个个体串。1.选择对模式的影响设代表第t代基因串的群体;表示群体中第j个个体串;表示该群体中与模式H相匹配的个体集合;表示中个体的数目,即群体中与模式H相匹配的个体数目;表示中个体的平均适应度,即中与模式H相匹配的个体平均适应度,有 (2.1)在选择过程中中任何一个基因串是以概率被选中进行复制的,其中为个体适应度。因此可以预期在复制完成后模式在t+1代中的样本数变为 (2.2)设为群体平均适应度,则,则方程(2.2)可以转化为 (2.3)式(2.3)表明,经过选择操作后,下一代模式H样本数的增加或减少与该模式的平均适应度成正比,与群体平均适应度成反比,即平均适应度高于群体平均适应度的模式在下一代的数量将增加,反之,则会减少,假设模式H的平均适应度高于群体的平均适应度,并且设高出的部分为,c为一个大于0常数,则有 (2.4)假设从开始,c保持为正常数,则上式转化为 (2.5)可见在选择算子的作用下,与某一模式所匹配的样本数的增减依赖于模式的平均适应度与群体平均适应度之比,平均适应度高于群体平均适应度的将按指数级增长。同时从整个选择过程中可以看出,虽然选择操作能使模式的数量以指数形式增减,但由于选择操作只能将某些高适应度的个体复制,低适应度的个体淘汰,它并不产生新的模式结构,因而选择操作对遗传性能的改进是有限度的。2.交叉对模式的影响交叉操作是基因串之间的有组织而又是随机的信息交换,它在创造新结构的同时,应尽可能少地破坏复制过程中所选择的高适应度的模式。为了讨论交叉对模式的影响,下面给出一长度L=6的基因串及此基因所包含的两个代表模式,同时只考虑单点交叉的情况,A=010110H1=*1***0H2=***11*对于单点交叉过程即随机选取一个交叉点,然后互换对应的片段,假设随机选取的交叉点为3,它含有两个模式H1和H2,用分隔符表示交叉位置。现在假定上面给定的字符串A=010110选匹配伙伴A’=101001再随机选取交叉点为3,同样用分隔符表示交叉位置。则经过单点交叉后所产生的子代为A1=010001A2=101110与前面给出的基因串A所包含的两个代表模式H1、H2,对比可知,经交叉后的所产生的子代A1、A2都不是模式H1的样本,即经过交叉后模式H1丢失了。而模式H2却依然存在,因为不论A的匹配伙伴取何种基因串形式,H2中的确定位4的“1”和确定位5的“1”,都将原封不动地一起传入子代个体,使模式H2存活。因为在本例中交叉点是随机选取的,即交叉点是按等概率产生的,模式H1被破坏的概率(在2、3、4、5交叉点都遭破坏)远远超过模式H1(只在位置4的交叉遭破坏),即模式H1的存活概率要高于模式H1。接着通过定义距来分析模式H的存活率。模式H1的定义距,如果交叉点始终是随机地从L-1=6-1=5个可能的位置选取,显然模式H1被破坏的概率为:,存活概率为,类似的模式H2的定义距为,它被破坏的概率为,其存活概率为。以上的讨论中均假设交叉概率为1,通常情况下取交叉概率为Pc,此时存活概率的算式应描述为 (2.6)式(2.6)是在忽略了交叉点发生在定义距内模式不被破坏的可能性情况下推导的。在前面给出的例子中,若A的匹配伙伴在位置2,6上有一位与A相同,则H1将被保留。考虑到这一点,式(2.6)给出存活概率的一个下届,即 (2.7)式(2.7)即为模式H在交叉算子下的存活概率。考虑模式H在选择和交叉算子的共同作用下的变化情况。参考式(2.3)和式(2.7),便有 (2.8)式(2.8)表明,在选择和交叉的共同作用下,模式H的数量增长或减少,取决于其模式的平均适应度的高低即和定义距的长短。越大,越小,则H的数量就越多。3.变异对模式的影响变异是对基因串中的某一单个位置以概率Pm进行随机改变,这种随机改变可能使模式H遭到破坏。一个模式H要存活,意味着它所有的确定位置(为“0”或为“1”的位置)都存活,因此由于单个位置的基因位发生改变的概率都为Pm,存活的概率为1-Pm,而且由于每个变异的发生是统计独立的,所以模式仅H当它的个确定位置都存活时才存活,即自乘次,即可得到经变异后模式H的存活率 (2.9)由于,H的存活概率可以表示为 (2.10)综合考虑选择、交叉和变异操作的共同作用,模式H在经历了选择、交叉和变异后,其子代的样本数可以表示为 (2.11)式(2.11)可以近似为 (2.12)式(2.12)忽略了极小项 (2.13)为进一步简化式(2.12),令 (2.14)即 (2.15)当和都很小时,如果并保持为常数,则式(2.12)可以改写成: (2.16)综合式(2.12)和式(2.16)即给出模式定理:在遗传算子选择、交叉和变异的作用下,具有低阶、短定义距以及平均适应度高于群体平均适应度的模式,将会在子代中呈指数级地增长。2.2.2积木假设模式定理使遗传算法在染色体位串基因层次上对其性能分析有了基本的定量描述手段,但是模式定理只是说明了遗传算法存在寻找全局最优解的可能性,不能保证遗传算法的收敛性,针对该问题,Holland教授在复杂系统建模和生物的进化研究中,提出积木块假说。由模式定理知,具有低阶、短距和高平均适应度的模式,在子代中将呈指数级增长,这类模式在遗传算法中称之为积木块(BuildingBlock)。同时给出假设:低阶、短距、高适应度的模式(积木块)在遗传算子的作用下,相互结合,能生成高阶、长距、高适应度的模式,可最终生成全局最优解。同搭建积木一样,这些好的模式在遗传操作下互相拼接、结合、产生适应度更高的个体基因串,从而找到更优的可行解,这正是积木假设所揭示的内容。然而到目前为止,积木假设的结论并没有得到证明,因此称之为假设,而非定理。现在已有大量的实践证据支持这一假设,因此可以肯定,对很多经常碰到的问题,遗传算法都是适用的。2.3遗传算法的设计与实现遗传算法模拟了自然选择和遗传学中的复制、交叉和变异现象,从任一随机初始种群(Population)出发,通过选择、交叉和变异操作,产生一群更适应环境的个体,使群体一代一代繁衍进化到搜索空间中趋向最优解的区域,最后收敛到一群最适应环境的个体(Individual),从而求得问题的最优解。2.3.1遗传算法的设计流程完整的遗传算法的运作流程如图2.1所示:改善或解决实际问题改善或解决实际问题实际问题参数集编码成位串计算适应度值统计结果遗传操作种群2种群1三种遗传算子:选择算子交叉算子变异算子经过优化的一个或多个参数集(解码后)随机算子种群1种群2图2.1遗传算法的运作流程Figure2.1FlowChartofGeneticAlgorithm即在遗传算法中,根据待解决的实际问题,首先通过随机方式产生若干个所求问题的数字编码(染色体)来形成初始群体(种群),以此为进化起点的第一代群体,并计算每串编码的个体适应度值,进而对每个个体进行评估。接下来类似于自然选择,从群体中随机挑选若干个个体作为繁殖过程的样本集合进行遗传操作。选择机制应保证适应度值较高的个体能保留较多的样本,而适应度值低的个体则保留较少的样本或被淘汰。在进化过程中,利用交叉和变异两种算子,以一定的交叉概率和变异概率对对挑选后的的样本进行变换,从而生成新的个体。接着通过新老个体的替换产生下一代群体。遗传算法不断重复前述的的评估、选择、繁衍和替换过程,直到整个过程满足一定的结束条件为止。通常情况下,进化过程的最后一代群体中的适应度值最高的个体,就是利用遗传算法求解的优化问题的最终结果。2.3.2遗传算法的实现步骤基本遗传算法(SimpleGeneticAlgorithm)可定义为一个8元组: (2.17)式中,C——个体编码方法,SGA采用二进制编码方法;E——个体适应度评价函数;P0——初始群体;M——群体的大小,通常取20~100;——选择算子,SGA使用比例选择算子;——交叉算子,SGA采用单点交叉算子;——变异算子,SGA采用基本位变异算子;——算法终止条件,一般终止进化代数为100~500。1.参数编码与解码遗传算法主要是通过遗传算子对群体中具有某种结构形式的个体施加重组处理,从而不断地搜索出群体中个体间的结构相似性,逐代优化参数以趋近最优解。遗传算法不能直接处理问题空间的参数,必须在目标问题的实际描述与遗传算法的染色体位串结构之间建立联系。由问题空间向遗传编码空间的映射称作编码(Encoding),而由编码空间向问题空间的映射称作解码(Decoding)。编码将问题域知识转化为遗传算法空间的码串描述。理论上,编码应该适合要解决的问题,并非是简单的描述问题。因而在具体的应用中,编码设计应遵循如下原则:完全性原则上,分布在所有问题域的解都有可能被构造出来。分闭性每个基因码,对应一个可接受的个体,封闭性保证系统不会产生无效的个体。紧致性若两种基因码g1和g2都被解码成相同的个体,若g1比g2占的空间少,就认为g1比g2紧致。可扩展性对于具体的问题,编码的大小确定了解码的时间,两者存在一定的函数关系,若增加一种表现型,作为基因型的编码大小也做出相应的增加。多重性多个基因型解码成一个表现型,即从基因型到相应的表现型空间是多对一的关系,这是基因的多重性。若相同的基因型被解码成不同的表现型,这是表现型的多重性。个体可塑性决定表现型与相应给定基因型是受环境影响的。模块性若表现型的构成中有多个重复的结构,在基因型编码中这种重复是应该避免的。冗余性冗余性能够提高可靠性和鲁棒性。复杂性包括基因型的结构复杂性,解码复杂性,计算时空复杂性(基因解码、适应值、再生等)[30]。编码方式常用的有二进制编码和浮点数编码。(1)二进制编码二进制编码是遗传算法中常用的一种编码方法,即将原问题的解映射为0,1组成的位串,然后在位串空间上进行遗传操作。得到的结果再通过解码过程还原为原问题解的解空间,接着进行适应度值的计算。设种群中的个体数目为n,表示第t代的i个个体,。每个个体用l位二进制表示。这样每个个体,这样每个个体基因位数目L=ml。个体可以表示为ml维的行向量,即。第t代种群可以表示为一个的矩阵。个体的第k个长度为l的二进制码串转化为实数的解码函数为 (2.18)式(2.18)中和分别为第k个实数范围的上限和下限。很多数值计算与非数值优化问题都可以用二进制编码来实现,该方法具有如下优点:编码方式简单且操作方便;符合最小字符集编码原则,便于用模式定理进行分析。但当二进制编码在求解连续优化问题存在以下缺点:相邻整数的二进制可能有较大的Hamming距离,例如15和16的二进制表示为01111和10000。因此算法要从15改进到16则必须改变所有的位。这种缺陷将降低遗传算子的搜索效率[17,31]。(2)浮点数编码为了克服二进制编码对于一些多维、高精度要求的连续函数优化问题弊端可以采用十进制或浮点数进行编码。所谓浮点数编码方法,是指个体的每个基因值用某一范围内的浮点数来表示,个体编码的长度等于其决策变量的个体。浮点数编码必须保证基因值在给定的区间限制范围内。同时,遗传操作中所使用的交叉、变异等也引入了专门的遗传算子,保证其运算结果所产生的新个体的基因值也在这个区间限制范围内[32]。浮点数编码适用于搜索空间较大、精度要求较高的遗传方案中,其运算简单,提高了遗传算法的运算效率,有利于遗传算法与经典优化方法的混合应用,便于处理具有约束条件的复杂决策变量。2.适应度函数值计算在生物的遗传和进化过程中,对环境适应度较高的物种将有更多的繁殖机会,遗传算法中也使用类似的概念来度量群体中各个个体在优化计算中有可能、或有助于找到最佳解的寻优过程。适应度值较高的个体遗传到下一代的概率就较大,而适应度值较低的个体遗传到下一代的概率就相对小些。度量个体适应度值的函数称为适应度函数(FitnessFunction)。适应度函数的选取至关重要,它直接影响遗传算法的收敛速度以及能否找到最优解。设计适应度函数要保证其:①单值、连续、非负、最大化;②满足合理性和一致性③计算量小、通用性强。在遗传算法的实际应用中,适应度函数的确定方法通常有以下三种:(1)直接以待求解的目标函数转化为适应度函数,即若目标函数为最大化问题则取 (2.19)若目标函数为最小问题则取 (2.20)这种适应度函数简单直观,但是存在两个问题,其一是可能不满足常用的轮盘赌选择中概率非负的要求;其二是某些待求解的函数在函数值分布上相差很大,由此得到的平均适应度可能不利于体现种群的平均性能,影响整个遗传算法的性能。(2)界限构造法若目标函数为最大化问题则 (2.21)式(2.21)中,为的最小估计。若目标函数为最小问题 (2.22)这种方法是对第一种方法的改进,在具体的应用中优势会存在预先估计困难、不精确的问题。(3)若目标函数为最大问题取 (2.23)若目标函数为最小问题取 (2.24)该方法与第二种方法类似,c为目标函数界限的保守估计值[17,33,34]。3遗传操作遗传算法的操作算子包括选择、交叉(又称重组)和变异三种基本形式。三种遗传算子是遗传算法具备强大搜索能力的核心,是模拟自然选择以及遗传过程中的繁殖恶化突变现象的主要载体。遗传算法利用交叉和变异算子产生新的群体进而实现种群进化,遗传算子的设计是遗传策略的主要组成部分,也是调整和控制进化过程的基本工具。(1)选择算子选择是从群体中挑选优良的个体同时淘汰劣质个体的遗传操作过程。它建立在适应度评估的基础上,个体适应度越大,其被选中的可能性就越大,它的子代保留到匹配池(matingpool)中的个数就越多。常用的遗传方法有[17,35]:①轮盘赌方法(roulettewheelmodel)轮盘赌方法是遗传算法中最基本也最常用的选择方法。设群体为P,个体的适应度为Fitness,则个体i被选择的概率为 (2.24)其累计概率为 (2.25)式(2.25)中,表示该种群在这一代中的总适应度值。选择按旋转轮盘(轮盘上按Pi的大小划分为不等的扇区),显然适应度大的个体其选择概率越大,在轮盘中所占的位置越大,被选中的概率也就越大。②排序选择法(rank-basedmodel)排序选择法以标准化几何分布规律随机对种群中染色体进行选择,以最佳染色体的选择概率Ps作为基本参数,按染色体的排列序号确定其选择概率。排序法的最大优点在于排序法忽略实际染色体的适应度值,用染色体的顺序来换算出相应的生存概率,换算原则为大适应度值对高选择概率,小适应度值对低选择概率。这样既能保证大适应度值染色体获得高选择概率,同时又阻止某些超级染色体过快地控制遗传过程。排序选择法首先需根据最佳染色体选择概率计算标准分布值,表达式如下 (2.26)接着根据上式计算染色体选择概率: (2.27)式(2.27)中为第k个染色体的适应值在种群中由大到小排列的序号。Ps为最佳染色体选择概率,P为样本数。最后计算染色体的累计选择概率值qk (2.28)③最佳个体保存法最佳个体保存法把群体中适应度值最高的个体不进行配对交叉而直接复制到下一代。该方法的好处在于保证了进化过程中的某一代的最优解不被交叉和变异操作所破坏。然而该方法使一些局部优化个体的遗传基因会急速增加而达到局部优化解,其全局搜索能力差,不利于多峰值的搜索问题,因而该方法一般与其他选择方法相结合而使用。(2)交叉算子在遗传操作中,交叉操作因其全局搜索能力而成为主要算子。交叉操作的作用在于它不仅使原来种群中的优良个体的特性能够在一定程度上保持,而且其探索新的空间的能力使得种群中的个体具有多样性。它是GA获取新的优良个体的最重要手段。交叉是指把两个父串个体的部分结构加以替换重组而成新个体的操作,交叉算子分为两类,一类为二进制交叉,一类为浮点数交叉。①二进制交叉运算该操作按一定的概率Pc在匹配池中随机地选取两个个体进行,交叉的位置也是随机确定的。其二进制编码操作又可分为单点交叉、两点交叉和多点交叉。单点交叉:是在个体中随机地选定一个交叉点,两个个体在该点前后进行部分互换以产生新的个体,如:父辈个体1AAAAAA|AAAAAA→BBBBBB|AAAAAA父辈个体2BBBBBB|BBBBBB→AAAAAA|BBBBBB两点交叉:与单点交叉类似,只是随机设置两个交叉点进行部分乎换,以产生新的个体,如:父辈个体1AAAA|AAAA|AAAA→AAAA|BBBB|AAAA父辈个体2BBBB|BBBB|BBBB→BBBB|AAAA|BBBB多点交叉:该交叉操作即前述两种交叉操作的推广,多点交叉有时又被叫作广义交叉。当用c表示交叉参数时,则c=1或c=2时即为单点交叉和两点交叉。②浮点数编码的交叉运算常用的浮点数编码的交叉运算为线性交叉又称算术交叉。即两个父代以线性组合的方式产生子代。对于凸搜索空间,算术交叉保证其子代的闭合性。也就是问题空间内的任何两个染色体的线性组合仍属于问题空间。该方法在种群中均匀随机选取两条染色体作为交叉双亲;然后在[0,1]区间内产生随机数;对染色体按交叉次数进行如式(2.29)操作 (2.29)式中为产生的新染色体。(3)变异运算变异运算使得遗传算法具有局部随机搜索能力,配合交叉操作以维持种群的多样性,防止出现过早收敛。变异算子也具有两类,一类为基本的二进制变异操作,另一类为针对浮点数而言的浮点数变异。①二进制变异运算变异是以很小的概率Pm随机地改变个体串中染色体的某些基因值。在二进制编码方式中,变异操作基本过程是变异算子随机地将某个基因值取反,即“0”变为“1”,“1”变为“0”。如:[01000101000101011010]→[01010101000101001010]②浮点数变异运算对于浮点数则常用的变异手段有均匀变异、边界变异和非均匀变异等。浮点数变异目的在于扩大染色体基因的取值范围。均匀变异:设种群中有染色体,均匀变异则先在染色体中选择分量,接着在一个定义区间[bl,br]中均匀地选取一个数代替,至此得到新的染色体为。非均匀变异:是指在各代中参与变异操作的染色体的变异量是非均匀变化的,变异量的函数公式表达为 (2.30)代数b=4代数b=4b=3b=2变异量图2.2变异形状系数图Figure2.2TheChartofGeneMutationCoefficient式(2.30)中代表当前进化代数,表示最大进化代数,表[0,1]间的随机数,则是如图2.2所示的变异系数,是参与变异操作的染色体到取值区域边界的距离,可以通过下面的计算公式得出 (2.31)在式(2.13)中——随机数0或1,——取值区域的左右边界。4遗传算法运行参数选择从图2.1——遗传算法的运作流程中可以知道,在进行遗传算法的设计时涉及的主要参数有:种群规模、选择操作方法、交叉率、变异率、进化代数等。在选择具体遗传算子时,要涉及选择与算子相关的参数。遗传算法的参数选择合理与否直接影响到算法的收敛速度和优化精度。然而,影响参数选择的因素很多,有的与待优化问题本身内涵的客观规律有关,有的与算子的选择有关,目前,还不存在一个普遍适用的规则作为遗传算法设计的参考。但是以下的实践经验可以作为遗传算法设计的重要依据。(1)种群规模种群规模是设计遗传算法时要首先确定的参数。当所选种群规模过小,容易使算法陷入局部最优解,当种群规模选的过大,增加了算法的计算量从而减缓了算法的进化速度。种群的大小是针对具体的问题而言的,在实际设计时,种群的选择考虑以下因素:①问题的内在规律。如果在问题空间内目标函数的极值点越多,所需要的种群规模越大;如果问题域内目标函数的变化比较平滑,所需要的种群规模比较小。②问题域的范围。问题空间的取值范围越大,要求的种群规模也越大。③交叉率和变异率的选择。交叉率和变异率较大时,要求的种群规模较小;反之,较大。(2)交叉率在设计遗传算法时,交叉率的选择很重要,遗传算法的性能在很大程度上取决于所采用的交叉算子的性能和交叉率的大小。交叉率是指各代中交叉产生的后代数与种群规模之比,交叉运算产生的新个体,不断拓展搜索空间,较高的交叉率可以搜索更大的解空间,从而降低算法产生局部最优解的风险;当然如果所选交叉率过高,会因搜索不必要的解空间而耗费大量的计算时间。常用的交叉率的取值范围为0.4~0.8.(3)变异率变异率是指种群中发生变异的基因数占总基因数的百分比。变异率也是遗传操作中的重要参数,它直接影响到算法的收敛性和最终解的性能。变异率控制着新基因的引入比例。如果选择的变异率太大,进化过程中,种群的随机变化也太大,那么后代可能失去从双亲继承下来的好的特性,影响算法的收敛性;若变异率太小,进化时优良的新个体产生的机会过小。因而在实际操作过程中,遗传算法变异率的取值范围通常是0.001~0.1之间,或者在进化中采用变变异率的方法,即在变异初期选择一个较大的变异率,提高算法的收敛性,变异后期采用较小的变异率,保证算法的稳定性。(4)进化终止条件遗传算法进化的终止可以从两方面进行控制:预先设定进化代数或是根据种群的进化程度进行控制。其中种群的进化程度则是指种群当前代最大适应值与种群的平均适应值间的比例关系。在实际设计中,遗传算法参数的选择和各遗传算子的确定密切相关。遗传算法的角色是一种计算工具,遗传算法可以对所要解决的问题一无所知,要通过遗传计算得到满足要求的解,首先要对待解决的问题进行深入地、细致地分析,找出问题的内在规律,将问题合理地模型化,也即将实际问题转化为遗传算法可以解决的问题。2.4遗传算法的改进2.4.1基本遗传算法的局限性本文遗传算法的改进指针对2.3.2的简单遗传算法(SGA)的设计而言。基本遗传算法简单易实现,但是它存在很多缺陷。(1)SGA采用二进制编码,简单、易于实现,符合最小字符集编码原则,有较强的通用性,但它不反映所求问题的结构特征,无法利用具体领域的特定知识,遗传算子可选择的操作方式有限,精度不高。(2)SGA在选择操作过程中采用轮盘赌方法,当群体适应度差异非常大时,最佳个体的生存机会显著增高,较差个体的生存机会被剥夺,使最佳个体很快充满整个群体,遗传算法也较早地丧失了进化能力即发生早熟问题。另外,针对不同问题,仅采用单点交叉和基本位变异的方法很难达到预期效果[36]。(3)SGA采用固定的控制参数,在处理复杂问题时,很难同时兼顾搜索范围广和搜索速率快的矛盾,容易陷入局部极值或使搜索时间增长,因而采用SGA有许多地方需要改进。2.4.2遗传算法的改进针对SGA所存在的问题以及后续对本设计的深入分析,结合很多学者的多年研究经验,考虑从参数编码、初始群体的设定、适应度函数的标定、遗传操作算子和控制参数的选择几方面对SGA进行改进。本设计提出的改进方案如下:(1)改进编码方式采用实数编码方式即浮点数编码,个体的每个基因值用某一范围内的一个浮点数来表示,个体的编码长度等于其决策变量的个数。该编码方法使用的是决策变量的真实值,适合于在遗传算法中表示范围较大的数;适合于精度要求较高的遗传算法;便于较大空间的遗传搜索,改善了遗传算法的计算复杂性,提高了运算效率;便于遗传算法与经典优化方法的混合使用;便于设计针对问题的专门知识的知识型遗传算子;便于处理复杂的决策变量约束条件。浮点数编码非常直观且不会出现精度不够的情况,只是针对具体问题却需要运用专门的遗传操作算子。(2)改进选择算子放弃SGA中的“轮盘赌”选择方案,采用有条件的最佳保留策略——有条件的将最佳个体直接传递到下一代,有效地防止SGA的“早熟收敛”。(3)改进交叉和变异算子在设计过程中,根据群体的具体情况,自适应地改变Pc和Pm的大小,将进化过程中分为渐进和突变两个不同的阶段:在渐进阶段强交叉,弱变异,强化优势型选择算子;突变阶段弱交叉,强变异,弱化优势型选择算子以提高算法的计算速度和效率。(4)进化过程动态调整子代个体遗传算法要求在进化过程中保持群体规模不变。但是为了防止早熟收敛,在进化过程中可对群体中的个体进行调整,包括引入移民算子、过滤相似个体、动态补充子代新个体等。移民机制就是在每一代进化过程中以一定的淘汰率(一般取15%~20%)将最差个体淘汰,接着用产生的新个体代替。移民算子是避免早熟收敛的一种好方法。在移民过程中可以加速淘汰差的个体,增加解的多样性。为了加快收敛速度,可采用滤除相似个体的操作,减少基因的单一性。删除相似个体的过滤操作为:对子代个体按适应度排序,依次计算适应度差值小于门限delta的相似个体间的广义Hamming距离。如果同时满足适应度差值小于门限delta,广义hamming距离小于门限d,就滤除其中适应度较小的个体,其中delta和d要选取合适,以提高群体的多样性。过滤操作要引入新个体,这时可采用从优秀父代个体中变异产生新个体的方式。该方法将父代中适应度较高的m个个体随机进行若干次变异,产生出新个体,加入子代个体。这些新个体继承了父代较优秀个体的模式片段,并产生新的模式,易于与其他个体结合生成新的优秀子代个体,增加的新个体数与过滤操作删除的个体数量有关。如果群体基因单一性增加,则被滤除的相似合体数目增加,补充的新个体数目随之增加;反之,则只少量滤除相似个体,甚至不滤除,补充的新个体数目随之减少。这样,就能动态解决群体由于缺乏多样性而陷入局部解的问题。2.5本章小结本章目的在于阐述遗传算法的基本概念,给出遗传算法的理论基础——模式定理和积木假设。结合标准遗传算法的运作流程,详细给出遗传算法的实现步骤,针对标准遗传算法的局限性,结合后续本设计遗传算法的应用,在标准遗传算法基础上,提出几点重要改进。第三章线性倒立摆系统建模与分析在倒立摆控制系统的分析和设计中,为了确定一级倒立摆和两级倒立摆系统的能控性、能观测性,以及对设计完成的控制器的控制效果的仿真调试,需要建立倒立摆系统的数学模型。建立控制系统数学模型的方法有实验建模法和机理建模法两种。实验建模是通过在研究对象上施加一系列的实验者事先确定的输入信号,激励研究对象并通过传感器检测其可观测的输出,应用数学手段建立起系统的输入——输出关系。实验建模需要设计和选取输入信号,精确地检测输出信号,进而运用数学算法建立系统的模型;机理建模则是在了解研究对象的运动规律基础上,通过物理和数学手段建立起所研究系统对应的数学模型。对于倒立摆系统,由于其复杂性,实验建模存在很大的困难,因此本设计通过机理建模法建立一级、二级倒立摆系统的数学模型。3.1线性倒立摆系统的数学模型3.1.1线性一级倒立摆系统的数学模型对于物理机制比较简单的一级倒立摆系统采用牛顿力学的方法更为方便和快捷。忽略一级倒立摆系统机构间的摩擦和运动过程中的空气阻力后,可将直线一级倒立摆系统抽象成由小车和均质杆组成的刚体系统,其抽象的物理模型如图3.1所示。CartCartOyxΦΦLF图3.1直线一级倒立摆抽象模型Figure3.1TheAbstractModelofLinearOneStageInvertedPendulum图3.1中F代表施加在小车上的力,L表示摆杆的长度,Φ表示摆杆与竖直向上方向的夹角。根据一级倒立摆系统模型给出小车和摆杆的受力分析图如图3.2所示。MMPNFbmgNPIab图3.2小车和摆杆受力分析图Figure3.2NewtonAnalysisofTheCartAndPendulum图中M和m分别表示小车和摆杆的质量,N和P是小车和摆杆相互作用力的水平和垂直方向的分量,b为小车的摩擦系数,x为小车水平方向的位移,为摆杆与竖直向下方向的夹角。而且在实际的倒立摆系统中检测和执行装置的正负方向已经完全确定,图中箭头表示矢量的正方向。设l为摆杆转动轴心到杆质心的长度,I为摆杆转动惯量。根据小车水平方向所受合力,建立力学方程 (3.1)接着对摆杆水平方向受力进行分析得到 (3.2)展开求导公式有: (3.3)将式(3.3)代入式(3.1)中,整理得到系统的第一个运动方程: (3.4)为了得到系统的第二个运动方程,对摆杆垂直方向上所受合力进行分析有 (3.5)展开求导公式有 (3.6)转动摆杆的力矩平衡方程为 (3.7)这里有,,。解方程(3.6)与(3.7),约掉P和N,得到系统的第二个方程: (3.8)当摆杆接近竖直向上的平衡位置附近可以有如下的近似关系成立:。设u表示被控对象的输入力F,对运动方程(3.4)和(3.8)做线性处理并假设初始条件为0得到: (3.9)对式(3.9)进行拉普拉斯变换,有: (3.10)设,由式(3.10)得到以小车的加速度为输入的摆杆角度与小车加速度之间的传递函数为: (3.11)为了更加直观的判断系统的相应特性,设系统的状态空间表达为 (3.12)取状态变量为,解方程(3.9)建立状态方程: (3.13) (3.14)状态方程中的参数由表3.1给出:表3.1一级倒立摆系统参数Table3.1SystemParametersofOneStageInvertedPendulum参数物理意义参数值小车相对初始位置的位移m摆杆与竖直向下位置的夹角radф摆杆与竖直向上位置的夹角radM小车质量1.096kgm一级摆杆的质量0.109kgL一级摆杆的长度0.50ml一级摆杆轴心到质心的长度0.25mI一级摆杆惯量0.0034kgm2b小车动摩擦系数0.1N/m/sec将表格3.1的数据带入式(3.13)得到以小车所受控制力为输入的系统的输入矩阵和控制矩阵:3.1.2线性两级倒立摆系统数学模型同线性一级倒立摆系统一样,为了简化系统分析,在建模时忽略空气阻力和倒摆系统中机构间摩擦,并认为车摆系统为刚体,简化的两级倒立摆系统的物理模型如图3.3所示CartCart伺服电机从动轮皮带导轨二级摆杆一级摆杆质量块图3.3直线两级倒立摆物理模型Figure3TheMechanicalModelofLinearDoubleStageInvertedPendulum由图3.3可以看到两级倒立摆的物理结构较一级倒立摆的要复杂,它是由沿导轨运动的小车和通过连轴器固定在小车上的摆杆组成。伺服电机内带有检测小车位移的光电编码器,小车与一级摆杆之间、一级摆杆与二级摆杆之间由连轴器连接,在连接处分别有两个光电编码器用来检测一级和二级摆杆的角度。摆杆1和摆杆2可以绕各自的旋转轴在水平导轨所在的铅垂面内自由转动,小车在伺服电机的驱动下,在皮带传动的水平方向沿导轨左右运动,以确保在稳摆控制阶段使倒立摆稳定在竖直向上的平衡位置,保持整个系统的动态平衡状态。由于状态变量的增加和约束条件的限制,两级倒立摆的建模如果应用牛顿力学法要比一级倒立摆的复杂的多,因而针对两级倒立摆系统利用基于能量分析的Lagrange方法[37]建立其数学模型。建模时所涉及的系统参数如表3.2中所给出:表3.2两级倒立摆系统参数Table3.2SystemParametersofDoubleInvertedPendulum参数意义参数值M小车质量1.096kgm1摆杆1质量0.05kgm2摆杆2质量0.13kgm3质量块质量0.295kgl1摆杆1中心到转动中心的距离0.07575ml2摆杆2中心到转动中心的距离0.25mθ1摆杆1与竖直方向的夹角Radθ2摆杆2与竖直分方向的夹角Radu倒立摆系统控制量Ng当地重力加速度9.8Nm/sec2Lagrange方程可表述为: (3.15)式(3.15)中,L为Lagrange算子,q为系统广义坐标,T为系统的动能,V为系统的势能。Lagrange方程由L和广义坐标qi表示为 (3.16)式中,fi为系统在第i个广义坐标上的外力,在二级倒立摆系统中,广义坐标有3个,分别为。倒立摆系统动能为 (3.17)式中分别为小车的动能,摆杆1的动能,摆杆2的动能和质量块的动能。又小车的动能为 (3.18)而,分别为摆杆1的平动动能和转动动能。,分别为摆杆2的平动动能和转动动能。为了简化书写设以下变量:xpend1摆杆1质心横坐标;ypend1摆杆1质心纵坐标xpend2摆杆2质心横坐标;ypend2摆杆2质心纵坐标xmass质量块质心横坐标;ymass质量块质心纵坐标在直角坐标系分析中有:,,则一级摆杆的平动动能和转动动能是: (3.19)同理对于二级摆杆和质量块有 (3.20) (3.21)系统的总动能为: (3.22)而系统的势能为: (3.23)结合公式(3.22)和(3.23)得到Lagrange算子:L=T-V。由于系统在广义坐标下没有外力的作用,因而有 (3.24)对于两级倒立摆系统,选取状态变量,为求解系统的状态空间表达 (3.25)进而要求解,根据式(3.24)为了简化表达设: (3.26)当系统处于竖直向上平衡位置附近时,可将式(3.26)进行泰勒级数展开,做近似线性化处理,并取。 (3.27)在式(3.27)中接着可以借助Matlab或Mathematics数学分析软件,结合表3.2给出的系统参数解得:,,,,,,其余几项均为0。最终得到系统的状态方程表达为: (3.28) (3.29)3.2线性倒立摆系统定性分析在3.1节已经得到一、二级倒立摆系统的数学模型,为了进一步明了系统的性质、设计控制器,需要对系统的稳定性、能控能观测性进行分析。根据李亚普诺夫稳定性理论,非线性系统在平衡点邻域附近的稳定性可以通过线性化后的模型来判定;一级、二级倒立摆在竖直向上平衡点为不稳定平衡点,本设计要在倒立摆系统的近似线性化模型基础上进行GA-LQR控制器的仿真调试,因此对系统的可控性分析尤为重要。3.2.1线性一级倒立摆系统定性分析1.稳定性分析结合3.1.1节利用一级倒立摆特征方程,计算得到系统的开环特征根为。系统有一个极点在原点,一个极点在S平面的右半部,显然系统是不稳定的,需要设计控制器改善系统的稳定性。2.能控性、能观性分析借助线性控制理论的能控性和能观性判据和Matlab矩阵分析工具有: (3.30)由式(3.30)知系统的状态完全可控性矩阵的秩等于系统的状态变量的维数、系统能观测性矩阵满秩,因此一级倒立摆系统是能控能观测的。根据线控中的相对能控性判据:线性定常连续系统,矩阵A中的最小奇异值与最大奇异值之间的比值为系统的相对能控度,这里记作,越小表明能控难度系数越大。借助Matlab奇异矩阵分析:,解得,则一级倒立摆的相对能控度为。3.2.2线性二级倒立摆系统定性分析1.稳定性分析结合式(3.28)计算,得到二级倒立摆的开环特征根为,系统有两个极点在S平面原点,两个极点在S平面右半平面,显然系统不稳定。2.能控性、能观性分析对于两级倒立摆有 (3.31)同样两级倒立摆是能控能观测的。由解得A的一个普通奇异值分解为,则两级倒立摆的相对能控度为,对比一级倒立摆的能控度,二级倒立摆的控制复杂度增加,进而设计使其稳定的控制器难度也随之增加。3.3本章小结本章分别借助牛顿力学分析法和Lagrange建模法建立了一级和二级倒立摆系统在平衡点附近的线性状态方程。进而由得到的系统线性模型在线性控制理论的指导下,通过Matlab工具对系统的稳定性、能控性和能观测性进行分析,为后续的控制器设计给出理论可行性,并计算和对比一级和二级倒立摆系统的能控性难度。第四章基于GA-LQR算法的二级倒立摆系统稳摆控制器设计线性二次型最优调节器(LQR)的性能指标为状态变量和控制变量的二次型函数。线性二次型的最优解具有统一的解析表达式,可推导出一个简单的线性状态反馈控制规律,易于构成闭环最优反馈控制,便于实际工程控制地实现。对于LQR控制方案,其二次型性能指标中的权重矩阵的选取合适与否对控制效果有很大的影响。目前在进行LQR控制器设计时,性能指标中的权重矩阵Q和R的选取大部分依赖工程人员的操作经验及其对控制系统的熟悉情况通过试探法来确定。针对两级倒立摆系统,其线性数学模型是在竖直向上的平衡位置附近近似得到的,存在物理条件的限制,因而系统线性模型中的多个状态变量是有约束条件的。对于多变量多约束条件的系统,应用试探法选择合适的Q和R使二次型性能指标达到最小是非常困难的。针对LQR控制中权重参数难于确定的问题,本设计将遗传算法应用到LQR控制器设计中,借助遗传算法的全局搜索优化能力,确定权重矩阵Q和R。4.1GA-LQR控制算法4.1.1LQR控制原理线性二次型最优控制(LQR)要求系统的状态方程是线性的,指标函数是状态变量和控制变量的二次型。线性二次型控制理论是反馈控制系统设计的指导工具,具有很鲜明的特点:(1)为变量反馈系统的设计提供了一种有效的分析方法;(2)适用于时变系统;(3)可以处理扰动信号和测量噪声问题;(4)可以处理有限和无限的时间区间问题。针对两级倒立摆的状态方程表达式(3.28)和(3.29),存在一个最优状态反馈控制规律:,使得性能指标[38]: (4.1)最小。在两级倒立摆近似线性数学模型中X为6维状态向量,u为1维的输入向量,Y为3维的输出向量。矩阵F调节控制过程的末态偏差;加权矩阵Q和R用来平衡状态向量和输入向量的权重,对系统的动态响应性能影响很大。其中、,为半正定矩阵,为正定阵。同时考虑到系统运行时的实际情况,应该用无限时间状态调节器调节两级倒立摆系统,即在时间趋于无穷大时,系统的末态偏差为零,因而在式(4.1)中省去这一项,则系统性能评价指标简化为: (4.2)如果系统受到外界干扰,应该施加怎样的控制量,可以使系统回到平衡状态附近,并使指标J最小,此时的就为最优控制。根据最优控制理论,使式(4.2)最小时的控制规律为: (4.3)式(4.3)中矩阵P为下式Riccati方程的解,K是最终求得的最优状态反馈控制矩阵。Riccati方程为: (4.4)求解Riccati方程中的P后可以得到: (4.5)4.1.2GA-LQR稳摆控制器设计在传统的LQR控制中,根据公式(4.5)在求解最优反馈阵K的过程中,指标公式(4.2)中的权重矩阵Q和R是工程人员通过反复试探确定的,要求工程人员对实际系统有充分的了解和丰富的操作经验,得到满意的权重矩阵是一件费时费力的工作;同时在第三章中得到的倒立摆系统的数学模型是系统在平衡点邻域附近内的一种近似,系统机械设备存在一些物理条件的限制如摆体的长度等,即倒立摆系统状态空间表达中的状态变量具有很多的约束条件。针对多变量多约束条件的被控对象,获得理想的权重矩阵Q和R以达到满意的控制效果,因此通过传统的试探方法设计的控制器其效率和可行性及实用性需要改进。针对这个问题,本设计利用第二章论述的改进的自适应遗传算法搜索LQR控制的权重参数,首先建立二级倒立摆的GA-LQR稳摆控制器,而一级倒立摆系统的GA-LQR稳摆控制器则完全应用类似的思路。GA-LQR控制原理框图如图4.1所示:u(t)u(t)遗传算法寻优解Riccati矩阵方程解码-K倒立摆近似线性系统输出YN迭代结束?X(t)图4.1GA-LQR控制器原理图Figure4.1GA-LQRControllerSchematic其中GA寻优LQR参数的算法流程图则在4.2中给出:待优化参数待优化参数Q和R编码产生初始种群计算适应度函数值gen=0选择重组变异计算子代适应度函数值子代重插入达到最大迭代次数?优化后的Q和Rgen=gen+1YN图4.2GA-LQR算法流程图Figure4.2TheFlowChartofGA-LQRAlgorithm针对线性两级倒立摆系统GA-LQR算法流程图,GA-LQR算法的具体实现步骤为:(1)参数编码。根据LQR原理,选取矩阵Q和R为实对角阵对状态变量和输入变量进行加权。由于两级倒立摆系统的输入向量和输出向量分别是一维的一个实数和六维的实数,进而需要优化的Q和R是6×6的对角阵和一个只有一个实向量的实数阵。理论上待优化参数可以取到零到正无穷大之间的任意实数,然而两级倒立摆系统对控制精度的要求很高,实际控制系统的状态变量存在约束条件,当Q和R的取值过小时能量不足不能保证系统可以达到平衡,取值太大系统会运行时抖动严重,导致系统震荡而发散。而浮点数编码对于处理高精度问题和具有复杂决策变量约束条件的问题具有显著优势,其输出结果即为待优化参数的实际值,不需要经过解码运算,计算效率对比二进制编码有明显的改进。因而本文选择浮点数编码即实数编码,采用实数编码时个体的每个基因值用某一范围内的实数表示,个体码串的长度等于待优化的决策变量的个数,针对本文则码串长度取为7。(2)初始化种群。理论上对于非线性越高的系统,初始种群的规模应选择的越大些,兼顾考虑计算量和优化效率问题选取初始种群规模为60。(3)适应度函数设计。在遗传算法设计环节,适应度函数的设计非常关键,算法选择操作环节,适应度大的个体被选中作为父代的概率大,因此本设计选取LQR原理的性能指标式(4.2)作为目标函数,取式(4.2)的倒数为适应度函数: (4.6)根据式(4.6)如果求的最大值,即求的最小值,只要使式(4.2)中的积分项内部的每一项最小即可,那么可以进一步简化适应度函数为积分项内部表达式的倒数即可,事实上式(4.2)积分项内部的值是非负的增函数,因此做这样的简化是完全合理的。至此得到适应度函数的完整表达为: (4.7)式中,。根据工程实践,当权重矩阵Q中的各项参数在允许范围内适当取的大一点,而矩阵R的参数取值适当小一些会增强系统的鲁棒性,减小系统的调节时间,针对二级倒立摆系各变量的取值范围为:,,,。(4)遗传操作。本设计采用随机遍历抽样选择方法,多点交叉和均匀变异的遗传算子,为了防止遗传算法的早熟和无法收敛的问题出现,采用自适应的交叉概率和变异概率,将进化过程分为渐进和突变两个不同的阶段:渐进阶段强交叉,弱变异,强化优势选择型算子;突变阶段弱交叉,强变异,弱化优势选择算子。在经过遗传操作后,要进行子代重插入,由于算法中引入精英策略的概念,新旧种群之间存在代沟,每一代产生的新个体数少于原始种群,需要重插入来保持原始种群规模。应用这种策略突出优点在于提高算法的效率和优化精度。(5)终止条件。选取终止条件为最大迭代次数100,满足终止条件后,算法结束,输出最优解Q和R的值。遗传算法初始种群和优化过程中的波形输出分别如图4.3和图4.4所示:图4.3遗传算法初始种群分布Figure4.3TheInitialPopulationDistributionofGA a经过20代迭代的优化解b经过60代迭代的优化解 c经过80代迭代的优化解d经过100代迭代的优化解图4.4遗传算法优化过程的输出解Figure4.4TheOutputSolutionsofGAOptimizationProcess迭代终止后,4.4(d)寻优结果对应的权重矩阵Q和R分别是:,,接着求解Riccati方程进而得到系统的最优反馈矩阵:。至此可以根据图4.1原理设计GA-LQR控制器对两级倒立摆系统进行控制。基于GA-LQR控制器的二级倒立摆系统仿真控制框图如4.5所示:

aGA-LQR控制器内部结构bGA-LQR控制器参数图4.5基于GA-LQR的两级倒立摆系统仿真框图Figure4.5TheDoubleStageIPSimulationDiagramBasedonGA-LQR4.2Matlab/GUI环境下二级倒立摆控制系统仿真4.2.1基于Matlab/GUI二级倒立摆系统仿真图形界面开发为了得到控制效果卓越的控制器,则在控制器用于实时控制之前需要大量的仿真实验和相关参数的反复调试。尤其是在应用Matlab7.0以上的版本时,在512M内存的处理器上反复地运行Matlab程序进行二级倒立摆系统控制效果仿真是耗计算机系统资源和费时的工作,进而可以应用可发布的Matab/GUI图形界面,后台调用系统仿真模型进行各项参数调试,观看仿真结果,获得仿真效果优越的控制器,为后续系统的实时控制做好充分的准备。而Matlab为用户开发图形界面提供了一个方便高效的集成环境:Matlab图形界面开发环境GUIDE(Matlab’sGraphicalUserInterfaceDevelopmentEnviroment)[39]。借助GUIDE可以方便地实现对二级倒立摆系统仿真模型的调试。GUIDE主要是一个界面设计工具集,Matlab将所有GUI支持的用户控件都集成在这个环境中并提供界面外观、属性和行为响应方式的设置方法。GUIDE将用户保存设计好的GUI界面保存在一个fig资源中,同时能够生成包含GUI初始化和组件界面布局控制代码的M文件。该M文件为实现回调函数(当用户激活GUI某一组件时执行的函数)提供了一个框架。当然用户也可以使用M文件脚本真正实现动态的GUI,但是使用GUIDE的创建效率会更高。使用GUIDE可以交互式地进行组件界面布局,同时能够生成两个用来保存和发布GUI的文件:(1)fig文件。该文件包含GUI图形窗口及其所有后裔的完全描述及其所有对象的属性值,fig文件是一个二进制文件,fig文件最最突出的用处之一是对对象句柄的保存和引用。(2)M文件。该文件包含GUI设计、控制函数以及定义为子函数的用户控件回调函数,用于控制GUI调用时的各种特征。该M文件分为GUI初始化和回调函数两部分,用户控件的回调函数根据用户与GUI的交互分别调用。GUIDE可以根据用户GUI界面的设计过程直接自动生成上述M文件框架,简化了GUI应用程序的创建工作,直接应用这个框架来编写自己的函数代码具有诸多优点:(1)应用程序M文件已经包含实现一些有用的函数编写代码,不需要用户自己编写。(2)可以使用该M文件生成的有效方法来管理图形对象句柄并执行回调函数子程序。(3)提供管理全局数据的途径(4)M文件支持自动插入回调函数的原型,确保当前GUI与未来发布版本的兼容性。要实现一个完整的GUI主要完成两项工作:GUI界面设计和GUI组件编程。实现GUI的具体过程则是:(1)通过设置GUIDE应用程序选项来进行GUIDE组态。(2)使用界面设计编程器进行GUI界面设计。(3)理解引用程序M文件中所使用的编程技术。(4)编写用户GUI组件行为响应控制(回调函数)代码。针对两级倒立摆系统仿真所设计的GUI组态界面如图4.6所示:图4.6两级倒立摆仿真组态画面Figure4.6TheConfigurationInterfaceofDoublestageIPSimulationSystem针对该组态界面所生成的可执行GUI界面如图4.7所示:图4.7两级倒立摆系统仿真图形界面Figure4.7TheGUIofDoubleStageIPSimulationSystem4.2.2基于GA-LQR稳摆控制的二级倒立摆系统仿真接着借助GUI分析GA-LQR控制算法的仿真可行性,给出的仿真参数是4.1节通过GA寻优得到的Q和R参数:,,在该组Q和R参数下所得到的系统最优反馈阵:。同时为了同单纯的LQR控制作对比,给出通过经验反复试探法确定的一组Q和R参数。联系实际的倒立摆系统,水平摆体长度约为720cm,是厘米的数量级,而在两级倒立摆系统的闭环控制中,采样后的状态数据:,是标准化的国际单位,所以在应用试探法确定权重矩阵Q和R时,对角阵Q对角线位置的前三个权重系数与后三个系数之间存在约数量级的差距;考虑半正定矩阵和正定矩阵中各个元素需均为正整数,理论上是,不妨首先设,,在人为确定参数的过程中设计者自己拟定调节步长比如10(指每次给对角位置上的元素增加或减少10),经过不断的仿真调试而确定一组比较满意的Q和R。本设计中经过试探得到仿真效果较好的一组权重参数是,,对应该组权重参数下所得到

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论