遗传算法的PID控制器的设计毕业论文.doc

上传人:牧羊曲112 文档编号:4297911 上传时间:2023-04-14 格式:DOC 页数:70 大小:2.24MB
返回 下载 相关 举报
遗传算法的PID控制器的设计毕业论文.doc_第1页
第1页 / 共70页
遗传算法的PID控制器的设计毕业论文.doc_第2页
第2页 / 共70页
遗传算法的PID控制器的设计毕业论文.doc_第3页
第3页 / 共70页
遗传算法的PID控制器的设计毕业论文.doc_第4页
第4页 / 共70页
遗传算法的PID控制器的设计毕业论文.doc_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《遗传算法的PID控制器的设计毕业论文.doc》由会员分享,可在线阅读,更多相关《遗传算法的PID控制器的设计毕业论文.doc(70页珍藏版)》请在三一办公上搜索。

1、遗传算法的PID控制器的设计毕业论文目 录摘要IAbstractII第1章 绪论11.1 课题背景11.2 国外研究现状及成果21.3 当前研究存在的问题41.4 本文研究的目的和意义51.5 本论文主要工作6第2章 遗传算法72.1 遗传算法的简介72.1.1 遗传算法的历史和发展72.1.2 遗传算法的应用领域92.1.3 遗传学的概念92.2 遗传算法的基本原理及特点102.3 遗传算法的基本步骤112.4 遗传算法的应用关键132.5本章小结15第3章 遗传算法的MATLAB实现163.1 遗传算法工具箱总体介绍163.2 遗传算法工具箱函数应用173.3 本章小结22第4章 PID控

2、制器模型244.1 PID参数优化方法综述244.2 柴油机PID控制器模型334.2.1 测速环节334.2.2柴油机334.2.3 执行器344.2.4 控制器344.3本章小结34第5章 遗传算法的PID参数优化设计及仿真355.1 遗传算法的PID参数优化策略355.2 PID控制器在SIMULINK中的仿真框图365.3 基于遗传算法优化柴油机调速系统PID参数375.4 柴油机调速系统仿真实验395.5 本章小结42结论43参考文献44致46附录1 开题报告47附录2 文献综述52附录3 外文翻译56附录4 (程序清单)64第1章 绪论1.1 课题背景PID调节器是最早发展起来的控

3、制策略之一,因为它所涉及的设计算法和控制结构都是简单的,并且十分适用于工程应用背景,此外PID控制方案并不要求精确的受控对象的数学模型,且采用PID控制的控制效果一般是比较令人满意的,所以在工业实际应用中,PID调节器是应用最为广泛的一种控制策略,也是历史最久、生命力最强的基本控制方式。调查结果表明在当今使用的控制方式中,PID型占84.5%,优化PID型占6.8%,现代控制型占有1.5%,手动控制型6.6%,人工智能(AI)型占0. 6%。如果把PID型和优化PID型二者加起来则占90%以上,这说明PID控制方式占绝大多数,如果把手动控制型再与上述两种加在一起,则占97. 5%,这说明古典控

4、制占绝大多数。就连科学技术高度发达的日本,PID控制的使用率也高达84.%。这是由于理论分析及实际运行经验已经证明了PID调节器对于相当多的工业过程能够起到较为满足的控制效果。它结构简单、适用面广、鲁棒性强、参数易于调整、在实际中容易被理解和实现、在长期应用中已积累了丰富的经验。特别在工业过程中,由于控制对象的精确数学模型难以建立,系统的参数又经常发生变化,运用现代控制理论分析综合要耗费很大的代价进行模型辨识,但往往不能达到预期的效果,所以不论常规调节仪表还是数字智能仪表都广泛采用这种调节方式。正是由于PID控制算法具有以上多种优点,所以这种算法仍将在现场控制中居于主导地位随着现代控制理论的建

5、立和不断发展完善,对过程控制提出了新的方法和思路,同时也由于生产工艺不断地改进提高,对过程控制也提出了高要求。科研人员在不断探索新方法的同时,也对传统的PID控制的改进做了大量的研究。因为PID控制有其固有的优点,使得PID控制在今后仍会大量使用,如何进一步提高PID控制算法的能力或者依据新的现代控制理论来设计PID控制算法是一个非常吸引人的课题。科研人员在这一领域做的工作主要有以下两方面。(1)PID参数自整定。由于受控对象存在着大量不可知因素,如随机扰动、系统时变、敏感误差等,这些不可知因素的作用常会导致受控对象参数的改变。在一个PID反馈控制回路中,受控对象参数的变化就会造成原来的PID

