机械优化设计MATLAB实现课件.ppt
《机械优化设计MATLAB实现课件.ppt》由会员分享,可在线阅读,更多相关《机械优化设计MATLAB实现课件.ppt(65页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、MATLAB在机械优化设计中的应用在机械优化设计中的应用湖南农业大学工学院2007年9月主讲主讲:*绪绪 论论1.1 MATLAB系统简介系统简介 MATLAB 名字由 MATrix 和 LABoratory 两词的前三个字母组合而成。那是 20 世纪七十年代后期的事:时任美国新墨西哥大学计算机科学系主任的 Cleve Moler 教授出于减轻学生编程负担的动机,为学生设计了一组调用 LINPACK 和 EISPACK 库程序的“通俗易用”的接口,此即用 FORTRAN 编写的萌芽状态的 MATLAB。经几年的校际流传,在 Little 的推动下,由 Little、Moler、Steve Ba
2、ngert 合作,于 1984 年成立了 MathWorks 公司,并把 MATLAB 正式推向市场。从这时起,MATLAB 的内核采用 C 语言编写,而且除原有的数值计算能力外,还新增了数据图视功能。MATLAB以商品形式出现后,仅短短几年,就以其良好的开放性和运行的可靠性,使原先控制领域里的封闭式软件包(如英国的UMIST,瑞典的LUND和SIMNON,德国的KEDDC)纷纷淘汰,而改以MATLAB为平台加以重建。在时间进入20世纪九十年代的时候,MATLAB已经成为国际控制界公认的标准计算软件。到九十年代初期,在国际上30几个数学类科技应用软件中,MATLAB在数值计算方面独占鳌头,而M
3、athematica和Maple则分居符号计算软件的前两名。Mathcad 因其提供计算、图形、文字处理的统一环境而深受中学生欢迎。在欧美大学里,诸如应用代数、数理统计、自动控制、数字信号处理、模拟与数字通信、时间序列分析、动态系统仿真等课程的教科书都把MATLAB作为内容。这几乎成了九十年代教科书与旧版书籍的区别性标志。在那里,MATLAB是攻读学位的大学生、硕士生、博士生必须掌握的基本工具。在国际学术界,MATLAB已经被确认为准确、可靠的科学计算标准软件。在许多国际一流学术刊物上,(尤其是信息科学刊物),都可以看到MATLAB的应用。在设计研究单位和工业部门,MATLAB被认作进行高效研
4、究、开发的首选软件工具。如美国NationalInstruments公司信号测量、分析软件LabVIEW,Cadence公司信号和通信分析设计软件SPW等,或者直接建筑在MATLAB之上,或者以MATLAB为主要支撑。又如HP公司的VXI硬件,TM公司的DSP,Gage公司的各种硬卡、仪器等都接受MATLAB的支持。MATLAB具有以下几个特点具有以下几个特点:功能强大的数值运算功能强大的图形处理能力高级但简单的程序环境丰富的工具箱优化工具箱中的所有函数都对应一个MATLAB6.5的.M文件(关于.M文件请查阅相关MATLAB6.5文献),这些.M通过使用MATLAB6.5基本语句实现了具体的
5、优化算法.可以在MATLAB6.5命令窗口键入命令:typefunction_name,来查看相应函数的代码.1.2 优化工具箱的工程应用步骤优化工具箱的工程应用步骤当量化地求解一个实际的最优化问题时,首先要把这个问题转化为一个数学问题.建立数学模型:然后对建立的数学模型进行具体分析选择合适的优化算法:最后根据选定的优化算法,编写计算程序进行求解用MATLAB6.优化工具箱解决实际应用问题可以概括为以下三个步骤:(1)根据所提出的最优化问题,建立最优化问题的数学模型确定变量,列出约束条件和目标函数(2)对所建立的模型进行具体分析和研究选择合适的最优化求解方法(3)根据最优化方法的算法,列出程序
6、框图,选择优化函数和编写语言程序,用计算机求出最优解利用MATLAB的优化工具箱,可以求解线性规划,非线性规划和多目标规划问题。具体而言,包括线性,非线性最小化,最大最小化,二次规划,半无限问题,线性,非线性方程化,方程求解,曲线拟合,二次规划等问题中大型课题的求解方法,为优化方法在工程中的实际应用提供了更方便,快捷的途径。1.3 优化问题的工程背景优化问题的工程背景随着生产,经济,技术的发展,工程技术,管理人才在实际工作中常常会面临这类问题:在工程设计中,怎样的分配方案既能满足各方面的基本要求,又能降低成本;在资源配中,怎样的分配既能满足各方面的基本要求,又能获得好的经济效益;在生产计划安排
7、中,选择怎样的计划才能提高产值和利润;在原料配比问题中,怎样确定各种万分的比例才能提高质量,降低成本;在城建规划中,怎样安排工厂,机关,学校,商店,医院,住宅和其它单位的合理布置,才能方面群众,有利于城市各行各行的发展这一类问题的共同点就是迁出最合理,达到事先预定的最优目标的方案,这就是工程问题最优化问题 最优化方法发展很快,包含多个分支,如线性规划,整数规划,非线性规划,动态规划,多目标规划等。2.1 线性规划问题与线性规划问题与MATLAB实现实现 线性规划问题是目标函数和约束条件均为线性函数的问题,MATLAB解决的线性规划问题的标准形式为:min f(x)x R s.t.A.xb Ae
8、q.x=beq lb x ub其中f、x、b、beq、lb、ub为向量,A、Aeq为矩阵。其它形式的线性规划问题都可经过适当变换化为此标准形式。在MATLAB6.5版中,线性规划问题(Linear Programming)已用函数linprog取其它形式的线性规划问题都可经过适当变换化为此标准形式。函数 linprog 调用格式 x=linprog(f,A,b)%求min f=f(x)x Rs.t.A.xb 线性规划的最优解。x=linprog(f,A,b,Aeq,beq)%等式约束Aeq.x=beq,若没有不等式约束,则A=,b=。x=linprog(f,A,b,Aeq,beq,lb,ub)
9、%指定x的范围lbxub,若没有等式约束Aeq.x=beq,则Aeq=,beq=x=linprog(f,A,b,Aeq,beq,lb,ub,x0)%设置初值x0 x=linprog(f,A,b,Aeq,beq,lb,ub,x0,options)%options为指定的优化参数x,fval=linprog()%返回目标函数最优值,即fval=f(x)。x,fval,lambda,exitflag=linprog()%lambda为解x的Lagrange乘子。x,favl,lambda,fval,exitflag=linprog()%exitflag为终止迭代的错误条件。x,fval,lambda
10、,exitflag,output=linprog()%output为关于优化的一些信息说明 若exitflag0表示函数收敛于解x,exitflag=0表示超过函数估值或迭代的最大数字,exitflag1 g(1)=2*x(1);%用提供的梯度g使函数最小化 g(2)=50*x(2);end输入下列系数options(6)=1;options(7)=1;%采用DFP变尺度方法立方插值法options=optimset(Display,iter,LargeScale,on,GradObj,on);%设置优化参数x0=2,2;x,fval,exitflag,output,grad=fminunc(
11、jxyh4_1fun,x0,options)结果为:结果为:x=1.0e-013*0.1155 0.0044fval=1.3825e-028exitflag=1output=iterations:1 funcCount:2 cgiterations:1 firstorderopt:2.3093e-014 algorithm:large-scale:trust-region Newton message:1x137 chargrad=1.0e-013*0.2309 0.2220 Norm of First-order Iteration f(x)step optimality CG-iterat
12、ions 0 104 100 1 1.38248e-028 2.82843 2.31e-014 1例例.2 求下面的优化问题求下面的优化问题(变尺度法变尺度法)对函数f(x)=x12+2x22-4x1-2x1x2,当给定初值x0=1,1,求其最小值x.编一个编一个M文件文件=jxyh4_2fun(x).m,返回返回x处的函数值处的函数值f.function y=jxyh4_2fun(x)y=x(1)2+2*x(2)2-4*x(1)-2*x(1)*x(2);%目标函数的M文件输入下列系数输入下列系数options(6)=0;options(7)=0;%采用DFP方法混合插值法options=op
13、timset(Display,iter,LargeScale,off,);%设置优化参数x0=1,1;x,fval,exitflag,output=fminunc(jxyh4_2fun,x0,options)结果为:结果为:x=4.0000 2.0000fval=-8.0000exitflag=1output=iterations:3 funcCount:12 stepsize:1 firstorderopt:2.3842e-007 algorithm:medium-scale:Quasi-Newton line search message:Optimization terminated:r
14、elative infinity-norm of gradient less than options.TolFun.Iteration Func-count f(x)Step-size infinity-norm 0 3 -3 4 1 6 -5.5 0.25 2 2 9 -6.4 1 1.6 3 12 -8 1 2.38e-007 例例4.3 求使方程求使方程的最小化当给定初值x0=pi/3,pi/3;求其最小值x编一个M文件y=jxyh4_3fun(x).m,返回x处的函数值f.functionf=jxyh4_3fun(x)f=sin(x(1)+cos(x(1)+sin(x(2)+cos(
15、x(2)+sin(x(1)*cos(x(2);输入下列系数输入下列系数x0=pi/3,pi/3;options=optimset(Display,iter,LargeScale,off);%设置优化参数x,fval,exitflag,output=fminunc(jxyh4_3fun,x0,options)结果为:结果为:x=3.62974.2242fval=-2.4844exitflag=1output=iterations:9funcCount:39stepsize:1firstorderopt:1.1495e-007algorithm:medium-scale:Quasi-Newtonl
16、inesearchmessage:Optimizationterminated:relativeinfinity-normofgradientlessthanoptions.TolFun.Gradients Iteration Func-count f(x)Step-size infinity-norm 0 3 3.16506 1.12 1 9 -0.985033 2.38021 0.932 2 12 -1.87199 1 1.01 3 21 -2.46878 0.0614031 0.159 4 24 -2.47689 1 0.112 5 27 -2.48442 1 0.006 6 30 -2
17、.48443 1 0.00133 7 33 -2.48444 1 4.06e-005 8 36 -2.48444 1 6.42e-006 9 39 -2.48444 1 1.15e-007 .4.4 在MATLAB中,多变量非线性无约束优化问题也可以调用函数 fminsearch fminsearch函数是一个M文件,其算法基于单纯形法进行计算适合解决二次以上的问题,并问题为高度非线性时,具有稳定性但是不适合求解平方和问题函数函数 fminsearch 调用格式调用格式 :x=fminsearch(fun,x0)%给定初值x0,求fun 函数的局部极小点xx0可以是标量,矢量,矩阵x=fmin
18、search(fun,x0,options)%用options参数指定的优化参数进行求解x,fval=fminsearch()%返回x处目标函数的值到fvalx,fval,exitflag=fminsearch()%返回exitflag值描述fminunc 函数的退出条件x,fval,exitflag,output=fminsearch()%返回包含优化信息的结构输出例例4.4 求使方程求使方程的最小化当给定初值x0=1;求其最小值x编一个编一个M文件文件y=jxyh4_4fun(x).m,返回返回x处的函数值处的函数值f.function f=jxyh4_4fun(x)f=e(-x)+x2;
19、输入下列系数输入下列系数x0=1;options=optimset(Display,iter,LargeScale,off);%设置优化参数x,fval,exitflag,output=fminsearch(jxyh4_4fun,x0,options)结果为:结果为:Gradients Iteration Func-count f(x)Step-size infinity-norm 0 3 3.16506 1.12 1 9 -0.985033 2.38021 0.932 2 12 -1.87199 1 1.01 3 21 -2.46878 0.0614031 0.159 4 24 -2.476
20、89 1 0.112 5 27 -2.48442 1 0.006 6 30 -2.48443 1 0.00133 7 33 -2.48444 1 4.06e-005 8 36 -2.48444 1 6.42e-006 9 39 -2.48444 1 1.15e-007 x=0.3518 fval=0.8272exitflag=1output=iterations:16 funcCount:32 algorithm:Nelder-Mead simplex direct search message:1x196 char5.1 有约束的非线性规划问题的有约束的非线性规划问题的MATLAB实现实现
21、这些问题通常用基于K-T(Kuhn-Tucker)方程解的方法,直接计算拉格朗日乘子用拟牛顿法更新过程这些方法称为二次规划法(SQP)利用MATLAB解决有约束的非线性规划问题问题调用函数 fmincon:利用 fmincon 函数求解多变量的有约束的最小值:其数学模型为:式中,x,b,beq,lb和ub为矢量,A和Aeq为矩阵,c(x)和ceq(x)为函数,返回标量f(x),c(x)和ceq(x)可以是非线性函数函数函数 fmincon 调用格式调用格式 :x=fmincon(fun,x0,A,b)给定初值x0,求fun函数的极小值x,fun函数的约束条件为A*x=b,x0可以是标量,矢量,
22、矩阵。x=fmincon(fun,x0,A,b,Aeq,beq)最小化fun函数,约束条件为Aeq*x=beq和A*x=b。若没有不等式存在,则令Aeq=,beq=。x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub)定义设计变量x的下界lb和上界ub。使得有lb=x=ub。若无等式则有:Aeq=,beq=;x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)在上面的基础上,在nonlcon参数中提供非线性不等式c(x)和等式ceq(x),通常也以M文件的方式调用。Fmincon函数也要求c(x)=0且ceq(x)=0当无边界存在时,令lb=
23、,ub=x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)用options参数指定的优化参数进行求解x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options,P1,P2)提供另外的参数P1,P2等,传输给目标函数fun和nonlin如果不需要这些变量,则传递空矩阵到A,b,Aeq,beq,lb,ub,nonlcon,options中x,fval=fmincon(.)将解x处的目标函数的值返回到fval参数中x,fval,exitflag=fmincon(.)返回exitflag的值,描述函数的输出条
24、件x,fval,exitflag,output=fmincon(.)返回包含优化作息的结构输出x,fval,exitflag,output,lambad=fmincon()返回解x处包含拉格朗子乘子的lambad参数x,fval,exitflag,output,lambad,grad=fmincon()返回解x处fun函数的梯度x,fval,exitflag,output,lambad,grad,hess=fmincon()返回解x处fun函数的hess矩阵各调用格式中,nonlcon参数计算非线性不等式约束c(x)2 Gc=%不等式的梯度 Gceq=%等式的梯度end5.1 计算计算 有约束
25、的非线性规划问题有约束的非线性规划问题例题5-1试求点集A(x1,x2,x3)和点集B(x4,x5,x6)之间的最短距离。限制条件为由图可知,点集A(x1,x2,x3)在球面上取点。点集B(x4,x5,x6)在圆柱面上取点。因此该问题就是求这两个几何体间的最短距离的约束优化问题,其数学模型为。编一个编一个M文件文件=jxyh5_1fun(x).m,返回返回x处的函数值处的函数值f.functionf=jxyh5_1fun(x)f=(x(1)-x(4)2+(x(2)-x(5)2+(x(3)-x(6)2;%目标函数的M文件由于约束条件中非线性约束由于约束条件中非线性约束,所以要编写一个描述非线性约
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 机械 优化 设计 MATLAB 实现 课件
限制150内