基于遗传算法的PID参数优化设计_第1页
基于遗传算法的PID参数优化设计_第2页
基于遗传算法的PID参数优化设计_第3页
基于遗传算法的PID参数优化设计_第4页
基于遗传算法的PID参数优化设计_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1、基于遗传算法的PID参数优化设计摘 要PID调节器是最早发展起来的控制策略之一,遗传算法是一种借鉴生物界自然选择和自然遗传学机理上的迭代自适应概率性搜索算法。本文提出了一种基于遗传算法的PID控制器参数优化设计。遗传算法模仿生物进化的步骤,在优化过程中引入了选择,交叉,变异等算子,选择是从父代种群中将适应度较高的个体选择出来,以优化种群;交叉是从种群中随机地抽取一对个体,并随机地选择多位进行交叉,生成新样本,达到增大搜索空间的目的;变异是为了防止选择和交叉丢失重要的遗传信息,它对个体按位进行操作,以提高GA的搜索效率和全局搜索能力。通过适应度函数来确定寻优方向,与其他一些常规整定方法相比,遗传

2、算法比较简便,整定精度较高。本文用遗传算法对柴油机调速系统的PID参数进行了优化,对该系统进行了仿真,实验结果表明该种算法的有效性,也表明遗传算法是一种简单高效的寻优算法,与传统的寻优方法相比明显地改善了控制系统的动态性能。关键词:遗传算法;PID控制器;参数优化Based on genetic algorithm optimization of PID parametersAbstractPID regulator is one of the first developed one of the control strategy, genetic algorithm is a kind of

3、 natural selection from biological genetics and natural mechanism of the iterative adaptive probabilistic search algorithm. In this paper, a genetic algorithm based on the Optimal Design of PID controller parameters. Genetic algorithms to imitate the steps of biological evolution, in the optimizatio

4、n process of the introduction of selection, crossover and mutation operators, etc., choose from the parent population will adapt to a higher degree of individual choice in order to optimize the population; cross randomly from the population to collect a pair of individuals, and a number of randomly

5、selected cross, generate new samples, to achieve the purpose of increasing search space; variation is to prevent the loss of choice and cross-important genetic information, carried out by its individual operations, in order to enhance GA's search efficiency and global search ability. Through the

6、 fitness function to determine the optimal direction, and setting a number of other conventional methods, genetic algorithm is simple, accurate tuning. In this paper, genetic algorithm of the PID speed control system of diesel engine parameters are optimized, the system simulation, experimental resu

7、lts show that the algorithm also shows that the genetic algorithm is a simple and efficient optimization algorithm, with the traditional optimization methods significantly improved the control system dynamic performance. Key words: genetic algorithm;PID controller;parameter optimization目 录摘要IAbstrac

8、tII1 综述11.1选题背景11.2 PID参数优化方法综述21.3 本论文主要工作92 遗传算法112.1 遗传算法的简介112.1.1 遗传算法的历史和发展112.1.2 遗传算法的应用领域122.1.3 遗传学的概念132.2遗传算法的基本原理142.3遗传算法的基本步骤142.4遗传算法的应用关键163 遗传算法的MATLAB实现173.1遗传算法工具箱总体介绍173.2遗传算法工具箱函数应用173.3 小结234 柴油机调速系统模型244.1 测速环节244.2 柴油机245 柴油机调速系统的PID参数优化设计及仿真255.1 基于遗传算法优化柴油机调速系统PID参数2552 柴油

9、机调速系统仿真实验27结论29致谢30参考文献31附录(程序清单)321 综述1.1选题背景PID调节器是最早发展起来的控制策略之一,因为它所涉及的设计算法和控制结构都是简单的,并且十分适用于工程应用背景,此外PID控制方案并不要求精确的受控对象的数学模型,且采用PID控制的控制效果一般是比较令人满意的,所以在工业实际应用中,PID调节器是应用最为广泛的一种控制策略,也是历史最久、生命力最强的基本控制方式。调查结果表明在当今使用的控制方式中,PID型占84.5%,优化PID型占6.8%,现代控制型占有1.5%,手动控制型6.6%,人工智能(AI)型占0. 6%。如果把PID型和优化PID型二者