6、参数控制性能的降低,为了克服这个问题人们提出了PID参数自整定,也就是随着受控对象的变化PID调节器自我调整和重新设定PID参数,科研人员根据古典控制理论和现代控制理论提出了许多种PID参数的在线自整定的方法。至今仍有人在这方面继续作研究。PID参数在线自整定方法比较典型的有改进型Ziegler-Nichols临界比例度法、基于过程模型辨识的参数自整定、基于经验的专家法参数自整定、模糊型PID调节器等。(2)PID参数优化。PID参数优化是指依据一定的控制目标和给定的生产过程的模型通过理论计算得到最优的PID参数,PID参数优化在PID控制应用之初人们就开始作了大量研究工作,已经提出了许多种方

7、法,如粒子群优化算法,免疫算法,单纯形法,差分进化算法,神经网络算法,遗传算法等。 本文就是应用遗传算法对柴油机调速体统的PID参数进行优化,使系统具有更好的性能。1.2 国外研究现状及成果进入90年代,遗传算法迎来了兴盛发展时期,无论是理论研究还是应用研究都成了十分热门的课题。尤其是遗传算法的应用研究显得格外活跃,不但它的应用领域扩大,而且利用遗传算法进行优化和规则学习的能力也显著提高,同时产业应用方面的研究也在摸索之中。此外一些新的理论和方法在应用研究中亦得到了迅速的发展,这些无疑均给遗传算法增添了新的活力。遗传算法的应用研究已从初期的组合优化求解扩展到了许多更新、更工程化的应用方面。19

8、91年D.Whitey在他的论文中提出了基于领域交叉的交叉算子(Adjacency based crossover),这个算子是特别针对用序号表示基因的个体的交叉,并将其应用到了TSP问题中,通过实验对其进行了验证。 D.H.Ackley等提出了随即迭代遗传爬山法(Stochastic Iterated Genetic Hill-climbing,SIGH)采用了一种复杂的概率选举机制,此机制中由m个“投票者”来共同决定新个体的值(m表示群体的大小)。实验结果表明,SIGH与单点交叉、均匀交叉的神经遗传算法相比,所测试的六个函数中有四个表现出更好的性能,而且总体来讲,SIGH比现存的许多算法在

9、求解速度方面更有竞争力。 H.Bersini和G.Seront将遗传算法与单一方法(simplex method)结合起来,形成了一种叫单一操作的多亲交叉算子(simplex crossover),该算子在根据两个母体以及一个额外的个体产生新个体,事实上他的交叉结果与对三个个体用选举交叉产生的结果一致。同时,文献还将三者交叉算子与点交叉、均匀交叉做了比较,结果表明,三者交叉算子比其余两个有更好的性能。 2002年,戴晓明等应用多种群遗传并行进化的思想,对不同种群基于不同的遗传策略,如变异概率,不同的变异算子等来搜索变量空间,并利用种群间迁移算子来进行遗传信息交流,以解决经典遗传算法的收敛到局部

10、最优值问题 2004年,宏立等针对简单遗传算法在较大规模组合优化问题上搜索效率不高的现象,提出了一种用基因块编码的并行遗传算法(Building-block Coded Parallel GA,BCPGA)。该方法以粗粒度并行遗传算法为基本框架,在染色体群体中识别出可能的基因块,然后用基因块作为新的基因单位对染色体重新编码,产生长度较短的染色体,在用重新编码的染色体群体作为下一轮以相同方式演化的初始群体。 2005年,江雷等针对并行遗传算法求解TSP问题,探讨了使用弹性策略来维持群体的多样性,使得算法跨过局部收敛的障碍,向全局最优解方向进化。1.3 当前研究存在的问题(1)遗传算法在适应度函数

11、选择不当的情况下有可能收敛于局部最优,而不能达到全局最优。(2) 对于动态数据,用遗传算法求最优解比较困难,因为染色体种群很可能过早地收敛,而对以后变化了的数据不再产生变化。对于这个问题,研究者提出了一些方法增加基因的多样性,从而防止过早的收敛。其中一种是所谓触发式超级变异,就是当染色体群体的质量下降(彼此的区别减少)时增加变异概率;另一种叫随机外来染色体,是偶尔加入一些全新的随机生成的染色体个体,从而增加染色体多样性。(3) 选择过程很重要,但交叉和变异的重要性存在争议。一种观点认为交叉比变异更重要,因为变异仅仅是保证不丢失某些可能的解;而另一种观点则认为交叉 过程的作用只不过是在种群中推广

