MATLAB的优化函数.ppt_第1页
MATLAB的优化函数.ppt_第2页
MATLAB的优化函数.ppt_第3页
MATLAB的优化函数.ppt_第4页
MATLAB的优化函数.ppt_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

1、MATLAB优化工具箱常用函数的应用,MATLAB优化工具箱(Optimization Toolbox)中包含有一系列优化算法和模块,可以用于求解约束线性最小二乘优化、约束非线性或无约束非线性极小值问题、非线性最小二乘逼近和曲线拟合、非线性系统方程和复杂结构的大规模优化问题。 处理优化设计问题的分析和计算时,根据优化设计的数学模型,按照所选用优化工具函数的要求,输入初始点,与约束条件相应的约束函数和系数矩阵,将优化工具函数作为 “黑箱”调用,即可获得与所有条件都相容的优化结果。,1.Matlab优化工具箱简介,1)MATLAB求解优化问题的主要函数,2) 优化函数的输入变量,使用优化函数或优化

2、工具箱中其它优化函数时, 输入变量见下表:,3) 优化函数的输出变量下表:,用Matlab解无约束优化问题,其中(3)、(4)、(5)的等式右边可选用(1)或(2)的等式右边。 函数fminbnd的算法基于黄金分割法和二次插值法,它要求目标函数必须是连续函数,并可能只给出局部最优解。,常用格式如下: (1)x= fminbnd (fun,x1,x2) (2)x= fminbnd (fun,x1,x2 ,options) (3)x,fval= fminbnd(.) (4)x,fval,exitflag= fminbnd(.) (5)x,fval,exitflag,output= fminbnd(

3、.),主程序为wliti1.m: f=2*exp(-x).*sin(x); fplot(f,0,8); %作图语句 xmin,ymin=fminbnd (f, 0,8) f1=-2*exp(-x).*sin(x); xmax,ymax=fminbnd (f1, 0,8),2、求解多维无约束优化问题的函数fminunc,fminunc是基于梯度搜索法实现的优化工具箱函数,它的语法说明如下: x,fval,exitflag,output,grad,hessian =fminunc(fun,x0,options,P1,P2) 其中,输出参数有: x是返回目标函数的最优解; fval是返回目标函数在最

4、优解x点的函数值; exitflag是返回算法的终止标志; output是返回优化算法的信息的一个数据结构; grad是返回目标函数在最优解x点的梯度; hessian是返回目标函数在最优解x点的hessian矩阵值。,输入参数有: fun是调用目标函数的函数文件名; x0是初始点;options是设置优化选项参数,包括有18个元素,用以在计算时控制精度要求、输出形式、算法选择、迭代次数、梯度等重要问题。可用空矩阵符号“ ”表示它的默认值; P1、P2等是传递给fun的附加参数。,例 已知梯形截面管道的参数是:底边长度为 ,高度为 ,面积 ,斜边与底边的夹角为 .管道内液体的流速与管道截面的周

5、长 的倒数成比例关系 。试按照使液体流速最大确定该管道的参数。,解:1、建立优化设计的数学模型 管道截面周长 由管道截面面积 得到底边长度关系式,将它代入式管道截面周长的关系式中,得到 因此,取与管道截面周长有关的两个独立参数作为设计变量,即 为使液体流速最大,取管道截面周长最小作为目标函数,即 这是一个二维无约束非线性优化问题。,2、编制MATLAB目标函数文件 function f=sc_wysyh(x) a=64516; f=a/x(1)-x(1)/tan(x(2)*pi/180)+2*x(1)/sin(x(2)*pi/180); 编制调用无约束优化工具函数fminunc文件 x0=25

6、;45; x,fval=fminunc(sc_wysyh,x0) 程序运行后得到优化结果: x = 192.9983 (梯形截面高度) 60.0000 (梯形截面斜边与底边夹角) fval = 668.5656 (梯形截面周长),3、编制绘制目标函数等值线和曲面图的程序 xx1=linspace(100,300,25); xx2=linspace(30,120,25); x1,x2=meshgrid(xx1,xx2); f=64516./x1-x1./tan(x2*pi/180)+2*x1./sin(x2*pi/180); subplot(1,2,1); h=contour(x1,x2,f);

