优化上机指导(Matlab优化工具箱)_第1页
优化上机指导(Matlab优化工具箱)_第2页
优化上机指导(Matlab优化工具箱)_第3页
优化上机指导(Matlab优化工具箱)_第4页
优化上机指导(Matlab优化工具箱)_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、 优化设计优化设计及有限元分析上机指导书v2012上机指导书适用专业: 机械工程 课程代码: 8201581 / 6015589 编写单位: 机械工程与自动化学院 编 写 人: 张晓洪 审 核 人: 审 批 人: 目 录 实验一 Matlab基础训练与优化编程 2实验1.1 Matlab基本操作与运算实验1.2 Matlab程序设计与函数实验1.3 一维搜索方法编程实验1.4 共轭梯度法和Powell法无约束优化方法编程实验1.5 复合形法约束优化方法编程实验二 Matlab优化工具箱优化实验实验2.1 单变量函数最小值问题(一维问题) 3实验2.2 线性方程组的应用 5实验2.3 无约束规划

2、的计算方法 7实验2.4 约束非线性规划计算方法 8实验2.5 综合实验 齿轮传动系统优化设计 10主要参考文献 15实验一 Matlab基础训练与优化编程参见实验报告实验2.1 单变量函数最小值问题(一维问题)一、上机目的:1、掌握一维搜索方法的基本概念、算法等知识点; 2、熟悉Matlab软件环境及有关语句和函数的使用方法。二、原理和方法:函数fminbnd是用来寻找单变量函数在固定区间内的最小值点及最小值。MATLAB各工具箱的每个函数,包括优化工具箱函数,都有多种不同的调用格式。其调用格式可使用在线帮助系统查询。函数fminbnd最常用的调用格式为:x, fval = fminbnd(

3、fun, x1, x2)%返回函数fun在区间x1<x<x2上的最小值点x和对应的最小值fval,fun为目标函数的文件名句柄或目标函数的表达式字符串。三、上机内容与步骤:1、熟悉MATLAB软件环境,了解用户界面、掌握帮助系统使用等(重点)。2、如求解函数f(x)=sin(x)在区间0, 2p内的最小值及最小值点,使用如下命令即可:>> x, fval = fminbnd(sin, 0, 2*pi)%符号“”表明目标函数为MATLAB自定义的正弦函数sin.m。x = 4.7124 %最小值点赋值给x。fval = -1.0000 %最小值赋值给fval。3、如果目标