12、变异过程所造成的更新,对于初期的种群来说,交叉几乎等效于一个非常大的变异率,而这么大的变异很可能影响进化过程。(4) 遗传算法并不一定总是最好的优化策略,优化问题要具体情况具体分析。所以在使用遗传算法的同时,也可以尝试其他算法,互相补充,甚至根本不用遗传算法。(5) 遗传算法不能解决那些“大海捞针”的问题,所谓“大海捞针”问题就是没有一个确切的适应度函数表征个体好坏的问题,遗传算法对这类问题无法找到收敛的路。(6) 对于任何一个具体的优化问题,调节遗传算法的参数可能会有利于更好的更快的收敛,这些参数包括个体数目、交叉律和变异律。例如太大的变异律会导致丢失最优解,而过小的变异律会导致算法过早的收

13、敛于局部最优点。对于这些参数的选择,现在还没有实用的上下限。(7) 适应度函数对于算法的速度和效果也很重要。1.4 本文研究的目的和意义近年来,我国在遗传算法理论与应用方面取得了巨大的成就,目前的研究课题主要集中在以下几个方面:一是算法的数学基础;二是算法与其他优化技术的比较和融合;三是算法的改进与深化;四是算法的并行化研究等。遗传算法已被成功地应用于工业、经济答理、交通运输、工业设计等不同领域,解决了许多问题。对我国科技的进步与经济的发展产生了不可估量的作用。PID调节器是最早发展起来的控制策略之一,因为它所涉及的设计算法和控制结构都是简单的,并且十分适用于工程应用背景,此外PID控制方案并

14、不要求精确的受控对象的数学模型,且采用PID控制的控制效果一般是比较令人满意的,所以在工业实际应用中,PID调节器是应用最为广泛的一种控制策略,也是历史最久、生命力最强的基本控制方式。调查结果表明在当今使用的控制方式中,PID型占84.5%,优化PID型占6.8%,现代控制型占有1.5%,手动控制型6.6%,人工智能(AI)型占0. 6%。如果把PID型和优化PID型二者加起来则占90%以上,这说明PID控制方式占绝大多数,如果把手动控制型再与上述两种加在一起,则占97. 5%,这说明古典控制占绝大多数。就连科学技术高度发达的日本,PID控制的使用率也高达84.%。这是由于理论分析及实际运行经

15、验已经证明了PID调节器对于相当多的工业过程能够起到较为满足的控制效果。它结构简单、适用面广、鲁棒性强、参数易于调整、在实际中容易被理解和实现、在长期应用中已积累了丰富的经验。特别在工业过程中,由于控制对象的精确数学模型难以建立,系统的参数又经常发生变化,运用现代控制理论分析综合要耗费很大的代价进行模型辨识,但往往不能达到预期的效果,所以不论常规调节仪表还是数字智能仪表都广泛采用这种调节方式。正是PID控制算法具有以上多种优点,所以这种算法仍将在现场控制中居于主导地位。随着现代控制理论的建立和不断发展完善,对过程控制提出了新的方法和思路,同日寸也由于生产工艺不断地改进提高,对过程控制也提出了高

16、要求。科研人员在不断探索新方法的同时,也对传统的PID控制的改进做了大量的研究。因为PID控制有其固有的优点,使得PID控制在今后仍会大量使用,如何进一步提高PID控制算法的能力或者依据新的现代控制理论来设计PID控制算法是一个非常吸引人的课题。1.5 本论文主要工作本论文的主要工作是研究利用遗传算法对柴油机调速系统的PID参数进行优化,并且使用Matlab和Simulink对柴油机调速系统的PID 控制系统进行仿真。 首先,对遗传算法进行了介绍,包括遗传学的概念,遗传算法的历史和发展,遗传算法的基本原理,遗传算法的基本步骤和遗传算法的应用关键;其次,以柴油机调速系统为模型,利用遗传算法对其P