7、 % 绘制等高线并标注高程 clabel(h);%等高线高程标志函数 axis(100 300 30 120) xlabel(高度 h (mm) ylabel(倾斜角 (度) title(目标函数等值线) subplot(1,2,2); surfc(x1,x2,f); axis(100 300 30 120 600 1200) title(目标函数曲面图),用Matlab解约束极小值问题fmincon,fmincon是求解多维约束优化问题 的优化工具箱函数。,它的语法说明如下: x,fval,exitflag,output,lambda,grad,hession= fmincon(fun,x0

8、,A,b,Aeq,beq,Lb,Ub,Nlc,options,P1,P2,) 其中,输入参数有: x是返回目标函数的最优解; fval是返回目标函数在最优解x点的函数值; exitflag是返回算法的终止标志; output是返回优化算法的信息的一个数据结构; grad是返回目标函数在最优解x点的梯度; hessian是返回目标函数在最优解x点的hessian矩阵值。,输出参数有: fun是调用目标函数的函数文件名; x0是初始点; 线性不等式约束条件的系数矩阵A和常数向量b; 线性等式约束条件的系数矩阵Aeq和常数向量beq; 设计变量的下界向量Lb和上界向量Ub; Nlc是定义非线性约束条

9、件的函数名; options是设置优化选项参数; P1、P2等是传递给fun的附加参数。 参数A,b,Aeq,beq,Lb,Ub,options如果没有定义,可用空矩阵符号“ ”代替。,例 某二级斜齿圆柱齿轮减速器,高速级输入功率 ,转速 ;总传动比 ,齿轮宽度系数 ,齿轮材料和热处理:大齿轮45号钢正火187207HB,小齿轮45号钢调质228255HB,工作寿命10年以上。要求按照总中心距 最小来确定齿轮传动方案。,解:将涉及总中心距 齿轮传动方案的六个独立参数作为设计变量 式中, 分别为高速级和低速级齿轮副的模数; 分别为高速级和低速级小齿轮齿数; 为高速级传动比; 为齿轮副螺旋角。,减

10、速器总中心距 最小的目标函数 性能约束包括:齿面接触强度条件,齿根弯曲强度条件,高速级大齿轮与低速轴不干涉条件等。根据齿轮材料与热处理规范,得到齿面许用接触应力和齿根许用弯曲应力。根据传递功率和转速,在齿轮强度计算条件中代入有关数据:高速轴转矩,中间轴转矩,高速轴和低速轴载荷系数。 边界约束包括:根据传递功率与转速估计高速级和低速级齿轮副模数的范围;综合考虑传动平稳、轴向力不能太大、轴齿轮的分度圆直径不能太小与两级传动的大齿轮浸油深度大致相近等因素,估计两级传动大齿轮的齿数范围、高速级传动比范围和齿轮副螺旋角范围等。 因此,建立了如下17个不等式约束条件。,高速级齿轮副接触强度条件 低速级齿轮

11、副接触强度条件 高速级大齿轮齿根弯曲强度条件 低速级大齿轮齿根弯曲强度 大齿轮与轴不干涉条件 高速级齿轮副模数的下限,高速级齿轮副模数的上限 低速级齿轮副模数的下限 低速级齿轮副模数的上限 高速级小齿轮齿数的下限 高速级小齿轮齿数的上限 低速级小齿轮齿数的下限,低速级小齿轮齿数的上限 高速级传动比的下限 高速级传动比的上限 齿轮副螺旋角的下限 齿轮副螺旋角的上限 这是一个有17个不等式约束的六维非线性优化问题。,由 共12个线性不等式约束,列出各设计变量系数矩阵A的非零元素为 a( 1,1)=-1;a( 2,1)= 1 a( 3,2)=-1;a( 4,2)= 1 a( 5,3)=-1;a( 6

12、,3)= 1 a( 7,4)=-1;a( 8,4)= 1 a( 9,5)=-1;a(10,5)= 1 a(11,6)=-1;a(12,6)= 1 非线性不等式约束(性能约束)的常数向量 Ceq=0 线性不等式约束(边界约束)的常数向量 b=-2 5,-3.5,6,-14,22,-16,22,-5.8,7,-0.1396,0.2618,设计变量的上界和下界 lb= 2,3.5, 14,16,5.8,0.1396 ub=5, 6, 22, 22, 7, 0.2618 没有等式约束,故对应的系数矩阵参数Aeq和常数向量参数beq定义为空矩阵符号“ ”。 1、编制函数fmincon要调用的两个函数文件

13、: 1)目标函数的函数文件jsq_f.m % 两级斜齿轮减速器总中心距的目标函数 function f=jsq_f(x); a1=x(1)*x(3)*(1+x(5); a2=x(2)*x(4)*(1+31.5/x(5); cb=2*cos(x(6)*pi/180); f=(a1+a2)/cb;,2)非线性不等式约束的函数文件jsq_y.m % 非线性不等式约束函数(g1-g5) functionc,ceq=jsq_y(x); c(1)=cos(x(6)*pi/180).3-3.079e- 6*x(1).3*x(3).3*x(5); c(2)=x(5).2*cos(x(6)*pi/180).3-

14、1.701e-4*x(2).3*x(4).3; c(3)=cos(x(6)*pi/180).2-9.939e-5*(1+x(5)*x(1).3*x(3).2; c(4)=x(5).2*cos(x(6)*pi/180).2-1.076e-4*(31.5+x(5)*x(2).3*x(4).2; c(5)=x(5)*(2*(x(1)+50)*cos(x(6)*pi/180)+x(1)*x(2)*x(3)-x(2)*x(4)*(31.5+x(5); ceq=;,2、编制调用目标函数与非线性约束的函数文件jsq_fy.m % 调用目标函数文件与非线性约束文件 % 设计变量的初始值 x0=2;4;18;2

15、0;6.4;10; % 设计变量的下界与上界 lb=2;3.5;14;16;5.8;8; ub=5;6;22;22;7;15; % 线性不等式约束(g6-g17)中设计变量的系数矩阵 a=zeros(12,6);,a( 1,1)=-1;a( 2,1)= 1; a( 3,2)=-1;a( 4,2)= 1; a( 5,3)=-1;a( 6,3)= 1; a( 7,4)=-1;a( 8,4)= 1; a( 9,5)=-1;a(10,5)= 1; a(11,6)=-1;a(12,6)= 1; % 线性不等式约束中常数项列阵 b=-2;5;-3.5;6;-14;22;-16;22;-5.8;7;-8;15; % 调用多维约束优化函数 % 等式约束参数Aeq,beq定义为空矩阵符号“ ” x,fval=fmincon(jsq_f,x0,a,b,lb,ub,jsq_y),3、程序运行结果 x = 2.0456 (高速级齿轮副模数) 3.6059 (低速级齿轮副模数) 18.5206 (高速级小齿轮齿数) 16.00

温馨提示

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

最新文档

评论

0/150

提交评论