10、加起来则占90%以上,这说明PID控制方式占绝大多数,如果把手动控制型再与上述两种加在一起,则占97. 5%,这说明古典控制占绝大多数。就连科学技术高度发达的日本,PID控制的使用率也高达84.%。这是由于理论分析及实际运行经验已经证明了PID调节器对于相当多的工业过程能够起到较为满足的控制效果。它结构简单、适用面广、鲁棒性强、参数易于调整、在实际中容易被理解和实现、在长期应用中已积累了丰富的经验。特别在工业过程中,由于控制对象的精确数学模型难以建立,系统的参数又经常发生变化,运用现代控制理论分析综合要耗费很大的代价进行模型辨识,但往往不能达到预期的效果,所以不论常规调节仪表还是数字智能仪表都

11、广泛采用这种调节方式。正是PID控制算法具有以上多种优点,所以这种算法仍将在现场控制中居于主导地位随着现代控制理论的建立和不断发展完善,对过程控制提出了新的方法和思路,同日寸也由于生产工艺不断地改进提高,对过程控制也提出了高要求。科研人员在不断探索新方法的同时,也对传统的PID控制的改进做了大量的研究。因为PID控制有其固有的优点,使得PID控制在今后仍会大量使用,如何进一步提高PID控制算法的能力或者依据新的现代控制理论来设计PID控制算法是一个非常吸引人的课题。科研人员在这一领域做的工作主要有以下两方面。PID参数自整定。由于受控对象存在着大量不可知因素,如随机扰动、系统时变、敏感误差等,

12、这些不可知因素的作用常会导致受控对象参数的改变。在一个PID反馈控制回路中,受控对象参数的变化就会造成原来的PID参数控制性能的降低,为了克服这个问题人们提出了PID参数自整定,也就是随着受控对象的变化PID调节器自我调整和重新设定PID参数,科研人员根据古典控制理论和现代控制理论提出了许多种PID参数的在线自整定的方法。至今仍有人在这方面继续作研究。PID参数在线自整定方法比较典型的有改进型Ziegler-Nichols临界比例度法、基于过程模型辨识的参数自整定、基于经验的专家法参数自整定、模糊型PID调节器等。PID参数优化。PID参数优化是指依据一定的控制目标和给定的生产过程的模型通过理

13、论计算得到最优的PID参数,PID参数优化在PID控制应用之初人们就开始作了大量研究工作,已经提出了许多种方法,如粒子群优化算法,免疫算法,单纯形法,差分进化算法,神经网络算法,遗传算法等。 本文就是应用遗传算法对柴油机调速体统的PID参数进行优化,使系统具有更好的性能。1.2 PID参数优化方法综述为了更好的完成本论文,我查阅了一些其他优化PID参数的方法。下面我就对这些优化方法做一个简要的综述。方法一:Ziegler-Nichols设定方法Ziegler与Nichols(1942)提出了调节PID控制器的参数的经验公式1,这一调节器可根据带有时滞环节的一阶近似模型的阶跃响应或频率响应数据来

14、设定。假设对象模型为其中一阶响应的特征参数K、T、和可以由图1-1构成的示意图提取出来,或者已知频率响应数据,即从Nyquist图形上直接得出剪切频率和该点处的幅值(或增益),由表1-1中的经验公式求取控制器的参数。 图1-1用作图法确定参数表1-1 Ziegler-Nichols参数整定算法控制器类 型根据模型设定根据频率响应设定PPIPID方法二:临界比例度法当已知系统的临界比例增益和振荡周期时,也可以用经验整定公式来确定PID控制器的参数,例如:特征参数和,一般由系统整定实验确定,或者用频率特性分析算法根据受控过程直接算得,即由增益裕量确定,由相位剪切频率确定。 以上两种传统方法都是根据

