机械优化设计课程设计_第1页
机械优化设计课程设计_第2页
机械优化设计课程设计_第3页
机械优化设计课程设计_第4页
机械优化设计课程设计_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

目录TOC\o"1-5"\h\z摘要3\o"CurrentDocument"关键词3一、概述3\o"CurrentDocument"二、优化方法介绍3(一)、一维搜索方法3(二)无约束优化方法5\o"CurrentDocument"1)共轭方向的生成6\o"CurrentDocument"2)基本算法6\o"CurrentDocument"3)改进算法的基本步骤如下7\o"CurrentDocument"三、优化设计实例101)模型102)变量10\o"CurrentDocument"3)优化设计源程序10\o"CurrentDocument"4)分析结果20\o"CurrentDocument"四、课程总结20《机械优化设计》课程设计论文摘要:一,一,……——一,•随着社会经济的迅速发展,机械优化设计作为一门为工程设计提供手段的学科,在这样的时代背景下应运而生。针对具体的课题,通过一些设计变量而建立起目标函数的过程,称为数学建模;应用优化方法为工程设计寻找出最优解是现代优化设计所研究的主要课题与方向。关键词:概述机械优化设计;设计变量;目标函数;数学模型;优化方法概述优化设计是20世纪60年代初发展起来的一门新学科,它是将最优化原理与计算技术应用于设计领域,为工程设计提供一种重要的科学设计方法的手段。利用这种新的设计方法,人们就可以从众多的设计方案中寻找出最佳设计方案,从而大大提高设计效率和设计质量。因此优化设计是现代设计理论和方法的一个重要领域,它已广泛应用于各个工业部门,成为现代工程设计的一个重要手段!二、优化方法介绍(一)、一维搜索方法一维搜索方法可分为两类,一类称为试探法,这类方法是按某种给定的规律来确定区间内插入点的位置,此点位置的确定仅仅按照区间缩短如何加快,而不顾及函数值的分布关系,例如黄金分割法,裴波那契法等。另一类一维搜索法称作插值法或函数逼近法。这类方法是根据某些点处的某些信息,如函数值,一阶导数,二阶导数等,构造一个插值函数来逼近原来的函数,用插值函数的极小点作为区间的插入点,这类方法主要有二次插值法,三次插值法等。在此重点讨论黄金分割法。黄金分割法适用于[a,b]区间上的任何单谷函数求极小值问题,对函数除要求“单谷”外不作其他要求,甚至可以不连续。因此,这种方法的适应面相当广。黄金分割法也是建立在区间消去法原理基础上的试探方法,即在搜索区间[a,b]内适当插入两点。1,。2,并计算其函数值。\,。2将区间分为三段,应用函数的单谷性质,通过函数值大小的比较,删去其中一段,,使搜索区间得以缩短。然后再在保留下来的区间上作同样的处置,如此迭代下去,使搜索区间无限缩小,从而得到极小点的数值近似解。黄金分割法要求插入点。1、。2的位置相对于区间[a,b]两端点具有对称性,即a1=b—A(b—a)a=a+X(b—a)2其中,入为待定常数。图3-6除对称要求外,黄金分割法还要求在保留下来的区间内再插入一点所形成的区间新三段,与原来区间的三段具有相同的比例分布。设原区间[a,b]长度为1如图3-6所示,保留下来的区间[a,a』长度为入,区间缩短率为入。为了保持相同的比例分布,新插入点。应在入(1—入)位置上,a在原区间的1—入位置应相当于在保留区间的招位置。故31有1—入=入2入2+入一1=0取方程正数解,得入=("5—1)/2F618若保留下来的区间为[a】,b],根据插入点的对称性,也能推得同样的入值。所谓的黄金分割是指将一线段划分为两段的方法,使整段长与较长段的长度比值等于较长段与较短段的比值,即1:入=入:(1—入)同样算的入^0.618。可见黄金分割法能使得相邻两次搜索区间都具有相同的缩短率0.618,所以黄金分割法又称为0.618法。1)黄金分割法的搜索过程是:给出初始搜索区间[a,b]及收敛精度£,将入赋以0.618。2)按坐标点计算公式计算。]和。广并计算其对应的函数值f(a1),f(a「。根据消去法原理缩短搜索区间。为了能用原来的坐标点计算公式,,需进行区间名称的代换,并在保留区间中计算一个新的试验点及其函数值。4)检查区间是否缩短到足够小和函数值收敛到足够近,如果条件不满足则返回到步骤2。5)如果条件满足,则取最后2试验点的平均值作为极小点的数值近似解。

黄金分割法的程序框图如图3-7所示图3-7(二)无约束优化方法前面所举的机械优化设计问题都是在一定的限制条件下追求某一指标为最小,所以它们都属于约束优化问题。但是有些实际问题,其数学模型本身就是一个无约束优化问题,或者除了在非常接近最终极小值的情况下,都可以按无约束优化问题来解决。研究约束优化问题的另一个原因是,通过熟悉它的解法可以为研究无约束优化问题打下良好的基础。第三个原因,约束优化问题的求解可以通过一系列无约束优化方法来达到。由此可见,无约束优化问题的解法是优化设计方法的基本组成,也是优化方法的基础。属于无约束优化方法的主要有:1、最速下降法2、牛顿型法3、共轭方向及共轭方向法4、共轭梯度法5、变尺度法6、坐标轮换法7、鲍威尔法8、单形替换法下面主要介绍鲍威尔法的原理及应用。鲍威尔法是直接利用函数值来构造共轭方向的一种共轭方向法。这种方法是在研究具有正定矩阵G的二次函数f(x)=1/2XTGx+bTx+c的极小化问题时形成的。其基本思想是在不用导数的前提下,在迭代中逐次构造G的共轭方向。共轭方向的生成设Xk、Xk+1为从不同点出发,沿着同一方向dj进行一维搜索而得到的两个极小点,如图所示。根据梯度和等值面相互垂直的特性,dj和xk、xk+1两点处的梯度g、g+i之间存在关系ggH(dj)Tgk=0(dj)Tgk+1=0另一方面,对于上述二次函数,其xk、xk+1两点处的梯度可表示为gk=Gxk+bg=Gxk+1+b两式相减得国g—g=G(xk+1—xk)因而有k+1k(dj)T(g—g)=(dj)TG(xk+1—xk)=0若取方向dk=xk+1—xk,如图4-15所示',则dk和dj对G共轭。这说明只要沿着dj方向分别对函数作两次一维搜索,得到两个极小值xk和xk+1。那么这两点的连线所给出的方向就是与一起对G共轭的方向。对于二维问题,f(x)的等值线为一簇椭圆,A、B为沿气轴方向上的两个极小值点,分别处于等值线与气轴方向的切点上,如图4-16所示。根据上述分析,则A、B两点的连线AB就是与气轴一起对G共轭的方向。沿此共轭方向进行一维搜索就可以找到函数f(x)的极小值点x*。基本算法现在针对二维情况来描述鲍威尔的基本算法,如图4-17所示。任选一初始点xo,再选两个线性无关的向量,如坐标轴单位向量e「[10]t和e2=[01]t作为初始搜索方向。从x。出发,顺次沿e、e作一维搜索得点x。、x0,两点连线得一新方向di=x0—x。121221用di代替e1形成两个线性无关向量e2、di,作为下一轮迭代的搜索方向。再从x20出发,沿di作一维搜索得点x,作为下一轮迭代的初始点。2从x1出发,顺次沿e2、击作一维搜索,得到点x「、x21,两点连线得一新方向d2=x1—x1x,x21两点是从不同点x0、x「出发,分别沿d1方向进行一维搜索而得的极小点,所以xj、x21两点连线的方向d2同d1—同对G共轭。再从x21出发,沿d2作一维搜索得点x2。因为x2相当于从x0出发分别沿G的两个共轭方向d1、&2进行两次一维搜索而得到的点,所以x2点即是二维问题的极小值点x*

3)改进算法的基本步骤如下:给定初始点xo(记作x00),选取初始方向组,它由n个线性无关的向量d10,d2o,…,即(如n个坐标轴单位向量e1,e2,…,e)所组成,置k—0。从xk出发,顺次沿dk,dk,…,dk作一维搜索得xk,xk,・・・xk,接着以xk为起点,沿012n12nn方向dk=xk-xk移动一个xk-x0k的距离,得到xk=xk+(xk-xk)=2xk-xkx0k、xnk、xn+ik分别称为一轮迭代的始点、终点和反射点』始点、终点和反射点所对应的函数值分别表示为F0=f(x0k)F2=f(xk)F3=f(xp同时计算各中间点处的函数值,并记为fi=f(xik)(i=0,1,2,…,n)因此有F0=f0,F2=fn。11计算n个函数值之差f-f,f-f,…,f-f。0112n-1n记作^i=f-f.(i=1,2,…,n)其中最大者记为△=maxAi=f「f根据是否满足判定条件m「'mFVF和(F-2F+F)CF-F-A)2<0.5A(F-F)2来确定是否要对原方向组进行替换。3002302mm03若不满足判别条件,则下轮迭代仍用原方向组,并以xk、x+1k中函数值小者作为下轮迭代的始点。nn若满足上述判别条件,则下轮迭代应对原方向组进行替换,将dn+1k补充到原方向组的最后位置,而除掉dk。即新方向组为dk,dk,…,dk,dk,…,dk,d』作为下轮迭代的搜索m12m-1m+1nn+1方向。下轮迭代的始点取为沿d+1k方向进行一维搜索的极小点x0k+1。判断是否满足收敛准则。若满足则取x0k+1为极小点,否则应置k二k+1,返回2,继续进行下一轮迭代。这样重复迭代的结果,后面加进去的向量都彼此对G共轭,经n轮迭代即可得到一个由n个共轭方向所组成的方向组。对于2次函数,最多不超过n次就可以找到极小点,而对于一般函数,往往要超过n次才能找到极小点(这里的“n”表示设计空间的维数)。改进后的鲍威尔法程序框图如下开始给定X0、£K—0是否否F2<F3llXnk^X0kH<£结束可修改可编辑X*是否否F2<F3llXnk^X0kH<£结束可修改可编辑X*—X0k+1否是Fnjf(xj<)F,jf(xk)F)jf(xk)002n3n+17△广maxA.即+1—di+1k(i=m,m+1,...,n)d.k+i—di+1k(i=12...,m—1)an+1k:minf(xnk+adn+1k)x0k+1—xnk+an+1kdn+1kXn+Lnk—x0kxn+1k^2xnk~x0k判别条件是否满足?X0k+1f1kX°k+1—Xnkk—k+1三、优化设计实例1)模型用鲍威尔法解决二维问题1)模型f(x)=4(x—5)2+(x—6)2122)变量x、x

123)优化设计源程序#include"stdio.h”#include"stdlib.h”#include"math.h”doubleobjf(doublex[]){doubleff;ff=4*x[0]*x[0]+x[1]*x[1]-40*x[0]-12*x[1]+136;return(ff);voidjtf(doublex0[],doubleh0,doubles[],intn,doublea[],doubleb[]){inti;double*x[3],h,f1,f2,f3;for(i=0;i<3;i++)x[i]=(double*)malloc(n*sizeof(double));h=h0;for(i=0;i<n;i++)*(x[0]+i)=x0[i];f1=objf(x[0]);for(i=0;i<n;i++)*(x[1]+i)=*(x[0]+i)+h*s[i];f2=objf(x[1]);if(f2>=f1){h=-h0;for(i=0;i<n;i++)*(x[2]+i)=*(x[0]+i);f3=f1;for(i=0;i<n;i++){*(x[0]+i)=*(x[1]+i);*(x[1]+i)=*(x[2]+i);}f1=f2;f2=f3;}for(;;){h=2*h;for(i=0;i<n;i++)*(x[2]+i)=*(x[1]+i)+h*s[i];f3=objf(x[2]);if(f2<f3)break;else{for(i=0;i<n;i++){*(x[0]+i)=*(x[l]+i);*(x[l]+i)=*(x[2]+i);}fl=f2;f2=f3;}}if(h<0)for(i=0;i<n;i++){a[i]=*(x[2]+i);b[i]=*(x[0]+i);}elsefor(i=0;i<n;i++){a[i]=*(x[0]+i);b[i]=*(x[2]+i);for(i=0;i<3;i++)free(x[i]);doublegold(doublea[],doubleb[],doubleeps,intn,doublexx[]){inti;doublef1,f2,*x[2],ff,q,w;for(i=0;i<2;i++)x[i]=(double*)malloc(n*sizeof(double));for(i=0;i<n;i++){*(x[0]+i)=a[i]+0.618*(b[i]-a[i]);*(x[1]+i)=a[i]+0.382*(b[i]-a[i]);}f1=objf(x[0]);f2=objf(x[1]);do{if(f1>f2){for(i=0;i<n;i++){b[i]=*(x[0]+i);*(x[0]+i)=*(x[1]+i);}f1=f2;for(i=0;i<n;i++)*(x[1]+i)=a[i]+0.382*(b[i]-a[i]);f2=objf(x[1]);else{for(i=0;i<n;i++){a[i]=*(x[1]+i);*(x[1]+i)=*(x[0]+i);}f2=f1;for(i=0;i<n;i++)*(x[0]+i)=a[i]+0.618*(b[i]-a[i]);f1=objf(x[0]);}q=0;for(i=0;i<n;i++)q=q+(b[i]-a[i])*(b[i]-a[i]);w二sqrt(q);}while(w>eps);for(i=0;i<n;i++)xx[i]=0.5*(a[i]+b[i]);ff=objf(xx);for(i=0;i<2;i++)free(x[i]);return(ff);}doubleoneoptim(doublex0[],doubles[],doubleh0,doubleepsg,intn,doublex[]){double*a,*b,ff;a=(double*)malloc(n*sizeof(double));b=(double*)malloc(n*sizeof(double));jtf(x0,h0,s,n,a,b);ff=gold(a,b,epsg,n,x);free(a);free(b);return(ff);}doublepowell(doublep[],doubleh0,doubleeps,doubleepsg,intn,doublex口){inti,j,m;double*xx[4],*ss,*s;doublef,f0,f1,f2,f3,fx,dlt,df,sdx,q,d;ss=(double*)malloc(n*(n+1)*sizeof(double));s=(double*)malloc(n*sizeof(double));for(i=0;i<n;i++){for(j=0;j<=n;j++)*(ss+i*(n+1)+j)=0;*(ss+i*(n+1)+i)=1;}for(i=0;i<4;i++)xx[i]=(double*)malloc(n*sizeof(double));for(i=0;i<n;i++)*(xx[0]+i)=p[i];for(;;){for(i=0;i<n;i++){*(xx[1]+i)=*(xx[0]+i);x[i]=*(xx[1]+i);}f0=f1=objf(x);dlt=-1;for(j=0;j<n;j++){for(i=0;i<n;i++){*(xx[0]+i)=x[i];*(s+i)=*(ss+i*(n+1)+j);}f=oneoptim(xx[0],s,h0,epsg,n,x);df二f0-f;if(df>dlt){dlt=2)变量x、x

123)优化设计源程序sdx=O;for(i=0;i<n;i++)sdx=sdx+fabs(x[i]-(*(xx[1]+i)));if(sdx<eps){free(ss);free(s);for(i=0;i<4;i++)free(xx[i]);return(f);}for(i=0;i<

温馨提示

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

评论

0/150

提交评论