1、Fminunc函数 目标函数的文件(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); %定义目标函数 求最优化解时的命令程序: x0=[25,45]; %初始点 [x,Fmin]=fminunc(@sc_wysyh,x0); %求优语句 fprintf(1,'截面高度h x(1)=%3.4fmm\n',x(1)) fprintf(1,'斜边夹角θ x(2)=
2、3.4f度\n',x(2)) fprintf(1,'截面周长s f=%3.4fmm\n',Fmin) 计算结果 截面高度h x(1)=192.9958mm 斜边夹角θ x(2)=60.0005度 截面周长s f=668.5656mm Fmincon函数 %两级斜齿轮减速器总中心距目标函数 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、减速器优化设计的非线性不等式约束函数 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)
4、50)*cos(x(6)*hd)+x(1)*x(2)*x(3))-x(2)*x(4)*(31.5+x(5)); ceq=[]; 编制优化设计的M文件 x0=[2;4;18;20;6.4;10];%设计变量的初始值 lb=[2;3.5;14;16;5.8;8];%设计变量的下限 ub=[5;6;22;22;7;15];%设计变量的上限 [x,fn]=fmincon(@jsqyh_f,x0,[],[],[],[],lb,ub,@jsqyh_g); disp ' ************两级斜齿轮传动中心距优化设计最优解*************' fprintf(1,'
5、 高速级齿轮副模数 Mn1=%3.4fmm\n',x(1)) fprintf(1,' 低速级齿轮副模数 Mn2=%3.4fmm\n',x(2)) fprintf(1,' 高速级小齿轮齿数 z1=%3.4fmm\n',x(3)) fprintf(1,' 低速级小齿轮齿数 z2=%3.4fmm\n',x(4)) fprintf(1,' 高速级齿轮副传动比 i1=%3.4fmm\n',x(5)) fprintf(1,' 齿轮副螺旋角 beta=%3.4fmm\n',
6、x(6)) fprintf(1,' 减速器总中心距 a12=%3.4fmm\n',fn) g=jsqyh_g(x); disp ' ==========最优点的性能约束函数值==========' fprintf(1,' 高速级齿轮副接触疲劳强度约束函数值 g1=%3.4fmm\n',g(1)) fprintf(1,' 低速级齿轮副接触疲劳强度约束函数值 g2=%3.4fmm\n',g(2)) fprintf(1,' 高速级大齿轮齿根弯曲强度约束函数值 g3=%3.4fmm\n',g(3)) fprintf(1,'
7、 低速级大齿轮齿根弯曲强度约束函数值 g4=%3.4fmm\n',g(4)) fprintf(1,' 大齿轮顶圆与轴不干涉几何约束函数值 g5=%3.4fmm\n',g(5)) 处理结果: ************两级斜齿轮传动中心距优化设计最优解************* 高速级齿轮副模数 Mn1=2.0461mm 低速级齿轮副模数 Mn2=3.6059mm 高速级小齿轮齿数 z1=18.5156mm 低速级小齿轮齿数 z2=16.0000mm 高速级齿
8、轮副传动比 i1=5.8000mm 齿轮副螺旋角 beta=8.0000 减速器总中心距 a12=317.4186mm ==========最优点的性能约束函数值========== 高速级齿轮副接触疲劳强度约束函数值 g1=0.0000mm 低速级齿轮副接触疲劳强度约束函数值 g2=0.0000mm 高速级大齿轮齿根弯曲强度约束函数值 g3=-1.0042mm 低速级大齿轮齿根弯曲强度约束函数值 g4=-15.1854mm 大齿轮顶圆与轴不干涉几何约束函数
9、值 g5=-761.8043mm 单级圆柱齿轮减速器优化: 首先在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)*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) 由于约束条件中
10、有非线性约束,故需要编写一个描述非线性约束条件的M文件mycon.m: function[c,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/(x(1)*x(2)*x(3)^2*(0.169+0.006666*x(2)-0.0000854*x(2)^2))-400;70
11、98/(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*10^12)-5.5;(1/(x(6)^3))*sqrt((2850000*x(4)/(x(2)*x(3)))^2+6*10^13)-5.5]; ceq=[]; 最后在command window里输入: x0=[230;21;8;420;120;160];%给定初始值
12、 [x,fval,exitflag,output]=fmincon(@myfun,x0,[],[],[],[],[],[],@myobj,output) %调用优化过程 直齿圆柱齿轮传动的优化设计 一、问题描述: 现有一单级渐开线直齿圆柱齿轮减速器,其输入功率N=280kW,输入转速n1=980r/min,传动比i=5。小齿轮为实体结构,大齿轮为腹板式结构(带有四个减轻孔),两齿轮各部分尺寸的符号如图一所示: 原用常规设计方法的设计结果为:齿宽B=B2=13cm,小齿轮齿数z1=21,模数m=0.8cm
13、l1=42cm,ds1=12cm,ds2=16cm。现要求在保证承载能力的条件下,通过优选上述有关参数,使减速器的体积达到最小。 二、建立优化设计目标函数: 齿轮传动优化设计中,设计变量一般选为齿轮传动的基本几何参数或性能参数,例如齿数、模数、齿宽系数、传动比、螺旋角、变位系数和中心距分离系数等。 齿轮传动的优化目标,较常见的是体积或质量最小,传动功率最大,工作寿命最长,振动最小,启动功率最小等。 现在选体积最小为优化目标,而减速器的体积主要是取决于内部零件(齿轮和轴)的尺寸大小,在齿轮和轴的结构尺寸确定之后,箱体的尺寸将随之确定,因此将齿轮和轴的总体积达到最小作为优化目标。
14、减速器内部有两个齿轮和两根轴,为了简化计算,将轴视为光轴,则有 式中:,——两轴体积,cm3; ,——两齿轮体积,cm3 ,——两轴的直径,cm; ,,——轴的长度,cm; ,——两齿轮的分度圆直径,cm, ,; ——两齿轮的模数,cm; ,——两齿轮的宽度,近似取,cm。 根据结构设计经验公式,齿轮各部分尺寸关系为: 并取: 优化设计中的设计变量取为: 将目标函数整理后得到: 三、确定约束条件
15、 (1)为了避免发生根切,不小于最小齿数,即,于是得约束条件 (2)为了保证齿轮的承载能力,同时避免载荷沿齿宽分布严重不均,要求,由此得: (3)传递动力的齿轮,模数一般应该大于2mm,并且去标准系列值,所以得: (4)根据工艺装备条件,要求大齿轮直径不得超过1500mm,于是小齿轮直径相应的不能超过300mm,即,故得: (5)主、从动轴直径范围按照经验取为,,所以有 (6)轴的支撑跨距按照结构关系,其中为箱体内壁到轴承中心线的距离,现取,则有: (7)按齿轮
16、的接触疲劳强度条件,有: 式中:——载荷系数,取; ——小齿轮传递的扭矩,由功率和转速计算可得 ; ——齿轮许用永接触应力,现按原材料及原设计数据,取; ——齿轮传动的中心距,,; 将以上个参数分别代入前面的不等式,整理后得: (8)按齿轮的弯曲疲劳强度条件,有 式中:——小齿轮分度圆直径,; ——齿轮的许用弯曲应力,现安原材料及原设计数据取小齿轮的许用弯曲应力,大齿轮的许用弯曲应力; ——齿形系数,对于标准齿轮,通过曲线拟合得 小齿轮 ; 大齿轮 所以
17、有: (9)主动轴刚度条件 式中:——作用在小齿轮上的法向压力,,,其中为齿轮压力角,取; ——轴的惯性矩,对圆形剖面,; ——轴材料的弹性模量,; ——轴的许用挠度,取。 所以可以得到: (10)主动轴的弯曲强度条件: 式中:——轴上的扭矩,; ——轴上的弯矩,,; ——考虑扭矩和弯矩的作用性质差异的系数,取; ——轴的许用弯曲应力,; ——轴的抗弯剖面系数,对实心轴。 带入各参数,并整理得: (11)仿
18、照前面的处理方法可得从动轴弯曲强度条件: 总结上述各式,可得到优化设计的数学模型为: 即一个具有十六个不等式约束的六维优化问题。 四、优化方法选择及优化结果: 1、采用MATLAB工具箱进行优化 首先在当前MATLAB的工作目录下建立目标函数文件myfun.m文件: function f =myfun(x) f=0.78539815*(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.
19、8*x(1)*x(2)*x(3)*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) 然后建立约束条件程序confun1.m function[c,ceq]=constraint(x) c(1)=x(2)*x(3)-33 c(2)=16-x(1)/x(3) c(3)=x(1)/x(3)-35 c(4)=44163/(x(2)*x(3)*sqrt(x(1)))-855 c(5)=-261+7098/(x(1)*x(2)*x(3)^2*(0.169+0.6666/100*x(2)-0.854/100
20、00*x(2)^2)) c(6)=-213+7098/(x(1)*x(2)*x(3)^2*(0.2824+0.177/100*x(2)-0.314/10000*x(2)^2)) c(7)=-0.03*x(4)+0.01233*x(4)^3/x(2)/x(3)/(x(5)^4) c(8)=-55+1/(x(5)^3)*sqrt((29050*x(4)/x(3)/x(2))^2+(0.58*27300)^2) c(9)=-55+1/(x(6)^3)*sqrt((29050*x(4)/x(3)/x(2))^2+(0.58*5*27300)^2) c(10)=0.2-x(3) c(11)=
21、10-x(5) c(12)=13-x(6) c(13)=x(5)-15 c(14)=x(6)-20 c(15)=4-x(4)+x(1)+0.5*x(6) ceq=[]; 在命令窗口键入: x0=[13,21,0.8,42,12,16]; [x,f]=fmincon(@myfun,x0,[],[],[],[],[],[],@constraint) 优化结果为: Optimization terminated: first-order optimality measure less than options.TolFun and maximum constraint vi
22、olation is less than options.TolCon. Active inequalities (to within options.TolCon = 1e-006): lower upper ineqlin ineqnonlin 2 4 6 11
23、 12 15 x = 10.4190 24.5739 0.6512 20.9190 10.0000 13.0000 f = 2.9478e+004 原体积: >> x=[13,21,0.8,42,12,16] x = 13.0000 21.0000 0.8000 42.0000 12.0000 16.0000 >> f=0.78539815*(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)*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) f = 5.0513e+004 体积减少:(5.0513-2.9478)/5.0513*100%=41.6%