15、大量的实验计算或实际工程经验所得到的数据整理汇总所得到的公式而得来的,在实际的工程应用中有很大的弊端。方法三:单纯形法单纯形2,3是美国数学家G.B.丹齐克于1947年首先提出来的。它的理论根据是:线性规划问题的可行域是n维向量空间Rn中的多面凸集,其最优值如果存在必在该凸集的某顶点处达到。顶点所对应的可行解称为基本可行解。单纯形法的基本思想是:先找出一个基本可行解,对它进行鉴别,看是否是最优解;若不是,则按照一定法则转换到另一改进的基本可行解,再鉴别;若仍不是,则再转换,按此重复进行。因基本可行解的个数有限,故经有限次转换必能得出问题的最优解。如果问题无最优解也可用此法判别。根据单纯形法的原

16、理,在线性规划问题中,决策变量(控制变量)x1,x2,xn的值称为一个解,满足所有的约束条件的解称为可行解。使目标函数达到最大值(或最小值)的可行解称为最优解。这样,一个最优解能在整个由约束条件所确定的可行区域内使目标函数达到最大值(或最小值)。求解线性规划问题的目的就是要找出最优解。 最优解可能出现下列情况之一: 存在着一个最优解; 存在着无穷多个最优解; 不存在最优解,这只在两种情况下发生,即没有可行解或各项约束条件不阻止目标函数的值无限增大(或向负的方向无限增大)。单纯形法的一般解题步骤可归纳如下: 把线性规划问题的约束方程组表达成典范型方程组,找出基本可行解作为初始基本可行解。 若基本

17、可行解不存在,即约束条件有矛盾,则问题无解。 若基本可行解存在,从初始基本可行解作为起点,根据最优性条件和可行性条件,引入非基变量取代某一基变量,找出目标函数值更优的另一基本可行解。 按步骤3进行迭代,直到对应检验数满足最优性条件(这时目标函数值不能再改善),即得到问题的最优解。 若迭代过程中发现问题的目标函数值无界,则终止迭代。 用单纯形法求解线性规划问题所需的迭代次数主要取决于约束条件的个数。现在一般的线性规划问题都是应用单纯形法标准软件在计算机上求解,对于具有106个决策变量和104个约束条件的线性规划问题已能在计算机上解得。方法四:粒子群优化算法粒子群优化(Particle Swarm

18、 Optimization - PSO) 算法是近年来发展起来的一种新的进化算法( Evolutionary Algorithm - EA) 。PSO 算法属于进化算法的一种,和遗传算法相似,它也是从随机解出发,通过迭代寻找最优解,它也是通过适应度来评价解的品质。但是它比遗传算法规则更为简单,它没有遗传算法的“交叉”(Crossover) 和“变异”(Mutation) 操作。 它通过追随当前搜索到的最优值来寻找全局最优。PSO算法4和其它演化算法相似,也是基于群体的,根据对环境的适应度将群体中的个体移动到好的区域,然而它不象其它演化算法一样对个体使用演化算子,而是将每个个体看作是D维搜索空间

19、中的一个没有体积的微粒,在搜索空间中以一定的速度飞行,这个速度根据它本身的飞行经验和同伴的飞行经验来动态调整。第i个微粒表示为Xi=(xi1,xi2,xiD),它经历过的最好位置(最好的适应值)记为Pi=(pi1,pi2,piD),记作Pbest。在群体所有微粒经历过的最好位置记作Gbest。微粒i的速度用Vi=(vi1,vi2,viD)表示。对每一代,它的第d维(1dD)根据如下方程进行变化:Vk+1i=w·Vki+c1·rand1·(Pbesti-ski)+c2·rand2·(Gbest-ski) 其中: Vki为第i个粒子在第k迭代中的速