17、ID参数进行优化,并且利用 Matlab和Simulink工具对柴油机调速系统的PID参数进行优化控制的仿真研究。最后对论文的工作进行了。第2章 遗传算法2.1 遗传算法的简介遗传算法(GA),是1962年由美国的J.H.Holland提出的一种模仿生物进化过程的最优化方法。是以自然选择与遗传理论为基础,将生物进化过程中适者生存与群体部染色体的随机信息交换机制相结合的全局搜索算法。经过几十年的发展,GA算法的研究日渐成熟。与传统的优化算法相比,GA具有如下优点:(1)不是从单点,而是从多点开始搜索;(2)在搜索最优解时,不受问题性质(连续性、可微性)的限制只需由目标函数值转换成适应度即可;(3

18、)搜索过程不易陷入局部最优值。其基本思想是把GA待优化的参数编码成二进制位串形式,然后由若干个位串形成一个初始种群作为待求问题的候选解,使用选择(select)、交叉(crossover)、变异(mutation)进行操作,不断迭代优化,直到找到最优解。遗传算法是模仿自然界生物进化论思想而得出的一种全局优化算法。它对所优化目标的经验知识要求甚少,一般只需要知道其数值关系即可。同时由于遗传算法群体的多样性,使其尽可能在全方向上搜索,达到全局最优。2.1.1 遗传算法的历史和发展Holland的早期工作主要集中于生物学,控制工程,人工智能等领域中的中一类动态系统的适应性问题,其中适应性概念在环境表

19、现出较好行为和性能的系统结构的渐进改变过程,简称系统的适应过程。Holland认为:通过简单的模拟机制可以描述复杂的适应性现象。因此,Holland试图建立适应过程的一般描述模型,并在计算机上进行模拟试验研究,分析自然系统或者人工系统对环境变化的适应性现象,其中遗传算法仅仅是一种具体的算法形式。Bremermann,De Jong等人则注重遗传算法应用于参数优化问题,极大的促进了遗传算法的应用。所以,遗传算法既是一种自然进化系统的计算模型,也是一种通用的求解优化问题的适应性搜索方法。1962年,John Holland在“Outline for a Logic Theory Adaptive

20、Systems”一文中,提出了所谓的监控程序的概念,即利用群体进化模拟适应性系统的思想。在这篇文章中尽管它没有给出实现这些思想的具体技术,但却引进了群体,适应值,选择,交叉等基本概念。1966年,Fogel等人也提出了类似的思想,但是其重点是放在变异算子而不是采用交叉算子。1967年,Holland的学生J.D.Bagley通过对跳棋游戏参数的研究,其博士论文中首次提出了“遗传算法”一词。在20世纪60年代中期至70年代末期,基于自然进化的思想遭到了怀疑和反对。Holland及其数位博士坚持了这一方向的研究。1975年,Holland出版了专著自然与人工系统中的适应性行为(Adaptation

21、 in Natural and Artificial Systems),该书系统的阐述了遗传算法的基本理论和方法,提出了对遗传算法和理论发展极为重要的模式理论,其中首次确认了选择,交叉,变异等遗传算子,以及遗传算法的隐并行性,并将遗传算法应用于适应性系统模拟,函数优化,机器学习,自动控制等领域。1975年以后,遗传算法作为函数优化器不但在各个领域的得到了广泛应用,而且还丰富和发展了若干遗传算法的基本理论。1980年,Bethke对函数优化GA进行了研究,包括应用研究和数学分析。Smith在1980年首次提出使用变长位串的概念。这在某种程度上为以后的遗传规划奠定了基础。1989年,David G

22、oldberg出版了Genetic Algorithms in Search Optimization and Machine Learning一书,这是第一本遗传算法的教科书,它是对当时关于遗传算法领域研究工作的全面而系统的总结,因而也成为引用最多的参考书之一。随着遗传算法研究和应用的不断深入与扩展,1985年,在美国召开了第一届遗传算法国际会议,即ICGA(International Conference on Genetic Algorithm)这次会议是遗传算法发展的重要里程碑,此会以后每隔一年举行一次。随着Internet技术的发展和普及应用,遗传算法的有关研究单位建立了大量的专题,

23、其中最为著名的是由美国海军人工智能应用研究中心建立的GA_Archives检索www.aic.nrl.navy.mil/galist/它包括了世界围的开展遗传算法和进化计算研究的大学和机构,历年来的公开发表的论文和报告,有关国际会议消息,典型应用案例和程序的源代码等。这些众多的研究单位和频繁的国际学术活动集中反映了遗传算法的学术意义的应用价值。目前,遗传算法已经成为一个多学科、多领域的重要研究方向。2.1.2 遗传算法的应用领域遗传算法作为一种有效的全局搜索方法,从产生至今不断应用领域,比如工程设计,制造业,人工智能,计算机科学,生物工程,自动控制,社会科学,商业和金融等,同时应用实践又促进了

