1、- 1 -目 录1.多维有约束优化 - 3 -1.1 题目 - 3 -1.2 已知条件 - 3 -1.3 建立优化模型 - 3 -1.3.1 问题分析及设计变量的确定 - 3 -1.3.2 目标函数的确定 - 4 -1.3.3 约束条件的建立 .- 4 -1.4 优化方法的选择 - 5 -1.5 数学模型的求解 - 5 -1.5.1 确定数学优化模型 .- 5 -1.5.2 运用 Matlab 优化工具箱对数学模型求解 .- 6 -1. 5.3 最优解以及结果分析 .- 7 -2.多维无约束优化 - 8 -2.1 题目 - 8 -2.2 确定优化设计模型 - 8 -2.3 运用 Matlab
2、优化工具箱对数学模型求解 - 9 -2.3.1 编写目标函数 .- 9 -2.3.2 绘制该函数的平面和空间等值线 .- 9 -2.3.3 利用 matlab 工具箱 fminunc 函数对该模型进行求解 - 11 -2.3.3 求解结果 - 11 - 2 -1.多维有约束优化1.1 题目对一对单级圆柱齿轮减速器,以体积最小为目标进行多维有约束优化设计。1.2 已知条件已知数输入功 p=58kw,输入转速 n1=1000r/min,齿数比 u=5,齿轮的许用应力 H=550Mpa,许用弯曲应力 F=400Mpa。1.3 建立优化模型1.3.1 问题分析及设计变量的确定由已知条件得求在满足零件刚
3、度和强度条件下,使减速器体积最小的各项设计参数。由于齿轮和轴的尺寸(即壳体内的零件)是决定减速器体积的依据,故可按它们的体积之和最小的原则建立目标函数。单机圆柱齿轮减速器的齿轮和轴的体积可近似的表示为: 328)6.10(5.0.2 )10(.87). 5.)(2.( 212 2120 22 zzzzzz zz gz dldmubd mubdlc Dcv 式中符号意义由结构图给出,其计算公式为bcduzdzDzg2.0)6.10(25.,61, 2102由上式知,齿数比给定之后,体积取决于 b、z 1 、m 、l 、 dz1 和 dz2 六个参数,则设计变量可取为TzTlxxx 2116543
4、21 - 3 -1.3.2 目标函数的确定根据以上分析,可知,该齿轮减速器以体积最小的目标函数为: min)3286.18.0 9.05754(398)( 6264221 25161131 xxxx xf1.3.3 约束条件的建立(1)为避免发生根切,应有 minz17,得 0)(2xg(2)齿宽应满足 maxindb, in和 max为齿宽系数 d的最大值和最小值,一般取min=0.9, ax=1.4,得: 04.1)()9.032132xg(3)动力传递的齿轮模数应大于 2mm,得 )(34(4)为了限制大齿轮的直径不至过大,小齿轮的直径不能大于 max1d,得0)(325xg(5)齿轮轴
5、直径的范围: maminzzd得 02)(135)(69876xg(6)轴的支撑距离 l按结构关系,应满足条件: l2min5.zdb(可取 min=20) ,得45.)(6110xx(7)齿轮的接触应力和弯曲应力应不大于许用值,得- 4 -04)1039.107.284.0(79)( 856195)(1465)( 223113232 xxxxgx(8)齿轮轴的最大挠度 ma不大于许用值 ,得 .)(.)( 44532414 xxxg(9)齿轮轴的弯曲应力 w不大于许用值 w,得 05.16)085.2(1)( .4.2.33616 1236315 xxgx1.4 优化方法的选择 由于该问题有
6、 6 个设计变量,16 个约束条件的优化设计问题,采用传统的优化设计方法比较繁琐,比较复杂,所以选用 Matlab 优化工具箱中的 fmincon 函数来求解此非线性优化问题,避免了较为繁重的计算过程。1.5 数学模型的求解1.5.1 确定数学优化模型将已知及数据代入上式,该优化设计的数学优化模型表示为:(1)求变量: 123456,xx(2)目标函数: )328092.0 857(59)(min6564 246316311 312xx xf(3)约束条件:- 5 -013)(5)(024.1)(9.)(768763541332xgxg 03.)(04.17)( 04)109.1728.985
7、6.19()( 05)14504.)(244534 223322609 xxxg xxxg 05.16)085.2(1)( 22343616 122346315 xxg1.5.2 运用 Matlab 优化工具箱对数学模型求解(1)首先在 Matlab 优化工具箱中编写目标函数的 M 文件 myfun.m,返回 x 处的函数值 f:function f = myfun(x)f=0.785398*(4.75*x(1)*x(2)2*x(3)2+85*x(1)*x(2)*x(3)2-85*x(1)*x(3)2+0.92*x(1)*x(6)2-x(1)*x(5)2+0.8*x(1)*x(2)*x(3)*
8、x(6)-1.6*x(1)*x(3)*x(6)+x(4)*x(5)2+x(4)*x(6)2+28*x(5)2+32*x(6)2)(2)由于约束条件中有非线性约束,故需要编写一个描述非线性约束条件的 M 文件mycon.m:functionc,ceq=myobj(x)c=17-x(2);0.9-x(1)/(x(2)*x(3);x(1)/(x(2)*x(3)-1.4;2-x(3);x(2)*x(3)-300;100-x(5);x(5)-150;130-x(6);x(6)-200;x(1)+0.5*x(6)-x(4)-40;1486250/(x(2)*x(3)*sqrt(x(1)-550; 7098
9、/(x(1)*x(2)*x(3)2*(0.169+0.006666*x(2)-0.0000854*x(2)2)-400;7098/(x(1)*x(2)*x(3)2*(0.2824+0.00177*x(2)-0.0000394*x(2)2)-400;117.04*x(4)4/(x(2)*x(3)*x(5)4)-0.003*x(4);(1/(x(5)3)*sqrt(2850000*x(4)/(x(2)*x(3)2+2.4*1012)-5.5;(1/(x(6)3)*sqrt(2850000*x(4)/(x(2)*x(3)2+6*1013)-5.5;- 6 -ceq=;(3)最后求解,调用目标函数和约
10、束条件,用 matlab 软件中工具箱里的 fmincon 函数,求解有约束的优化,在 command window 里输入:x0=230;21;8;420;120;160;%给定初始值x,fval,exitflag,output=fmincon(myfun,x0,myobj,output) %调用优化过程1. 5.3 最优解以及结果分析运行结果如下图所示:x =123.356599.85181.7561147.3757150.4904129.5096fval =2.3168e+007exitflag =-2output = iterations: 43funcCount: 563lsstep
11、length: 1stepsize: 2.0356e-006algorithm: medium-scale: SQP, Quasi-Newton, line-searchfirstorderopt: 1.9956e+007constrviolation: 213.1511message: 1x750 char故优化后的最终结果为x=123.3565 99.8517 1.7561 147.3157 150.4904 129.5096f(x)=2.36e*107由于齿轮模数应为标准值,齿数必须为整数,其它参数也要进行圆整,所以最优解不能直接采用,按设计规范,经标准化和圆整后:x=124 100 2
12、 148 150 130f(x)=6.16 *107结果对比分析:若按初始值减速器的体积 V 大约为 6.32107mm3,而优化后的体积 V 则为- 7 -6.16107mm3,优化结果比初始值体积减少为:V 1(6.1610 7/6.32107)100%2.5%所以优化后的体积比未优化前减少了 2.5%,说明优化结果相对比较成功。2.多维无约束优化在机械设计问题中,难以避免生产,加工,装配,经济性等问题,故少有无约束优化设计问题。在本次试验中,针对一个管道流量问题的二维函数,设计了一个非线性无约束优化设计问题,并加以求解。2.1 题目已知梯形截面管道的参数:底边长 c,高度 h,斜边与底边
13、的夹角 ,横截面积A=64516mm2,如图 1 所示。管道内液体的流速与管道截面的周长 s 的倒数成比例关系。试按照使液体流速最大的条件,确定管道的参数。 图 1 梯形截面管道参数2.2 确定优化设计模型(1)管道截面周长: 2sinhc(2)管道截面面积: 2cot6451Ah由此可得底边长度的关系式:(与 h 和 有关)- 8 -26451cot6451cothch将 c 代入管道横截面周长的计算式中,得到管道截面周长关系式: 6451264512cotsintansihsh因此,取与管道界面周长有关的独立参数 h 和 作为设计变量,有:12x为使液体流速最大,取管道截面周长最小作为目标
14、函数,即:Min 11122645()tansixfx故该函数的数学模型:(1)变量: 12,x(2)目标函数:Min 11122645()tansixfx2.3 运用 Matlab 优化工具箱对数学模型求解2.3.1 编写目标函数首先在 Matlab 优化工具箱中编写目标函数的 M 文件 sc_wysyh.m,返回 x 处的函数值f:% 1-二维无约束优化目标函数文件(sc_wysyh.m)function f=sc_wysyh(x)a=64516;hd=pi/180;f=a/x(1)-x(1)/tan(x(2)*hd)+2*x(1)/sin(x(2)*hd);2.3.2 绘制该函数的平面和
15、空间等值线% 2-绘制水槽截面周长等高线和曲面图的程序% 按(初值,终值,等分数) 产生等间隔向量 xx1,xx2xx1=linspace(100,300,25);xx2=linspace(30,120,25);% 产生两个5x10 的网格矩阵 x1,x2- 9 -x1,x2=meshgrid(xx1,xx2);% 定义目标函数a=64516;hd=pi/180;f=a./x1-x1./tan(x2*hd)+2*x1./sin(x2*hd);% 将整个图形窗口分隔成 2 个子窗口,取左边窗口figure(1);% 绘制等值线并标注函数值h=contour(x1,x2,f);clabel(h);
16、% 定义左边窗口坐标轴刻度范围axis(100 300 30 120)% 标注左边窗口和坐标轴xlabel(高度 h (mm)ylabel(倾斜角 theta (度)title(目标函数 (截面周长)等值线)% 将整个图形窗口分隔成 2 个子窗口,取右边窗口figure(2);% 绘制曲面图surfc(x1,x2,f);% 定义右边窗口坐标轴刻度范围 aaxis(100 300 30 120 600 1200)% 标注右边窗口xlabel(高度 bf h (mm);ylabel(斜边夹角 bf theta(度);zlabel(目标函数值bf f (mm);title(目标函数 (截面周长)曲面
17、图)运行结果,目标函数的曲面如图 2,目标函数等值曲线如图 3。- 10 -图 2 截面周长曲面图图 3 截面周长等值线- 11 -2.3.3 利用 matlab 工具箱 fminunc 函数对该模型进行求解% 初始点x0=25;45;% 调用梯度法搜索x,Fmin,exitflag,output=fminunc(sc_wysyh,x0);disp * 输出最优解 *fprintf (1, 截面高度 h x(1)* = %3.4f mm n,x(1)fprintf (1, 斜边夹角 theta x(2)* = %3.4f 度 n,x(2)fprintf (1, 截面周长 s f* = %3.4
18、f mm n,Fmin)2.3.3 求解结果运行上述程序,可以解得如下参数:exitflag =1output = iterations: 18funcCount: 60stepsize: 1firstorderopt: 6.2179e-005algorithm: medium-scale: Quasi-Newton line searchmessage: 1x85 char* 输出最优解 *截面高度 h x(1)* = 192.9958 mm 斜边夹角 theta x(2)* = 60.0005 度 截面周长 s f* = 668.5656 mm最终圆整高度 h = 193 mm,斜边夹角 =60。求解周长 s= 668.5656mm,偏差几乎可以忽略。