20、度;w为权函数;c1、c2为权因子;rand为随机数,取值01之间;ski为第i个粒子在第k次迭代中的当前位置。那么粒子i经过飞行将出现一个新的位置,如图1-2所示,新位置的计算公式为:YXVkSk+1SkVpbestVgbestOVk+1图1-2 PSO算法方向示意图sk+1i=ski+vk+1i此外,微粒的速度Vi被一个最大速度Vmax所限制。如果当前微粒的速度Vi超过该维的最大速度Vmax,则该维的速度被限制为该维最大速度Vmax。PSO算法有些类似于人的思维方式:在寻求一致的认知过程中,个体往往记住它们自己的信念,同时考虑同事们的信念。当个体察觉同事的信念较好的时候,它将进行适应性地调

21、整。方法五:差分进化算法差分进化(DE)算法是一种采用浮点矢量编码的在连续空间中进行随机搜索的优化算法5。在差分进化算法中,首先由父代个体间的差分矢量构成变异算子;接着按一定的概率,父代个体与变异个体之间进行交叉操作,生成一个试验个体;然后在父代个体和试验个体之间根据适应度的大小进行选择操作,适应度小的保存到下一代群体中去。DE算法的实现步骤如下:a.初始化。DE算法采用M个D维的浮点矢量作为初始种群,个体矢量表示为xi,G(i=1,2,M),其中i表示种群中个体的序数,G为当前种群进化代数,在整个寻优过程中种群规模M保持不变,初始种群通常在给定约束边界内部进行随机初始化。b.变异操作。变异操

22、作用于产生新个体,设xr1,Gxr2,Gxr3,G为当前群体中随机选择的3个互不相同的个体矢量,且ir1r2r3;xbest,G为当前种群中最优个体,则对于当前群体中的每一个个体xi,G(i=1,2,M),基本的DE算法按照如下方法产生新个体为: vi,G+1=xi,G+(xbest,G-xi,G)+F(xr2,G-xr3,G) (1)收缩因子=F为(0,1)之间的常数。为了降低用户的参与程度,将,F均取为(0,1)之间的随机数。当新个体某一维参数超出边界时,直接用边界值进行替代。c.交叉操作。为了增加群体的多样性,将新个体vi,G+1和父代个体xi,G进行交叉生成试验个体ui,G=(ui1,

23、G, ui2,G,uiD,G)。设CR为交叉概率,为(0,1)之间的常数;rand为(0,1)之间的随机数;IG为1,M之间的随机整数,IG可以确保ui,G至少有一位是从vi,G+1中获得的,则可得: (2)d.选择操作。比较ui,G和xi,G的适应值,选择适应度小的做为下一代个体xi,G+1,即 (3) 基于DE算法多目标PID优化设计51,编码PID控制器中,待优化的参数为KP,TI和TD,DE算法采用浮点数编码,可以直接将(KP,TI,TD)作为一个个体矢量。DE算法的搜索空间以ZN法获得的参数结果为中心,向两边进行延拓,这样既可以充分利用ZN法的合理内核,又缩小了实际参数的搜索空间。设

24、K*P,T*I,T*D为ZN法整定值;,为延拓系数,取=0.3,=5,则可得:K*PKPK*PT*ITIT*I T*DTDT*D (4)2,适应度函数设计PID优化设计的目的是使系统某些性能指标最优,然而,单纯的误差性能指标很难同时满足系统对快速性、稳定性和鲁棒性的要求,因此在适应度函数中引入超调量、上升时间和累计绝对误差指标项。设=(|yp-yref|/yref)×100%为系统的超调量,yp和yref分别为输出峰值和输入参考值;t*r为上升时间,将其定义为输出从0第1次达到0.95yref的时间;ek=yk-yref为采样时刻k的输出误差;wj(j=1,2,3)为权重系数。则多目

