1、V带传动设计c程序的编制#include#include#include#define PI 3.14159/int ; /其它参数float KA,P0,P0_1,Kb,Ki,Kl,Kv; /,P0_1为传递功增量float b1,bp,h,q; float Pc,N1,N2,Centerdistance,SmallpulleysAngle,F0,V,flag_a,flag_b,flag_c; /Pc为功率,N1为主动轮转速,N2为从动轮转速,Small pulleys Angle为小带轮包角,Z传动带根数,F0为初拉力 /Kv为包角系数float pressure_Q,transmissi
2、onratio,Z_1; /pressure_Q轴上压力,transmissionratio为传动比int TYPE,D1,D2,Ld,Z,ch1; /TYPE为V带的类型,D1为主动轮基准直径,D2为从动轮直径, /V为带速,Ld为基准长度,Centerdistance为中心距float KA_softstart43=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_loadstart43=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
3、void CHOOSE_KA();void CHOOSE_type(); void CHOOSE_gaugediameter();void LengthandCenterdistance();void Beltingthenumber();void initialtension();void Axispressure();void display();void explain();void otherparameters_dis();int Forclosetothenumber(int min,int max,int z); /*主函数*/void main() int goon; do e
4、xplain(); CHOOSE_KA(); CHOOSE_type(); CHOOSE_gaugediameter(); LengthandCenterdistance(); Beltingthenumber(); initialtension(); Axispressure(); display(); scanf(%d,&goon); /if(goon!=1) /break; while(goon=1); /* 1.确定计算功率Pc */void CHOOSE_KA() int workingcondition,start_flag; float dayhour,nominalpower;
5、 printf(载荷变动选择:n); printf(n); printf(1.载荷变动微小:液体搅拌机;通风和鼓风机(=7.5KW);旋转式水泵和压缩机;发电机; 金属切削机床;印刷机;锯木机和木工机械。n); printf(n); printf(3.载荷变动较大:制砖机;斗式提升机;往复式水泵和压缩机;起重机;磨粉机;冲剪机床;橡胶 机械;振动筛;纺织机械;重载输送机。n); printf(n); printf(4.载荷变动很大:破碎机(旋转式、颚式等);磨碎机(球磨、棒磨、管磨)。n); printf(n); printf(请选择工况(以数字标号输入):n); scanf(%d,&work
6、ingcondition); 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&dayhour16) switch(workingcondition) case 1: KA=KA_so
7、ftstart02 ;break; case 2: KA=KA_softstart12 ;break; case 3: KA=KA_softstart22 ;break; case 4: KA=KA_softstart32 ;break; if(start_flag=2) if(dayhour=10&dayhour16) switch(workingcondition) case 1: KA=KA_loadstart02 ;break; case 2: KA=KA_loadstart12 ;break; case 3: KA=KA_loadstart22 ;break; case 4: KA=
8、KA_loadstart32 ;break; Pc=KA*nominalpower;/* 2.选型 */void CHOOSE_type() int i,t; float np6,a6=677,100,24,7,1.16,0.32,b6=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;i6;i+) npi=ai*(pow(Pc,bi); / n=N1;
9、 for(i=0;inpi|i=5) t=i; break; switch(t) case 0:printf(带型TPYE:Z型n);break; case 1:printf(带型TPYE:Z 或 A型n);break; case 2:printf(带型TPYE:A 或 B型n);break; case 3:printf(带型TPYE:B 或 C型n);break; case 4:printf(带型TPYE:C 或 D型n);break; case 5:printf(带型TPYE:D 或 E型n);break; case 6:printf(带型TPYE:E 或 F型n);break; prin
10、tf(n); TYPE=t;/* 3.基准直径选择 */void CHOOSE_gaugediameter() int num,num_1,value_min,value_max; float transmissionratio,transmissionratio1,transmissionratio2; int gaugediameter_all50= 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,37
11、5,400,425,450,475,500,530,560, 630,710,800,900,1000,1120,1250,1600,2000,2500, gaugediameter_min7=20,50,75,125,200,355,500, gaugediameter_Y12=20,25,40,45,56,63,71,80,90,100,112,125, gaugediameter_Z21=56,63,71,75,80,90,100,112,125,140,150,160,180,200,250,280,315,355,400,500,630, gaugediameter_A22=75,8
12、0,85,90,95,100,106,112,118,125,132,140,150,160,180,200,250,315,400,500,630,800, gaugediameter_B21=125,132,140,150,160,170,180,200,212,224,236,250,280,315,355,400,500,630,800,1000,1120, gaugediameter_C18=200,212,224,236,250,265,280,315,355,400,450,500,530,560,630,800,1000,1250, gaugediameter_D17=355,
13、375,400,425,450,475,500,530,560,630,710,800,900,1000,1250,1600,2000, gaugediameter_E12=500,560,630,710,800,900,1000,1120,1250,1600,2000,2500; printf(最小基准直径:Dmin=%dn,gaugediameter_minTYPE); printf(n); LOOP: printf(该型号带轮基准直径(mm):n); switch(TYPE) case 0: for(num=0;num12;num+) printf( %d,gaugediameter_Y
14、num); ; break; case 1: for(num=0;num21;num+) printf( %d,gaugediameter_Znum); ; break; case 2: for(num=0;num22;num+) printf( %d,gaugediameter_Anum); ; break; case 3: for(num=0;num21;num+) printf( %d,gaugediameter_Bnum); ; break; case 4: for(num=0;num18;num+) printf( %d,gaugediameter_Cnum); ; break; c
15、ase 5: for(num=0;num17;num+) printf( %d,gaugediameter_Dnum); ; break; case 6: for(num=0;num25) printf(主动轮直径过大,请重新选择小主动轮直径D1:n); goto LOOP; if(V5) printf(主动轮直径过小,请重新选择大主动轮直径D1:n); goto LOOP; D2=(N1/N2)*D1*0.99; /计算从动轮直径D2 for(num_1=0;num_150;num_1+) if(D25) printf(传动比不适用,请重新选择主动轮直径D1:n); goto LOOP; /
16、* 4.V带长度及中心距 */void LengthandCenterdistance() int length_Ld39=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; int a_0,Ld_0,num,value_min,value_max; here: prin
17、tf(请输入初选中心距(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;num39;num+) if(Ld_0=length_Ldnum) break; /* value_max=length_Ldnum-1; value_min=length_Ldnum; Ld=Forclosetothenumber(value_min,value_max,Ld_0);*/ if(Ld_0=length_Ldnum) Ld=length_Ldnum; else Ld=length_Ldnum-1
18、; Centerdistance=a_0+(Ld-Ld_0)/2; SmallpulleysAngle=180-(D2-D1)/Centerdistance*53.7; if(SmallpulleysAngle120) printf(SmallpulleysAngle=%f度120度,SmallpulleysAngle); printf(,小带轮包角不适宜,请重新选择初选中心距:n); goto here; /* 5.确定V带根数 */void Beltingthenumber() float i; int wrapangle,num,value_min,value_max; int wrap
19、_angle16=180,175,170,165,160,155,150,145,140,135,130,125,120,110,100,90; for(num=0;num=wrap_anglenum) break; if(num!=0) value_min=wrap_anglenum; value_max=wrap_anglenum-1; wrapangle=Forclosetothenumber(value_min,value_max,SmallpulleysAngle); else wrapangle=180; switch(wrapangle) case 180: Kv=1;break
20、; case 175: Kv=0.99;break; case 170: Kv=0.98;break; case 165: Kv=0.96;break; case 160: Kv=0.95;break; case 155: Kv=0.93;break; case 150: Kv=0.92;break; case 145: Kv=0.91;break; case 140: Kv=0.89;break; case 135: Kv=0.88;break; case 130: Kv=0.86;break; case 125: Kv=0.84;break; case 120: Kv=0.82;break
21、; case 110: Kv=0.78;break; case 100: Kv=0.73;break; case 90: Kv=0.68;break; switch(TYPE) /传递功率的计算 case 0: P0=V*(0.147*(pow(V,-0.09)-4.79/D1-(0.479E-4)*V*V)-0.32;break; case 1: P0=V*(0.450*(pow(V,-0.09)-19.62/D1-(0.799E-4)*V*V)-0.32;break; case 2: P0=V*(0.769*(pow(V,-0.09)-50.79/D1-(1.385E-4)*V*V)-0.32;break; case 3: P0=V*(1.477*(pow(V,-0.09)-143.66/D1-(2.369E-4)*V*V)-0.32;break; case 4: P0=V*(3.223*(pow(V,-0.09)-505.48/D1-(4.791E-4)*V*V)-0.32;break; case 5: P0=V*(4.844*(pow(V,-0.
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1