1、机械优化设计课程作业 作业题目:一级斜齿圆柱齿轮减速器的优化设计学 院:机械工程学院专 业:机械制造及其自动化班 级:机研1001班学 号:2009020799学生姓名:李 莹指导教师:黄 勤 教 授2010年 7 月 15 日一级斜齿圆柱齿轮减速器的优化设计一、引言 一随着现代计算技术的发展和应用,在机械设计领域,已经可以用现代化的设计方法和手段,从众多的设计方案中寻找出最佳的设计方案,从而大大提高设计效率和质量。 在进行机械设计时,都希望得到一个最优方案,这个方案既能满足强度、刚度、稳定性及工艺性能等方面的要求,又使机械重量最轻、成本最低和传动性能最好。然而,由于传统的常规设计方案是凭借设
2、计人员的经验直观判断,靠人工进行有限次计算做出的,往往很难得到最优结果。应用最优化设计方法,使优化设计成为可能。 斜齿圆柱齿轮减速器是一种使用非常广泛的机械传动装置,它具有结构紧凑、传动平稳和在不变位的情况下可凑配中心距等优点。我国目前生产的减速器还存在着体积大,重量重、承载能力低、成本高和使用寿命短等问题,对减速器进行优化设计,选择最佳参数,是提高承载能力、减轻重量和降低成本等完善各项指标的一种重要途径。二、优化模型 本设计是要在满足零件的强度和刚度的条件下,求出使减速器的体积最小的各项参数。1 、设计变量如图1 所示,选取齿轮宽度b、小齿轮齿数 、齿轮模数 、两轴轴承之间的支撑跨距 、两齿
3、轮的内孔直径 、为设计变量。设计变量:=b 2、建立目标函数由于齿轮和轴的体积是决定减速器体积的依据,因此可按它们的体积最小的原则来建立目标函数。根据齿轮几何尺寸及齿轮结构尺寸的计算公式,壳体内的齿轮和轴的体积可近似地表示为: 式中,;。 目标函数为:3、确定约束条件1) 齿数应大于不发生根切的最小齿数 -02) 齿宽应满足,和为齿宽系数的最大值和最小值,一般取=0.9,=1.4。 -0 -03) 传递动力的齿轮,模数应大于2mm。 2-04) 为了限制大齿轮的直径不致于过大,小齿轮的直径要加以限制。 5) 齿轮内孔直径的取值范围应在:。 6) 两轴承之间的支撑跨距按结构关系应满足:,为箱体内
4、壁距齿轮端面的距离,可取。 7) 齿轮应满足强度要求 式中,接触应力和弯曲应力的计算公式分别为: =8) 齿轮轴的最大挠度应不大于许用值。 9) 齿轮轴的弯曲应力应不大于许用值。 这是一个有6个随机变量、16个约束条件的优化设计问题,采用惩罚函数法,用计算机编程,即可求出最优解。三、 选择算法的特点及程序框图 惩罚函数法即序列无约束极小化方法,它的基本原理是将有约束问题化为无约束问题,亦即将原来的目标函数和约束函数,按一定方式构成一个新的函数,当这个新的函数向原目标函数逼近时,它的最优解也就是原问题的最优解。惩罚函数法又分为:1、 内点惩罚函数法 内点惩罚函数法简称内点法,这种方法将新的目标函
5、数定义于可行域内,序列迭代点在可行域内逐步逼近约束边界上的最优点。此方法的优点在于计算过程中每一个中间结果都是可行的,但它要求初始点为可行点,只能用来求解具有不等式约束的优化问题。内点惩罚函数法如图1所示,其中X(0)为初始惩罚因子;C为递减系数;为收敛精度:2、 外点惩罚函数法 外点惩罚函数法简称外点法,这种方法和内点法相反,新目标函数定义在可行域之外,序列迭代点从可行域之外逐渐逼近约束边界上的最优点。此方法的优点在于适用于求解不等式或等式约束问题,并对初始点无要求,但中间结果不满足约束条件。3、 混合惩罚函数法 混合惩罚函数法简称混合法,这种方法是把内点法和外点法结合起来,用来求解同时具有
6、等式约束和不等式约束函数的优化问题。四、 计算实例 设计以一级斜齿圆柱齿轮减速器,已知输入功率P =58kW,输入转速n1 = 1 000r/ min ,齿数比u = 5 ,齿轮的许用接触应力= 550MPa ,许用弯曲应力 =400MPa。 以体积最小为目标进行优化设计。 将已知量代入上述各式,其数学模型可表示为: 约束条件为: 17-0 0.9- = =-400 式中,=2.65、=2.226,分别为主动齿轮和从动齿轮的齿形系数; =1.58、=1.764,分别为主动齿轮和从动齿轮的应力校正系数; 以惩罚函数法求解,初始方案为:230 21 8 420 120 160,五、C语言程序#in
7、clude #include #include #define PI 3.1415926#define kkg 16 /*定义约束条件个数*/double r0=1; /*定义罚因子 */double DealPos(double Ang1,double x)int i;double Fai;double o4,s4,c4,h1,h2;o4=(x3+Ang1)*PI/180;s4=sin(o4);c4=cos(o4);h1=atan(x0*s4/(1-x0*c4);h2=x0*x0+1-2*x0*c4;h2=(h2-x1*x1+x2*x2)/(2*x2*sqrt(h2);if(h21e-30)
8、 h2=atan(sqrt(1-h2*h2)/h2);else h2=PI/2-atan(h2/sqrt(1-h2*h2);Fai=h1+h2;return(Fai);/*输入变量:x-设计变量数组 */double objf(double x)int i;double b,b1,s,ff;b=DealPos(0,x);ff=0;for(i=1;i=20;i+)b1=b-DealPos(i*9,x);s=b1-30*sin(i*PI/20)*PI/180;ff=ff+s*s;return(ff);/*约束条件优化子程序 */*输入变量:x-设计变量数组*/*输出变量:g-约束条件数组*/voi
9、d strain(double x,double g)g0=17-x1; g1=0.9-x0/(x1*x2);g2=x0/(x1*x2)-1.4;g3=2-x2; g4=x1*x2-300.;g5=100-x4;g6=x4-150; g7=130-x5;g8=x5-200;g9=x0+0.5*x5-x3-40;g10=1486250/(x1*x2*sqrt(x0)-550;g11=53366522/(x0*x1*x2*x2)-400;g12=25214684/(x0*x1*x2*x2)-400;g13=(117.04*x3*x3*x3*x3)/(x1*x2*x4*x4)-0.003*x3;g1
10、4=sqrt(2.85*pow(10,6)*x3)/(x1*x2)+2.4*pow(10,12)/pow(x4,3)-5.5;g15=sqrt(2.85*pow(10,6)*x3)/(x1*x2)+6*pow(10,3)/pow(x5,3)-5.5;/*构造罚函数*/double ldf(double *x)int i;double ff,sg;double gkkg;sg=0.;strain(x,g);for(i=0;i0) sg=sg+r0/gi; else sg=sg-gi*1e5; ff=objf(x)+sg;return(ff);/*采用进退法进行一维搜索获得可行区间*/*输入变量:
11、p-初始设计变量数组 */* s-搜索方向 */* h0-初始搜索步长 */* n-模型维数 */*输出变量:a-可行区间下限数组 */* b-可行区间上限数组 */void ii(double *p,double a,double b,double s,double h0,int n)int i;double *x3,h,f1,f2,f3;for(i=0;i3;i+) xi=(double *)malloc(n*sizeof(double); h=h0;for(i=0;in;i+) *(x0+i)=*(p+i);f1=ldf(x0);for(i=0;i=f1) /*如果前进方向函数值变大,则
12、换方向*/ h=-h0; for(i=0;in;i+) *(x2+i)=*(x0+i); f3=f1; for(i=0;in;i+) *(x0+i)=*(x1+i); *(x1+i)=*(x2+i); f1=f2; f2=f3; for(;) /*如果函数值下降,则加大步长*/ h=2.*h; for(i=0;in;i+) *(x2+i)=*(x1+i)+h*si; f3=ldf(x2); if(f2f3) break; else for(i=0;in;i+) *(x0+i)=*(x1+i); *(x1+i)=*(x2+i); f1=f2; f2=f3; if(h0.) /*获取结果,返回*/
13、 for(i=0;in;i+) ai=*(x2+i); bi=*(x0+i); else for(i=0;in;i+) ai=*(x0+i); bi=*(x2+i); for(i=0;ieps) fom=fxo; r0=c*r0; Tm=Tm+1; printf(Now it is the %d time of iteration,current values of variables are:n,Tm); for(i=0;in;i+) *(p+i)=xi; printf(x%d=%fn,i,xi); printf(The value of objective function is:%fn,
14、fxo); printf(-n); else return(fxo); while(1);/*主程序*/void main()int i;double a=230,21,8,420,120,160; /*初始可行点*/double c,x4;c=empf(a,x,0.2,1e-5,4); /*调用优化程序*/printf(n Output the optimum results:n); /*输出优化结果*/for(i=0;i4;i+)printf(x%d=%fn,i,xi);printf(The minimum objective value is %fn,c); 用计算机编程,经10次迭代计算,求出最优解为: 211.99 22.12 8.39 322.37 101.75 130.24 由计算结果可以看出,经过优化以后,一级斜齿圆柱齿轮减速器无论从重量上还是从体积上,都减小很多,而且,采用计算机辅助设计,与手工计算相比,设计效率大大提高。六、 基于MATLAB的优化结果1、目标函数的M文件2、非线性约束条件的M文件3、线性约束的系数,给定初值,并调用优化过程解得最优解为210.32 22.89 8.53 341.71 108.53 137.65即b=210.32mm, 22.89, =8.53, =341.71mm, =108.53mm, =137.65mm.