25、标适应度函数为: (5)通过对权重系数的调整,可以改变系统对快速性和稳定性的要求。如系统要求较小的超调,可以适当增大w1;若系统要求快速的动态响应,则可以适当增大w2。3算法流程Step1:初始化,设置群体规模M,交叉概率CR,最大迭代次数Gmax,在搜索空间内随机初始化群体矢量。Step2:根据式(1)对群体中的每个个体矢量进行变异操作。Step3:根据式(2)对群体中的每个个体矢量进行交叉操作。Step4:根据式(5)计算个体的适应度,根据式(3)对每个个体进行选择操作。Step5:判断最大迭代次数是否达到,若达到,则停止;否则转到Step2。方法六:神经网络法6在常规的PID参数优化方法

26、中,直接基于目标函数的单纯形法等优化方法是最常用的方法,这是因为在工业控制中很多被控对象的模型难以用精确的数学模型描述,即使在某一工况下,被控对象可以用数学模型描述,但在运行过程中,对象的特性一旦发生变化,这一确定的模型便不再适用。而神经网络的引人则在一定程度上解决和改善了这一问题。在基于神经网络的PID参数优化方法中,神经网络一般与被控对象并列,作为一个神经网络的辨识器,其一般结构如图1-3所示。PID对象NNI优化算法学习算法r(t)y(t)u(t)+-+-图1-3 神经网络智能PID控制系统方框图在网络经过学习后,神经网络辨识器的输出便可以很好地跟踪被控对象的输出。由于神经网络辨识器具有

27、确定的结构,学习之后,其连接权及各节点的闹值都有确定的数值。这时,该神经网络辨识器的结构就可以作为被控对象结构的一个近似。用神经网络辨识器输出与输人的传递函数模型来近似地代替被控对象的模型,进而用梯度下降法,拟牛顿法优化出PID参数。基于上述思想的神经网络PID参数优化方法主要有两种:基于神经网络的单步预测PID参数优化方法和基于神经网络的多步预测PID参数优化方法。这两种方法在控制结构上基本相似,仅在优化目标函数的选取上有所不同。基于单步预测优化方法的目标函数为其中,r(t十1)为期望输出值,为神经网络辨识器的输出。利用梯度法,可得PID参数的修正值为式中,K为PID控制器参数(比例,积分,

28、微分参数)的修正量,r(t+1)为期望值,可从神经网络辨识器的结构得到。正如文献7提到的,当对象响应较慢,即不能在短短几个周期内使输出达到给定值,将不断增大,以加快响应速度,其结果是不仅不能使被控对象很快达到给定值,而且会使调节过程的超调量增大,动态品质变差。基于多步预测优化方法的优化目标函数为其中P为多步预测的步数。其思想是利用神经网络辨识器进行多步预测的结果来确定当前控制器参数的调节量。其公式为在进行多步预测时,为了得到后面j = 1,2,.,P步的神经网络辨识器输出预测值,采用神经网络并联辨识算法,即将第j-1步神经网络的输出y(j一1)反馈给神经网络辨识器的输入端。文献8指出,神经网络

29、并联辨识只在满足一定条件下才是收敛的。因而,在进行多步预测时,不能保证神经网络辨识器的第j = 2,3,.,P步预测输出值是收敛的,即神经网络辨识器的多步预测值不一定能可靠地反映被控对象在后面j= 1,2,.,P步的输出变化。1.3 本论文主要工作本论文的主要工作是研究利用遗传算法对柴油机调速系统的PID参数进行优化,并且使用Matlab和Simulink对柴油机调速系统的PID 控制系统进行仿真。 首先,对遗传算法进行了介绍,包括遗传学的概念,遗传算法的历史和发展,遗传算法的基本原理,遗传算法的基本步骤和遗传算法的应用关键;其次,以柴油机调速系统为模型,利用遗传算法对其PID参数进行优化,并

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

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

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

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

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

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

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

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

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

39、011,则其中的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:在串中,基因任意组合所构成的串的集合。基因操作是在结构空间中进行的。串结构空间对应于遗传学中的基因型的集合。8、参数空

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