4、函数并不是MATLAB自定义的函数,需要首先定义一个函数M文件,以该文件的名称来代替上述命令行中的“sin”部分。如希望求出在0,1内的最小值及最小值点,首先编写目标函数的M文件opt1.m,如下:function f = myfun(x)%编写函数M文件时,上句代码中的“myfun”并不一定与文件名相同。f = (x3+cos(x)+x*log(x)/exp(x) 然后调用fminbnd函数,在命令窗口中输入:>> x, fval=fminbnd(opt1, 0, 1) x = 0.5223fval = 0.3974%注意此处使用“opt1”而不是“myfun”。4、如果目标函数

5、的表达式较为简单,也可以使用表达式的字符串而不必编写目标函数。如上例也可以使用x, fval=fminbnd('(x3+cos(x)+x*log(x)/exp(x)',0,1)实现。5、目标函数也可表示成内联函数,如: >>f = inline('sin(x)+3'); x = fminbnd(f,2,5);显示结果:x = 4.7124注:在MATLAB软件中,function为关键字,%为注释符号,>>为命令窗口中的提示符。实验2.2 线性方程组的应用一、上机目的1、了解线性规划问题及可行解、最优解的概念 ; 2、掌握Matlab软件

6、关于求解线性规划的语句和方法。二、原理和方法在工程实践中,很多重要的实际问题都是线性的(至少能够用线性函数很好的近似表示),所以我们一般把这些问题化为线性的目标函数和约束条件进行分析,通常将目标函数和约束都是线性表达式的规划问题称为线性规划。其一般形式是: 矩阵形式表示为:线性规划的可行解是满足约束条件的解;线性规划的最优解是使目标函数达到最优的可行解。一般求解线性规划的常用方法是单纯形法和改进的单纯形法,这类方法的基本思路是先求得一个可行解,检验是否为最优解;若不是,可用迭代的方法找到另一个更优的可行解,经过有限次迭代后,可以找到可行解中的最优解或者判定无最优解。三、上机内容与步骤在Matl

7、ab优化工具箱中,linprog函数是使用单纯形法求解下述线性规划问题的函数。命令格式为:其中:A为不等式约束条件矩阵,c、b分别为目标函数的系数向量和不等式约束条件中最右边的数值向量;也可设置解向量的上界vlb和下界vub,即解向量必须满足vlb<=x<=vub;还可预先设置初始解向量x0。如没有不等式约束,而只有等式约束条件时,A= ,b= ;aeq与beq分别为等式约束矩阵;输出的结果:x表示最优解向量;fval表示最优值。某一线性规划问题,如下: 考虑到linprog函数只解决形式如下的线性规划。所以先要将线性规划变换为如下形式:建立M文件如下(如以文件名optest保存)

8、:c = -3;1;1;A = 1 -2 1; 4 -1 -2;b = 11;-3;aeq = 2 0 -1;beq = -1;vlb = 0;0;0;x,fval = linprog(c, A, b, aeq, beq, vlb) 则在命令窗口中输入:optest,可得到计算结果:x1 = 4,x2 = 1,x3 = 9,fval = -2。实验2.3 无约束规划计算方法一、上机目的1、了解无约束规划问题的求解原理与方法 ; 2、会用Matlab软件求解无约束规划问题。 二、原理和方法无约束规划问题的解法一般按目标函数的形式分为两大类:一类是一元函数的一维搜索法,如黄金分割法、插值法等;另一

9、类是求解多元函数的下降迭代法。三、上机内容与步骤在Matlab软件中,求解无约束规划的常用命令是: x=fminunc(fun, x0) 其中,fun函数应预先定义到M文件中。 问题如下:初始点x0 = -2 4首先建立函数文件fun02.mfunction f = fun02(x)f = 3/2*x(1)2 + 1/2*x(2)2 - x(1)*x(2) - 2*x(1)在命令窗口输入: x0=-2;4x=fminunc(fun02,x0)计算结果:极小值为-1,最优点:x1=1,x2=1。实验2.4 约束非线性规划计算方法 一、上机目的1、了解约束非线性规划问题的求解原理与方法; 2、会用

10、Matlab软件求解约束非线性规划问题。 二、原理和方法对于约束非线性规划,随着目标函数和约束条件的不同,解法也不同,一般来说,有三类方法:(1)、将约束问题转化为无约束问题的求解方法;(2)、用线性规划来逼近非线性规划;(3)、直接搜索的各种方法。三、上机内容与步骤约束非线性规划的一般形式为:其中,f(x)为多元实值函数;g(x)为向量函数,并且f(x),g(x)中至少有一个函数是非线性函数的(否则成为线性规划问题)。在Matlab优化工具箱中,fmincon函数是用SQP算法来解决一般的约束非线性规划的函数,其命令格式为:x = fmincon(fun, x0, A, b)x = fmin

11、con(fun, x0, A, b, Aeq, beq)x = fmincon(fun, x0, A, b, Aeq, beq, lb, ub)x = fmincon(fun, x0, A, b, Aeq, beq, lb,ub, nonlcon)对于如下约束非线性规划问题:建立一个M文件 fun05.m,代码如下:function y=fun05(x)y=(x(1)-1)2+(x(2)-2)2+(x(3)-3)2+(x(4)-4)2;存储为fun05.m文件.在命令窗口输入:x0 = 1;1;1;1; A= 1 1 1 1;3 3 2 1;B = 5;10; Aeq = ; Beq = ;L

12、b = 0;0;0;0;x, g = fmincon(fun05,x0,A,B,Aeq,Beq,Lb)计算结果为:X = 0.0000 0.6667 1.6665 2.6668g = 6.3333实验2.5 齿轮传动系统优化设计一、上机目的和任务 机械优化设计是一门实践性很强的课程,通过实际上机计算达到以下目的:1)加深对机械优化设计方法的基本理论和算法的理解。 2)培养学生独立编制计算机程序的能力。3)掌握常用优化方法程序的使用方法。4)培养学生灵活运用优化设计方法解决工程实际问题的能力。二、上机内容某二级斜齿圆柱齿轮减速器(如图1所示),高速级输入功率 =6.2KW,转速=1450r/mi

13、n;总传动比i=31.5,齿轮宽度系数=0.4,齿轮材料和热处理:大齿轮45号钢正火187207HB,小齿轮45号钢调质228255HB,工作寿命10年以上。要求按照总中心距 最小来确定齿轮传动方案。图1 传动系统简图三、上机步骤该优化问题属于约束非线性规划问题,采用MATLAB优化工具箱进行求解。求约束非线性规划问题的MATLAB函数是fmincon,约束非线性规划问题的数学模型表示为: minf(X) s.t. AX b(线性不等式约束) AeqX = beq(线性等式约束)C(X)0(非线性不等式约束) Ceq(X)=0(非线性等式约束) Lb X Ub(边界约束)函数fmincon的使

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

