V带传动设计c程序的编制.docx
- 文档编号:6016249
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:25
- 大小:21.33KB
V带传动设计c程序的编制.docx
《V带传动设计c程序的编制.docx》由会员分享,可在线阅读,更多相关《V带传动设计c程序的编制.docx(25页珍藏版)》请在冰豆网上搜索。
V带传动设计c程序的编制
#include
#include
#include
#definePI3.14159
//int;//其它参数
floatKA,P0,P0_1,Kb,Ki,Kl,Kv;//,P0_1为传递功增量
floatb1,bp,h,q;
floatPc,N1,N2,Centerdistance,SmallpulleysAngle,F0,V,flag_a,flag_b,flag_c;//Pc为功率,N1为主动轮转速,N2为从动轮转速,SmallpulleysAngle为小带轮包角,Z传动带根数,F0为初拉力
//Kv为包角系数
floatpressure_Q,transmissionratio,Z_1;//pressure_Q轴上压力,transmissionratio为传动比
intTYPE,D1,D2,Ld,Z,ch1;//TYPE为V带的类型,D1为主动轮基准直径,D2为从动轮直径,
//V为带速,Ld为基准长度,Centerdistance为中心距
floatKA_softstart[4][3]={{1.0,1.1,1.2},{1.1,1.2,1.3},{1.2,1.3,1.4},{1.3,1.4,1.5}},//工作情况系数KA软起动时KA
KA_loadstart[4][3]={{1.1,1.2,1.3},{1.2,1.3,1.4},{1.4,1.5,1.6},{1.5,1.6,1.8}};//负载起动时KA
voidCHOOSE_KA();
voidCHOOSE_type();
voidCHOOSE_gaugediameter();
voidLengthandCenterdistance();
voidBeltingthenumber();
voidinitialtension();
voidAxispressure();
voiddisplay();
voidexplain();
voidotherparameters_dis();
intForclosetothenumber(intmin,intmax,intz);
/************************************主函数*****************************************/
voidmain()
{
intgoon;
do
{
explain();
CHOOSE_KA();
CHOOSE_type();
CHOOSE_gaugediameter();
LengthandCenterdistance();
Beltingthenumber();
initialtension();
Axispressure();
display();
scanf("%d",&goon);
//if(goon!
=1)
//break;
}while(goon==1);
}
/*******************************1.确定计算功率Pc********************************************/
voidCHOOSE_KA()
{
intworkingcondition,start_flag;
floatdayhour,nominalpower;
printf("载荷变动选择:
\n");
printf("\n");
printf("1.载荷变动微小:
液体搅拌机;通风和鼓风机(<=7.5KW);离心式水泵和压缩机;轻型输送机。
\n");
printf("\n");
printf("2.载荷变动小:
带式输送机(不均匀载荷);通风机(>=7.5KW);旋转式水泵和压缩机;发电机;金属切削机床;印刷机;锯木机和木工机械。
\n");
printf("\n");
printf("3.载荷变动较大:
制砖机;斗式提升机;往复式水泵和压缩机;起重机;磨粉机;冲剪机床;橡胶机械;振动筛;纺织机械;重载输送机。
\n");
printf("\n");
printf("4.载荷变动很大:
破碎机(旋转式、颚式等);磨碎机(球磨、棒磨、管磨)。
\n");
printf("\n");
printf("请选择工况(以数字标号输入):
\n");
scanf("%d",&workingcondition);
printf("\n");
printf("请选择起动方式:
");
printf("1为软起动,2为负载起动\n");
scanf("%d",&start_flag);
printf("\n");
printf("请输入每天工作小时数(h):
\n");
scanf("%f",&dayhour);
printf("\n");
printf("请输入名义功率(KW):
\n");
scanf("%f",&nominalpower);
printf("\n");
if(start_flag==1)
{
if(dayhour<10)
{
switch(workingcondition)
{
case1:
KA=KA_softstart[0][0];break;
case2:
KA=KA_softstart[1][0];break;
case3:
KA=KA_softstart[2][0];break;
case4:
KA=KA_softstart[3][0];break;
}
}
if(dayhour>=10&&dayhour<=16)
{
switch(workingcondition)
{
case1:
KA=KA_softstart[0][1];break;
case2:
KA=KA_softstart[1][1];break;
case3:
KA=KA_softstart[2][1];break;
case4:
KA=KA_softstart[3][1];break;
}
}
if(dayhour>16)
{
switch(workingcondition)
{
case1:
KA=KA_softstart[0][2];break;
case2:
KA=KA_softstart[1][2];break;
case3:
KA=KA_softstart[2][2];break;
case4:
KA=KA_softstart[3][2];break;
}
}
}
if(start_flag==2)
{
if(dayhour<10)
{
switch(workingcondition)
{
case1:
KA=KA_loadstart[0][0];break;
case2:
KA=KA_loadstart[1][0];break;
case3:
KA=KA_loadstart[2][0];break;
case4:
KA=KA_loadstart[3][0];break;
}
}
if(dayhour>=10&&dayhour<=16)
{
switch(workingcondition)
{
case1:
KA=KA_loadstart[0][1];break;
case2:
KA=KA_loadstart[1][1];break;
case3:
KA=KA_loadstart[2][1];break;
case4:
KA=KA_loadstart[3][1];break;
}
}
if(dayhour>16)
{
switch(workingcondition)
{
case1:
KA=KA_loadstart[0][2];break;
case2:
KA=KA_loadstart[1][2];break;
case3:
KA=KA_loadstart[2][2];break;
case4:
KA=KA_loadstart[3][2];break;
}
}
}
Pc=KA*nominalpower;
}
/*****************************2.选型************************************************/
voidCHOOSE_type()
{
inti,t;
floatnp[6],a[6]={677,100,24,7,1.16,0.32},b[6]={1.454,1.488,1.470,1.488,1.545,1.5};
printf("请输入转速n1(r/min):
\n");
scanf("%f",&N1);
printf("\n");
printf("请输入转速n2(r/min):
\n");
scanf("%f",&N2);
printf("\n");
for(i=0;i<6;i++)
{
np[i]=a[i]*(pow(Pc,b[i]));
}
//n=N1;
for(i=0;i<6;i++)
if(N1>np[i]||i==5)
{
t=i;break;
}
switch(t)
{
case0:
printf("带型TPYE:
Z型\n");break;
case1:
printf("带型TPYE:
Z或A型\n");break;
case2:
printf("带型TPYE:
A或B型\n");break;
case3:
printf("带型TPYE:
B或C型\n");break;
case4:
printf("带型TPYE:
C或D型\n");break;
case5:
printf("带型TPYE:
D或E型\n");break;
case6:
printf("带型TPYE:
E或F型\n");break;
}
printf("\n");
TYPE=t;
}
/********************************3.基准直径选择*********************************/
voidCHOOSE_gaugediameter()
{
intnum,num_1,value_min,value_max;
floattransmissionratio,transmissionratio1,transmissionratio2;
intgaugediameter_all[50]={20,25,40,45,56,63,71,75,80,85,
90,95,100,106,112,118,125,132,140,150,
160,170,180,200,212,224,236,250,265,280,
315,355,375,400,425,450,475,500,530,560,
630,710,800,900,1000,1120,1250,1600,2000,2500},
gaugediameter_min[7]={20,50,75,125,200,355,500},
gaugediameter_Y[12]={20,25,40,45,56,63,71,80,90,100,112,125},
gaugediameter_Z[21]={56,63,71,75,80,90,100,112,125,140,150,160,180,200,250,280,315,355,400,500,630},
gaugediameter_A[22]={75,80,85,90,95,100,106,112,118,125,132,140,150,160,180,200,250,315,400,500,630,800},
gaugediameter_B[21]={125,132,140,150,160,170,180,200,212,224,236,250,280,315,355,400,500,630,800,1000,1120},
gaugediameter_C[18]={200,212,224,236,250,265,280,315,355,400,450,500,530,560,630,800,1000,1250},
gaugediameter_D[17]={355,375,400,425,450,475,500,530,560,630,710,800,900,1000,1250,1600,2000},
gaugediameter_E[12]={500,560,630,710,800,900,1000,1120,1250,1600,2000,2500};
printf("最小基准直径:
Dmin=%d\n",gaugediameter_min[TYPE]);
printf("\n");
LOOP:
printf("该型号带轮基准直径(mm):
\n");
switch(TYPE)
{
case0:
for(num=0;num<12;num++)
{
printf("%d",gaugediameter_Y[num]);
};
break;
case1:
for(num=0;num<21;num++)
{
printf("%d",gaugediameter_Z[num]);
};
break;
case2:
for(num=0;num<22;num++)
{
printf("%d",gaugediameter_A[num]);
};
break;
case3:
for(num=0;num<21;num++)
{
printf("%d",gaugediameter_B[num]);
};
break;
case4:
for(num=0;num<18;num++)
{
printf("%d",gaugediameter_C[num]);
};
break;
case5:
for(num=0;num<17;num++)
{
printf("%d",gaugediameter_D[num]);
};
break;
case6:
for(num=0;num<12;num++)
{
printf("%d",gaugediameter_E[num]);
};
break;
}
printf("\n");
printf("请选择主动轮基准直径D1(mm):
\n");
scanf("%d",&D1);
printf("\n");
V=PI*D1*N1/60000;
if(V>25)
{
printf("主动轮直径过大,请重新选择小主动轮直径D1:
\n");
gotoLOOP;
}
if(V<5)
{
printf("主动轮直径过小,请重新选择大主动轮直径D1:
\n");
gotoLOOP;
}
D2=(N1/N2)*D1*0.99;//计算从动轮直径D2
for(num_1=0;num_1<50;num_1++)
{
if(D2<=gaugediameter_all[num_1])break;
}
if(num_1!
=0)
{
value_min=gaugediameter_all[num_1-1];
value_max=gaugediameter_all[num_1];
D2=Forclosetothenumber(value_min,value_max,D2);//(比较)
}
elseD2=gaugediameter_all[num_1];
transmissionratio=N1/N2;
transmissionratio1=D2/(D1*0.99);
transmissionratio2=(transmissionratio-transmissionratio1)/transmissionratio*100;
if(transmissionratio2>5)
{
printf("传动比不适用,请重新选择主动轮直径D1:
\n");
gotoLOOP;
}
}
/*********************************4.V带长度及中心距*************************************/
voidLengthandCenterdistance()
{
intlength_Ld[39]={200,224,250,280,315,335,400,450,500,560,
630,710,800,900,1000,1120,1250,1400,1600,1800,
2000,2240,2500,2800,3150,3350,4000,4500,5000,5600,
6300,7100,8000,9000,10000,11200,12500,14000,16000};
inta_0,Ld_0,num,value_min,value_max;
here:
printf("请输入初选中心距(mm):
\n");
scanf("%d",&a_0);
Ld_0=2*a_0+PI*(D1+D2)/2+pow((D2-D1),2)/(4*a_0);
for(num=0;num<39;num++)
{
if(Ld_0<=length_Ld[num])break;
}
/*value_max=length_Ld[num-1];
value_min=length_Ld[num];
Ld=Forclosetothenumber(value_min,value_max,Ld_0);*/
if(Ld_0==length_Ld[num])
Ld=length_Ld[num];
else
Ld=length_Ld[num-1];
Centerdistance=a_0+(Ld-Ld_0)/2;
SmallpulleysAngle=180-(D2-D1)/Centerdistance*53.7;
if(SmallpulleysAngle<120)
{
printf("SmallpulleysAngle=%f度<120度",SmallpulleysAngle);
printf(",小带轮包角不适宜,请重新选择初选中心距:
\n");
gotohere;
}
}
/*********************************5.确定V带根数*****************************************/
voidBeltingthenumber()
{
floati;
intwrapangle,num,value_min,value_max;
intwrap_angle[16]={180,175,170,165,160,155,150,145,140,135,130,125,120,110,100,90};
for(num=0;num<16;num++)
{
if(SmallpulleysAngle>=wrap_angle[num])
break;
}
if(num!
=0)
{
value_min=wrap_angle[num];
value_max=wrap_angle[num-1];
wrapangle=Forclosetothenumber(value_min,value_max,SmallpulleysAngle);
}
elsewrapangle=180;
switch(wrapangle)
{
case180:
Kv=1;break;
case175:
Kv=0.99;break;
case170:
Kv=0.98;break;
case165:
Kv=0.96;break;
case160:
Kv=0.95;break;
case155:
Kv=0.93;break;
case150:
Kv=0.92;break;
case145:
Kv=0.91;break;
case140:
Kv=0.89;break;
case135:
Kv=0.88;break;
case130:
Kv=0.86;break;
case125:
Kv=0.84;break;
case120:
Kv=0.82;break;
case110:
Kv=0.78;break;
case100:
Kv=0.73;break;
case90:
Kv=0.68;break;
}
switch(TYPE)//传递功率的计算
{
case0:
P0=V*(0.147*(pow(V,-0.09))-4.79/D1-(0.479E-4)*V*V)-0.32;break;
case1:
P0=V*(0.450*(pow(V,-0.09))-19.62/D1-(0.799E-4)*V*V)-0.32;break;
case2:
P0=V*(0.769*(pow(V,-0.09))-50.79/D1-(1.385E-4)*V*V)-0.32;break;
case3:
P0=V*(1.477*(pow(V,-0.09))-143.66/D1-(2.369E-4)*V*V)-0.32;break;
case4:
P0=V*(3.223*(pow(V,-0.09))-505.48/D1-(4.791E-4)*V*V)-0.32;break;
case5:
P0=V*(4.844*(pow(V,-0.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 传动 设计 程序 编制