41、地抽取一对个体,并随机地选择一位交叉位进行交叉,生成新样本,达到增大搜索空间的目的;变异是模仿生物的基因突变,为了防止繁殖和交叉丢失重要的遗传信息;它对个体按位进行操作,以提高遗传算法的搜索效率和全局搜索能力10。2.3遗传算法的基本步骤步骤一:参数编码和解码在遗传算法中如何描述问题的可行解,即把一个问题的可行解从其解空间转换到遗传算法所能处理的搜索空间的转换方法称为编码。一般把问题的各种参数用编码构成子串,然后把子串并接成染色体串。二进制编码方法是遗传算法中最常用的一种编码方法。本文中采用的编码方式就是二进制编码。步骤二:适应度函数的选择适应度函数表明个体对环境适应能力的强弱,它与所选取的目

42、标函数有关。本文采用了绝对误差积分模型:J= (2.1) 定义适应度函数f为:f= (2.2) 本文中应用Simulink完成适应度函数的选择。步骤三:遗传算法 选择(selection operator)遗传算法使用选择算子来对群体中的个体进行优胜劣汰操作。在选择时,以适应度为选择原则。适应度准则体现了适者生存,不适应者被淘汰的自然法则。适应度较高的个体被遗传到下一代群体中的概率较大,适应度较低的个体被遗传到下一代群体中的概率较小。最常用的选择算子是基本遗传算法中的比例选择算子,本文采用的就是这种方法。其基本思想是:各个个体被选中的概率与其适应度大小成正比例关系。设群体大小为,个体的适应度为

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

44、间重组双点交叉法,即在群体中随机选取2个个体,并在个体编码串中只随机设置2个交叉点,然后在该点以一定的概率Pc相互交换2个配对个体的部分染色体。一般Pc的经验取值范围是0.50-0.99。 变异(mutation operator)根据生物遗传中的基因变异的原理,以变异概率pm对某些个体的某些位执行变异。在变异时,对要执行变异的位求反,就是把1变成0,把0变成1。变异概率pm与生物变异极小的情况一致,变异运算是指将个体染色体编码串中某些基因座上的基因值用该基因座的其它等位基因来替换,形成一个新的个体。本文采用的变异操作是高位变异。一般Pm的经验取值范围是0.0001-0.1变异可使遗传算法具有

45、局部随机搜索功能,又可维持群体的多样性,避免出现初期收敛问题,也就是说变异增加了全局优化的可能性。 初始种群的产生为保证在整个解空间进行搜索,采用随机产生初始种群。 遗传操作迭代终止的条件2.4遗传算法的应用关键遗传算法在应用中最关键的问题有如下3个: 串的编码方式:一般把问题的各种参数用二进制编码构成子串,然后把子串拼接成染色体串(串的长度及编码形式对算法收敛影响很大)。 适应函数的确定:适应函数也称为对象函数,这是问题求解品质的测量函数,往往也称为问题的“环境” 。一般可以把问题的模型函数作为对象函数,但有时也需要另行构造。 遗传算法自身参数设定:遗传算法自身参数有3个,即群体大小、交叉概

46、率和变异概率。群体大小太小时难以求出最优解,太大则增长收敛时间。交叉概率太小时难以向前搜索,太大则容易破坏高适应值的结构。交叉概率太小难以产生新的基因结构,太大会使遗传算法成了单纯的随机搜索。3 遗传算法的MATLAB实现MATLAB是一种开放式软件,经过一定的程序可以将开发的优秀的应用程序集加入到MATLAB工具的行列。Matlab作为一种拥有高性能数值计算能力的通用科技计算机语言在其简单易用的操作环境中集成了数值分析、矩阵计算、图视能力、可视化建模仿真和实时控制能力,适合多学科和多部门的发展。这样,许多领域前沿的研究者和科学家都可以将自己的成果集成到MATLAB中,被全人类继承和利用。因此

