MATLAB现代设计理论与方法之优化设计_第1页
MATLAB现代设计理论与方法之优化设计_第2页
MATLAB现代设计理论与方法之优化设计_第3页
MATLAB现代设计理论与方法之优化设计_第4页
MATLAB现代设计理论与方法之优化设计_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

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

文档简介

1、第二讲 现代设计理论与方法之优化设计提 纲什么是优化设计?1优化设计方法3优化设计数学模型三要素2优化软件matlab应用4 题引:设计一对圆柱齿轮减速器,输入功率为P=100KW,输入转速为n=730r/min,传动比i=4.5,工作年限为10年。满足设计要求的各种可行方案结论:传统的机械设计中很早就存在“选优”思想;所谓“优化方案”是有条件的,是根据不同的衡量指标来评价的。传统机械设计中“选优”方法的不足:给出的设计方案有限;不能按衡量指标严格计算出一组最优参数(最优方案)。计算机技术的发展优化设计工具数学规划理论基础优化设计参数(优化目标和最优原则)机械优化设计 在给定的载荷环境条件下,

2、在对机械产品的性态、集合关系或其他因素的限制(约束)范围内,选取设计变量,建立目标函数并的使其获得最优值的一种新的设计方法。 优化设计过程: 第一步:设计课题分析。确定设计目标分析约束条件单目标优化多目标优化参数取值范围设计或技术性能工艺条件限制 第二步:建立数学模型。 第三步:选择优化方法。 第四步:上机计算择优。 工程优化设计的两个分支: 数学规划法 准则法 工程优化设计的两个层次: 总体方案优化 设计参数优化【优化设计的数学模型】案例一:有一圆形等截面的销轴,一端固定,一端作用着集中载荷F=1000N和扭矩T=100Nm。由于结构需要,轴的长度L不得小于8cm,已知销轴材料的许用弯曲应力

3、W=120MPa,许用扭转切应力=80MPa,允许挠度f=0.01cm,密度=7.8t/m3,弹性模量E=2105MPa。现要求在满足使用要求的条件下,试设计一个用料最省(销轴质量最轻)的方案。课题分析和数学模型的建立:课题分析优化目标用料最省条件强度条件刚度条件边界条件设 x1=d,x2=l则令且设计变量目标函数约束条件数学模型三要素 优化数学模型的一般表达式:s.t.设计变量X属于n维实欧氏空间极小化目标函数满足于不等式约束条件等式约束条件若其中m=p=0,则为无约束优化设计优化数学模型上机计算最优方案最优目标函数值 数学模型三要素确立的准则: 设计变量X=x1,x2,xn:设计过程中要优

4、选的变量,一般用向量表示。设计方案的集合构成设计空间。n50小型优化问题中型优化问题大型优化问题变量越多,自由度越大,优化效果越好,但是计算机时也相对增加。 对于设计变量为离散量的情况,优化时视为连续量考虑,得到优化结果后进行圆整或标准化。 目标函数 min f (X):代表设计中某项最重要的特征,为标量函数。max f (X)=min (-f (X)单目标优化问题多目标优化问题目标函数愈多,设计的综合效果愈好,但问题的求解愈复杂。等值线的特点: 不同等值线不相交; 除极值点外,在设计空间内,等值线不会中断; 等值线充满整个设计空间; 等值线分布的疏密,反映出函数值变化的慢快; 对有中心的等值

5、线族,其共同中心就是极值点; 约束条件:对设计变量取值时的限制条件。gu (X)0 可用-gu (X)0表示。性能约束边界约束等式约束不等式约束等式约束中只有约束线上的点满足约束。不等式约束中约束边界将设计空间划分为满足约束不不满足约束两部分。起作用约束可行域等式约束的个数 p 必须小于设计变量的个数 n。?思考题:有一块边长为6m的正方形铝板,四角各裁去一个小的方块,作成一个无盖的盒子。试确定裁去小正方形的边长,以使盒子容积最大。直齿圆柱齿轮副的优化设计:已知下列数据:传动比i,转速n1,传动功率P,小齿轮许用接触应力H1,小齿轮许用弯曲应力F1,大齿轮许用弯曲应力F2,并已知两齿轮所用材料

6、及热处理后的硬度。设计该齿轮副,使其体积最小。提示:圆柱齿轮的体积V,可近似地看成是其分度圆面积与齿宽的乘积。优化设计的分类:约束优化问题无约束优化问题一维优化问题多维无约束优化问题线性规划问题非线性规划问题【优化设计方法】解法分类: 数学解析法 图解法 数值迭代法用数学的微分法和变分法等求解。对于n2的低维优化问题,用直接作图的方法求解。反复搜索、迭代,逐渐逼近。对于n维的非线性目标函数,用常规的解法求极值,往往是很困难的。有效的办法是数值迭代。迭代公式是:一种算法,可以用一个简单的数学表达式来定义,或用某个计算机程序来定义。其中:按照某一迭代格式,从一个初始点X(0)出发逐步产生一个点列

7、X(0),X(1),X(2), X(k), X(k+1) 若该点列所对应的目标函数值呈下降趋势 f (X(0))f (X(1))f (X(k))f (X(k+1))并且该点列的极限就是目标函数的极小点X*,即则构成此点列的方法就是优化问题的一种数值解法,称下降迭代算法,并称此点列收敛于极小。优化迭代和逼近过程a)无约束条件 b)约束条件g(x) 这样一个逐步寻优的过程跟“盲目登山”很相似,求极大值相当于登山顶,求极小值相当于下山谷。以盲人登山为例,它有两个特点;一是每走一步都要认真研究这个新点周围的信息,以确定下一步的方向和步长,然后到达下一点;二是每走一步都比前一步高。正是由于这两个特点,盲

