基于VC的闭式蜗轮蜗杆传动计算机辅助设计.docx
《基于VC的闭式蜗轮蜗杆传动计算机辅助设计.docx》由会员分享,可在线阅读,更多相关《基于VC的闭式蜗轮蜗杆传动计算机辅助设计.docx(28页珍藏版)》请在冰点文库上搜索。
基于VC的闭式蜗轮蜗杆传动计算机辅助设计
#include"iostream.h"
#include
doubleJCYL1();
doubleJCYL2();
doublemd1();
doubleKx();
constdoublePAI=3.141592654;
doubleJCYL,JCYL0,m2d1,m,d1,WGY,WLG;//m模数,蜗杆分度圆直径d1;;滑动速vs,许用接触应力JCYL,总效率zxl,m2d1接触强度系数,
//WLG:
蜗轮蜗杆材料;WGY,蜗杆齿面的硬度;
inti,z1,z2;//传动比i,蜗杆的头数z1,应蜗轮齿数z2
voidmain()
{
doubleP,n1,n2,T,vs1;//蜗杆输入功率P,蜗杆转速n1,蜗杆转速n2,使用寿命T,蜗轮速度vs,
cout<<"请输入需要传递的名义功率P(kw)(功率P范围在0--1000KW之间):
"<do
{
cin>>P;//输入名义功率
if((P<0)||(P>1000))cout<<"输入数据有误,请重新输入功率:
"<}while((P<0)||(P>1000));
cout<<"请输入蜗杆转速n1(r/min)(转速范围在0--4500之间):
"<do
{
cin>>n1;//输入转速n1
if((n1<0)||(n1>4500))cout<<"输入数据有误,请重新输入转速:
"<}while((n1<0)||(n1>4500));
cout<<"请输入蜗轮转速n2(r/min)(转速范围在0--4500之间):
"<do
{
cin>>n2;//输入转速n2
if((n2<0)||(n2>4500))cout<<"输入数据有误,请重新输入转速:
"<}while((n2<0)||(n2>4500));
cout<<"请输入使用寿命T(小时):
"<cin>>T;//输入使用寿命T
i=(int)n1/(int)n2;//计算传动比
cout<<"经计算理论传动比i为:
"<
if(i>5&&i<6)//z1和z2推荐值
cout<<"z1和z2的推荐值分别为:
z1=6,z2=30~36"<else
if(i>7&&i<13)
cout<<"z1和z2的推荐值分别为:
z1=4,z2=28~52"<else
if(i>14&&i<27)
cout<<"z1和z2的推荐值分别为:
z1=2,z2=28~54"<else
if(i>28&&i<80)
cout<<"z1和z2的推荐值分别为:
z1=1,z2=28~80"<else
cout<<"z1和z2无推荐值,请自行输入:
"<cout<<"请输入蜗杆的头数z1:
(输入头数在1,2,4,6之间"<do
{
cin>>z1;
if((z1<1)||(z1>6)||(z1==5)||(z1==3))cout<<"输入数据有误,请重新输入头数z1:
"<}while((z1<1)||(z1>6)||(z1==5)||(z1==3));
z2=z1*i;
cout<<"对应蜗轮齿数z2="<cout<<"实际传动比i="<
vs1=0.025*pow(P*n1*n1,1.0/3);
cout<<"初估滑动速度vs="<cout<<"根据初估滑动速度vs可选择蜗杆材料;如下表:
"<cout<<"vs≤2m/s灰铸铁用于低速、轻载或不重要的传动"<cout<<"vs≤4m/s铝铁青铜抗胶合能力远比锡青铜差,但强度较高,价格便宜;用于速度较低的传动"<cout<<"vs≤25m/s 铸磷锡青铜 减摩、耐磨性好,抗胶合能力强,但其强度较低,价格较贵;用于高速或重要传动"<if(vs1<=6)
{
JCYL=JCYL1();
while(JCYL==0)
{
cout<<"你的输入所选的相对滑动速度vs不合适!
请重新选择:
"<JCYL=JCYL1();
}
}
else
JCYL0=JCYL2();
doubleT2,zxl,K,N,KHN;//蜗轮上转矩T2,zxl总效率,应力循环次数N,KHN是寿命系数;
//使用系数Ka,Kv动载系数,Kb齿向载荷分布系数,K载荷系数,ZE材料的弹性系数;
charAnswer0;
K=Kx();
if(z1==1)
zxl=0.75;
elseif(z1==2)
zxl=0.82;
elseif(z1==4)
zxl=0.92;
elseif(z1==6)
zxl=0.95;
T2=i*zxl*9.55e006*P/n1;
cout<<"经计算蜗轮轴转矩T2="<N=60*n2*T;
KHN=pow(1.0e7/N,1.0/8);
if(vs1>=6)
JCYL=KHN*JCYL0;
cout<<"蜗轮材料许用接触应力[σH]="<m2d1=pow(160/(JCYL*z2),2.0)*K*T2*9;
cout<<"接触强度系数m2d1="<md1();
cout<<"是否采用推荐值?
Y(是)/N(不是)"<do
{
cin>>Answer0;
if((Answer0!
='Y')&&(Answer0!
='N')&&(Answer0!
='y')&&(Answer0!
='n'))cout<<"您输入了无效数字,请重新输入:
"<}while((Answer0!
='Y')&&(Answer0!
='N')&&(Answer0!
='y')&&(Answer0!
='n'));
if((Answer0=='N')||(Answer0=='n'))
{
cout<<"请输入模数m="<cin>>m;
cout<<"蜗杆分度圆直径d1="<cin>>d1;
}
//验算蜗轮圆周速度v2、相对滑动速度vs;
doubley,v2,d2,vs,f,n,p;//导程角y,当量摩擦因数f,当量摩擦角p,效率n;
d2=m*z2;
v2=(PAI*d2*n2)/(60*1000);
if(v2<3)
cout<<"蜗轮圆周速度v2="<else
{
m2d1=1.2*m2d1;
md1();
}
y=atan(m*z1/d1);
cout<<"导程角y="<vs=(PAI*d1*n1)/(60*1000*cos(y));
if(vs1>6)
{
if(vs<=6)
{
cout<<"初估滑动速度vs="<6m/s"<cout<<"相对滑动速度vs="<cout<<"请重新设计!
"<return;
}
else
{
cout<<"初估滑动速度vs="<6m/s"<cout<<"相对滑动速度vs="<6m/s,与原假设相符"<}
}
else
{
if(vs>6)
{
cout<<"初估滑动速度vs="<cout<<"相对滑动速度vs="<6m/s,与假设不相符"<cout<<"请重新设计!
"<return;
}
else
{
cout<<"初估滑动速度vs="<cout<<"相对滑动速度vs="<}
}
if(vs<=0.01)
{
if(WLG==0||WLG==1||WLG==2)
f=0.18;
elsef=0.19;
}
elseif(vs<=0.05)
{
if(WLG==0||WLG==1||WLG==2)
f=0.14;
elsef=0.16;
}
elseif(vs<=0.1)
{
if(WLG==0||WLG==1||WLG==2)
f=0.13;
elsef=0.14;
}
elseif(vs<=0.25)
{
if(WLG==0||WLG==1||WLG==2)
f=0.1;
elsef=0.12;
}
elseif(vs<=0.5)
{
if(WLG==0||WLG==1||WLG==2)
f=0.09;
elsef=0.1;
}
elseif(vs<=1)
{
if(WLG==0||WLG==1||WLG==2)
f=0.07;
elsef=0.09;
}
elseif(vs<=1.5)
{
if(WLG==0||WLG==1||WLG==2)
f=0.065;
elsef=0.08;
}
elseif(vs<=2)
{
if(WLG==0||WLG==1||WLG==2)
f=0.055;
elsef=0.07;
}
elseif(vs<=2.5)
{
if(WLG==0||WLG==1)
f=0.05;
}
elseif(vs<=3.0)
{
if(WLG==0||WLG==1)
f=0.04;
}
elseif(vs<=4)
{
if(WLG==0||WLG==1)
f=0.035;
}
elseif(vs<=5)
{
if(WLG==0||WLG==1)
f=0.03;
}
elseif(vs<=8)
{
if(WGY==0)
f=0.026;
elsef=0.018;
}
elseif(vs<=10)
{
if(WGY==0)
f=0.024;
elsef=0.016;
}
elseif(vs<=15)
{
if(WGY==0)
f=0.020;
elsef=0.014;
}
elseif(vs<=24)
{
if(WGY==1)
f=0.013;
else
{
cout<<"无参考值"<return;
}
}
p=atan(f);
n=0.95*tan(y)/tan(y+p);
if(z1==1)
cout<<"初估计蜗杆传动总效率η为0.75"<elseif(z1==2)
cout<<"初估计蜗杆传动总效率η为0.82"<elseif(z1==4)
cout<<"初估计蜗杆传动总效率η为0.92"<elseif(z1==6)
cout<<"初估计蜗杆传动总效率η为0.95"<cout<<"实际效率η="<if(n-zxl<0.05&&n-zxl>-0.05)
cout<<"传动效率η与原估计值相符,无需修正"<else
{
cout<<"传动效率η与原估计值不相符"<return;
}
doublex,a1,a,da1,df1,da2,df2,R2,R1,ha1,ha2,hf1,hf2,jd1,h1,h2,bt2,jd2,pa1,ps,b2,de2;
x=0;
a1=(d1+d2)/2;
cout<<"理论中心距a="<cout<<"请选择实际中心距a=";
cin>>a;
x=(a-a1)/m;
ha1=m;
ha2=(1+x)*m;
hf1=1.2*m;
hf2=(1.2-x)*m;
h1=2.2*m;
h2=2.2*m;
d2=m*z2;
da1=d1+2*ha1;
da2=d2+2*ha2;
df1=d1-2*hf1;
df2=d2-2*ha2;
bt2=y;
jd1=d1+2*x*m;
jd2=d2;
a=(d1+d2+2*x*m)/2;
pa1=PAI*m;
ps=z1*pa1;
if(z1==1)
de2=da2+2*m;
elseif(z2==2)
de2=da2+1.5*m;
elsede2=da2+m;
if(z1<=2)
b2=0.75*da1;
elseb2=0.64*da1;
R1=da1/2+0.2*m;
R2=df1/2+0.2*m;
cout<<"变位系数x="<cout<<"蜗杆头数z1="<cout<<"蜗轮齿数z2="<cout<<"蜗杆分度圆直径d1="<cout<<"蜗轮分度圆直径d2="<cout<<"蜗杆齿顶圆直径da1="<cout<<"蜗杆齿根圆直径df1="<cout<<"蜗轮齿顶圆直径da2="<cout<<"蜗轮齿根圆直径df2="<cout<<"蜗杆齿全高h1="<
cout<<"蜗轮齿全高h2="<
cout<<"蜗杆节圆直径jd1="<cout<<"蜗轮节圆直径jd2="<cout<<"实际中心距a="<cout<<"蜗杆轴向齿距pa1="<cout<<"蜗杆螺旋线导程ps="<cout<<"蜗轮齿顶圆弧半径Ra2="<cout<<"蜗轮齿根圆弧半径Rf2="<cout<<"蜗轮顶圆直径da2="<cout<<"蜗杆导程角γ="<cout<<"蜗杆分度圆齿宽b2="<cout<<"齿面滑动速度vs="<cout<<"蜗轮分度圆上螺旋角bt2="<cout<<"热平衡计算。
计算所需面积"<计算所需面积
cout<<"取油温t=70℃,周围空气温度t_0=20℃,设通风良好,取散热系统K_s=15W/(m^2.℃)"<doubleA;
A=1000*P*(1-n)/(15*(70-20));
cout<<"热平衡所需面积A="<cout<<"若箱体散热面积不足此数,则需要加散热片、装置风扇或采用其他散热冷却方式"<}
doubleJCYL1()//选择蜗轮蜗杆材料,许用接触应力
{
intWLG1,HDSD;//WLG:
蜗轮蜗杆材料;HDSD滑动速度;
doublea[4][7]={{0,250,230,210,180,160,120},
{0,215,200,180,150,135,95},
{160,130,115,90,0,0,0},
{140,110,90,70,0,0,0}};
cout<<"请选择蜗轮材料及蜗杆材料及热处理类型(不同类型分别用1,2,3,4表示):
"<cout<<"1---蜗轮材料:
铝铁青铜ZCuAl10Fe3;\n蜗杆材料及热处理类型:
钢、淬火"<cout<<"2---蜗轮材料:
锰铅黄铜ZCuZn38Mn2Pb2;\n蜗杆材料及热处理类型:
钢、淬火"<cout<<"3---蜗轮材料:
灰铸铁HT150,HT200;\n蜗杆材料及热处理类型:
渗碳钢"<cout<<"4---蜗轮材料:
灰铸铁HT150,HT200;\n蜗杆材料及热处理类型:
调质或正火钢"<cout<do
{
cin>>WLG1;
WLG--;
if((WLG1!
=0)&&(WLG1!
=1)&&(WLG1!
=2)&&(WLG1!
=3))cout<<"你的输入没有按要求输入!
请重新输入:
"<}while((WLG1!
=0)&&(WLG1!
=1)&&(WLG1!
=2)&&(WLG1!
=3));
cout<<"选择相对滑动速度vs/(m/s)(不同滑动速度分别用1,2,3,4,5,6,7表示):
"<cout<<"1---相对滑动速度vs≤0.25m/s。
"<cout<<"2---相对滑动速度vs≤0.5m/s。
"<cout<<"3---相对滑动速度vs≤1m/s。
"<cout<<"4---相对滑动速度vs≤2m/s。
"<cout<<"5---相对滑动速度vs≤3m/s。
"<cout<<"6---相对滑动速度vs≤4m/s。
"<cout<<"7---相对滑动速度vs≤6m/s。
"<do
{
cin>>HDSD;
HDSD--;
if((HDSD!
=0)&&(HDSD!
=1)&&(HDSD!
=2)&&(HDSD!
=3)&&(HDSD!
=4)&&(HDSD!
=5)&&(HDSD!
=6))cout<<"你的输入没有按要求输入!
请重新输入:
"<}while((HDSD!
=0)&&(HDSD!
=1)&&(HDSD!
=2)&&(HDSD!
=3)&&(HDSD!
=4)&&(HDSD!
=5)&&(HDSD!
=6));
WLG=WLG1;
returna[WLG1][HDSD];
cout<<"蜗轮材料许用接触应力[σH]="<}
doubleJCYL2()
{
intWGY1,WLZ;//WLZ,蜗轮材料,铸造方法;
doubleb[4][2]={{180,200},{200,220},{110,125},{135,150}};
cout<<"请选择蜗轮材料及铸造方法(不同类型分别用1,2,3,4表示):
"<cout<<"1---蜗轮材料:
铸锡磷青铜ZCuSn10P1;\n铸造方法:
砂模铸造;"<cout<<"2---蜗轮材料:
铸锡磷青铜ZCuSn10P1;\n铸造方法:
金属模铸造;"<cout<<"3---蜗轮材料:
铸锡铅锌青铜ZCuSn5Pb5Zn5;\n铸造方法:
砂模铸造;"<cout<<"4---蜗轮材料:
铸锡铅锌青铜ZCuSn5Pb5Zn5;\n铸造方法:
金属模铸造;"<cout<do
{
cin>>WLZ;
WLZ--;
if((WLZ!
=0)&&(WLZ!
=1)&&(WLZ!
=2)&&(WLZ!
=3))cout<<"你的输入没有按要求输入!
请重新输入:
"<}while((WLZ!
=0)&&(WLZ!
=1)&&(WLZ!
=2)&&(WLZ!
=3));
cout<<"请选择蜗杆齿面的硬度(不同硬度分别用1,2表示):
"<cout<<"1---蜗杆蜗杆齿面的硬度≤45HRC"<cout<<"2---蜗杆蜗杆齿面的硬度>45HRC"<do
{
cin>>WGY1;
WGY1--;
if((WGY1!
=0)&&(WGY1!
=1))
cout<<"你的输入没有按要求输入!
请重新输入:
"<}while((WGY1!
=0)&&(WGY1!
=1));
WGY=WGY1;
returnb[WLZ][WGY1];
}
doubleKx()
{
doubleK,Ka,Kv,Kb,Answer;
cout<<"请选择蜗杆工作类型:
"<cout<<"1---载荷性质:
均匀,无冲击;\n每小时起动次数:
<25;"<cout<<"2---载荷性质:
不均匀,小冲击;\n每小时起动次数:
25~50;"<cout<<"3---载荷性质:
不均匀,大冲击;\n每小时起动次数:
>50;"<do
{
cin>>Answer;
if((Answer!
=1)&&(Answer!
=2)&&(Answer!
=3))
cout<<"你的输入没有按要求输入!
请重新输入";
}while((Answer!
=1)&&(Answer!
=2)&&(Answer!
=3));
if(Answer<2)Ka=1.0,Kb=1.0;
elseif(Answer<3)Ka=1.15,Kb=1.1;
elseKa=1.2,Kb=1.3;
Kv=1.0;
K=Ka*Kv*Kb;
returnK;
}
doublemd1()//求m,d1,根据m^2d1计算:
推荐m和d1
{
if(m2d1<=18)
{
cout<<"根据m^2d1计算:
\n推荐m=1mm,d1=18mm