47、,MATLAB中含有诸多的面向不同应用领域的工具箱。例如:信号处理工具箱、图象处理工具箱、通信处理工具箱、优化工具箱、遗传算法工具箱等,而且这些工具箱还在不断的扩展中。本文将重点讲述遗传算法工具箱函数及其功能。3.1遗传算法工具箱总体介绍根据Matlab的强大的数值计算能力、大量的内建辅助函数和开放、可扩展的体系结构这些性质,将Matlab引入遗传算法,在Matlab平台上开发遗传算法工具箱,可帮助人们更好地认识和了解遗传算法,并为进一步开发遗传算法提供基础和帮助。它给出了各种MATLAB的高级语言并将这点与MATLAB的发展、数据分析、形象化工具、专用应用领域工具箱和那些被提供用来探索遗传算

48、法潜能的一种相同的环境相符合。遗传算法有许多算子(如选择、交叉、变异等),都是针对所谓的染色体进行的,染色体实质上就是一个向量,可以将其看成一个1n的矩阵,因此这些算子的运算实质上就是一些矩阵的运算。而Matlab的基本数据单元就是一个维数不加限制的矩阵,在这种环境下,用户无需考虑大量有关矩阵算法的复杂运算问题,更不必深入了解相应算法的具体细节,因而利用Matlab编程可以节省大量的时间和精力。遗传算法工具箱使用MATLAB基本功能,为实现广泛遗传算法创建遗传算法工具箱使用MATLAB基本功能,为实现广泛遗传算法创建了一套多用途的工具,它是常规性的收索,主要利用编写M文件,这是遗传算法中最主要

49、的功能。3.2遗传算法工具箱函数应用本文运用遗传算法工具箱函数在MATLAB运行环境下进行程序编写,以达到对PID参数寻优的目的。下面是对在程序中用到遗传算法工具箱函数的详细说明:1Rep功能:矩阵复制。格式:matout=rep(matin,repn)描述:rep是一个低位复制函数,通常不直接应用,rep被遗传算法工具箱的许多函数调用。rep执行的是一个矩阵的复制,matin是repn指定的数值,随后返回一个复制的矩阵,matout。repn包含了各个方向的复制,repn(1)指定了垂直方向的复制的数值,repn(2)指定了水平方向的复制的数值。2crtbp功能:创建一个初始种群。格式:ch

50、rom,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(nind,lind)可以用来指定染色体矩阵的维数。chrom,lind,basev=crt

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

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

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

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

55、。Chrom中的每一列和selch与每一个个体相对应。sel_f是一个串,它包含了低位选择函数的名称,比如rws或者sus。Fitnv是一个列向量,它包含了chrom中的个体的适应度。适应值显示每一个个体的预期的可能性。ggap是一个指定一代与一代差距的任意的参数,种群的片断被重新生成。如果ggap被忽略或者取值nan,则ggap=1.0(100%),ggap也可能比1大,也就是说可以产生比父代多的后代。如果chrom由多余一个后代组成,ggap就指定了相对于后代的大小的每一个后代中的即将被选择的个体的数目。subpop是一个参数,它决定了chrom中的后代的数目。如果subpop被忽略或者取

56、值为nan,则subpop=1。所有chrom 中的后代必须由相同的大小。6sus功能:随机全局采样。格式:newchrix=sus(fitnv,nsel)描述:sus选择nsel中的个体为了根据它们的适应值重新产生,fitnv在当前种群中。newchrix=rws(fitnv,nsel)从种群中使用随机全局采样来选择nsel个体。Fitnv是一个包含着种群中每一个个体的表示方法的列向量。用函数ranking或者scaling取给每一个个体分配适应值也可以达到上面的目的。返回值newchrix是一个用来繁殖而被选择的个体的索引。在它们被选择的规则下,被选择的个体可以通过评价chrom(newchrix,:)而被恢复。7recint功能:中间重组。格式:newchrom=recint(oldchrom)描述:recint操作是对当前种群中的个

温馨提示

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

评论

0/150

提交评论