24、遗传算法的发展和完善。比较成功的案例如下:(1)遗传学习将遗传算法用于知识获取,构成以遗传算法为核心的机器学习系统,其中群体由一组产生规则组成。比较典型的适Holland设计的用于序列决策学习的分类器系统,以及机器人规划,模式识别,概念学习。(2)自动控制领域遗传算法适用于求解复杂的参数辨识问题。Maclay等人用遗传算法求解电车模型参数辨识问题,取得了很好的效果;Karr采用遗传算法设计自适应模糊逻辑控制器,取得了显著的效果;Freeman等人提出了应用遗传算法精调控制中的由人定义的模糊逻辑集合概念。另外,GA在故障诊断和机器人行走路径中的应用也取得了成功。(3)人工智能与计算机科学GA 在

25、人工智能与计算机科学领域中的应用包括:数据挖掘和知识获取,数据库优化查询,人工神经网络结构与参数优化,模式识别,专家系统等。另外,很多专家学者将GA应用于各自所从事的工程领域,比如VLSI设计,运输规划,设备布局,土木工程,生物工程等,对解决具体实践问题起到了极大的促进作用。2.1.3 遗传学的概念(1) 串(string):它是个体的形式,在算法中为二进制,并且对应遗传学中的染色体。(2) 群体(population):个体的集合称为群体,串是群体的元素。(3) 群体大小(population size):在群体中个体的数量称为群体的大小。(4)基因(gene):基因是串中的元素,基因用于表

26、示个体的特征。例如有一个s=1011,则其中的1,0,1,1这4个元素分别称为基因。它们的值称为等位基因。(5) 基因位置(gene position):一个基因在串中的位置称为基因位置,有时也称为基因位。基因位置由串的左向右计算,例如在串s=1101中,0的基因位置是3。基因位置对应于遗传学中的地点。(6) 基因特征值(gene feature):在用串表示整数时,基因的特征值与二进制的权一致;例如在串s=1011中,基因位置3中的1,它的基因特征值是2。基因位置1中的1,它的基因特征值是8。(7) 串结构空间ss:在串中,基因任意组合所构成的串的集合。基因操作是在结构空间中进行的。串结构空

27、间对应于遗传学中的基因型的集合。(8) 参数空间sp:这是串空间在物理系统中的映射,它对应于遗传学中的表现型的集合。(9) 非线性:它对应遗传学中的异位显性。(10) 适应度(fitness):表示某一个体对于环境的适应程度。2.2 遗传算法的基本原理及特点遗传算法(Genetic Algorithms GA)是以自然选择和基因遗传理论为基础,将生物进化过程中的适者生存规则与群体部染色体的随机信息交换机制相结合,在问题解空间进行全局并行、随机的搜索,其结果是向全局最优方向收敛。遗传算法模仿生物进化的步骤,引入选择,交叉,变异等算子。繁殖是在父母代种群中将适应度较高的个体选择出来,根据适者生存原

28、理,淘汰适应度较低的个体,以优化种群;交叉是从种群中随机地抽取一对个体,并随机地选择一位交叉位进行交叉,生成新样本,达到增大搜索空间的目的;变异是模仿生物的基因突变,为了防止繁殖和交叉丢失重要的遗传信息;它对个体按位进行操作,以提高遗传算法的搜索效率和全局搜索能力10。遗传算法具有以下几方面的特点:(1) 遗传算法从问题解的串集开始嫂索,而不是从单个解开始。这是遗传算法与传统优化算法的极大区别。传统优化算法是从单个初始值迭代求最优解的;容易误入局部最优解。遗传算法从串集开始搜索,覆盖面大,利于全局择优。(2) 许多传统搜索算法都是单点搜索算法,容易陷入局部的最优解。遗传算法同时处理群体中的多个

29、个体,即对搜索空间中的多个解进行评估,减少了陷入局部最优解的风险,同时算法本身易于实现并行化。 (3) 遗传算法基本上不用搜索空间的知识或其它辅助信息,而仅用适应度函数值来评估个体,在此基础上进行遗传操作。适应度函数不仅不受连续可微的约束,而且其定义域可以任意设定。这一特点使得遗传算法的应用围大大扩展。(4) 遗传算法不是采用确定性规则,而是采用概率的变迁规则来指导他的搜索方向。(5) 具有自组织、自适应和自学习性。遗传算法利用进化过程获得的信息自行组织搜索时,适应度大的个体具有较高的生存概率,并获得更适应环境的基因结构。2.3 遗传算法的基本步骤步骤一:参数编码和解码在遗传算法中如何描述问题

