1、基于遗传算法的PID参数优化摘 要PID控制器的特点是可靠性能高、算法简单和鲁棒性能好,但是实际工业的生产过程大多是非线性和时变不确定性的,难以建立准确的数学模型,所以常规的PID控制器是不可能达到理想的控制效果。近几年来,模拟生物的进化过程的遗传算法被作为了求解优化问题一种有效手段,渐渐的被引入到控制系统设计中了。GA是采用纯数值计算的方法以及随机进的化策略,它能够有效的处理一些相当困难的问题,使处理过程更具适应性,灵活性,全局性和鲁棒性。它不仅能够提高一些控制系统的设计的品质,而且能够降低许多设计难度。本文对一个二阶系统进行Simulink仿真,根据经验法设置一个PID参数,使得系统阶跃响
2、应能够获得很好的状态。然后,用遗传算法对该系统的PID控制器参数进行优化,两者进行对比,可以看出遗传算法改善了控制系统的动态性能,同时也表明与传统的寻优方法相比遗传算法是一种简单高效的寻优算法。关键词:PID控制器,遗传算法,参数优化PID parameter optimization design based on genetic algorithmAbstract PID controller is characterized by high reliability, the simple algorithm and robust performance, but the actual i
3、ndustrial production process is mostly non-linear and time-varying uncertainty, it is difficult to establish accurate mathematical model, so the conventional PID is impossible to achieve the ideal control effect. In recent years, Genetic algorithm is simulation of biological evolution process that a
4、s an effective means of solving optimization problems, being introduced into the control system design. GA is a pure numerical calculation method and randomized into the strategy, its ability to deal effectively with some very difficult questions, to make the process more adaptability, flexibility,
5、global, and robustness. It can not only improve the quality of some of the control system design, and to reduce the difficulty of design. Simulink simulation of a second order system, according to the method of experience to set up a PID parameters makes the system step response can provide good sta
6、te. Then, the PID controller parameters of the system use genetic algorithm to optimize, both the contrast can be seen that the genetic algorithm to improve the dynamic performance of the control system also shows that compared with the traditional optimization method and genetic algorithm is a simp
7、le and efficient optimization algorithm.Keywords: PID controller, genetic algorithm, parameter optimization 目录摘 要IIIAbstractIV1绪论11.1课题的来源11.2 PID参数优化方法综述11.3课题研究的主要内容82遗传算法102.1遗传算法的简介102.1.1遗传算法的历史和发展102.1.2遗传算法的应用领域112.1.3遗传算法的术语说明122.1.4遗传算法的基本操作122.2遗传算法的基本原理132.3遗传算法的构成要素142.4 遗传算法的基本步骤142.5基于
8、遗传算法的PID参数优化的关键技术处理153遗传算法的MATLAB实现173.1用MATLAB编写遗传算法的总体思想173.2 相关函数的MATLAB实现173.2.1目标函数173.2.2二阶系统的传递函数183.2.3定义输出184 PID参数优化设计及仿真204.1二阶系统的Simulink仿真204.2基于遗传算法的PID参数优化的MATLAB编程步骤214.3二阶系统的MATLAB运行结果21结论24参考文献25致谢28附录(程序清单)2933基于遗传算法的PID参数优化1绪论1.1课题的来源PID控制器的特点是可靠性能高、算法简单和鲁棒性能好,可知在过程控制和运动控制中被广泛使用。
9、但是实际工业的生产过程大多是非线性和时变不确定性的,难以建立准确的数学模型,所以常规的PID控制器是不可能达到理想的控制效果。当控制理论的逐渐建立、完善发展,对过程控制也慢慢的提出了一些新的思路和方法,伴随着生产工艺的不断改进完善,使得过程控制需要达到更高的水平。专家们不仅在探索一些新方法,同时也对传统的PID控制器也做了大量的研究,以便加以改进。由于PID控制器有着它固有的一些优点,从而使得PID控制器继续在今后被大量使用,但是如何继续提高PID算法的能力或利用新发展起来的现代控制理论设计PID算法,已经成为一个诱人的课题。科研人员在该领域做的工作主要有以下两个方面。PID参数自整定 由于受
10、控对象存在着许多不可知因素,如随机扰动、敏感误差、系统时变等,这些不可知因素常常会导致受控对象参数的改变。在一个PID控制反馈回路中,受控对象参数的改变便会造成原来的PID参数控制性能的改变(降低),为了解决这个问题人们提出了PID参数自整定,即随着受控对象的变化PID调节器能进行自我调整和重新设定PID参数,科研人员结合古典控制理论和现代控制理论提出了许多PID参数在线自整定的方法。而其中较为典型的有基于经验的参数自整定、模糊型PID调节器、改进型Ziegler-Nichols临界比例1、基于过程模型辨识的参数自整定等。PID的参数优化 PID的参数的设定并不是一项简单的工作,PID的参数设
11、定的好能使系统具有更好的性能,但是如何使得PID的参数设定的更加完美,这就需要PID的参数优化,它是指根据给定的生产过程模型和一定的控制目标来进行理论计算,从而得到最优的参数,在PID控制应用之前对PID的参数优化,人们就已经作了大量研究工作,也提出了许多种方法,其中如单纯形法,免疫算法,粒子群优化算法,神经网络算法,差分进化算法,遗传算法等2。 本文中是利用遗传算法对一个二阶系统的PID参数进行优化,得到最佳的参数,使得系统性能达到最好。1.2 PID参数优化方法综述作为优化方法之一的遗传算法,有其独特之处,为了加深对其了解,我也了解了其他一些优化方法,下面我变对其中一些做个简要的综述。方法
12、一:Ziegler-Nichols设定方法在早期Ziegler与Nichols(1942)便提出一个调节PID的参数的经验公式1,而这一调节器可以依据一个一阶近似模型,其带有时滞环节,的阶跃响应或或者相应的频率响应的数据来设定。这里设对象模型为: (1-1)式1-1中一阶响应相关的特征参数是K、T、和,这些可以从图1-1的示意图中提取出来,或者从已知的频率响应的数据,即从Nyquist图形上直接求出其剪切频率c和在该点处的幅值A (或增益Kc=1/A),由表1-1中的相应的经验公式求出控制器参数。图1-1 确定参数图表1-1 Ziegler-Nichols参数整定算法控制器类 型根据模型设定根
13、据频率响应设定PPIPID方法二:粒子群优化算法粒子群优化(Particle Swarm Optimization PSO) 算法是最近几年发展起来的一种新型的进化算法( Evolutionary Algorithm EA) 。PSO也是一种进化算法,这与遗传算法极其相似,从随机解中出发,通过一定次数的迭代来寻找一个最优解。同样也通过其适应值来评价相关解的品质大小。因其没有GA的“交叉”和“变异”操作,所以它比遗传算法的规则要简单的多。它则是通过跟随当前得到的最优值从而来找到全局最优值。PSO算法3与其它演化算法也很相似,也是基于群体的,根据群体中对环境的适应度大小将好的个体移到好的区域,但是
14、它不又像其它演化算法那样对个体运用演化算子,而是把每一个个体看成D维搜索空间里的一个无体积的微粒,并以一定的速度在搜索空间内飞行,而其速度则是根据它本身飞行经验和以及同伴们地飞行经验来进行动态的调整。第i个微粒可以表示成Xi=(xi1,xi2,xiD),而它经过的最佳位置(即适应值最好)可表示成Pi=(pi1,pi2,piD),记作Pbest。把群体中每一个微粒所经过的最佳位置的集合记作Gbest。第i个微粒的速度用Vi=(vi1,vi2,viD)来表示。对于每一代,它的第d维(1dD)可以根据下列方程进行相应变化: (1-2)式1-2中表示第i个微粒在第k次迭代时的速度;w是权函数;c1、c
15、2是权因子;rand是随机数,其值在01之间;表示第i个粒子在第k次迭代时的位置。那么粒子i通过飞行会产生新的位置,如图1-2所示,新的位置计算公式是: (1-3)YXVkSk+1SkVpbestVgbestO图1-2 PSO算法方向示意图另外,微粒所拥有的速度Vi不能超过最大速度Vmax。假如当前微粒的速度Vi超过了该维的最大速度Vmax,则该速度被设置为为该维的最大速度Vmax。PSO算法在某种程度上类似于人的思维方式,也就是说,在认知达到一致的过程中,个体总是记住自己的信念,然后才会考虑其同事们的信念。如果发现同事的信念比较好,那么它将会进行适应性的调整。方法三:单纯形法在1947年美国
16、著名的数学家G.B.丹齐克首先提出了单纯形法4。其理论根据是:一个线性规划问题的可行域是一个n维向量空间Rn中的一个多面凸集,若其最优解如果存在,则必在这个凸集的某一个顶点处达到3。其顶点所对应的可行解被称为基本可行解。我们知道单纯形法基本思想是:首先求出一个基本的可行解,接着对它进行相关鉴别,看是不是最优解;如不是,则按照相关的法则转换成另一个改进了的基本可行解,然后再鉴别;如还不是,则继续转换,如此重复进行。因为基本可行解的个数是有限的,所以经过有限次的转换一定能得出问题的最优解,假设问题无最优解也可以用这种方法来判别。依据相关的单纯形法原理,在一些线性规划的问题中,决策变量(控制变量)x
17、1,x2,xn的值被称作为一个解,满足了所有约束条件的解则被称作可行解。能使目标函数获得最大值(或者最小值)的可行解被称作最优解。所以最优解是能够在一整个由约束条件而确定的可行区域中使目标函数获得最大值(或者最小值)。为此可知一个求解线性规划的问题的主要目的是为了获得最优解。最优解最可能出现在以下情况中的一个:1) 最优解存在1个;2) 最优解存在无穷多个;3) 最优解不存在,这只有在以下两种情况才发生,一是不存在可行解,二是各个约束条件并不能阻止目标函数值无限的增大(或向负方向无限的增大)。使用单纯形法解题的一般步骤归纳如下:1) 把线性规划问题的一组约束方程组表达成为一组典范型的方程组,再
18、解出一组基本可行解当作初始的基本可行解。2) 假如不存在基本可行解,意味着约束条件存在矛盾,那么问题无解。3) 若存在基本可行解的话,用初始的基本可行解当作起点,根据可行的性条件和最优性的条件,引入一非基变量来取代某一个基变量,从而找出目标函数值的更加优的另一个基本的可行解。 4) 按照步骤3进行相应的迭代,直到相关的检验数能满足最优性的条件(这时目标函数值不能再改善),也便得到了问题最优解。 5) 假如在迭代的过程中,出现了问题的目标函数值是无界的,那么就终止迭代。 使用单纯形法来求解一些线性规划问题时,约束条件的个数决定了所需要的迭代的次数。当前一般的线性规划的问题都是运用标准的单纯形法软
19、件在计算机上进行求解,对于一个具有108个决策变量以及106个约束条件的线性规划的问题现在可以在计算机上求解了。方法四:差分进化算法差分进化(Differential Evolution - DE)算法是一种采用浮点矢量编码的在连续空间中进行随机搜索的优化算法4。在差分进化算法中,首先由父代个体间的差分矢量构成变异算子;接着按一定的概率,父代个体与变异个体之间进行交叉操作,生成一个试验个体;然后在父代个体和试验个体之间根据适应度的大小进行选择操作,适应度小的保存到下一代群体中去。DE算法的实现步骤如下:1) 初始化 DE算法采用M个D维的浮点矢量作为初始种群,个体矢量表示为 (i=1,2,M)
20、,其中i表示种群中个体的序数,G为当前种群进化代数,在整个寻优过程中种群规模M保持不变,初始种群通常在给定约束边界内部进行随机初始化。2) 变异操作 变异操作用于产生新个体,设xr1,Gxr2,Gxr3,G为当前群体中随机选择的3个互不相同的个体矢量,且ir1r2r3;xbest,G为当前种群中最优个体,则对于当前群体中的每一个个体xi,G(i=1,2,M),基本的DE算法按照如下方法产生新个体为: (1-4)收缩因子=F为(0,1)之间的常数。为了降低用户的参与程度,将,F均取(0,1)之间的随机数。当新个体某一维参数超出边界时,直接用边界值进行替代。3) 交叉操作 为了增加群体的多样性,将
21、新个体vi,G+1和父代个体xi,G进行交叉生成试验个体ui,G=(ui1,G,ui2,G,uiD,G)。设CR为交叉概率,为(0,1)之间的常数;rand为(0,1)之间的随机数;IG为1,M之间的随机整数,IG可以确保ui,G至少有一位是从vi,G+1中获得的,则可得: (1-5)4) 选择操作 比较ui,G和xi,G的适应值,选择适应度小的做为下一代个体xi,G+1,即 (1-6)基于DE算法多目标PID优化设计1) 编码PID控制器中,待优化的参数为Kp,Ti和Td,DE算法采用浮点数编码,可以直接将(Kp,Ti,Td)作为一个个体矢量。DE算法的搜索空间以ZN法获得的参数结果为中心,
22、向两边进行延拓,这样既可以充分利用ZN法的合理内核,又缩小了实际参数的搜索空间。设Kp,Ti,Td为ZN法整定值;,为延拓系数,取=0.3,=5,则可得: (1-7)2) 适应度函数设计PID优化设计的目的是使系统某些性能指标最优,然而,单纯的误差性能指标很难同时满足系统对快速性、稳定性和鲁棒性的要求,因此在适应度函数中引入超调量、上升时间和累计绝对误差指标项。设=(|yp-yref|/yref)100%为系统的超调量,yp和yref分别为输出峰值和输入参考值;tr*为上升时间,将其定义为输出从0第1次达到0.95yref的时间;ek=yk-yref为采样时刻k的输出误差;wj(j=1,2,3
23、)为权重系数。则多目标适应度函数为: (1-8)通过对权重系数的调整,可以改变系统对快速性和稳定性的要求。如系统要求较小的超调,可以适当增大w1;若系统要求快速的动态响应,则可以适当增大w2。3) 算法流程Step1:初始化,设置群体规模M,交叉概率CR,最大迭代次数Gmax,在搜索空间内随机初始化群体矢量。Step2:根据式(1-4)对群体中的每个个体矢量进行变异操作。Step3:根据式(1-5)对群体中的每个个体矢量进行交叉操作。Step4:根据式(1-8)计算个体的适应度,根据式(1-6)对每个个体进行选择操作。Step5:判断最大迭代次数是否达到,若达到,则停止;否则转到Step2。方
24、法五:神经网络法5很多被控对象的模型在工业控制中很难用准确的数学模型来描述,即便在某一状态下,可以用数学模型来描述,一旦运行过起来,它的特性就有可能发生变化,那么之前所确定的模型就不能适用。然而神经网络则在一定程度上改善、解决了这个问题。运用该原理改善PID参数时,神经网络一般要与被控对象并列在一起,形成神经网络辨识器,它的通常结构如图1-3所示。PID对象NNI优化算法学习算法r(t)y(t)u(t)+-+-否图1-3 神经网络智能PID控制系统方框图神经网络辨识器经过一定的学习后,它的输出能够很好地追踪被控对象的输出。因为其结构是确定的,所以在学习后,它的每个连接权及节点的闹值都是一定的数
25、值。那么,这个神经网络辨识器的结构近似可以看作被控对象结构。近似地把神经网络辨识器输出与输人的传递函数模型当作被控对象的模型,然后可以用梯度下降法优化出PID参数。基于以上思想,对PID参数进行优化的方法主要有两种:一是基于神经网络的多步预测PID参数优化的方法,二是基于神经网络的单步预测PID参数优化的方法。它们在控制结构上基本相同,仅仅在选取的优化目标函数有所不同。假设基于单步预测的优化方法的目标函数是: (1-9)式中,是期望输出值,是神经网络辨识器的输出。使用梯度法,可获得PID参数修正值: (1-10)式中,K是PID控制器参数(即比例P,积分I,微分D参数)的修正值,r(t+1)是
26、期望值,则是由神经网络辨识器的结构中获得的。我们可知,若对象响应比较慢,那么将不断增大,那么会加快响应速度,这不仅会使被控对象快速的达到给定值,而且还会使增大超调量在调节过程中,从而动态品质将变差6。假设基于多步预测的优化方法的目标函数是: (1-11)多步预测的步数为P。它的主要思想是利用神经网络辨识器进行多步预测,从其结果中来确定控制器参数的调节量。其公式是 (1-12)在使用多步预测时,采用神经网络并联辨识算法可以得到后面j= 1,2,.,P步的神经网络辨识器输出的预测值,也就是说把第j-1步神经网络的输出值y(j-1)反馈输入到神经网络辨识器。我们知道,神经网络并联辨识算法只在满足了一
27、定的条件下才能收敛的。所以,在运用多步预测的时候,神经网络辨识器的多步预测值是不一定能够可靠的反映出被控对象后面第j= 1,2,.,P步的输出变化的7。1.3课题研究的主要内容本设计的主要任务是研究利用遗传算法对一个二阶系统的PID参数进行优化,了解遗传算法的优点,并且使用Matlab进行遗传算法编程和Simulink对一个二阶系统的PID 控制器进行仿真。 按照设计计划安排,首先,对遗传算法进行大概的了解,包括遗传学的概念、遗传算法的历史及发展、遗传算法的基本原理、遗传算法的基本步骤和遗传算法的应用关键;其次,以一个二阶系统作为模型,利用遗传算法对其PID参数进行优化,为得到所需数据则利用M
28、atlab和Simulink工具对这个二阶系统进行编程和仿真;最后撰写论文。2遗传算法2.1遗传算法的简介1962年,美国的著名学者J.H.Holland8提出的一种优化方法,即遗传算法(Genetic Algorithm - GA)。它的理论基础是自然选择和遗传理论,也就是将适者生存原理与群体内部基因遗传机制相结合的一种全局搜索算法。经过了这么多年的发展,GA算法的逐渐成熟。它与以往常规的优化算法比较,具有如下优点9:遗传算法并不是不对参数本身进行操作,而是对参数的编码。遗传算法不是局限于一点开始操作的,而是从许多点并行操作的,从而有效的防止了在搜索过程中收敛于某个局部最优解。遗传算法不需要
29、其他信息,只利用目标函数来计算适应度,这样对问题的依赖性减小。遗传算法的寻优规则是非确定的,它是由概率决定的。遗传算法在所有解中进行高效的启发式搜索。遗传算法对于待寻优的函数基本没有任何限制,因而它的应用范围很广。遗传算法可以进行并行计算。遗传算法计算简单,功能强,更适合大规模复杂问题的优化。2.1.1遗传算法的历史和发展遗传算法是最近几十年来快速发展起来的一种新型的随机搜索手段和优化算法,它是Darwin的进化论和Mendel的遗传学说两者结合的产物。1962年,John Holland在“Outline for a Logic Theory Adaptive Systems”一文中,提出了
30、所谓的监控程序的概念10。即利用群体进化模拟适应性系统的思想。在这篇文章中尽管它没有给出实现这些思想的具体技术,但却引进了群体,适应值,选择,交叉等基本概念。1966年,Fogel等人也提出了类似的思想,但是其重点却是放在了变异算子上11。1967年,Holland的学生J.D .Bagley在他的博士论文中第一次提出了“遗传算法”这一新词。从一九六几年到一九七几年间,基于自然进化的一些思想遭到了大多数人的质疑,得不到认可。但是Holland及数位博士仍然坚持这一方向的研究。在1975年,Holland写了自然与人工系统中的适应性行为(Adaptation in Natural and Art
31、ificial Systems)这一书,它基本的阐述了遗传算法的理论和方法,提出了一些极为重要的模式理论,其中第一次确认了选择,交叉,变异等一些遗传算子 12。从那以后,运用遗传算法原理的函数优化器得到了广泛的应用,其基本理论也渐渐的得到了完善和发展。五年后,Bethke对GA进行相关研究。同年Smith在第一次提出了一个新的概念,即变长位串。这为以后的遗传规划在某种程度上奠定了一定的基础。1989年,David Goldberg编写了第一本遗传算法的教科书Genetic Algorithms in Search Optimization and Machine Learning ,它对当时遗
32、传算法作了全面的总结,因此在当时成为了引用较多的参考书13。1991年D.Whitey在他的论文中提出了一个重要的思想,即基于领域的交叉算子(Adjacency based crossover)。D.H.Ackley等提出了一种新的算法,随机迭代遗传爬山法(Stochastic Iterated Genetic Hill-climbing,SIGH),它采用了复杂的概率选举机制。从许多实验结果上可知, SIGH比单点交叉、均匀交叉的神经遗传算法以及当前的许多优化算法在求解的速度方面有着更强的竞争力14。H.Bersini和G.Seront提出单一操作的多亲交叉算子(simplex crosso
33、ver),该算子是根据两个母体和另外一个个体产生的新个体,事实上该的交叉结果与对三个个体使用选举交叉所产生的结果是一致。甚至有结果表明,三者交叉算子具有更好的性能。国内也有很多专家和学者有相关的研究。在2002年,戴晓明等解决了一个经典问题级遗传算法如何收敛到局部最优值。在2004年,赵宏立等提出了并行遗传算法(Building-block Coded Parallel GA,BCPGA)15并用基因块进行编码。2005年,江雷等讨论研究使用弹性等策略来使得群体维持其多样性,从而跨越了局部收敛的障碍,向着全局最优解的方向进化。随着某些应用领域的发展, GA的研究也产生了一些的新动向:一是基于G
34、A的机器学习,该学习机制为解决在人工智能中获取知识和优化知识的难题带来了一丝希望。二是遗传算法正逐渐与神经网络、混沌理论等一些智能计算方法相互渗透和结合,这将具有历史性的意义。三是活跃的遗传算法并行处理的研究,它不仅促进了遗传算法自身的发展,而且对于智能计算机体系结构的研究有着重要的意义8。四是遗传算法和人工生命正不断渗透。人工生命就是用计算机来模拟自然界中丰富的生命现象,而其中生物的进化、免疫等现象是其重要的研究对象,而遗传算法在这几个方面起到了一定的作用。五是遗传算法和一些进化计算理论渐渐结合。2.1.2遗传算法的应用领域从产生至今遗传算法一直是一种有效的全局搜索方法,其应用领域不断扩大,
35、例如在工程设计领域,制造业,人工智能,自动控制,生物工程,社会科学,商业等 16。较为成功的一些案例有:1) 遗传学习所谓遗传学习就是运用遗传算法来获取知识,从而构成一个机器学习系统其核心为遗传算法,其群体是由一组产生规则而组成的。比较典型的有Holland设计分类器系统,它主要用于序列决策学习,此外还有如机器人规划,概念学习,模式识别。2) 自动控制17遗传算法也可以用来求解一些复杂的参数辨识的问题。Karr采用遗传算法设计出了一种自适应模糊逻辑控制器;Maclay等人运用遗传算法来求解电车模型参数的辨识问题;Freeman等人提出了模糊逻辑集合的概念。另外,GA在故障诊断以及机器人行走路径
36、中得到了相当成功的应用。3) 计算机科学与人工智能18GA 在计算机科学与人工智能领域中的应用包括有:数据库优化查询,数据挖掘和知识获取,人工神经网络结构与参数优化,模式识别,专家系统等。另外,许多专家学者将GA应用于各自所从事的工程领域,比如VLSI设计,生物工程,土木工程,设备布局,运输规划等,对解决具体实践问题起到了很大的促进作用。2.1.3遗传算法的术语说明我们知道遗传算法与遗传学机理和进化论有着千丝万缕的关系,所以在遗传算法中运用了许多生物遗传的知识,以下我们对这一些术语做简单的介绍:染色体 (Chromosome) :染色体也称作基因型个体(individuals),群体(popu
37、lation)由许多个体组成,其大小由种群内个体的多少来表示,称作群体大小。基因 (Gene) :作为是串中的元素,基因,主要用来表示个体自身的特征。例如有一个串S=01001,则其中的0,1,0,0,1这5个元素可以被称为基因。它们的大小称作等位基因(Alleles) 19。基因地点 (Locus) :在算法中用基因地点来表示基因在串中所处的位置,也叫做基因位置(Gene Position),也可简称为基因位。它是从串的左边开始计算的,如串 S=1101,其中0的基因位为320。特征值 ( Feature) :用串来表示一个实数时,基因特征值要与该二进制数的权相一致;如串 S=1101 ,基
38、因位是2的1,该基因的特征值是4;基因位是4的1,该基因的特征值是120。适应度 (Fitness) :它表示每一个个体对环境的适应程度的大小。而引入则是为了体现染色体的适应能力。适应度函数是一个函数,也就是个体在群体中被使用的概率 20。2.1.4遗传算法的基本操作1) 复制(Reproduction Operator)复制是从旧的群体中选择一些优秀的个体来产生新的群体的一个过程。那些具有高适配值的位串更有可能产生一个或多个子孙。这与某种自然现象极为相似,它是运用了达尔文的适者生存理论。该操作是通过随机的方法来实现,例如,先产生一组01之间均匀分布的随机数,若某一个串复制的概率是40%,那么
39、随机产生的数在0.401.0之间时,该串就会被复制,否则就被淘汰。也可以运用计算的方法来实现,较为典型的一些方法有期望值法、适应度比例法、排位次法等21。2) 交叉(Crossover Operator)复制操作虽然能从旧的群体中挑选出一些优秀的,但是却不能产生新的“染色体”。而模拟繁殖现象的交叉操作,可以通过交换组合一对染色体,产生一个新的优良的个体。其过程为:任何一对染色体,随机选自同一个匹配池,在染色对上随机的选择一点或多个点来交换位置;将母代染色体上交换位置右边部分进行交换,则可得到一对新的染色体。交叉操作可以是一点交叉也可以多点交叉,还有周期交叉、一致交叉和顺序交叉20。而其中最常使
40、用的方法是一点交叉,即是指染色体上交换位置只有一处,例如:A:111101 0010 111101 0111B:100110 0111 100011 00103) 变异(Mutation Operator)它是自然界中生物在遗传过程中的因偶然因素而引起的基因突变,它是以很小的概率随机性的改变某一个遗传基因的值。如果只运用选择操作和交叉操作,舍弃变异,则只能在初始基因组合内的空间进行搜索,进而让进化过程更早的陷入局部解而终止过程,从而影响了解的质量。所以变异操作是必不可少的22。2.2遗传算法的基本原理作为寻优算法的遗传算法它诞生于自然选择和群体遗传机理,它模拟了自然现象繁殖、突变和杂交。在利用
41、遗传算法寻求最优解时,该问题的所有可能的解全被编码成一个个“染色体”,也就是所谓的个体。群体则由这些个体组成。在开始时,都会随机产生一些个体(即初始解),再根据预定的目标函数对每一个个体进行评定,得出了一个适应度值。然后根据此适应度值,选择个体是否用来复制下一代。选择算子体现了“适者生存”原理,优秀的个体将被选择用来复制,而不好的个体则被淘汰。最后选择出来的个体经过交叉算子和变异算子产生新的一代23。生成的新的种群不仅继承了上一代的一些优良基因,而却在性能上也要优于上一代,这样逐步朝着更优解的方向进化。所以,遗传算法可以看作是一个由可能解组成的群体逐代进化的过程。2.3遗传算法的构成要素1)
42、染色体编码方法遗传算法中种群的个体是用一串二进制来表示的,它的等位基因则由二进制数0,1所组成。按照均匀分布随机的产生初始个体基因值,例如x=1011101010101100可表示为一个个体,可知其染色体的长度n=16。2) 个体适应度评价:在当前群体中个体遗能够传到下一代种群中的概率是多少这将由某个概率所决定。该概率也就是基本遗传算法与个体的适应度成正比的可能性,为了能正确的计算出它,就要要求所有的个体适应度一定要是正数或者零24。所以,必须先明确从目标函数到个体适应度之间的转换规则。3) 遗传算子:基本的遗传算法使用下述的三种算子:a) 选择运算比例选择运算;b) 交叉运算单点交叉运算;c
43、) 变异运算均匀变异运算或者基本位变异运算。4) 基本GA的运行参数:有以下4个参数,提前做好设定:a) M : 表示群体大小,一般取值20到100之间;b) G :表示GA进化代数,一般取值100到300之间;c) Pc :表示交叉概率,一般取值从0.49到0.99之间;d) Pm :表示变异概率,一般取值从0.0001到0.1之间。2.4 遗传算法的基本步骤首先,要求的适应值,接着求每个串的复制概率。该概率与每一代字串的个数的积作为该串在次代中被复制的个数。复制概率比较大的在次代中将有更多的子孙,相反的就会被淘汰掉;其次,进行交叉,这采用单点交叉,其概率为Pc。通过复制所组成的成员里再以概
44、率为Pc选取字串来组成新的匹配池,而后再对匹配池中的成员进行随机性的匹配,交叉位置同样也是随机性的确定的;最后进行变异,其概率为Pm。如果每代有18个字串,每个字串有10位,则共有1810=180个串位,那么期望的变异串位数则是1800.01=2位,也就是说每代中有两个串位要产生变异25。初始种群通过复制,交叉和变异产生新的种群,该种群经解码后,运用适应度函数,观察是不是满足结束条件,如果不满足,则重复以上操作,直到满足结束条件为止。具体问题具体分析,结束条件因问题的不同而不同,只要各个目标参数在规定的范围之内,则停止计算。以上操作过程可以用图2-1来表示。编码和生成初始群体群体中个体适配值计
45、算迭代次数是否满足是否复制交叉变异遗传操作产生新的种群图2-1遗传算法的基本流程对最优解解码寻优结束开始2.5基于遗传算法的PID参数优化的关键技术处理遗传算法在应用中最关键的问题有如下3个:1) 串的编码方式:一般把问题的各种参数用二进制编码构成子串,然后把子串拼接成染色体串(串的长度及编码形式对算法收敛影响很大)。对于一些规模较大的多变量的优化问题,若其各个变量都用二进制表示,且同时为了保证问题的解要具有一定的精度,那么最后得到一个很长的数字串,这就会使得计算量增大,计算的时间变长,同时也会占用较大的计算机内存空间18;另外,使用二进制来表示相关问题的解时,就要在优化的过程中对参数进行相应
46、的编码以及译码,这样方便于进行二进制与十进制之间的数据转换,这就在数据转换之间存在转换误差(引入了量化误差),若目标函数值在最优点附近变化比较快的则就很有可能的丢失最优点10。2) 适度函数的确定:所谓适应度,就是某个体对于某一环境的一种适应能力,同时也是该体繁殖能力。遗传算法的适度函数也被称为评价函数,是一个判断种群内各个个体优劣程度地指标。遗传算法在进化的过程中搜索时,一般不要外部的信息,只需要评估函数对个体或解进行评估,其结果留下来用来后续操作的根据。在遗传算法中适度函数要计算选择概率,因此适度函数的数值一般为正。所以说把目标函数做成求最大值的形式以及适度函数的函数值一定为正是有必要的。在具体应用中,适度函数的设计要结合求解问题本身的要求而定。适应度函数设计直接影响到遗传算法的性能。3) 遗传算法参数的设定:一般的遗传算法有3个参数,即变异概率、群体大小和交叉概率。如果群体大小过于小则很难以求出最优解,过大又会增加收敛时间26。交叉概率过小时则难以向前进行搜索,过大又会破坏高适应值的结构。交叉概率太小难以产生新的基因结构,太大会使遗传算法成了单纯的随机搜索。3遗传算法的MATLAB实现MATLAB是一种开放式软件,经过一定的程序可以将开发的优秀的应用程序集加入