齿轮设计Word格式.docx
《齿轮设计Word格式.docx》由会员分享,可在线阅读,更多相关《齿轮设计Word格式.docx(25页珍藏版)》请在冰豆网上搜索。
由此建立12个不等式约束条件式
g1(X)=x1–3.5≥0
g2(X)=8–x1≥0
g3(X)=x2–3.5≥0
g4(X)=10–x2≥0
g5(X)=x3–14≥0
g6(X)=22–x3≥0
g7(X)=x4–16≥0
g8(X)=22–x4≥0
g9(X)=x5–5.8≥0
g10(X)=7–x5≥0
g11(X)=x6–8≥0
g12(X)=15–x6≥0
(2)按齿面接触强度公式
δH=≤[δH],N/mm2
得到高速级和低速级齿面接触强度条件分别为
–cos3β≥0①
–cos3β≥0
式中,[δH]——许用接触应力,Mpa
T1,T2——分别为高速轴和中间轴的转矩,N·
mm
K1,K2——分别为高速级和低速级载荷系数.
(3)按轮齿弯曲强度计算公式
δF1=≤[δF]1,N·
mm2
δF2=δF1≤[δF]2,N·
得到高速级和低速级大小齿轮的弯曲强度条件分别为
(1+i1)mn13Z12–cos2β≥0
和(1+i2)mn23Z32–cos2β≥0
(1+i2)mn23Z32–cos2β≥0⑥
其中[δF]1,[δF]2,[δF]3,[δF]4——分别为齿轮1,2,3,4的许用弯曲应力,N/mm2;
y1,y2,y3,y4——分别为齿轮1,2,3,4的齿形系数.
(4)按高速级大齿轮与低速轴不干涉相碰的条件
a2–E–de2/2≥0
得mn2Z3(1+i2)–2cosβ(E+mn1)–mn1Z1i1≥0
式中E——低速轴轴线与高速级大齿轮齿顶圆之间的距离,mm;
de2——高速级大齿轮齿的齿顶圆直径,mm.
对式①至代入有关数据:
[δH]=836N·
[δF]1=[δF]3=444N·
mm,[δF]2=[δF]4=410.3N·
T1=144700N·
mm,T2=146789i1N·
K1=1.225,K2=1.204
y1=0.248,y2=0.302,y3=0.256,y4=0.302
E=50mm
得
g13(X)=5.3×
10-6x13x33x5–cos3x6≥0
g14(X)=2.317×
10-5x23x43–x5cos3x6≥0
g15(X)=3.117×
10-4(1+x5)x13x32–cos2x6≥0
g18(X)=3.422×
10-5(1+x5)x13x32–cos2x6≥0
g16(X)=3.45×
10-6(31.5+x5)x23x42–x52cos2x6≥0
g19(X)=3.32×
10-5(31.5+x5)x23x42–x52cos2x6≥0
g17(X)=x2x4(31.5+x5)–2x5cosx6(x1+50)–x1x3x52≥0
g18(X)、g19(X)和g15(X)、g16(X)相比为明显的消极约束,可省略。
共取g1(X)至g17(X)的17个约束条件。
至此已形成了完整的数学模型。
2.初始搜索区间的确定
1)将x0=[3+α;
4;
17;
20;
6;
8];
代入目标函数得
2)确定其搜索区间[a,b]。
设初始点,初始步长h=1。
:
function[a,b]=jian
a0=0;
h=1;
a1=a0+h;
f0=60.1*a0+1/(1+a0)+1/(5-a0);
f1=60.1*a1+1/(1+a1)+1/(5-a1);
iff1<
=f0
whiletrue
h=2*h;
a2=a1+h;
f2=60.1*a2+1/(1+a2)+1/(5-a2);
iff1<
=f2%此时结束,得出下单峰区间
a=a0;
b=a2;
break;
else
a0=a1;
a1=a2
f0=f1;
f1=f2;
end
end
iff1>
f0
a2=a0-h;
%大的a1赋给a2作为边界,a1则缩短再比较,若此时f1<
f0了,则结束
f2=60.1*a2+1/(1+a2)+1/(5-a2);
iff0<
=f2
a=a2;
b=a1;
a1=a0;
a0=a2;
f1=f0;
f0=f2;
a
b
得到运行结果:
a=-2.80,b=-1.12
所以初始区间为[-2.80,-1.12]。
3.然后用黄金分割法求其最优解
以下是基于c-free4.0上运行的C程序:
#include<
stdio.h>
math.h>
voidmain()
{
floata1,a2,f1,f2,f3,a,b,am;
a=-2.8089,b=-1.1236;
while(b-a>
0.01)
{
a1=b-0.618*(b-a),
f1=60.1*a1+1/(1+a1)+1/(5-a1),
a2=a+0.618*(b-a),
f2=60.1*a2+1/(1+a2)+1/(5-a2),
if(f1<
=f2)
b=a2,a2=a1,f2=f1,a1=b-0.618*(b-a),
f1=60.1*a1+1/(1+a1)+1/(5-a1),
a=a1,a1=a2,f1=f2,a2=a+0.618*(b-a),
}
am=0.5*(b+a);
f3=60.1*a3+1/(1+a3)+1/(5-a3);
printf("
a[min]=%.4f\nf(min)=%.4f\n"
am,f3);
getchar();
}
得出结果为
a[min]=-1.5035
2.鲍威尔法
#definem10/***********数组长度m>
=维数n****/
#definepi3.1416
floatf(floatx[]);
voidmjtf(intn,floatx0[],floath,floats[],floata[],floatb[]);
voidmhjfgf(intn,floata[],floatb[],floatflag,floatx[]);
voidmpowell(intn,floatx0[],floath,floatflag1,floatflag2,floata[],floatb[],floatx[]);
floatf(floatx[])
floatresult;
result=(x[0]*x[2]*(1+x[4])+x[1]*x[3]*(1+31.5/x[4]))/2/cos(x[5]*pi/180)
+1/(x[0]-3.5)+1/(8-x[0])+1/(x[1]-3.5)+1/(10-x[1])+1/(x[2]-14)+1/(22-x[2])
+1/(x[3]-16)+1/(22-x[3])+1/(x[4]-5.8)+1/(7-x[4])+1/(x[5]-8)+1/(15-x[5])
+1/(x[0]*x[2]-68.3722)+1/(x[1]*x[3]-66.7325)+
1/(0.0003099*(1+x[4])*x[0]*x[0]*x[0]*x[2]*x[2]-cos(x[5]*pi/180)*cos(x[5]*pi/180))
+1/(0.00000354*(31.5+x[4])*x[1]*x[1]*x[1]*x[3]*x[3]-x[4]*x[4]*cos(x[5]*pi/180)*cos(x[5]*pi/180))
+1/(x[1]*x[3]*(x[4]+31.5)-x[4]*(2*(x[0]+50)*cos(x[5]*pi/180)+x[0]*x[2]*x[4]));
returnresult;
/*搜索区间子程序*/
voidmjtf(intn,floatx0[],floath,floats[],floata[],floatb[])
a[0]=2,b[0]=10;
a[1]=2,b[1]=13;
a[2]=14,b[2]=22;
a[3]=16,b[3]=22;
a[4]=5,b[4]=7;
a[5]=8,b[5]=15;
/*多维黄金分割法子程序*/
voidmhjfgf(intn,floata[],floatb[],floatflag,floatx[])
inti;
floatx1[m],x2[m],f1,f2,sum;
for(i=0;
i<
n;
i++)/*计算初始两试点*/
x1[i]=b[i]-(float)0.618*(b[i]-a[i]);
f1=f(x1);
i++)
x2[i]=a[i]+(float)0.618*(b[i]-a[i]);
f2=f(x2);
do
=f2)/*判断消去区间*/
{/*消去右*/
b[i]=x2[i];
x2[i]=x1[i];
f2=f1;
{/*消去左*/
a[i]=x1[i];
x1[i]=x2[i];
sum=0;
sum+=(b[i]-a[i])*(b[i]-a[i]);
}while(sqrt(sum)>
flag);
x[i]=(float)0.5*(b[i]+a[i]);
/*已达到,输出极小点*/
/*鲍威尔法子程序*/
voidmpowell(intn,floatx0[],floath,floatflag1,