机床主轴机构优化设计机床主轴是机床中重要的零件之一,一般多为支撑空心阶梯轴。为了便于使用材料力学进行结构分析,常常将阶梯轴简化成以当量直径表示的等截面轴。如图0.1所示是一个已经简化处理的专用机床双主轴的力学模型。从机床主轴制造成本较低和加工精度较高的要求出发,需要考虑主轴的自重和外身段挠度这样两个重要因素。对于专用机床来说,并不追求过高的加工精度。因此选取零件自身重量轻为设计目标,将主轴的刚度作为约束条件。一、设计变量和目标函数当主轴的材料选定之后,与主轴重量设计方案有关设计变量主轴的外径D、孔径d、两支承跨度l、和外伸段长度a,如图0.1所示。由于机床主轴的孔径主要取决于待加工棒料的直径,不能作为设计变量处理。因此,设计变量为TT321aDlxxxX机床主轴重量最轻优化设计目标函数为))(()(22231dxxx41Xf二、约束条件1.刚度性条件机床的加工质量在很大程度上取决于主轴的刚度,主轴刚度是一个很重要的性能指标。因此,要求主轴悬臂端挠度不超过给定的变形量y0。根据材料力学可知,主轴悬臂端挠度为)()()(44231232dxE3xxFx64EJ3alFay式中,)(44d-D64J是空心主轴的惯性矩;E=2.1x105MPa是主轴的弹性模量;F是作用主轴外伸端的力。整理得到主轴刚度的约束条件为0dxE3xxFx64Xg442312301)()()(y2.设计边界条件三个设计变量的边界约束条件为maxminlllmaxminDDDmaxminaaa3.具体算例已知某机床主轴悬臂端受到的切削力F=15000N,主轴内径d=30mm,悬臂端许用挠度y0=0.05mm。要求主轴两支承跨度mmlmm650300,外径mmDmm14060,悬臂长度mmamm15090。建立优化的数学模型)30)((7854.0)(22231xxxXfTTaDlxxxX],,[],,[3210)30()(7009.91)(..44231231xxxxXgts01300/)(12xXg0650/1)(13xXg0160/)(24xXg0140/1)(25xXg0190/)(36xXg0150/1)(37xXg4.基于matlab程序的复合形法实现优化(1)算法原理复合形法来源于无约束优化问题的单纯形法,通过构造复合形来求得最优解,新的复合形通过替换旧的复合形中的坏点(目标函数最大或次大的点)得到,替换方式仍是单纯性法中的反应、压缩、扩展这几个基本方法。(2)算法步骤其程序框图如下:开始输入n,k,ε形成初始复合形的k个顶点xj(j=1,2,……,k)将各定点的目标函数值和坐标按目标函数值的大小排序计算出去xH后的各顶点中心HjxkxkjjC,)(111?xC可行?xR可行?结束一次坏点xG代替最坏点xH计算各顶点的目标函数值f(xj)(j=1,2,……,k)求反射点HCCRxxxxRHxx?HRxfxf5.0?1010CLxbxaLLffxx**,否是是是是否否否否是(3)算法的MATLAB实现在MATLAB中利用编程语句编写实现复合形法的函数,命名:jiangfun.m功能:用复合形法求解约束多为函数的极值调用格式:[x,minf]=jiangfun(f,g,X,alpha,sita,gama,beta,var,eps)其中符号表示如下:fgXalphagamabeta目标函数约束函数初始复合形反射系数扩展系数收缩系数varepsxminf自变量向量自变量精度目标变量最小值时的自变量值目标函数的最小值由目标函数级约束条件,取初始复合形)100,90,325(0x)95,120,380(1x)120,100,500(2x)130,135,600(3x取α(反射系数)=1.2,β(收缩系数)=0.3,θ(紧缩系数)=0.5,γ(扩展系数)=2。在MATLAB中输入下列命令symsstrf=0.7854*(s+r)*(t^2-900);g=[1-9.7009*r^2*(s+r)/(t^4-30^4);s/300-1;1-s/650;t/60-1;1-t/140;r/90-1;1-r/150];X=[325380500600;90120100135;10095120130];[x,minf]=jiangfun(f,g,X,1.2,0.5,8,0.3,[str])所得结果为:x=300.035775.244290.0013Minf=1458663.2594可以得出结论当l=300.0357mm,D=75.2442mm,a=90.0013mm时可以在满足刚度性能的条件下,得到最小的结构体积Minf=1458663.2594mm3再乘以所选材料的密度,即可得出最小质量。5、总结复合形法作为求解最优化问题的一种算法,较为适合解决有约束优化问题。使用该法仅需比较目标函数值即可决定搜索方向,算法较简单,对目标函数的要求不苛刻。同时利用MATLAB实现该方法的程序设计,较之C语言互换性以及通用性强,使用方便。引用:《优化设计应用》——电子工业出版社附录I:MATLAB实现复合形算法源程序下载吧附录I:MATLAB实现复合形算法源程序function[x,minf]=jiangfun(f,g,X,alpha,sita,gama,beta,var,eps)%目标函数:f%约束函数:g%初始复合形:X%反射系数:alpha%紧缩系数:sita%扩展系数:gama%收缩系数:beta%自变量向量:var%自变量精度:eps%目标函数最小值时的自变量值:x%目标函数的最小值:minfifnargin==8eps=1.0e-6;endN=size(X);n=N(2);FX=zeros(1,n);while1fori=1:nFX(i)=subs(f,var,X(:,i));end%将复合形法的顶点排序[XS,IX]=sort(FX);Xsorted=X(:,IX);px=sum(Xsorted(:,1:(n-1)),2)/(n-1);%复合形前n个点的中心Fpx=subs(f,var,px);SumF=0;fori=1:nSumF=SumF+(FX(IX(i))-Fpx)^2;endSumF=sqrt(SumF/n);ifSumF=epsx=Xsorted(:,1);%精度判断break;elsebcon_1=1;cof_alpha=alpha;whilebcon_1x2=px+cof_alpha*(px-Xsorted(:,n));%反射条件gx2=subs(g,var,x2);ifmin(gx2)=0bcon_1=0;elsecof_alpha=sqrt(cof_alpha);%以开方的方式减小反射系数endendfx2=subs(f,var,x2);iffx2XS(1)cof_gama=gama;bcon_2=1;whilebcon_2x3=px+cof_gama*(x2-px);%扩展操作gx3=subs(g,var,x3);ifmin(gx3)=0bcon_2=0;elsecof_gama=sqrt(cof_gama);%采用开方的方式减小扩展系数endendfx3=subs(f,var,x3);iffx3XS(1)Xsorted(:,n)=x3;X=Xsorted;continue;elseXsorted(:,n)=x2;X=Xsorted;continue;endelseiffx2XS(n-1)Xsorted(:,n)=x2;X=Xsorted;continue;elseiffx2XS(n)Xsorted(:,n)=x2;endcof_beta=beta;bcon_3=1;whilebcon_3x4=px+cof_beta*(Xsorted(:,n)-px);%收缩操作gx4=subs(g,var,x4);ifmin(gx4)=0bcon_3=0;elsecof_beta=cof_beta/2;%减小收缩系数endendfx4=subs(f,var,x4);FNnew=subs(f,var,Xsorted(:,n));iffx4FNnewXsorted(:,n)=x4;X=Xsorted;continue;elsex0=Xsorted(:,1);fori=1:nXsorted(:,j)=x0+sita*(Xsorted(:,j)-x0);%对复合形进行收缩endendendendendX=Xsorted;endminf=subs(f,var,x)