15、b; 线性等式约束条件的系数矩阵Aeq和常数向量beq;设计变量X的下界向量Lb和上界向量Ub;NIc是定义非线性约束条件的函数名;options是设置优化选项参数;P1,P2等是传递给fun的附加参数。参数A, b, Aeq, beq, Lb, Ub, options如果没有定义,可用空矩阵符号“ ”代替。(一) 建立优化设计数学模型将涉及总中心距齿轮传动方案的6个独立参数作为设计变量 X = 式中,分别为高速级和低速级齿轮副的模数;分别为高速级和低速级小齿轮齿数;为高速级传动比; 为齿轮副螺旋角。减速器总中心距最小的目标函数为: 性能约束包括:齿轮接触强度条件、齿根弯曲强度条件、高速级大齿

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

17、(高速级齿轮接触强度条件) (低速级齿轮接触强度条件) (高速级大齿轮弯曲强度条件)(低速级大齿轮弯曲强度条件) (大齿轮与轴不干涉条件) (高速级齿轮副模数的下限) (高速级齿轮副模数的上限) (低速级齿轮副模数的下限) (低速级齿轮副模数的上限) (高速级小齿轮齿数的下限) (高速级小齿轮齿数的上限) (低速级齿轮数的下限) (低速级齿轮齿数的上限) (高速级传动比的下限) (高速级传动比的上限) (齿轮副螺旋角的下限) (齿轮副螺旋角的上限)(二)编制优化设计的M文件(主程序设计、目标函数子程序设计、非线性约束子程序设计)% 两级斜齿轮传动中心距优化设计% 1-减速器中心距优化设计主程序

18、% 设计变量的初始值x0=2;4;18;20;6.4;10;% 设计变量的下界与上界lb=2;3.5;14;16;5.8;8;ub=5;6;22;22;7;15;% 使用多维约束优化命令fmincon(调用目标函数jsqyh_f和非线性约束函数jsqyh_g)% 无线性不等式约束,设计变量的系数矩阵a=和常数项向量b=不需定义% 没有等式约束,则参数:系数矩阵Aeq=和常数项向量beq=不需定义x,fn= fmincon(jsqyh_f,x0, , , , ,lb,ub,jsqyh_g);disp * 两级斜齿轮传动中心距优化设计最优解 *fprintf(1, 高速级齿轮副模数 Mn1 = %

19、3.4f mmn,x(1) fprintf(1, 低速级齿轮副模数 Mn2 = %3.4f mmn,x(2)fprintf(1, 高速级小齿轮齿数 z1 = %3.4f n,x(3) fprintf(1, 低速级小齿轮齿数 z3 = %3.4f n, x(4)fprintf(1, 高速级齿轮副传动比 i1 = %3.4f n,x(5)fprintf(1, 齿轮副螺旋角 beta = %3.4f 度n,x(6)fprintf(1, 减速器总中心距 a12 = %3.4f mmn,fn)% 调用多维约束化非线性约束函数(jsqyh_g)计算最优点x*的性能约束函数值g=jsqyh_g(x);dis

20、p - 最优点的性能约束函数值 -fprintf(1, 高速级齿轮副接触疲劳强度约束函数值 g1= %3.4fn,g(1)fprintf(1, 低速级齿轮副接触疲劳强度约束函数值 g2= %3.4fn,g(2)fprintf(1, 高速级大齿轮齿根弯曲强度约束函数值 g3= %3.4fn,g(3)fprintf(1, 低速级大齿轮齿根弯曲强度约束函数值 g4= %3.4fn,g(4)fprintf(1, 大齿轮齿顶与轴不干涉几何约束函数值 g5= %3.4fn,g(5)% 2-两级斜齿轮减速器总中心距的目标函数(jsqyh_f)function f=jsqyh_f(x);hd=pi/180;a

21、1=x(1)*x(3)*(1+x(5);a2=x(2)*x(4)*(1+31.5/x(5);cb=2*cos(x(6)*hd);f=(a1+a2)/cb;% 3-两级斜齿轮减速器优化设计的非线性不等式的约束函数(jsqyh_g)function g,ceq=jsqyh_g(x);hd=pi/180;g(1)=cos(x(6)*hd)3-3.079e-6*x(1)3*x(3)3*x(5);g(2)=x(5)2*cos(x(6)*hd)3-1.701e-4*x(2)3*x(4)3;g(3)=cos(x(6)*hd)2-9.939e-5*(1+x(5)*x(1)3*x(3)2;g(4)=x(5)2.*cos(x(6)*hd)2-1.076e-4*(31.5+x(5)*x(2)3*x(4)2;g(5)=x(5)*(2*(x(1)+50)*cos(x(6)*hd)+x(1)*x(2)*x(3)-x(2)*x(4)*(31.5+x(5)ceq=;M文件的运行结果为: * 两级斜齿轮传动中心距优化设计最优解 * 高速级齿轮副模数 Mn1 = 2.0471 mm 低速级齿轮副模数 Mn2 = 3.6059

温馨提示

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

评论

0/150

提交评论