30、的可行解,即把一个问题的可行解从其解空间转换到遗传算法所能处理的搜索空间的转换方法称为编码。一般把问题的各种参数用编码构成子串,然后把子串并接成染色体串。二进制编码方法是遗传算法中最常用的一种编码方法。本文中采用的编码方式就是二进制编码。PID 中三个参数Kp,Ki和Kd作为编码对象,采用如下公式进行编码:其中,u是编码对象,和是U的取值围,是二进制编码的长度。n是位的二进制数。步骤二:适应度函数的选择适应度函数表明个体对环境适应能力的强弱,它与所选取的目标函数有关。本文采用了绝对误差积分模型: (2.1) 定义适应度函数f为: (2.2) 本文中应用Simulink完成适应度函数的选择。步骤

31、三:遗传算法(1) 选择(selection operator)遗传算法使用选择算子来对群体中的个体进行优胜劣汰操作。在选择时,以适应度为选择原则。适应度准则体现了适者生存,不适应者被淘汰的自然法则。适应度较高的个体被遗传到下一代群体中的概率较大,适应度较低的个体被遗传到下一代群体中的概率较小。最常用的选择算子是基本遗传算法中的比例选择算子,本文采用的就是这种方法。其基本思想是:各个个体被选中的概率与其适应度大小成正比例关系。设群体大小为,个体的适应度为,则个体被选中的概率如公式2.3 (2.3)从上式就可以看出:适应度高的个体,繁殖下一代的数目比较多。适应度低的个体,繁殖下一代的数目比较少,

32、甚至被淘汰。这样,就产生了对环境适应能力比较强的后代。对于问题求解角度来讲,就是选择出和最优解比较接近的中间解。(2) 交叉(crossover operator)对于选中用于繁殖下一代的个体,随机的选择两个个体的相同位置,按交叉概率p在选中的位置实行交换。这个过程反映了随机信息交换;目的在于产生新的基因组合,也即产生新的个体。交叉时,可以执行单点交叉和多点交叉。交叉算子是指对2个相互配对的染色体按某种方式相互交换其部分基因,从而形成2个新的个体。本文采用中间重组双点交叉法,即在群体中随机选取2个个体,并在个体编码串中只随机设置2个交叉点,然后在该点以一定的概率Pc相互交换2个配对个体的部分染

33、色体。一般Pc的经验取值围是0.500.99。(3) 变异(mutation operator)根据生物遗传中的基因变异的原理,以变异概率pm对某些个体的某些位执行变异。在变异时,对要执行变异的位求反,就是把1变成0,把0变成1。变异概率Pm与生物变异极小的情况一致,变异运算是指将个体染色体编码串中某些基因座上的基因值用该基因座的其它等位基因来替换,形成一个新的个体。本文采用的变异操作是高位变异。一般Pm的经验取值围是0.00010.1变异可使遗传算法具有局部随机搜索功能,又可维持群体的多样性,避免出现初期收敛问题,也就是说变异增加了全局优化的可能性。(4) 初始种群的产生为保证在整个解空间进

34、行搜索,采用随机产生初始种群。(5) 遗传操作迭代终止的条件2.4 遗传算法的应用关键遗传算法在应用中最关键的问题有如下3个:串的编码方式:遗传算法不能直接处理问题空间的参数,必须把它们转换成遗传空间的由基因按一定结构组成的染色体或个体,这一转换操作就叫做编码。评估编码策略常采用以下3个规:完备性(completeness):问题空间中的所有点(候选解)都能作为GA空间中的点(染色体)表现。 健全性(soundness): GA空间中的染色体能对应所有问题空间中的候选解。非冗余性(nonredundancy):染色体和候选解一一对应。目前的几种常用的编码技术有二进制编码,浮点数编码,字符编码,

35、变成编码等。而二进值编码是目前遗传算法中最常用的编码方法。即是由二进值字符集0, 1产生通常的0, 1字符串来表示问题空间的候选解。它具有以下特点:(1) 简单易行;(2) 符合最小字符集编码原则;(3) 便于用模式定理进行分析,因为模式定理就是以基础的。一般把问题的各种参数用二进制编码构成子串,然后把子串拼接成染色体串(串的长度及编码形式对算法收敛影响很大)。适应度函数的确定:进化论中的适应度,是表示某一个体对环境的适应能力,也表示该个体繁殖后代的能力。遗传算法的适应度函数也叫评价函数,是用来判断群体中的个体的优劣程度的指标,它是根据所求问题的目标函数来进行评估的。遗传算法在搜索进化过程中一