8、人总是可以到达山顶。优化算法也应具备这种步步登高的性质。对于目标函数是多“峰”的情况,这不仅要求得局部最优,还要采用一定的方法求得全局最优。在寻优过程中,最重要的是确定每一步的搜索方向和迭代步长,而各种优化算法的主要区别也在这里。对于约束极值问题,其数值解法的基本思想仍然是搜索、迭代和逼近,不同的是需要考虑约束条件的存在,如图b)所示,如果增加一个约束条件g (X),就好像盲人登山过程中遇到一堵墙,所能达到的最高点必须在墙内,攀登的路线也会随之改变。盲人登山,主要目标是登上山顶,同时也希望越快越好。优化算法也有类似的两个标准,即收敛性和收敛速度,这是衡量算法优劣的两个重要指标。 基本的迭代格式

9、: 下降迭代法要解决的三个问题: 选择搜索方向; 确定迭代步长; 给定终止准则; 常用的迭代终止准则: 点距足够小准则 函数下降量足够小准则 函数梯度充分小准则一般收敛精度=10-5。以上终止准则是针对于无约束优化问题的求解;而对于约束优化问题,不同的优化方法有不同的终止准则。优化设计实验课件现代工程计算- MATLAB MATLAB界面 优化计算 MATLAB界面 Command Window(命令窗口)一行可写入一个或多个命令,命令之间用逗号或分号隔开,如果命令尾带分号将不显示该命令的执行结果;如果命令有返回结果,如果不赋给自定义变量,将默认赋给变量ans;变量还可有续行;最后用回车提交命

10、令。 Workspace(工作区) 程序运行中的自定义变量和默认变量都包含在工作区中。可通过工作区观察变量的大小、类型,双击变量名可查看数值大小。也可用who和whos命令查看。 Command History(命令记录) 记录了Command Window 中的每一条命令,双击Command History中的命令,即可重复那条命令。函 数描 述fgoalattain多目标达到问题fminbnd有边界的标量非线性最小化fmincon有约束的非线性最小化fminimax最大最小化fminsearch, fminunc无约束非线性最小化fseminf半无限问题linprog线性规划quadpro

11、g二次规划线性规划及其优化函数线性规划问题是目标函数和约束条件均为线性函数的问题。 min sub.to: 其中f、x、b、beq、lb、ub为向量,A、Aeq为矩阵。其它形式的线性规划问题都可经过适当变换化为此标准形式。函数 linprog格式 x = linprog(f,A,b,Aeq,beq) x = linprog(f,A,b,Aeq,beq,lb,ub) x = linprog(f,A,b,Aeq,beq,lb,ub,x0) x = linprog(f,A,b,Aeq,beq,lb,ub,x0,options) x,fval = linprog() x,fval,exitflag =

12、 linprog() x,fval,exitflag,output = linprog() x,fval,exitflag,output,lambda = linprog() 说明 f:是优化参数x的系数矩阵; lb,ub:设置优化参数x的上下界; fval: 返回目标函数在最优解x点的函数值; exitflag:返回算法的终止标志; output:返回优化算法信息的一个数据结构。说明:若exitflag0表示函数收敛于解x,exitflag=0表示超过函数估值或迭代的最大数字,exitflagf = -5; -4; -6;A = 1 -1 1;3 2 4;3 2 0;b = 20; 42;

13、30;lb = zeros(3,1);x,fval,exitflag,output,lambda = linprog(f,A,b,lb)结果为:x = %最优解 0.0000 15.0000 3.0000fval = %最优值 -78.0000exitflag = %收敛 1output = iterations: 6 %迭代次数 cgiterations: 0 algorithm: lipsol %所使用规则lambda = ineqlin: 3x1 double eqlin: 0 x1 double upper: 3x1 double lower: 3x1 doublelambda为解x的

