资源描述
精选优质文档-倾情为你奉上上机指导书适用专业: 机械工程 课程代码: / 编写单位: 机械工程与自动化学院 编 写 人: 张晓洪 审 核 人: 审 批 人: 目 录 实验一 Matlab基础训练与优化编程 2实验1.1 Matlab基本操作与运算实验1.2 Matlab程序设计与函数实验1.3 一维搜索方法编程实验1.4 共轭梯度法和Powell法无约束优化方法编程实验1.5 复合形法约束优化方法编程实验二 Matlab优化工具箱优化实验实验2.1 单变量函数最小值问题(一维问题) 3实验2.2 线性方程组的应用 5实验2.3 无约束规划的计算方法 7实验2.4 约束非线性规划计算方法 8实验2.5 综合实验 齿轮传动系统优化设计 10主要参考文献 15实验一 Matlab基础训练与优化编程参见实验报告实验2.1 单变量函数最小值问题(一维问题)一、上机目的:1、掌握一维搜索方法的基本概念、算法等知识点; 2、熟悉Matlab软件环境及有关语句和函数的使用方法。二、原理和方法:函数fminbnd是用来寻找单变量函数在固定区间内的最小值点及最小值。MATLAB各工具箱的每个函数,包括优化工具箱函数,都有多种不同的调用格式。其调用格式可使用在线帮助系统查询。函数fminbnd最常用的调用格式为:x, fval = fminbnd(fun, x1, x2)%返回函数fun在区间x1x x, fval = fminbnd(sin, 0, 2*pi)%符号“”表明目标函数为MATLAB自定义的正弦函数sin.m。x = 4.7124 %最小值点赋值给x。fval = -1.0000 %最小值赋值给fval。3、如果目标函数并不是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、如果目标函数的表达式较为简单,也可以使用表达式的字符串而不必编写目标函数。如上例也可以使用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软件关于求解线性规划的语句和方法。二、原理和方法在工程实践中,很多重要的实际问题都是线性的(至少能够用线性函数很好的近似表示),所以我们一般把这些问题化为线性的目标函数和约束条件进行分析,通常将目标函数和约束都是线性表达式的规划问题称为线性规划。其一般形式是: 矩阵形式表示为:线性规划的可行解是满足约束条件的解;线性规划的最优解是使目标函数达到最优的可行解。一般求解线性规划的常用方法是单纯形法和改进的单纯形法,这类方法的基本思路是先求得一个可行解,检验是否为最优解;若不是,可用迭代的方法找到另一个更优的可行解,经过有限次迭代后,可以找到可行解中的最优解或者判定无最优解。三、上机内容与步骤在Matlab优化工具箱中,linprog函数是使用单纯形法求解下述线性规划问题的函数。命令格式为:其中:A为不等式约束条件矩阵,c、b分别为目标函数的系数向量和不等式约束条件中最右边的数值向量;也可设置解向量的上界vlb和下界vub,即解向量必须满足vlb=x=vub;还可预先设置初始解向量x0。如没有不等式约束,而只有等式约束条件时,A= ,b= ;aeq与beq分别为等式约束矩阵;输出的结果:x表示最优解向量;fval表示最优值。某一线性规划问题,如下: 考虑到linprog函数只解决形式如下的线性规划。所以先要将线性规划变换为如下形式:建立M文件如下(如以文件名optest保存):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软件求解无约束规划问题。 二、原理和方法无约束规划问题的解法一般按目标函数的形式分为两大类:一类是一元函数的一维搜索法,如黄金分割法、插值法等;另一类是求解多元函数的下降迭代法。三、上机内容与步骤在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、会用Matlab软件求解约束非线性规划问题。 二、原理和方法对于约束非线性规划,随着目标函数和约束条件的不同,解法也不同,一般来说,有三类方法:(1)、将约束问题转化为无约束问题的求解方法;(2)、用线性规划来逼近非线性规划;(3)、直接搜索的各种方法。三、上机内容与步骤约束非线性规划的一般形式为:其中,f(x)为多元实值函数;g(x)为向量函数,并且f(x),g(x)中至少有一个函数是非线性函数的(否则成为线性规划问题)。在Matlab优化工具箱中,fmincon函数是用SQP算法来解决一般的约束非线性规划的函数,其命令格式为: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(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 = ;Lb = 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/min;总传动比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的使用格式为: 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和常数向量b; 线性等式约束条件的系数矩阵Aeq和常数向量beq;设计变量X的下界向量Lb和上界向量Ub;NIc是定义非线性约束条件的函数名;options是设置优化选项参数;P1,P2等是传递给fun的附加参数。参数A, b, Aeq, beq, Lb, Ub, options如果没有定义,可用空矩阵符号“ ”代替。(一) 建立优化设计数学模型将涉及总中心距齿轮传动方案的6个独立参数作为设计变量 X = 式中,分别为高速级和低速级齿轮副的模数;分别为高速级和低速级小齿轮齿数;为高速级传动比; 为齿轮副螺旋角。减速器总中心距最小的目标函数为: 性能约束包括:齿轮接触强度条件、齿根弯曲强度条件、高速级大齿轮与低速轴不干涉条件等。根据齿轮材料与热处理规范,得到齿面许用接触应力=518.75MPa,齿根许用弯曲应力=153.5MPa和=141.6MPa.。根据传递功率和转速,在齿轮强度计算条件中代入有关数据:高速轴转矩 =41690Nmm,中间轴转矩 =40440 Nmm,高速轴和低速轴载荷系数 =1.225和 =1.204。边界约束包括:根据传递功率和转速估计高速级和低速级齿轮副模数的范围;综合考虑传动平稳、轴向力不能太大、轴齿轮的分度圆直径不能太小与两级传动的大齿轮浸油深度大致相近等因素,估计两级传动大齿轮的齿数范围、高速级传动比范围和齿轮副螺旋角范围等。因此,建立如下17个不等式约束条件: (高速级齿轮接触强度条件) (低速级齿轮接触强度条件) (高速级大齿轮弯曲强度条件)(低速级大齿轮弯曲强度条件) (大齿轮与轴不干涉条件) (高速级齿轮副模数的下限) (高速级齿轮副模数的上限) (低速级齿轮副模数的下限) (低速级齿轮副模数的上限) (高速级小齿轮齿数的下限) (高速级小齿轮齿数的上限) (低速级齿轮数的下限) (低速级齿轮齿数的上限) (高速级传动比的下限) (高速级传动比的上限) (齿轮副螺旋角的下限) (齿轮副螺旋角的上限)(二)编制优化设计的M文件(主程序设计、目标函数子程序设计、非线性约束子程序设计)% 两级斜齿轮传动中心距优化设计% 1-减速器中心距优化设计主程序% 设计变量的初始值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 = %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);disp - 最优点的性能约束函数值 -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;a1=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 mm 高速级小齿轮齿数 z1 = 18.5067 低速极小齿轮齿数 z3 = 16.0000 高速级齿轮副传动比 i1 = 5.8000 齿轮副螺旋角 beta = 8.0000 度 减速器总中心距 a12 = 317.4186 mm最优点的性能约束函数值高速机齿轮副接触疲劳强度约束函数值 g1= 0.0000低速机齿轮副接触疲劳强度约束函数值 g2= 0.0000高速级大齿轮齿根弯曲强度约束函数值 g3= -1.0052低速级大齿轮齿根弯曲强度约束函数值 g4= -15.1854大齿轮齿顶与轴不干涉几何约束函数值 g5= -761.7929(三) 优化结果处理经检验,最优点位于性能约束、 和边界约束 、 、 的交集上。、高速级和低速级齿轮副模数按照规范圆整为标准值 =2mm和 =4mm;高速级小齿轮齿数圆整为整数 =19;根据高速机传动比 =5.8,则高速级大齿轮齿数为 = =110;根据低速级传动比 =5.413,则高速级大齿轮齿数为 =87。 减速器总中心距: 如果将减速器总中心距圆整为 =340mm,则齿轮副螺旋角调整为 。四、上机报告要求上机结束后,学生应完成一份完整的上机报告(手写稿),主要内容包括:1、 上机目的及上机内容。2、 优化方法的基本原理。3、 优化程序代码。4、 计算结果及分析。主要参考文献1. 李志峰,机械优化设计M,北京:高等教育出版社,2011.32. 金全意,优化设计学习与典型题辅导M,北京:清华大学出版社,2013.73. 马昌凤,最优化方法及其Matlab程序设计M,北京:科学出版社,2013.54. 刘超,Matlab基础与实践教程M,北京:机械工业出版社,2011.9专心-专注-专业
展开阅读全文