36、般不需要其他外部信息,仅用评估函数来评估个体或解的优劣,并作为以后遗传操作的依据。由于遗传算法中,适应度函数要比较排序并在此基础上计算选择概率,所以适应度函数的值要取正值.由此可见,在不少场合,将目标函数映射成求最大值形式且函数值非负的适应度函数是必要的。 适应度函数的设计主要满足以下条件:(1) 单值、连续、非负、最大化;(2) 合理、一致性;(3) 计算量小;(4) 通用性强。在具体应用中,适应度函数的设计要结合求解问题本身的要求而定。适应度函数设计直接影响到遗传算法的性能。适应函数也称为对象函数,这是问题求解品质的测量函数,往往也称为问题的“环境” 。一般可以把问题的模型函数作为对象函数

37、,但有时也需要另行构造。遗传算法自身参数设定:遗传算法自身参数有3个,即群体大小、交叉概率和变异概率。群体大小太小时难以求出最优解,太大则增长收敛时间。交叉概率太小时难以向前搜索,太大则容易破坏高适应值的结构。交叉概率太小难以产生新的基因结构,太大会使遗传算法成了单纯的随机搜索。遗传算法中初始群体中的个体是随机产生的。一般来讲,初始群体的设定可采取如下的策略: (1) 根据问题固有知识,设法把握最优解所占空间在整个问题空间中的分布围,然后,在此分布围设定初始群体。 (2) 先随机生成一定数目的个体,然后从中挑出最好的个体加到初始群体中。这种过程不断迭代,直到初始群体中个体数达到了预先确定的规模

38、。2.5本章小结本章主要介绍了遗传算法的原理及特点以及它的应用关键和基本步骤,通过对本章的学习可以对遗传算法有一个比较完整的了解,对遗传算法应用中的一些关键技术和存在的问题有了较为全面的认识,为下文遗传算法的编码,适应度函数的选定,遗传算法自身参数的设定奠定了基础。第3章 遗传算法的MATLAB实现MATLAB是一种开放式软件,经过一定的程序可以将开发的优秀的应用程序集加入到MATLAB工具的行列。Matlab作为一种拥有高性能数值计算能力的通用科技计算机语言在其简单易用的操作环境中集成了数值分析、矩阵计算、图视能力、可视化建模仿真和实时控制能力,适合多学科和多部门的发展。这样,许多领域前沿的

39、研究者和科学家都可以将自己的成果集成到MATLAB中,被全人类继承和利用。因此,MATLAB中含有诸多的面向不同应用领域的工具箱。例如:信号处理工具箱、图象处理工具箱、通信处理工具箱、优化工具箱、遗传算法工具箱等,而且这些工具箱还在不断的扩展中。本文将重点讲述遗传算法工具箱函数及其功能。3.1 遗传算法工具箱总体介绍根据Matlab的强大的数值计算能力、大量的建辅助函数和开放、可扩展的体系结构这些性质,将Matlab引入遗传算法,在Matlab平台上开发遗传算法工具箱,可帮助人们更好地认识和了解遗传算法,并为进一步开发遗传算法提供基础和帮助。它给出了各种MATLAB的高级语言并将这点与MATL

40、AB的发展、数据分析、形象化工具、专用应用领域工具箱和那些被提供用来探索遗传算法潜能的一种相同的环境相符合。遗传算法有许多算子(如选择、交叉、变异等),都是针对所谓的染色体进行的,染色体实质上就是一个向量,可以将其看成一个的矩阵,因此这些算子的运算实质上就是一些矩阵的运算。而Matlab的基本数据单元就是一个维数不加限制的矩阵,在这种环境下,用户无需考虑大量有关矩阵算法的复杂运算问题,更不必深入了解相应算法的具体细节,因而利用Matlab编程可以节省大量的时间和精力。遗传算法工具箱使用MATLAB基本功能,为实现广泛遗传算法创建遗传算法工具箱使用MATLAB基本功能,为实现广泛遗传算法创建了一

41、套多用途的工具,它是常规性的收索,主要利用编写M文件,这是遗传算法中最主要的功能。3.2 遗传算法工具箱函数应用本文运用遗传算法工具箱函数在MATLAB运行环境下进行程序编写,以达到对PID参数寻优的目的。下面是对在程序中用到遗传算法工具箱函数的详细说明:(1)Rep功能:矩阵复制。格式:matout=rep(matin,repn)描述:rep是一个低位复制函数,通常不直接应用,rep被遗传算法工具箱的许多函数调用。rep执行的是一个矩阵的复制,matin是repn指定的数值,随后返回一个复制的矩阵,matout。repn包含了各个方向的复制,repn(1)指定了垂直方向的复制的数值,repn