14、Lagrange乘子 lambda.ineqlinans = 0.0000 1.5000 0.5000 lambda.lowerans = 1.0000 0.0000 0.0000表明:不等约束条件2和3以及第1个下界是有效的练习解下面线性规划问题某车间生产甲、乙两种产品。生产甲种产品每件需要材料9Kg、3个工时、4KW电,可获利60元。生产乙种产品每件需要材料4Kg、10个工时、5KW电,可获利120元。若每天能供应材料360Kg,有300个工时,能供200KW电,问每天生产甲、乙两种产品各多少件,才能获得最大的利润。提示:非线性规划及其优化函数 有约束的一元函数的最小值sub.to 函数

15、fminbnd格式 x = fminbnd(fun,x1,x2) %返回自变量x在区间上函数fun取最小值时x值,fun为目标函数的表达式字符串或MATLAB自定义函数的函数柄。x = fminbnd(fun,x1,x2,options) % options为指定 优化参数选项x,fval = fminbnd() % fval为目标函数的最小值x,fval,exitflag = fminbnd() %xitflag为终止迭代 的条件x,fval,exitflag,output = fminbnd() % output为优 化信息说明 若参数exitflag0,表示函数收敛于x,若exitfla

16、g=0,表示超过函数估计值或迭代的最大数字,exitflagx,fval,exitflag,output=fminbnd(x3+cos(x)+x*log(x)/exp(x),0,1)x = 0.5223fval = 0.3974exitflag = 1output = iterations: 9 funcCount: 9 algorithm: golden section search, parabolic interpolation在0,5上求下面函数的最小值解:先自定义函数:在MATLAB编辑器中建立M文件为:function f = myfun(x)f = (x-3).3 - 1;保存为

17、myfun.m,然后在命令窗口键入命令: x=fminbnd(myfun,0,5)则结果显示为:x = 3 无约束多元函数最小值 多元函数最小值的标准形式为其中:x为向量,如命令 利用函数fminsearch求无约束多元函数最小值函数 fminsearch格式 x = fminsearch(fun,x0) %x0为初始点,fun为目标函数的表达式字符串或MATLAB自定义函数的函数柄。x = fminsearch(fun,x0,options) % options查optimsetx,fval = fminsearch() %最优点的函数值x,fval,exitflag = fminsearc

18、h() % exitflag与单变量情形一致x,fval,exitflag,output = fminsearch() %output与单变量情形一致注意:fminsearch采用了Nelder-Mead型简单搜寻法。求解:X=fminsearch(2*x(1)3+4*x(1)*x(2)3-10*x(1)*x(2)+x(2)2, 0,0)结果为X = 1.0016 0.8335或在MATLAB编辑器中建立函数文件function f=myfun(x)f=2*x(1)3+4*x(1)*x(2)3-10*x(1)*x(2)+x(2)2;保存为myfun.m,在命令窗口键入 X=fminsearch

19、 (myfun, 0,0) 或 X=fminsearch(myfun, 0,0)结果为:X = 1.0016 0.8335的最小值点命令 利用函数fminunc求多变量无约束函数最小值函数 fminunc格式 x = fminunc(fun,x0) %返回给定初始点x0的最小函数值点x = fminunc(fun,x0,options) % options为指定优化参数x,fval = fminunc() %fval最优点x处的函数值x,fval,exitflag = fminunc() % exitflag为终止迭代的条件,与上同。x,fval,exitflag,output = fminu

20、nc() %output为输出优化信息x,fval,exitflag,output,grad = fminunc() % grad为函数在解x处的梯度值x,fval,exitflag,output,grad,hessian = fminunc() %目标函数在解x处的海赛(Hessian)值注意:当函数的阶数大于2时,使用fminunc比fminsearch更有效,但当所选函数高度不连续时,使用fminsearch效果较好。求 fun=3*x(1)2+2*x(1)*x(2)+x(2)2; x0=1 1; x,fval,exitflag,output,grad,hessian=fminunc(f

21、un,x0)结果为:x = 1.0e-008 * -0.7591 0.2665fval = 1.3953e-016的最小值。 有约束的多元函数的最小值非线性有约束的多元函数的标准形式为sub.to 其中:x、b、beq、lb、ub是向量,A、Aeq为矩阵,C(x)、Ceq(x)是返回向量的函数,f(x)为目标函数,f(x)、C(x)、Ceq(x)可以是非线性函数。函数 fmincon格式 x = fmincon(fun,x0,A,b)x = fmincon(fun,x0,A,b,Aeq,beq)x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub)x = fmincon(f

22、un,x0,A,b,Aeq,beq,lb,ub,nonlcon)x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)x,fval = fmincon()x,fval,exitflag = fmincon()x,fval,exitflag,output = fmincon()x,fval,exitflag,output,lambda = fmincon()x,fval,exitflag,output,lambda,grad = fmincon()x,fval,exitflag,output,lambda,grad,hessian = fmincon()参数说明:fun为目标函数,它可用前面的方法定义;x0为初始值;A、b满足线性不等

温馨提示

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

评论

0/150

提交评论