资源描述
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)=%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;
%两级斜齿轮减速器优化设计的非线性不等式约束函数
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文件
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,' 高速级齿轮副模数 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',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,' 低速级大齿轮齿根弯曲强度约束函数值 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
高速级齿轮副传动比 i1=5.8000mm
齿轮副螺旋角 beta=8.0000
减速器总中心距 a12=317.4186mm
==========最优点的性能约束函数值==========
高速级齿轮副接触疲劳强度约束函数值 g1=0.0000mm
低速级齿轮副接触疲劳强度约束函数值 g2=0.0000mm
高速级大齿轮齿根弯曲强度约束函数值 g3=-1.0042mm
低速级大齿轮齿根弯曲强度约束函数值 g4=-15.1854mm
大齿轮顶圆与轴不干涉几何约束函数值 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)
由于约束条件中有非线性约束,故需要编写一个描述非线性约束条件的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;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*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];%给定初始值
[x,fval,exitflag,output]=fmincon(@myfun,x0,[],[],[],[],[],[],@myobj,output) %调用优化过程
直齿圆柱齿轮传动的优化设计
一、问题描述:
现有一单级渐开线直齿圆柱齿轮减速器,其输入功率N=280kW,输入转速n1=980r/min,传动比i=5。小齿轮为实体结构,大齿轮为腹板式结构(带有四个减轻孔),两齿轮各部分尺寸的符号如图一所示:
原用常规设计方法的设计结果为:齿宽B=B2=13cm,小齿轮齿数z1=21,模数m=0.8cm,l1=42cm,ds1=12cm,ds2=16cm。现要求在保证承载能力的条件下,通过优选上述有关参数,使减速器的体积达到最小。
二、建立优化设计目标函数:
齿轮传动优化设计中,设计变量一般选为齿轮传动的基本几何参数或性能参数,例如齿数、模数、齿宽系数、传动比、螺旋角、变位系数和中心距分离系数等。
齿轮传动的优化目标,较常见的是体积或质量最小,传动功率最大,工作寿命最长,振动最小,启动功率最小等。
现在选体积最小为优化目标,而减速器的体积主要是取决于内部零件(齿轮和轴)的尺寸大小,在齿轮和轴的结构尺寸确定之后,箱体的尺寸将随之确定,因此将齿轮和轴的总体积达到最小作为优化目标。
减速器内部有两个齿轮和两根轴,为了简化计算,将轴视为光轴,则有
式中:,——两轴体积,cm3;
,——两齿轮体积,cm3
,——两轴的直径,cm;
,,——轴的长度,cm;
,——两齿轮的分度圆直径,cm, ,;
——两齿轮的模数,cm;
,——两齿轮的宽度,近似取,cm。
根据结构设计经验公式,齿轮各部分尺寸关系为:
并取:
优化设计中的设计变量取为:
将目标函数整理后得到:
三、确定约束条件
(1)为了避免发生根切,不小于最小齿数,即,于是得约束条件
(2)为了保证齿轮的承载能力,同时避免载荷沿齿宽分布严重不均,要求,由此得:
(3)传递动力的齿轮,模数一般应该大于2mm,并且去标准系列值,所以得:
(4)根据工艺装备条件,要求大齿轮直径不得超过1500mm,于是小齿轮直径相应的不能超过300mm,即,故得:
(5)主、从动轴直径范围按照经验取为,,所以有
(6)轴的支撑跨距按照结构关系,其中为箱体内壁到轴承中心线的距离,现取,则有:
(7)按齿轮的接触疲劳强度条件,有:
式中:——载荷系数,取;
——小齿轮传递的扭矩,由功率和转速计算可得
;
——齿轮许用永接触应力,现按原材料及原设计数据,取;
——齿轮传动的中心距,,;
将以上个参数分别代入前面的不等式,整理后得:
(8)按齿轮的弯曲疲劳强度条件,有
式中:——小齿轮分度圆直径,;
——齿轮的许用弯曲应力,现安原材料及原设计数据取小齿轮的许用弯曲应力,大齿轮的许用弯曲应力;
——齿形系数,对于标准齿轮,通过曲线拟合得
小齿轮 ;
大齿轮
所以有:
(9)主动轴刚度条件
式中:——作用在小齿轮上的法向压力,,,其中为齿轮压力角,取;
——轴的惯性矩,对圆形剖面,;
——轴材料的弹性模量,;
——轴的许用挠度,取。
所以可以得到:
(10)主动轴的弯曲强度条件:
式中:——轴上的扭矩,;
——轴上的弯矩,,;
——考虑扭矩和弯矩的作用性质差异的系数,取;
——轴的许用弯曲应力,;
——轴的抗弯剖面系数,对实心轴。
带入各参数,并整理得:
(11)仿照前面的处理方法可得从动轴弯曲强度条件:
总结上述各式,可得到优化设计的数学模型为:
即一个具有十六个不等式约束的六维优化问题。
四、优化方法选择及优化结果:
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.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/10000*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)=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 violation is less than options.TolCon.
Active inequalities (to within options.TolCon = 1e-006):
lower upper ineqlin ineqnonlin
2
4
6
11
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%
展开阅读全文