




免费预览已结束,剩余9页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于遗传算法最优化设计0 引言近50年来,科学技术的迅速发展,对许多被控对象如宇宙飞船、导弹、卫星和现代工业设备与生产过程的性能提出了更高的要求,在许多情况下要求系统的某种性能指标为最优。这就要求人们对控制问题都必须从最优控制的角度进行研究分析和设计。所谓最优化问题,就是寻找一个最优控制方案或者最优控制规律,使所研究的对象(或系统)能最优地达到预期地目标。例如:在控制发射N级火箭时,如何规划各级火箭地质量使得火箭地总质量为最小;或在雷达高炮随动系统中,当发现敌机后,如何以最快地速度跟踪目标而将敌机击落。也就是说,最优化问题就是依据各种不同的研究对象以及人们预期达到的目的,寻找出一个最优控制规律或者设计出一个最优控制方案或者最优控制系统。最优化的问题的求解的基本方法可分为间接法和直接法,有无约束优化问题和有约束优化问题等等,此设计采用智能优化算法遗传算法进行优化设计,遗传算法具有通用性、智能性、鲁棒性、全局性和并行性的特点,与很多优化方法相比具有明显的优势,从以下几点简单分析其优点:(1)与单纯形法相比,遗传算法同样具有良好的寻优特性,且它克服了单纯形法参数初值的敏感性。在初始条件选择不当的情况下,遗传算法在不需要给出调节器初始参数的情况下,仍能寻找到合适的参数,使控制目标满足要求。同时单纯形法难以解决多值函数问题以及在多参数寻优(如串级系统)中,容易造成寻优失败或时间过长,而遗传算法的特性决定了它能很好地克服以上问题。 (2)与专家整定法相比,它具有操作方便、速度快的优点,不需要复杂的规则,只通过字串进行简单地复制、交叉、变异,便可达到寻优。避免了专家整定法中前期大量的知识库整理工作及大量的仿真实验。 (3)遗传算法是从许多点开始并行操作,在解空间进行高效启发式搜索,克服了从单点出发的弊端及搜索的盲目性,从而使寻优速度更快,避免了过早陷入局部最优解。 (4)遗传算法不仅适用于单目标寻优,而且也适用于多目标寻优。根据不同的控制系统,针对一个或多个目标,遗传算法均能在规定的范围内寻找到合适参数。 遗传算法作为一种全局优化算法,得到越来越广泛的应用。近年来,遗传算法在控制上的应用日益增多。1遗传算法的应用简述和基本原理1.1 遗传算法的应用简述遗传算法提供了一种求解复杂系统优化问题的通用框架,它不依赖于问题的具体领域,对问题的种类有很强的鲁棒性,所 以广泛应用于很多学科。下面是遗传算法的一些主要应用领域 : (1)函数优化 函数优化是遗传算法的经典应用领域,也是对遗传算法进行性能评价的常用算例。很多人构造出了各种各样的复杂形式的测试函数,有连续函数也有离散函数,有凸函数也有凹函数,有低维函数也有高维函数,有确定函数也有随机函数,有单峰函数也有多峰函数等,人们用这些几何特性各异的函数来评价遗传算法的性能。而对 于一些非线性、多模型、多 目标的函数优化问题,用其他优化方法较难求解,遗传算法却可 以方便地得到较好的结果 。 (2)组合优化 随着问题规模的扩大,组合优化问题的搜索空间急剧扩大,有时在目前的计算机上用枚举法很难或者甚至不可能得到其精确最优解。对于这类复杂 问题,人们 已意识到应把精力放在寻求其满意解上,而遗传算法则是寻求这种满意解的最佳工具之一。实践证明,遗传算法对于组合优化中的 NP完全问题非常有效。例如,遗传算法 已经在求解旅行商 问题、背包问题、装箱问题、图形划分问题等方面得到成功的应用。 (3)生产调度问题 生产调度问题在许多情况下所建立起来的数学模型难以精确求解,气即使经过一些简化之后可以进行求解,也会因简化太多而使得求解结果与实际相差甚远。因此,目前在现实生产中也主要靠一些经验进行调度。遗传算法已成为解决复杂调度问题的有效工具,在单件生产车间调度、流水线生产车间调度、生产规划、任务分配等方面遗传算法都得到了有效的应用。 (4)自动撞制 在自动控制领域中许多与优化相关的问题需要求解,遗传算法的应用 日益增加,并显示了良好的效果。例如用遗传算法进行航空控制系统的优化、基于遗传算法的模糊控制器优化设计、基于遗传算法的参数辨识、利用遗传算法进行人工神经网络的结构优化设计和权值学习,都显示出了遗传算法在这些领域中应用的可能性。 (5)机器人智能控制 机器人是一类复杂的难以精确建模的人工系统,而遗传算法的起源就来自于对人工自适应系统的研究,所以机器人智能控制理所当然地成为遗传算法的一个重要应用领域。例如遗传算法 已经在移动机器人路径规划、关节机器人运动轨迹规划、机器人逆运动学求解、细胞机器人的结构优化和行动协调等方面得到研究和应用。 (6)图像处理和模式识 图像处理和模式识别是计算机视觉中的一个重要研究领域。在图像处理过程中,如扫描、特征提取、图像分割等不可避免地会产生一些误差,这些误差会影响到图像处理和识别的效果。如何使这些误差最 小是使计算机视觉达到实用化的重要要求。遗传算法在图像处理 中的优化计算方面是完全胜任的。 目前 已在图像恢复、图像边缘特征提取、几何形状识别等方面得到了应用。 (7)人工生命 人工生命是用计算机等人工媒体模拟或构造出具有自然生物系统特有行为的人造系统。 自组织能力和 自学习能力是人工生命的两大主要特征。人工生命与遗传算法有着密切的关系,基于遗传算法的进化模型是研究人工 生命现象 的重要理论基础。虽然人工生命的研究 尚处于启蒙阶段,但遗传算法 已在其进化模型 、学 习模型、行 为模型等方 面显示了初步的应用能力。可以预见,遗传算法在人工生命及复杂 自适应系统的模拟与设计 、复杂系统突现性理论研究中,将得到更为深入的发展。 (8)遗传程序设计 Koza发展了遗传程序设计的概念,他使用了以 LISP语言所表示的编码方法,基于对一种树型结构所进行的遗传操作,自动生成计算机程序。虽然遗传程序设计的理论 尚未成熟,应用也有一些限制,但它已有一些成功的应用。 (9)机器学习 学习能力是高级 自适应系统所应具备的能力之一。基于遗传算法的机器学习,特别是分类器系统,在许多领域得到了应用。例如,遗传算法被用于模糊控制规则 的学习,利用遗传算法学习隶属度函数,从而更好地改进了模糊系统的性能。基于遗传算法的机器学习可用于调整人工神经网络的连接权,也可用于神经网络结构 的优化设计。分类器系统在多机器人路径规划系统中得到了成功的应用。1.2 遗传算法的基本原理遗传算法将问题的解表示成字符串, 并把这样的字符串当作人工染色体或称为个体, 多个个体构成一个种群, 随机产生若干个个体构成初始种群, 通过对种群的不断进化, 利用“优胜劣汰”的自然选择机制,使种群中的个体不断朝着最优解的方向移动, 最终搜索到问题的最优解。遗传算法的基本流程如图1 所示。算法的主要运算过程如下:(1)编码: 在用遗传算法求解问题时, 首先遇到的是编码问题。将问题的解以适合于遗传算法求解的形式进行编码, 称为遗传算法的表示。而交叉、变异等操作与编码的形式有关, 因此在进行编码时要考虑到交叉和变异问题。最简单的编码方式是二进制编码, 此外, 编码的方式还有整数编码、实数编码、树编码等。(2)初始种群的生成: 产生初始种群是在求解之前, 在解的备选空间中选择若干个体组成初始种群,通常产生初始种群采用的是随机法。(3)适应度评价: 根据生物进化“适者生存”的原则, 需要对每个个体适应环境的能力进行刻画, 从而引入适应度。适应度是遗传算法在群体进化过程中用到的唯一的信息, 它为字符串如何进行复制给出了定量的描述。适应度函数通过计算个体的适应值, 来比较个体的适应度。适应度函数分为无约束条件的适应度函数和有约束条件的适应度函数。(4)选择: 种群中的个体在进行交叉之前, 要进行选择。选择的目的是获得较优的个体作为父代, 进行下一步的交叉。选择的依据是个体的适应度, 适应度值高的个体被选中的可能性大, 适应度低的个体被选中的概率小。适应度高的个体可能被多次复制, 而适应度低的个体可能一次也未被选中。选择算子有时也叫复制算子。常用的选择方法是适应度比例法, 也叫轮盘赌法, 它的基本原则是按照个体的适应度大小比例进行选择。(5)交叉: 交叉也称为交配, 即将两个父代个体的编码串的部分基因进行交换, 产生新的个体。交叉算子是种群遗传算法中的重要算子, 是种群产生新个体的主要手段。对于二进制编码, 具体实施交叉的方法有单点交叉、两点交叉、多点交叉、一致交叉等。对于实数编码, 交叉的方法有离散重组、中间重组、线性重组等。(6)变异: 变异操作首先在种群中随机选择一个个体, 对于选中的个体按照一定的概率随机改变串结构中的某个值, 即对种群中的每一个个体, 以某一概率改变某一个或某一些基因座上的值为其他的基因。同生物界一样, 遗传算法中发生变异的概率很低。变异操作为新个体的产生提供了机会。(7)终止条件判断: 终止条件判断是指在什么情况下认为算法找到了最优解, 从而可以终止算法。由于通常使用遗传算法解决具体问题时, 并不知道问题的最优解是什么, 也不知道其最优解的目标函数值, 因而需要通过算法终止, 并获得最优解。2基于遗传算法的函数极值求解求下列函数的最大值f(x)=10*sin(5x)+7*cos(4x) x0,10 求解基于遗传算法的程序由以下几部分组成:初始化、计算目标函数值、具体程序如下:2.1 初始化function pop=initpop(popsize,chromlength) pop=round(rand(popsize,chromlength); % rand随机产生每个单元为0,1,行数为popsize,列数为chromlength的矩阵% roud对每个单元进行圆整,这样产生初始群体2.2 计算目标函数值(1)将二进制数转化为十进制数%产生 2n 2(n-1) . 1 的行向量,然后求和,将二进制转化为十进制function pop2=decodebinary(pop)px,py=size(pop); %求pop行和列数for i=1:py pop1(:,i)=2.(py-1).*pop(:,i); py=py-1;endpop2=sum(pop1,2); %求pop1的每行之和(2)将二进制编码转化为十进制数decodechrom.m函数的功能是将染色体(或二进制编码)转换为十进制,参数spoint表示待解码的二进制串的起始位置。(对于多个变量而言,如有两个变量,采用20为表示,每个变量10为,则第一个变量从1开始,另一个变量从11开始。本例为1),参数1ength表示所截取的长度(此设计为10)。%将二进制编码转换成十进制function pop2=decodechrom(pop,spoint,length)pop1=pop(:,spoint:spoint+length-1);pop2=decodebinary(pop1);2.3计算目标函数值calobjvalue.m函数的功能是实现目标函数的计算,其公式采用本文示例仿真,可根据不同优化问题予以修改。%实现目标函数的计算function objvalue=calobjvalue(pop)temp1=decodechrom(pop,1,10); %将pop每行转化成十进制数x=temp1*10/1023; %将二值域中的数转化为变量域的数objvalue=10*sin(5*x)+7*cos(4*x);% 计算目标函数值2.4 计算个体的适应值%Name:calfitvalue.m%计算个体的适应值function fitvalue=calfitvalue(objvalue)global Cmin;Cmin=0;px,py=size(objvalue);for i=1:px if objvalue(i)+Cmin0 temp=Cmin+objvalue(i); else temp=0.0; end fitvalue(i)=temp;endfitvalue=fitvalue;四 选择复制选择或复制操作是决定哪些个体可以进入下一代。程序中采用赌轮盘选择法选择,这种方法较易实现。%Name: selection.m%选择复制function newpop=selection(pop,fitvalue)totalfit=sum(fitvalue);% 求适应值之和fitvalue=fitvalue/totalfit;% 单个个体被选择的概率fitvalue=cumsum(fitvalue); %*累积概率,如 fitvalue=1 2 3 4,则 cumsum(fitvalue)=1 3 6 10 *% px,py=size(pop);ms=sort(rand(px,1); %从小到大排列,将rand(px,1)产生的一列随机数变成轮盘赌形式的表示方法,由小到大排列fitin=1; % fivalue是一向量,fitin代表向量中元素位,即fitvalue(fitin)代表第fitin个个体的单个个体被选择的概率newin=1; %同理while newin=px if(ms(newin)fitvalue(fitin) % ms(newin)表示的是ms列向量中第newin位数值,同理fitvalue(fitin)newpop(newin,:)=pop(fitin,:); %赋值 ,即将旧种群中 的第fitin个个体保留到下一代(newpop)newin=newin+1; else fitin=fitin+1; endend五 2.5 交叉交叉(crossover),群体中的每个个体之间都以一定的概率 pc 交叉,即两个个体从各自字符串的某一位置(一般是随机确定)开始互相交换,这类似生物进化过程中的基因分裂与重组。例如,假设2个父代个体x1,x2为:x1=0100110x2=1010001从每个个体的第3位开始交叉,交又后得到2个新的子代个体y1,y2分别为:y10100001y21010110这样2个子代个体就分别具有了2个父代个体的某些特征。利用交又我们有可能由父代个体在子代组合成具有更高适合度的个体。事实上交又是遗传算法区别于其它传统优化方法的主要特点之一。%Name: crossover.m%function newpop=crossover_multiv(pop,pc)global Numv Numv=10;px,py=size(pop);m=py/Numv;for j=1:Numv pop1=ones(px,m); pop2=pop(:,m*(j-1)+1:m*j); %取出相应变量对应的二进制编码段 for i=1:2:px-1 if(randpc) cpoint=round(rand*(m-1); % cpoint为交叉点 pop1(i,:)=pop2(i,1:cpoint) pop2(i+1,cpoint+1:m); pop1(i+1,:)=pop2(i+1,1:cpoint) pop2(i,cpoint+1:m); else pop1(i,:)=pop2(i,1:m); pop1(i+1,:)=pop2(i+1,1:m); end end newpop(:,m*(j-1)+1:m*j)=pop1; %将交叉后的一个参数的编码放入新种群中end六、变异变异(mutation),基因的突变普遍存在于生物的进化过程中。变异是指父代中的每个个体的每一位都以概率 pm翻转,即由“1”变为“0”,或由“0”变为“1”。遗传算法的变异特性可以使求解过程随机地搜索到解可能存在的整个空间,因此可以在一定程度上求得全局最优解。%Name: mutation.m%变异function newpop=mutation(pop,pm)px,py=size(pop);newpop=ones(size(pop);for i=1:px if(randpm) mpoint=round(rand*py); if mpointbestfit bestindividual=pop(i,:); bestfit=fitvalue(i); endend主程序%Name:genmain05.mclearclfpopsize=20; %群体大小chromlength=10; %字符串长度(个体长度)pc=0.6; %交叉概率pm=0.001; %变异概率pop=initpop(popsize,chromlength); %随机产生初始群体for i=1:20 %20为迭代次数objvalue=calobjvalue(pop); %计算目标函数fitvalue=calfitvalue(objvalue); %计算群体中每个个体的适应度newpop=selection(pop,fitvalue); %复制newpop=crossover_multiv(pop,pc); %交叉newpop=mutation(pop,pc); %变异bestindividual,bestfit=best(pop,fitvalue);% 求出群体中适用度最大的个体及其适应值y(i)=max(bestfit)n(i)=i;pop5=bestindividual;x(i)=decodechrom(pop5,1,chromlength)*10/1023;pop=newpop;endfplot(10*sin(5*x)+7*cos(4*x),0 10)hold onplot(x,y,r*)hold offy=16.76483基于遗传算法的PID参数最优化PID控制是工业过程控制中应用最广的策略之一,因此 PID 控制器参数的优化成为人们关注的问题,它直接影响控制效果的好坏,并和系统的安全、经济运行有着密不可分的关系。目前 PID 参数的优化方法有很多,如间接寻优法,梯度法,爬山法等,虽然这些方法都具有良好的寻优特性,但存在着一些弊端,单纯形法对初值比较敏感,容易陷入局部最优化解,造成寻优失败。专家整定法则需要太多的经验,不同的目标函数对应不同的经验,而整理知识库则是一项长时间的工程。因此我们选取了遗传算法来进行参数寻优,该方法是一种不需要任何初始信息并可以寻求全局最优解的、高效的优化组合方法。 3.1基于遗传算法的 PID 参数优化原理 3.1.1 参数的确定及表示 首先确定参数范围,该范围一般是由用户给定的,然后由精度的要求,对其进行编码。选取二进制字串来表示每一个参数,并建立与参数间的关系。再把二进制串连接起来就组成一个长的二进制字串,该字串为遗传算法可以操作的对象。3.1.2 选取初始种群 因为需要编程来实现各过程,所以采用计算机随机产生初始种群。针对二进制编码而言,先产生 01 之间均匀分布的随机数,然后规定产生的随机数 00.5 之间代表 0, 0.51 之间代表 1。此外,考虑到计算的复杂程度来规定种群的大小。 3.1.3 适配函数的确定 一般的寻优方法在约束条件下可以求得满足条件的一组参数,在设计中是从该组参数中寻找一个最好的。衡量一个控制系统的指标有三个方面,即稳定性、准确性和快速性。而上升时间反映了系统的快速性,上升时间越短,控制进行得就越快,系统品质也就越好。 如果单纯追求系统的动态特性,得到的参数很可能使控制信号过大,在实际应用中会因系统中固有的饱和特性而导致系统不稳定,为了防止控制能量过大,在目标函数中加入控制量。因此为了使控制效果更好,我们给出了控制量、误差和上升时间作为约束条件。因为适应函数同目标函数相关,所以目标函数确定后,直接将其作为适配函数进行参数寻优。最优的控制参数也就是在满足约束条件下使)(xf最大时, x 所对应的控制器参数。3.1.4遗传算法的操作 首先利用适应度比例法进行复制,即通过适配函数求得适配值,进而求每个串对应的复制概率。复制概率与每代字串的个数的乘积为该串在下一代中应复制的个数。复制概率大的在下一代中将有较多的子孙,相反则会被淘汰。 其次进行单点交叉,交叉概率为cP。从复制后的成员里以cP的概率选取字串组成匹配池,而后对匹配池的成员随机匹配,交叉的位置也是随机确定的。 最后以概率mP进行变异。假如每代有 15 个字串,每个字串 12 位,则共有1801215=个串位,期望的变异串位数为20.01180=位,即每代中有两个串位要由 1 变为 0 或由 0变为 1。 初始种群通过复制、交叉及变异得到了新一代种群,该代种群经解码后代入适配函数,观察是否满足结束条件,若不满足,则重复以上操作,直到满足为止。 结束条件由具体问题所定,只要各目标参数在规定范围内,则终止计算。以上操作过程可以用图 5-5 来表示。 图 5-5 遗传算法流程图 利用遗传算法优化dip, kkk的具体步骤如下: (1)确定每个参数的大致范围和编码长度,进行编码; (2)随机产生 n 个个体构成初始种群(3)将种群中各个体解码成对应的参数值,用此参数求代价函数值 J 及适应函数值 f ,取Jf1=; (4)应用复制、交叉和变异算子对种群)(tP进行操作,产生下一代种群)1( +tP; (5)重复步骤(3)和(4),直至参数收敛或达到预定的指标。3遗传算法的 PID 参数最优化 被控对象为二阶传递函数: sssG50400)(2+= 采样时间为 1ms,输入指令为一阶跃信号。 为获取满意的过渡过程动态特性,采用误差绝对值时间积分性能指标作为参数选择的最小目标函数。为了防止控制能量过大,在目标函数中加入控制输入的平方项。选用下式作为参数选取的最优指标: u32201d)()(twttuwtewJ?+= (5.6) 式中,)(te为系统误差,)(tu为控制器输出,ut为上升时间,321,www为权值。 为了避免超调,采用了惩罚功能,即一旦产生超调,将超调量作为最优指标的一项,此时最优指标为: u342201d)ey()()( 0)ey( iftwttwtuwtewJt?+=temp %Crossover Condition alfa=rand; TempE(i,:)=alfa*Kpid(i+1,:)+(1-alfa)*Kpid(i,:); TempE(i+1,:)=al
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 药店日常活动方案
- 构造艺术考试题及答案
- 高中水平考试题及答案
- 幼儿园教学教案设计:病菌快走开卫生习惯情景模拟课
- 妇幼健康考试题及答案
- 物流运输计划模板含成本分析与时间规划
- 企业安全培训计划实施与记录表单安全生产标准规范版
- (正式版)DB15∕T 3666-2024 《灌木发酵饲料生产技术规程》
- (正式版)DB15∕T 3400-2024 《沿黄灌区盐碱地种植耐盐碱植物技术规程》
- (正式版)DB15∕T 3360-2024 《饲草大麦裹包青贮技术规程》
- 产品质量监督管理制度
- DB43-T 2724-2023 农村公路养护工程预算编制办法及定额
- CJ/T 480-2015高密度聚乙烯外护管聚氨酯发泡预制直埋保温复合塑料管
- 肥胖症诊疗指南(2024年版)解读
- 入股瑜伽店协议书
- 旅游团队境外医疗援助补充协议
- 联通智慧矿山协议合同
- 混凝土考试试题及答案
- 《小学交通安全教育》课件
- 四川省成都市2025届高三上学期第一次诊断性考试化学检测试卷(附答案)
- 2025报关单填制规范
评论
0/150
提交评论