广西科技大学
毕业设计(论文)说明书
课题名称 基于遗传算法优化的直流伺服电机PID控制器设计
系 别 电气与信息工程学院
专 业 自动化
班 级 094班
学 号 200900301124
姓 名 王 超
指导教师 叶洪涛
2013 年 5 月 23 日
摘 要
近年来,直流伺服控制系统己经在工业生产控制等多领域得到了广泛应用。其中应用作为动力源的直流伺服电机显得尤其重要。PID (Proportional、Integral、Derivative)20世纪60本文运用遗传算法来来对直流伺服电机PID控制器参数进行优化设计。首先建立直流伺服电机的模型;其次,简要介绍PID控制器原理,并。再次,概要介绍了遗传算法并阐述其应用步骤。然后,运用遗传算法对直流伺服电机PID控制器参数进行整定优化,对比使用MATLAB里的对直流伺服电机模型的PID控制器参数整定优化并指出了使用遗传算法进行PlD参数整定优化还有待解决的问题。
PID控制器In recent years, DC servo control system has been in the field of industrial control, etc widely application. The application of DC servo motor as a power source is especially important. PID (Proportional, Integral, Derivative) is proportional, Integral and differential control law is the most widely used in industrial process control control strategy, it has simple algorithm, the advantages of good robustness, high reliability. If known the structure of the PID controller, the controller is the control of quality by the proportional, integral and differential time coefficient to determine the three parameters. Its control algorithm is simple, but compared with its parameter setting optimization much more complex. Genetic algorithm is a kind of biological natural selection and natural genetic mechanism for reference on the iterative adaptive probabilistic search algorithm. Since its birth in the 1960s has been in the world, much attention has been paid in recent years, the theory development and practical application of genetic algorithm is considered as one of the hot research topic.
This paper uses genetic algorithm to the DC servo motor PID controller parameters optimization design. First of all establish DC servo motor model; Second, briefly introduced the principle of PID controller, and introduces the four main indicators of PID control system. Again, introduces the genetic algorithm and its application procedure. Then, using genetic algorithm PID controller parameter setting of the DC servo motor optimization, contrast to use MATLAB in Signal Constraint module setting curve to analyze, finally summarizes the dissertation work, shows that using the genetic algorithm of DC servo motor setting to optimize PID controller parameters in the model has good effect, and points out that using genetic algorithm to optimize PlD parameter setting remains to be solved problem.
Key words: genetic algorithm; The DC servo motor; PID controller; Parameter optimization; simulation
目 录
摘要 Ⅰ
Abstract Ⅱ
第1章 绪言 1
1.1 课题背景 1
1.2 本课题研究意义和目的 2
1.3 国内外研究现状 3
1.4 本文的主要研究内容 4
第2章 直流伺服电机的模型建立 6
2.1 直流伺服电机的物理模型 6
2.2 直流伺服电机的数学模型 6
2.2.1 电机的基本方程组 6
2.2.2 电机的传递函数 7
第3章 PID控制器 8
3.1 PID控制器基本原理 8
3.2 PID控制系统的主要性能指标 9
第4章 遗传算法 10
4.1 遗传算法概要 10
4.1.1 遗传算法的起源及发展 10
4.1.2 遗传算法的应用领域 11
4.1.3 遗传学基本概念 13
4.2 遗传算法的应用步骤 14
4.3 遗传算法的基本流程图 16
第5章 基于遗传算法的PID控制器参数整定优化设计及仿真 17
5.1 MATLAB及Simulink仿真环境简介
5.2 基于遗传算法的PID参数整定优化 17
5.2.1 基于遗传算法的PID参数整定优化原理 17
5.2.2 基于遗传算法的PID参数整定优化流程图 19
5.2.3 基于遗传算法的PID参数整定优化步骤 19
5.2.4 基于遗传算法的PID参数整定优化结构图 20
5.3 基于遗传算法的PID参数整定优化的仿真实验 20
结论 25
致谢 26
参考文献 27
附录 (程序清单) 28
第1章 绪言
1.1 课题背景
PID控制器是最早起源发展的控制策略之一,原因在于它所涉及的设计算法和控制结构都相对比较简单,同时也十分适用于实际中的工程应用,另外PID控制方案并不要求建立精确的控制对象的数学模型,且一般采用PID控制的控制效果令人比较满意,因此在工业实际应用过程中,PID控制器是应用最为广泛的控制策略,也是历史最悠久、生命力最顽强的基本控制方式之一。相关研究表明在如今实际使用的控制方式当中,PID型占84.5%,优化PID型占6.8%,现代控制型占有1.5%,手动控制型占6.6%,人工智能(AI)型占0.6%。将PID型和优化PID型合起来计算其比例可以占90%以上,由此说明PID控制方式在实际应用中占到了绝大多数,在以上两种控制方式基础上再加上手动控制型所占比例高达97.9%,这说明古典控制在实际应用中占很大比例。实际应用中PID控制器占很大比例的原因在于理论上的分析及实际应用的经验都已经表明了PID控制器对于相当大比例的工业过程能够起到较为满意的控制效果。它具有适用、控制结构简单、易于调整参数、鲁棒性强、在实际过程中易于被掌握和实现以及在长期应用中已积累了许多的经验等优点。尤其是在工业应用过程中,由于控制对象的精确的数学模型难以建立,系统的参数常常又发生改变,运用现代控制理论来分析综合需要研究人员耗费很大的精力来进行模型辨识,并且往往还达不到预期的理想效果,因此不论常规调节还是数字智能应用都广泛采用此种控制方式。PID控制算法具有以上多种优点,使得这种控制算法在工业控制中居于的地位。
过程控制随着现代控制理论的和不断完善了不少新的和思路,同时不断地改进提高生产工艺对过程控制应用提出了要求。科研人员不断研究摸索新方法,其传统PID控制方面也了的研究。由于PID控制有其固有的优点,决定了PID控制在今后继续大量使用,关于如何进一步提高PID控制算法解决问题的能力以及依据新出现的现代控制理论来不断设计优化PID控制算法是一个非常具有吸引力的课题研究方向。研究人员在这一领域做的工作主要体现在以下两方面。
PID参数自整定。控制对象存在着的不可预知的因素,如随机扰动输入、系统时变、误差等,在这些不可预知的因素的作用下通常不断受控对象参数。在一个已经形成的PID反馈控制回路中,往往控制对象参数的变化就可能降低原来设定的PID参数控制性能,为了解决这个问题研究提出了PID参数自整定,即随着控制对象不断变化的同时PID调节器也会自我调整并重新设定PID参数,研究人员将古典控制理论结合现代控制理论获得了一些在线自整定PID控制器参数的解决方案。至今仍有研究人员继续从事这方面相关研究。典型的PID参数在线自整定方法主要为改进型Z-N临界比例度法、模糊控制PID调节法、专家法参数自整定以及利用过程模型辨识自整定参数等。
PID参数寻优。PID参数寻优是指在过程控制中依照一定的过程控制目标和既定的生产过程模型运用一系列的理论计算寻找得到最优效果的PID参数。在自PID控制开始应用之时起,研究人员一直致力于研究PID参数寻优,目前已经提出了多种参数优化方法,如粒子群优化算法,单纯形法,免疫算法,神经网络算法,遗传算法,差分进化算法等。
伺服系统(servo system)又称随动系统,是精确地跟随某个过程的反馈控制系统。伺服系统的位置、、状态等输出量能够跟随输入给定值的变化的自动控制系统。稳定性、精度和快速响应性现代工业控制过程和应用环境复杂化,实际应用过程中PID控制系统的控制品质。传统理论整定方法、耗时且,严格意义上工程整定法人工整定方法,实际操作者较多的控制领域相关知识和丰富的实践经验,也不。传统的设定方法应用过程中当系统结构和参数发生较大变化时,必须停止系统的运行来重新进行参数整定,这样无法满足实际生产对连续性的要求,更不必应用到对实时性要求高的系统中;相比之下,大型的结构复杂的系统较为先进的专家智能参数自整定方法、基于模糊推理的参数自整定方法、基于神经网络的PI参数整定技术等。研究遗传算法实现PID参数整定将应用到具体的直流伺服电机模型的参数整定中具有实际应用价值。
遗传算法是在1962年美国Michigan大学的J.H.Holland教授提出的模拟自然界遗传机制和生物进化论而生成的一种并行随机搜索最优化方法[1]。参数编码形成的编码串连群体中运用到“优胜劣汰,适者生存”的生物进化给定的函数执行遗传中的复制、交叉及变异操作对个体不断,高的个体,组成新的群体,新群体既继承了上一代的信息,又优于上一代。不断重复,使得群体中个体适应度不断提高,满足一定的条件。
基于遗传算法的PID参数整定是从多点开始并行操作,在解空间内高效启发式搜索,避免了从单点出发,克服了搜索的盲目性,可以更快地进行寻优,避免出现陷入局部最优解的问题。遗传算法对单目标寻优、多目标寻优都适用。根据不同的控制系统,在规定的范围内,遗传算法针对单个或多个目标皆可寻找到最佳参数。遗传算法作为一种全局优化算法,得到了越来越广泛的应用[2]。本课题利用经典的遗传算法,对直流伺服电机模型化形成的PID控制器参数进行优化,获得了良好的优化结果,实验验证表明遗传算法可以用于PID控制器参数优化当中。
一直以来,自动控制领域都是智能控制理论应用最具有活力的领域之一,相比之下,基于经典反馈控制和现代理论控制的传统控制越来越无法满足日趋复杂的实际系统的控制。智能控制理论的应用一方面使得控制系统品质得到很大提高,另一方面也促进了控制工具的研发与生产。而PID控制作为智能控制的重要组成部分,其PID控制器自诞生至今已经经历了70多年应用的考验,实践表明是一种相当成功的控制器模式。尤其是近年来PID应用于电气传动、机器人、机电控制等非传统应用领域,使得其应用领域得到很大的扩展。
1942年,泰勒仪器公司的工程师Ziegler和Nichols共同提出了整定PID控制器的参数的经验公式,一般称为Ziegler-Nichols法[3]。其整定方法为,首先将积分和微分增益设置零,然后从零开始逐渐增加比例增益,直到达到极限增益,此时控制器输出值以恒定值振荡。极限增益和振荡周期根据不同的类型的控制器,按Ziegler-Nichols参数整定算法表中的方式来设置比例、积分和微分增益系数。
临界比例度法是指在已知控制系统的临界比例增益和振荡周期的情况下,采用经验公式来整定PID控制参数。其中的特征参数和,一般通过控制系统实验来确定,或者根据控制过程传递函数利用频率特性分析算法直接算出,即通过增益裕量确定,通过频率确定。这两种传统整定方法是将大量的实验计算或实际工程经验取得的数据集中整理得到的公式计算所得,但繁琐耗时的整定计算过程无法满足实际生产应用。
控制基础,将先进智能控制思想融合传统PID控制得到的智能PID控制器在实际应用中可以表现出更好的控制特性。如今的PID控制器具有智能化、最优化、最适应化的发展趋势。
专家PID控制的实质在于其基于对控制对象以及控制规律的各种认识的基础上,利用专家经验设计出满意的PID控制参数,实际应用中通常会根据偏差以及变化率建立起来控制量和偏差之间的映射关系。1992年,罗安等[4]根据专家PID控制器的设计方法利用单片机构成简单电液比例位置伺服系统,取得良好的控制效果。之后国内研究人员将PID控制器广泛地应用到机器人控制、飞行器和磁悬浮控制、温度压力控制等控制领域。
模糊PID控制主要由传统PID控制和模糊化模块组合而成。模糊PID控制器误差和误差变化率,可以整定PID控制器参数和,在运行中不断地和,根据已确定的模糊控制规则来在线调整控制参数,以和时控制要求。1992年,涂象初等[5]在优化模糊PID控制规则的前提下针对广义对象,运用模糊PID控制对比于传统PID控制,仿真对比结果表明了模糊PID控制具有相当良好的结果。近几年模糊PID控制领域相关研究取得突破性进展。模糊PID控制已经成功应用到电机控制、电力电子、温控系统等工业应用中。
神经网络PID控制是基于人工神经网络的智能控制。主要是神经网络具有任意非线性能力控制系统性能来实现最优PID控制。其中神经网络一般可以采用单神经元网络、BP神经元网络、RBF神经网络、Hopfield神经网络等。2000年以来,神经网络PID控制发展方兴未艾.2001年,胡凌燕等[6]将PID控制结合神经网络后提出了一种带预测模型的神经网络PID控制器,针对于控制工业过程中的时滞控制系统以及模糊数学模型的控制系统,运用该神经网络PID控制器仿真模型参数缓变的系统,能够取得良好的控制效果。
混沌PID控制基于混沌运动的遍历性和随机性的特点,这决定了其能在给定的一定范围内按其自身规律不重复地遍历搜索所有状态。这样可以利用混沌算法实现PID控制器参数整定的规范化。1999年,王洪瑞等[7]在论文中提出了一种混沌PID控制方法,并应用来进行GJ型类辐射加热炉的温度控制,结果证明混沌PID控制器能够满足系统性能指标,控温效果良好。之后在2006年左右国内相关研究较多,主要应用于温度控制、轮机调速等工业应用。
遗传算法PID控制由基于模仿自然界遗传选择机制和生物进化论的遗传算法结合PID控制发展而成。其思想先将PID控制器参数构成基因型,将理想的性能指标构造成相应的适应度,这样利用遗传算法就可整定PID控制器的最优参数,并且对控制系统是否连续可微不作要求。1997年,苏小林等[8]提出了基于遗传算法来实现优化PID参数,论文给出了PID参数遗传算法寻优步骤,就应用于所给模型对比单纯性法寻优结果,表明了遗传算法PID控制显得更为有效。90年代以来国内遗传算法PID控制随着理论研究的不断深入得到广泛的应用,其主要体现在航空航天、化工生产、电力控制等多领域。
目前智能控制领域日趋呈现相互交叉、相互渗透的发展趋势,相应的产生了遗传算法—神经网络PID控制、专家—模糊PID控制等糅合性智能PID控制。这些创新性理论的逐步完善必将带来智能控制领域一次飞跃性革命。
ignal Constraint模块整定后的仿真曲线进行对比。
对论文所做工作进行总结。
第2章 直流伺服电机模型建立
论文选取的研究对象为过程控制设计中常用的直流伺服电动机。作为直流电机的一种,可以实现电能转换成机械能。其功能是将给定的控制信号转换成转速或者位移信号,在此基础上实现精确的转速控制或是定位控制。直流伺服电动机作为控制电机之一,常被用做数值控制机构、机械手臂或者定位伺服控制系统中的动力源。
2.1 直流伺服电机的物理模型
直流伺服电机中绕组分为励磁绕组和电枢绕组,通常由励磁绕组励磁,由电枢绕组进行控制。本论文中相关研究即采用此类直流伺服电机,其物理模型与参数如图1所示:
图1 直流伺服电机的物理模型
其中: — 电枢绕组上的端电压(V);
— 感应电动势(V);
— 电枢回路的电流(A);
— 电枢回路的电阻(Ω);
— 电枢回路的电感(H);
— 电机输出转角(rad);
—电机电磁转矩();
— 电机转动惯量();
— 粘性阻尼系数() (2.1)
(2.2)
(2.3)
(2.4)是指直流伺服电机的转矩系数;是指直流伺服电机的反电动势系数。
2.2.2 电机的传递函数
对式(1)—(4)进行Laplace变换,得到
(2.5)
(2.6)
(2.7)
(2.8)
(2.9)其中为了增加阻尼使得响应特性得到一定的改善,工业用的伺服电机结构通常选择使用低电感的材料来制作,从而可以使得电枢电感上达到很小,即公式(2.9)中在负实数轴上的极点会远离原点,因为这个极点所引起的暂态会消失得很快。因此可以令,从而化简式(2.9)得到
(2.10)
其中:,
论文中,,,
则直流伺服电机的传递函数如下:
(2.11)PID控制工业控制中应用最为广泛的策略之一,原因在于其算法、鲁棒性以及可靠性,广泛应用运动控制和过程控制当中,可以建立起精确的数学模型的确定性系统。PID控制器参数的整定优化成为研究人员关注的,它最终控制效果的好坏能够直接影响,系统安全、运行经济。一个非常困难的问题一直以来制约着它的发展,尤其体现在对具有严重不确定性的系统的控制,通常需要经验丰富的工程技术人员来调整其参数,这样既费时又耗力,同时考虑到实际应用系统千差万别,从而使得PID参数的整定优化具有很大难度。目前,随着计算机技术和现代智能控制理论的发展,产生了许多改进的PID控制,如专家PID控制、神经PID控制、模糊PID控制、灰色PID控制和基于遗传算法整定的PlD控制等[9]。
典型PID控制系统原理框图如图2所示,系统由PID控制器和被控对象组成。
图2 PID控制系统原理框图
PID控制器是一种常见的反馈回路部件,它根据值与实际输出值构成偏差:,将偏差的比例(P—Propoional)、积分(I—Integral)和微分(D—Derivative)通过有机组合构成控制量,对被控对象进行控制,因此称为PID控制器。
其控制规律为:——比例系数;
——积分时间常数;
——微分时间常数。
PlD控制器各校正环节的作用如下[10]:
比例环节——即时成比例的反映控制系统的偏差信号,偏差一旦产生,控制器立即产生控制作用,以减少误差。
积分环节——主要用于消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数,越大,积分作用越弱,反之则越强。
微分环节——能反映偏差信号的变化趋势,并能在偏差信号变得太大之前,在统中引入一个有效的早期修正信号,从而加快系统的动作速度,减少调节时间衡量确定的PID控制系统性能好坏的主要性能指标有:上升时间、调节时间超调量和误差。其中
上升时间是指控制系统实际输出响应从正常输出终值的10%上升到正常输出终值90%时所需要的时;
调节时间,是指系统实际输出响应值稳定到正常输出终值的5%(或2%)内时所需要的时间;
超调量是指系统实际输出响应的最大偏差值与正常终值的差与正常终值的比值;
稳态误差是指系统达到稳态时的输出响应值与正常终值差的绝对值与正常终值的比值。
这四个参数能够反映系统响应输入的能力和鲁棒性,通过这四项就可以判定个控制系统性能的好坏程度。
遗传算法(Genetic Algorithms,GA)是1962年由美国Michigan大学的J.H.Holland教授提出的一种模仿自然界遗传选择机制和生物进化论形成的并行性随机搜索最优解的方法。它是以自然选择结合遗传理论作为基础,将自然界生物进化过程中思想结合种群中个体内部染色体信息随机交换机制的全局搜索算法。
Holland早期主要集中动态系统生物学、控制工程、人工智能等领域中的适应性,其中适应性概念主要系统结构在环境表现出较好性能的变化过程,系统的适应过程。Holland通过简单的模拟机制可以描述复杂变化的适应性现象。,Holland试图建立起来系统适应过程中描述模型,并计算机来模拟试验研究,分析了系统环境变化适应性现象,遗传算法是一种相对比较具体的算法表现形式。
Bremermann,De Jong等人则强调参数优化的问题遗传算法,地了遗传算法的实际应用。因此,遗传算法不仅仅是对自然系统进化虚拟的模型,同时也是一种解决优化问题适应性搜索方案。
1962年,John Holland在《概述自适应系统的逻辑理论》一文中,提出了监控程序的概念,即提出了利用群体进化来模拟适应性系统的思想。虽然文章没有给出实现这些思想的具体方法,但创造性地引进了群体、适应值、选择、交叉等基本遗传学概念。1966年,Fogel等人在其文章中也提出了类似的思想,但是其重点是选用变异算子而放弃采用交叉算子。1967年,Holland的学生J.D.Bagley利用对跳棋游戏参数的研究,在其发表的学位论文中首次创造性地提出了“遗传算法”这一概念,此后,Holland指导其学生完成了多篇有关遗传算法方面研究的论文。
在20世纪60年代中期至70年代末期,利用自然进化的思想遭到了质疑和反对。Holland及其数位博士一直坚持这一领域的研究。Holland1975年出版了专著《自然系统与人工系统中的自适应》(Adaptation in Natural and Artificial Systems),系统论述遗传算法的专著,1975年作为遗传算法的诞生年。该书系统了遗传算法的基本理论和方法,提出了遗传算法的理论研究和发展的模式理论(schema?theory),该理论遗传操作结构重组获得隐并行性。同年,K.A.De?Jong完成了他的博士论文《一类遗传自适应系统的行为分析》(An?Analysis of the Behavior of a Class of Genetic Adaptive System)。该论文中所做的研究工作在遗传算法的发展进程中具有里程碑意义,原因在于把Holland的模式理论与自己的计算实验相结合。虽然De?Jong和Hollstien?主要都是侧重于研究函数优化的应用,但他在论文中将选择、交叉和变异操作过程进行了进一步完善和系统化,同时创造性地提出了代沟(generation?gap)等一系列新的遗传操作技术。可以看到,De?Jong的研究工作为遗传算法及其实际应用奠定了坚实的基础,他所得出的遗传算法方面相关结论,对如今遗传算法领域相关研究仍具有重要的指导意义。
1989年,Holland的学生David Goldberg著作出版了《搜索、优化和机器学习中的遗传算法》(Genetic Algorithms in Search,Optimization and Machine Learning)。该书全面总结了遗传算法领域研究所取得的主要成果,全面而的阐述遗传算法及其实际应用。同年,美国Stanford大学的Koza自然选择原则提出了层次化的计算机程序来问题的遗传程序设计(genetic?programming,GP)方法,地解决了问题。
随着遗传算法领域研究及其应用的不断深入发展,相关国际性学术会议要不断得到开展。1985年,在美国召开了第一届遗传算法国际会议 (International Conference on Genetic Algorithm,ICGA),成立国际遗传算法学会(International Society of Genetic Algorithm,ISGA),以后每隔一年举行一次。在欧洲,从1990年开始的每两年举办一次Parallel Problem Solving from Nature学术会议,其中遗传算法是会议讨论的主要内容之一。另外,国际学术会议Foundations of Genetic Algorithms以遗传算法的理论基础为中心,该项会议从1990年开始也是每两年召开一次。在这些国际会议产生的论文集中可以反映出遗传算法领域近些年来的最新发展动向。
1991年,L.Davis出版发行了《遗传算法手册》(Handbook of Genetic Algorithms),其中阐述了大量将遗传算法应用到社会生活工程技术中的。?1992年,Koza发表专著《遗传程序设计:基于自然选择法则的计算机程序设计》。1994年,其又出版了《遗传程序设计,第二册:可重用程序的》,书中深入探讨了遗传程序设计的研究工作,程序设计自动化新局面。1993年,麻省理工学院出版社创刊了新杂志《Evolutionary?Computation》。1997年,IEEE创刊《Transactions on Evolutionary Computation》。
这些众多的研究人员、频繁的国际学术交流活动以及权威的期刊杂志能够集中反映遗传算法具有高端的学术意义和广泛的应用价值。目前,遗传算法已经发展成为了一个综合多领域、多学科的重要研究方向。
遗传算法基于的搜索策略和优化搜索方法在时可以做到不依赖于梯度信息以及其它辅助知识,而只需要确定下来影响其搜索方向的目标函数以及相应的适应度函数,由此研究求解复杂系统问题遗传算法一种通用框架,它可以做到不依赖于求解问题的具体领域,对所求问题的具有很强的鲁棒性,使得其可以广泛应用于科学研究工作,下面将介绍遗传算法一些主要的应用领域:
(1)函数优化函数优化一直以来都是遗传算法的经典应用领域,通常也可用于遗传算法进行性能评价 [11],研究人员构造出了多种复杂形式的测试函数:连续函数和离散函数、凹函数和凸函数、高维函数和低维函数、单峰函数和多峰函数等。针对于一些非线性、多目标、多模型的函数优化课题,使用其它的优化方法可能较难求得最优解,而应用遗传算法可以方便的得到相对较好的结果。
(2)组合优化组合优化问题的搜索空间随着实际求解问题规模不断增大急剧扩展,目前的实际应用中在上枚举法求得最优解。针对这一类复杂的问题,研究人员主要研究方向寻求问题满意解,而遗传算法已经验证是寻求问题满意解的最佳工具之一。实践表明,遗传算法应用优化组合优化中的NP问题取得显著效果[12]。遗传算法已经成功应用于求解旅行商问题、装箱问题、背包问题、图形划分问题等。
(3)生产调度在许多情况下生产调度问题难以精确建立数学模型,往往经过一系列简化之后也可以求解.但会因为简化的原因从而使得求解结果与实际问题相差较大。目前在现实生产中主要是依靠于从事生产人员的实践经验来进行具体调度。复杂调度问题的解决过程中遗传算法已经发展成为工具[13]。遗传算法有效地应用于生产调度、车间流水线生产调度、生产规划、分配等多方面。
(4)自动控制在自动控制领域中求解很多优化问题。而遗传算法在这方面已经得到了一定的应用,结果也显示出理想的效果。例如使用遗传算法来优化高速铁路控制系统、将遗传算法应用到模糊模型的控制器的优化设计中[14]、将遗传算法应用于参数辨识过程中、利用遗传算法来设计神经网络的结构等都表明了遗传算法可以应用于自动控制领域中。
(5)机器人学机器人一类实际应用中难以建立起精确模型的复杂的人工智能系统,而从遗传算法的起源中可以看出其来自对人工自整定系统的研究。因此,遗传算法可以成功地应用于机器人学领域。,遗传算法已经研究应用于机器人的移动路径规划[15]、关节机器人运动轨迹的规划、机器人逆运动学中的问题求解等方面。
(6)图像处理图像处理是计算机视觉中的主要研究领域。在图像处理过程中,如扫描输入、、图像分割等无法避免地会存在一定的误差,影响图像最终的效果。衡量计算机视觉能否达到实用效果的重要要求就是如何使得处理过程中的误差达到最小化。在图像处理过程中的优化计算方面完全可以使用遗传算法进行处理。目前遗传算法已经在模式识别(包括汉字识别)[16]、图像恢复、图像特征提取等领域得到了实际应用。
(7)人工生命人工生命是基于计算机软件工程、人工智能技术等模拟或构造出的具有自然生物系统所特有行为的人工模拟生命系统。人工生命与遗传算法有着密不可分的关系。研究人工生命现象过程中将基于遗传算法的进化模型作为其重要的基础理论[17]。遗传算法已经在人工生命的模型、模型、模型等多方面实际应用能力初步的显示,并且将会深入。人工生命与遗传算法互促发展,人工生命研究遗传算法可以有效的工具,人工生命的研究也了遗传算法的不断发展。
(8)遗传美国Stanford大学的Koza教授发展了遗传程序设计的概念,其基本思想是:采用常用的树型结构来表示计算机程序,运用遗传算法的思想来自动生成计算机程序来解决实际问题。虽然遗传程序设计尚未完全的理论,实际应用也有的限制,但人工生命、机器学习等领域已经成功应用。目前可用的遗传编程实验系统有Koza教授开发的ADF系统等.
(9)机器学习高级自适应系统所具备的能力中学习能力必不可少,将遗传算法应用于机器学习在很多领域中都得到了应用[18]。例如,学习模糊控制规则过程中应用遗传算法,利用遗传算法来学习隶属度函数,模糊控制系统的性能更好地改进;利用遗传算法的机器学习可以用来优化人工神经网络的结构设计。
(10)数据挖据数据挖掘是近些年才出现的新的数据库技术,其能够从大型数据库中提取客户所需要的隐藏的、未知的、具备潜在价值的知识或规则。许多数据挖掘问题都是搜索问题的体现,将数据看作成搜索空间,将挖掘算法看作成搜索策略。因此,应用遗传算法作为挖掘算法在数据库中进行搜索,对随机产生的一组知识或规则进行不断地进化直到数据库能被该组知识或规则覆盖,这样就可挖掘出隐藏在数据库中的知识或规则[19]。
(1) 串(string):作为个体的形式,在算法中为二进制,与遗传学中的染色体相对应。
(2) 群体(population):个体集合群体,群体的基本构成元素是串。
(3) 群体大小(population size):在群体中包含的所有个体的数量被称作群体的大小。
(4) 基因(gene):串中的元素,个体特征。例如存在串s=0111,则其中的0,1,1,1这四个元素分别被称作基因。其对应的值被称为等位基因。
(5) 非线性:与遗传学中的异位显性相对应。
(6) 基因位置(gene position):一个基因位于串中所处的位置就被称基因位置,基因位。在串中基因位置自左至右计算,如串s=0111中,0基因位置为1。基因位置与遗传学中的地点相对应。
(7) 基因特征值(gene feature):串表示某个整数时,基因的特征值应该与二进制的在串s=0111中,基因位置4中的1,它对应基因特征值是1。基因位置中的1,它对应基因特征值是4。
(8) 串结构空间ss:在串中,基因通过随机组合从而形成了的串的集合。在结构空间执行基因操作。串结构空间与遗传学中基因型的集合相对应。
(9) 参数空间sp:将串空间映射到实际系统中形成,与遗传学中表现型集合相对应。
(10) 适应度(fitness):表示具体某个体对于其所处环境的适应程度。
针对实际中一个需要进行优化的问题,通常依据下述步骤构造出遗传算法:
第一步:确定好决策变量和各项约束条件,即确定好具体个体的表现型X和解决对象的解空间;
第二步:建立出优化模型,即确定出目标函数的类型及数学描述形式或量化方法;
第三步:确定表示方法可行解的染色体编码方法,即确定出个体基因型X及遗传算法的搜索空间;
第四步:确定解码方法,即确定出由个体基因型X到个体表现型X的对应关系或者转换方法;
第五步:确定个体适应度的量化评价方法,即确定出由目标函数值到个体适应度的转换规则;
第六步:设计遗传算子,即确定选择运算、交叉运算、变异运算等遗传算子的具体操作方法;
第七步:确定遗传算法的有关运行参数,即等参数。[1](1)参数的编码和解码
在遗传算法中如何来描述一个问题的可行解,即把一个需要求解的问题的可行解从其现有的解空间转换到遗传算法可以处理的搜索空间中来,这样的转换方法就被称为编码。一般把求解问题的各种参数先用编码的方法让其构成子串,然后再把子串连接构造成染色体串。遗传算法中最常用的一种编码方法是二进制编码方法。本论文中采用二进制编码的编码方式。
PID 中三个参数,和作为编码对象,采用如下公式进行:
(4.1) 是编码对象,和是U的取值范围,是二进制编码的长度。是位的二进制数。
(2)适应度函数的选择
适应度函数表明了种群中的个体适应环境能力的强弱,其相关于所选取的目标函数。本论文采用了绝对误差积分模型:
(4.)为:
(4.)(3)遗传算法的组成
① 选择(selection operator)
在遗传算法中使用选择算子来对种群中的所有个体进行优胜劣汰操作。在选择过程中,以是否满足适应度作为选择或放弃的原则。适应度选择准则体现了生物进化过程中自然法则。适应度较高的个体被执行遗传操作保留到下一代新生种群的概率相对较大,适应度较低的个体被执行遗传操作保留到下一代新生群体中的概率相对较小。研究工作中比例选择算子是最常用及的选择算子,本文中运用比例选择算子来执行选择操作。其基本思想为:选中种群中各个独立个体的概率正比于此个体满足适应度的程度。假设群体的大小为,个体的适应度为,则选中个体的概率如公式4.4 (4.4)上式表明:
个体满足适应度较高,繁殖出的下一代中数目相对比较多。
个体满足适应度较低,繁殖出的下一代中数目相对比较少,甚至发生逐渐被淘汰的现象。
这样,群体中就产生了能够适应环境的后代个体。如果从解决问题的角度来看,这样就可以选择出比较接近最优解的中间解。
② 交叉(crossover operator)
对于因为满足适应度而被选中用来繁殖产生下一代的个体,任意选择其中的两个个体上相同位置,以交叉概率位于选择的位置进行相互交换。这个过程反映了遗传过程中信息随机的交换;这项操作的目的在于产生全新的基因组合,即在种群中产生出新的个体。进行交叉操作时,可以进行单点交叉或者多点交叉。交叉算子是指对两个已经相互配对好的染色体以某种方式来相互交换其中的部分基因,形成两个新的个体。本论文运用中间重组双点交叉法来执行交叉操作,即在种群中任意选取两个个体,并在个体的编码串中任意设置好两个交叉点,然后在该点上以一定的概率对两个已经配对的个体的部分染色体进行相互交换。研究中一般的经验设定值范围是0.50~0.99。
③ 变异(mutation operator)
考虑到生物遗传中可能出现的基因变异情况,以变异概率在种群中某些个体编码串上的某些位上执行变异操作。在变异时,针对要执行变异操作的位求反,就是把0转变成1,把1转变成0。变异概率与自然界中生物变异可能性极小的情况相一致,变异运算是指将种群中个体染色体编码串上的某些基因位上的基因值用该基因位的其它等位基因来更换,从而形成一个全新的个体。本论文选择高位变异来执行变异操作。通常的经验设定值范围为0.0001~0.1。遗传算法变异操作获得局部随机搜索功能,同时确保群体的多样性得到维持,从而可能出现的初期收敛问题,即变异操作使得全局优化的可能性提高。
④ 初始种群的产生
为确保在整个解空间内搜索最优解,本论文采用随机法产生初始种群。
⑤ 遗传操作迭代终止的条件。
图7 遗传算法基本流程图
第5章 基于遗传算法的PID控制器参数优化设计及仿真
5.1 MATLAB及Simulink仿真环境简介
MATLAB是MATrix LABoratory(矩阵实验室)的简称。是MathWorks公司开发出品的数学软件。的最大优势在于其具有一系列可以满足不同需求的工具箱和函数、方便简单的编程环境和多种应用程序接口。以其强大的处理运行能力和良好的用户界面,很快得到了世界范围的多行业多领域认可和应用。
imulink是中的可视化动态系统建模、仿真和综合分析的集成环境,是进行复杂动态系统快速建模与仿真的工具。该仿真环境下的用户通过交互式的图形编辑器来组合和管理直观的模块图构成结构图。利用Simulink提供的输入信号(信号源模块)对组合好的结构图所描述的动态系统施加激励,利用Simulink提供的输出装置(输出口模块)获得动态系统的输出响应,即系统输出的数据或随时间变化的响应曲线,从而实现动态系统仿真的图形化、模块化方式,这体现了动态系统仿真工具中具有突破性意义的进步。Simulink不仅提供了多种标准的结构图及模块设计方法,提供了丰富的可扩充的预定义模块库,便于用户设计满足自己需求的专用模块,此外还提供了几种系统文件(S函数)的设计方法,使得动态系统的Simulink仿真显得更为便捷灵活.
MATLAB中Simulink提供了专用于非线性控制系统优化设计和仿真的Signal Constraint(MATLAB 7.1)NCD Outport模块(MATLAB 6.5),Signal Constraint(NCD Outport模块)Simulink模块的形式,[25] 。
5.2 基于遗传算法的PID参数整定优化
5.2.1 基于遗传算法的PID参数整定优化原理
(1)参数的确定及表示
首先需要确定所求参数范围,通常是由用户来给定该参数的范围,然后依据一定的精度要求,对参数进行编码。参数范围内的全部参数采用二进制字串来表示,并建立起字串与参数间的联系,接着将所得字串连接组成一个较长的二进制字串,之后遗传算法就可以操作该字串。
(2)初始种群的选取
初始种群的选取需要编程实现,因此先采用计算机来随机产生所需的初始种群。针对本论文所使用的二进制编码来说,应该先产生均匀分布于0~1之间的数,规定产生的数中0~0.5之间的数代表00.5~1之间的数代表1。此外确定初始种群的大小需要考虑到实际计算的复杂程度。
(3)适配函数的确定
在约束条件下一般的优化方法可以找出满足条件的一组参数,在实际设计中需要从这组参数中寻找一个最佳的。衡量一个控制系统的主要性能指标是稳定性、准确性和快速性三个方面。
如果纯粹地追求具体系统的动态特性,往往得到的控制参数很大可能导致控制信号很大。在实际应用过程中因为系统中自身的饱和特性从而导致系统出现不稳定现象,为了防止过度控制的出现,在目标函数中可以加入一定的控制量。因此为了追求更好的控制效果,这里给出了一定的控制量、误差和上升时间作为约束条件。适应函数确定目标函数,目标函数一旦确定后,可以将其作为适配函数进行参数寻优。最优的控制参数定义为在满足已给的约束条件下使f(x)达到最大时,x所对应的控制参数。
(4)遗传算法操作
首先运用适应度比例法执行复制操作。即运用适配函数求出适配值,然后求解每个编码串对应的复制概率。每代字串在下一代种群中应复制的个数为复制概率与每代字串的个数的乘积。复制概率较大的字串在下一代将有较多的后代,相反则可能会被淘汰。
其次执行单点交叉操作,交叉概率设置为。从复制形成的个体中以的概率选取一定字串组成匹配池,随机确定交叉的位置。
最后以概率执行变异操作。假如每代有20个字串,每个字串15位,则有2015=300个串位,所期望发生变异的串位数为3000.01=3(位),即每代中有三个串位要由1转变为0或由0转变为1。
初始种群通过复制、交叉及变异操作得到了新一代种群,解码新一代种群计算其适配函数,观察是否满足给定的结束条件,若满足,则重复以上操作直满足条件为止。
至于结束条件由具体问题所决定,只要各项目标参数处于规定的范围内,就可以终止计算。
图7 遗传算法的PID控制器参数整定优化流程图
5.2.3 基于遗传算法的PID参数整定优化步骤
利用遗传算法优化的具体步骤如下:
(1)确定所需整定优化的参数的大致取值范围以及编码长度,执行编码操作;
(2)计算机随机产生n个个体构成初始种群;
(3)将初始种群中所有的个体生成各自对应具体参数值,用此参数值分别求解代价函数值,由求解得适应函数值;
(4)对种群运用复制、交叉和变异算子执行对应操作,产生新一代种群(5)重复上述步骤(3)及(4),直至所需的参数收敛或满足预期的指标
5.2.4 基于遗传算法的PID参数整定优化结构图
图8 基于遗传算法的PID控制器参数整定优化结构图
5.3 基于遗传算法的PID参数整定优化的仿真实验
将直流伺服电机作为被控对象,其建模后二阶传递函数为
采样时间设置成1ms,同时输入端的输入指令设置成一个阶跃信号。编码方式采用二进制编码方式,三个决策变量,,的表示分别采用长度为10位的二进制编码串。为获得理想的系统动态特性,本论文参数选择过程中的目标函数为绝对误差积分模型。将控制输入的平方项加入到目标函数中用以防止过大的控制能量。最优指标: 式中为系统控制偏差,为控制器的输出,为响应曲线上升时间,为权值。
为了避免出现超调,采取了惩罚功能,即一旦出现超调,就将超调量看作最优指标重要项,这样最优指标变为: If ,.
式中,为权值,且 为控制对象的输出。
遗传算法中使用的样本个数为size=30,交叉概率和变异概率设定为:。参数取值范围设定为,取值范围设定为,取进化代数选为100代,考虑到搜索过程中的随机性,其仿真结果会出现小范围的波动,为追求更好的优化参数,论文进行了40次仿真实验,对结果求取平均值。仿真所得数值及平均值如表1所示。整定优化过程中某次代价函数的变化如图9所示。采用整定后的遗传算法优化PID阶跃响应如图10所示。
图9 代价函数J的变化曲线
图10 遗传算法优化PID单位阶跃响应曲线
表1 重复仿真实验所得参数及其平均值
代价函数 比例系数 积分系数 微分系数 27.7875 18.9052 0.4135 0.4135 27.8563 19.0811 0.3812 0.3812 27.5729 18.9443 0.3988 0.3988 27.8563 19.0811 0.3812 0.3812 27.3725 19.7849 0.4096 0.4096 27.6727 18.7097 0.3891 0.3891 27.7285 19.9413 0.4330 0.4330 27.4923 19.9609 0.4252 0.4252 27.7875 18.9052 0.4135 0.4135 27.3725 19.7849 0.4096 0.4096 27.7285 19.9413 0.4330 0.4330 27.4923 19.9609 0.4252 0.4252 27.9261 19.5112 0.4301 0.4301 28.0964 19.9609 0.4428 0.4428 27.7107 18.6135 0.4027 0.4027 27.3725 19.7849 0.4096 0.4096 27.7285 19.9413 0.4330 0.4330 27.4923 19.9609 0.4252 0.4252 27.9261 19.5112 0.4301 0.4301 28.0964 19.9609 0.4428 0.4428 27.8252 17.9863 0.3871 0.3871 27.7422 18.2991 0.3910 0.3910 27.9214 18.0645 0.3763 0.3763 28.3418 19.3939 0.4379 0.4379 27.3286 19.9804 0.4106 0.4106 27.9084 20.0000 0.4389 0.4389 28.1340 19.1398 0.4282 0.4282 27.4742 19.5699 0.4135 0.4135 27.5832 19.0029 0.4047 0.4047 27.8235 18.0059 0.3851 0.3851 27.3583 19.9022 0.4066 0.4066 27.7875 18.9052 0.4135 0.4135 27.8563 19.0811 0.3812 0.3812 27.5729 18.9443 0.3988 0.3988 27.3725 19.7849 0.4096 0.4096 27.6727 18.7097 0.3891 0.3891 27.7285 19.9413 0.4330 0.4330 27.4923 19.9609 0.4252 0.4252 28.5742 16.2659 0.3783 0.3783 27.9261 19.5112 0.4301 0.4301 27.7373 19.2674 0.4117 0.4117 采用非线性控制系统设计工具箱(NCD)并结合优化工具箱提供的函数可实现PID控制器参数整定[20]。利用MATLAB非线性最小平方函数Isqnonlin(),按照最小平方指标进行PID参数寻优,从而实现PID参数整定[21]。其Simulink结构框图如下
图11 系统Simulink结构框图
其中,PID controller为自行封装设置相关参数的一个非线性PID控制器模块,同时,系统中含一个限幅环节,上下限幅值为。运行主程序得到优化结果为 =1.5000, =0.5100, =0.5100 .单位阶跃输入后仿真曲线如下:
MATLAB下Simulink工具箱中Signal Constraint模块整定优化后的直流伺服电机的PID控制系统性能。运用论文前文中PID控制系统四项主要性能指标作为衡量标准。如表2所示。
表2 两种方法整定优化后所得系统的性能指标比较
主要性能指标 遗传算法 MATLAB中
Signal Constraint模块
0.0355
0.6090
调节时间
0.0535
3.5173
超调量
0.27%
8.25%
稳态误差
0.0022
0.0010
由表2可以看出,直流伺服电机PID控制系统的参数基于遗传算法整定优化相比于利用MATLAB中Signal Constraint模块在工业控制实际应用过程中,PID控制器因为其结构简单,实现且鲁棒性,因此得到了广泛的应用,取得了的控制效果。论文完成了以下几点工作:
简介直流伺服电机的模型,并给出了直流伺服电机的传递函数。
介绍了PID控制器以及遗传算法的基本原理,阐述了遗传算法的基本应用步骤。
将PID控制器结合遗传算法应用于直流伺服电机模型,通过MATLAB仿真环境得到整定PID控制所需要的三个参数(,和)。并且仿真曲线与使用MATLAB里的Signal Constraint。
基于遗传算法的PlD控制是一种高效的寻优方法。由MATLAB仿真实验看出,对比于使用MATLAB整定优化后的PID单位阶跃响应曲线具有超调量,响应时间快,稳态输出的误差接近于零的优点。因此可得,遗传算法对直流伺服电机模型的PID控制器参数整定优化实际效果明显。
但是由于论文所使用遗传算法较为基本,其在算子、算法方面仍需改进。同时为了改善单纯遗传算法的性能,目前出现很多混合遗传算法。同时解决应用于在线系统参数整定优化时的实时性和效率问题也需要进一步分析研究。
论文是在指导老师叶洪涛老师的悉心指导下完成的,衷心地感谢叶老师的培养和指导。在完成毕业设计的整个过程中,从选题、开题、设计到最终完稿,自始至终都得到了叶老师的关心和指导。叶老师严谨的治学态度令人敬佩,对学生耐心的指导更是令我感动。在此,向叶老师致以衷心的感谢和深深的敬意!同时,感谢各位答辩老师提出的宝贵意见和建议。
其次感谢本论文所参考文献的作者们。
最后,在我大学生活即将结束的时候,对一直以来关心我支持我的父母和女友、伴随我成长的电气与信息工程学院的各位老师和同学们表示衷心的感谢。
[1] 刘金琨.先进的PID控制和MATLAB仿真(第2版) [M].北京:电子工业出版社,2004.210-212.
[2] 王小平,曹立明.遗传算法—理论、应用与软件实现[M].西安:西安交通大学出版社,2002.14-15.[3] Ziegler J G,Nichols N B.Optimum Settings fo Automatic Controllers [J].Trans ASME, 1942759-768.[4]罗安,路甬祥.专家PID控制器及应用[J].信息与控制1992,21(3):151-155..
[5]涂象初,汪培庄.模糊PID控制规则的优化[J].北京工业大学学报1992,18(2):38-44.[6]胡凌燕,辛勇.带预测模型的神经网络PID控制器[J].南昌大学学报(工科版)2001,23(3):63-68.[7]王洪瑞,张克勤.GJ型光辐射加热炉的混沌PID控制[J].电气传动1999,29(4):29-30.[8]苏小林,阎晓霞.基于遗传算法的PID参数优化技术[J].电气系统及其自动化学报1997,(2):20-26.[10] 李少远,王景成.智能控制[M].北京:机械工业出版社,2005.31-32..
[11]周明,孙树栋,彭炎午.并行遗传算法的研究评述[J].南昌航空工业学院学报,
1998(2):84-88..
[12]何福忠,孙优贤.基于稳定参数空间的PID调节器遗传优化设计[J].控制与决策,200015(4):507-509.[13]马文强杜子平李东坡.遗传算法在制造系统生产调度中的应用[J].商业经济,2012(6):33-35.[14]封淑玲.遗传算法在自动控制领域中的应用[J].硅谷,2011(10):146-146,195.[15]崔瑾娟.基于遗传算法的机器人路径规划[J].洛阳师范学院学报2013,32(2):35-36,42.[16]许慧燕,王景芳,侯玉宝.基于SVM与遗传算法的非线性模式识别[J].电脑开发与应用,2009,22 (6):13-15.[17]周剑利,马壮,陈贵清.基于遗传算法的人工生命演示系统的研究与实现[J].制造业自动化,2009,(9):38-40.[18]马永聪,方涛.基于遗传算法的高分辨率遥感分类器融合[J].计算机工程,2010,36(20):170-172.[19]洪月华.无线传感器网络中分布式数据挖掘算法研究[J].计算机仿真,2012,29(12):167-170.[20]李国勇,谢克明,杨丽娟.计算机仿真技术与CAD—基于MATLAB的控制系统(第2版)[M],北京:电子工业出版社2008.274-286.[21]陈剑梅.非线性PID控制器的计算机辅助设计[J].扬州职业大学学报2001,5(4):12-15.
附 录
程序清单:
一、使用遗传算法整定优化参数的程序:
主程序: chapter1.m
%为优化PID参数的遗传算法GA(Generic Algorithm)程序
clear all;
close all;
global rin yout timef
G=100;
Size=30;
CodeL=10;
MinX(1)=zeros(1);
MaxX(1)=20*ones(1);
MinX(2)=zeros(1);
MaxX(2)=1.0*ones(1);
MinX(3)=zeros(1);
MaxX(3)=1.0*ones(1);
E=round(rand(Size,3*CodeL)); %初始代码
BsJ=0;
for kg=1:1:G
time(kg)=kg;
for s=1:1:Size
m=E(s,:);
y1=0;y2=0;y3=0;
m1=m(1:1:CodeL);
for i=1:1:CodeL
y1=y1+m1(i)*2^(i-1);
end
Kpid(s,1)=(MaxX(1)-MinX(1))*y1/1023+MinX(1);
m2=m(CodeL+1:1:2*CodeL);
for i=1:1:CodeL
y2=y2+m2(i)*2^(i-1);
end
Kpid(s,2)=(MaxX(2)-MinX(2))*y2/1023+MinX(2);
m3=m(CodeL+1:1:2*CodeL);
for i=1:1:CodeL
y3=y3+m3(i)*2^(i-1);
end
Kpid(s,3)=(MaxX(3)-MinX(3))*y3/1023+MinX(3);
%****** Step 1 : 评估 BestJ ******
Kpidi=Kpid(s,:);
[Kpidi,BsJ]=chapter1_1(Kpidi,BsJ);
BsJi(s)=BsJ;
end
[OderJi,IndexJi]=sort(BsJi);
BestJ(kg)=OderJi(1);
BJ=BestJ(kg);
Ji=BsJi+1e-10;
fi=1./Ji;
% Cm=max(Ji);
% fi=Cm-Ji; %避免零分度
[Oderfi,Indexfi]=sort(fi); %将fi从小到大排列
% Bestfi=Oderfi(Size); %令Bestfi=fi最大值
% BestS=Kpid(Indexfi(Size),:); %令BestS为E(m), m 索引fi 到max(fi)
Bestfi=Oderfi(Size); % 令Bestfi为max(fi)
BestS=E(Indexfi(Size),:); % 令BestS=E(m), m 索引fi 到max(fi)
kg
BJ
BestS;
%****** Step 2 : ******
fi_sum=sum(fi);
fi_Size=(Oderfi/fi_sum)*Size;
fi_S=floor(fi_Size); %选择较大的fi刻度
kk=1;
for i=1:1:Size
for j=1:1:fi_S(i) %选择并复制
TempE(kk,:)=E(Indexfi(i),:);
kk=kk+1; %kk用来复制再生
end
end
%************ Step 3 : ************
pc=0.60;
n=ceil(20*rand);
for i=1:2:(Size-1)
temp=rand;
if pctemp %交叉条件
for j=n:1:20
TempE(i,j)=E(i+1,j);
TempE(i+1,j)=E(i,j);
end
end
end
TempE(Size,:)=BestS;
E=TempE;
%************ Step 4: 变异操作 **************
%pm=0.001;
pm=0.001-[1:1:Size]*(0.001)/Size; %更大的fi,更小的pm
%pm=0.0; %没有突变
%pm=0.1; %较大突变
for i=1:1:Size
for j=1:1:2*CodeL
temp=rand;
if pmtemp %换向状况
if TempE(i,j)==0
TempE(i,j)=1;
else
TempE(i,j)=0;
end
end
end
文档评论(0)