42、(2)指定了水平方向的复制的数值。(2)crtbp功能:创建一个初始种群。格式:chrom,lind,basev=crtbp(nind,lind)chrom,lind,basev=crtbp(nind,lind,base)chrom,lind,basev=crtbp(nind,basev)描述:遗传算法的第一步是创建一个由随机产生的染色体组成初始化种群,crtbp产生一个矩阵chrom,元素中包含随机产生的值。chrom=crtbp(nind,lind)创建一个大小为nindlind的随机二进制矩阵,其中nind指定种群中个体的数量,lind指定个体的长度,另外,chrom=crtbp(nin

43、d,lind)可以用来指定染色体矩阵的维数。chrom,lind,basev=crtbp(nind,lind,base)产生一个染色体矩阵base,如果base是一个向量,base中元素的值就指定为base中染色体的轨迹。在这种情况下,二次争论就忽略了,chrom=crtbp(nind,basev)chrom,lind,basev=crtbp(nind,basev)=crtbp(nind,basev)也是返回一个染色体结构的长度lind,和基于染色体轨迹的向量basev。(3)bs2rv目的:二进制数转化为实值。功能:phen=bs2rv(chrom,fieldd)格式:phen=bs2rv(

44、chrom,fieldd)是把用二进制的表示方法表示种群chrom转化成实值。染色体被看作是已经给出长度的二进制串,用标准二进制或者是灰色二进制解码到实值矩阵fieldd。最后的结果矩阵phen包含着与种群相应的显型。矩阵fieldd的结构如下:矩阵的行由以下组成:len,一个在染色体中包含每一个子串长度的行向量。注意:sum (len) =length (chrom)lb和ub是包含了每一个使用的变量的上,下限围的行向量。code是指定每一个子串的解码方式的二进制行向量。选择code(i)=0是标准二进制。选择code(i)=1是灰色二进制。scale是指定对于每一个子串是用算术采样还是用对

45、数采样的二进制行向量。选择scale(i)=0是算术采样。选择scale(i)=1是对数采样。lbin和ubinshi1是指定要不要包含每一个表示围的上下限。选择l|ubin(i)=0 是从表示围中排除l|ub(i)。lbinubinl|ubin(i)=1 把l|ub(i)包含在表示围中。(4)ranking功能:按适应度等级排序。格式:fitnv=ranking (objv)fitnv=rank(objv,rfun)fitnv=rank(objv,rfun,subpop)描述:ranking是根据它们的目标函数值分等级的,objv返回一个包含个体适应度函数值的列向量,fitnv,这个函数按个

46、体等级排序。rfun是一个随机的向量1,2或者length(objv)参数。subpop是一个任意的参数并且在objv中指定了后代的个数。如果subpop被忽略或者取值为nan, 则subpop=1。所有在subpop中的后代必须由相同的类型。如果ranking被多余一个个体调用,它也将只执行一个后代的操作。(5)select功能:从种群中选择出个体(高位选择)。格式:selch=select(sel_f,chrom,fitnv)selch=select(sel_f,chrom,fitnv,ggap)selch=select(sel_f,chrom,fitnv,ggap,subpop)描述:s

47、elect函数是从种群中选择出个体,chrom返回的是从种群中选择出来的个体,Selch。Chrom中的每一列和selch与每一个个体相对应。sel_f是一个串,它包含了低位选择函数的名称,比如rws或者sus。Fitnv是一个列向量,它包含了chrom中的个体的适应度。适应值显示每一个个体的预期的可能性。ggap是一个指定一代与一代差距的任意的参数,种群的片断被重新生成。如果ggap被忽略或者取值nan,则ggap=1.0(100%),ggap也可能比1大,也就是说可以产生比父代多的后代。如果chrom由多余一个后代组成,ggap就指定了相对于后代的大小的每一个后代中的即将被选择的个体的数目。subpop是一个参数,它决定了chrom中的后代的数目。如果subpop被忽略或者取值为nan,则subpop=1。所有chrom 中的后代必须由相同的大小。(6)sus功能:随机全局采样。格式:newchrix=sus(fitnv,nsel)描述:sus选择nsel中的个体为了根据它们的适应值重新产生,fitnv在当前种群中。newchrix=rws(fitnv,nsel)从种群中使用随机

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号