H a r b i n I n s t i t u t e o f T e c h n o l o g y上机电算说明书课程名称:机械设计电算题目:普通V带传动院系:机电工程学院班级:设计者:学号:指导教师:设计时间:2015.11.11-2015.12.1哈尔滨工业大学目录一、普通V带传动的内容 (1)二、变量标识符 (1)三、程序框图 (2)四、V带设计C程序 (3)五、程序运行截图 (10)参考文献 (11)一、普通V带传动的内容给定原始数据:传递的功率P,小带轮转速n1 传动比i及工作条件设计内容:带型号,基准长度Ld,根数Z,传动中心距a,带轮基准直径dd1、dd2,带轮轮缘宽度B,初拉力F0和压轴力Q。
二、变量标识符为了使程序具有较好的可读性易用性,应采用统一的变量标识符,如表1所示。
表1变量标识符表。
表1 变量标识符表三、程序框图四、V带设计c程序#include<stdio.h>#include<math.h>#include<string.h>#define PAI 3.14int TYPE_TO_NUM(char type); /*将输入的字符(不论大小写)转换为数字方便使用*/float Select_Ki(float i); /*查表选择Ki的程序*/float Select_KA(float H,int GZJ,int YDJ); /*查表选择KA的程序*/float Select_KL(float Ld,int TYPE); /*查表选择KL的程序*/float Select_M(int TYPE); /*查表选择m的程序*/float Select_dd1(int TYPE); /*查表选择小轮基准直径dd1的程序*/ float Select_dd2(int dd1,float i); /*查表选择大轮直径dd2的程序*/ float Compute_P0(float V,int TYPE,float dd1); /*计算P0的程序*/float Compute_DIFP0(int TYPE,float Ki,int n1); /*计算DIFP0的程序*/float Compute_VMAX(int TYPE); /*计算VMAX的程序*/float Compute_KALF(float ALF1); /*计算KALF的程序*/float Compute_B(int TYPE,int z); /*计算带宽B的程序*/float* Compute_LAK(float dd1,float dd2,int TYPE); /*计算Ld,a,KL的程序*/ main(){floatP,H,i,n1,KA,Ki,dd1,dd2,V,P0,DIFP0,Pd,VMAX,*LAK,m,Ld,KALF,a,KL,z,F0,ALF1, Q,B;int YDJ,GZJ,TYPE,ANS;char type,ans;printf(" V带传动设计程序\n");printf(" 程序设计人:×××\n 班号:123456678\n 学号:1234567896\n"); START: printf("请输入原始参数:\n");printf("传递功率P(KW):");scanf("%f",&P);printf("小带轮转速n1(r/min):");scanf("%f",&n1);printf("传动比i:");scanf("%f",&i);printf("每天工作时间H(h):");scanf("%f",&H);printf("原动机类型(1或2):");scanf("%d",&YDJ);printf("工作机载荷类型:\n1,载荷平稳\n2,载荷变动较小\n3,载荷变动较大\n4,载荷变动很大\n");scanf("%d",&GZJ);DX: printf("带型:");scanf(" %c",&type);TYPE=TYPE_TO_NUM(type);KA= Select_KA(H,GZJ,YDJ);Pd=KA*P;VMAX=Compute_VMAX(TYPE);DD1:dd1=Select_dd1(TYPE);V=PAI*dd1*n1/60000;while(V>VMAX){printf("所选小轮基准直径过小!请重新选择!\n");dd1=Select_dd1(TYPE);V=PAI*dd1*n1/60000;}dd2=Select_dd2(dd1,i);P0=Compute_P0(V,TYPE,dd1);Ki=Select_Ki(i);DIFP0=Compute_DIFP0(TYPE,Ki,n1);LAK=Compute_LAK(dd1,dd2,TYPE);Ld=LAK[0];a=LAK[1];KL=LAK[2];ALF1=180-57.3*(dd2-dd1)/a;KALF=Compute_KALF(ALF1);z=ceil(Pd/(KALF*KL*(P0+DIFP0)));if(z>=10)goto DX;m=Select_M(TYPE);F0=500*Pd*(2.5-KALF)/(z*V*KALF)+m*V*V;Q=2*z*F0*sin(ALF1*PAI/360);B= Compute_B(TYPE,z);printf(" 计算结果\n");printf("小轮直径:%f mm\n大轮直径:%f mm\n中心距:%f mm\n带长:%f mm\n带宽:%f mm\n带的根数:%f\n初拉力:%f N\n轴压力:%f N\n",dd1,dd2,a,Ld,B,z,F0,Q); X: printf("计算下一组带轮直径按'Y',重新开始按'S',结束按'N':");scanf(" %c",&ans);ANS=TYPE_TO_NUM(ans);if(ANS==6)goto DD1;else if(ANS==7)goto START;else if(ANS==8)printf("程序结束");else{printf("输入错误,请重新输入");goto X;}}float Select_KA(float H,int GZJ,int YDJ){float ka1[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}};float ka2[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}};float KA;if(YDJ==1){if(H<10)KA=ka1[GZJ-1][0];else if(H>16)KA=ka1[GZJ-1][2];elseKA=ka1[GZJ-1][1];}if(YDJ==2){if(H<10)KA=ka2[GZJ-1][0];else if(H>16)KA=ka2[GZJ-1][2];elseKA=ka2[GZJ-1][1];}return KA;}float Select_Ki(float i){float m;floatKi[10]={1.0000,1.0136,1.0276,1.0419,1.0567,1.0719,1.0875,1.1036,1.1202,1.1 373};float I[10]={1.00,1.02,1.05,1.09,1.13,1.19,1.25,1.35,1.52,2.00};int j=9;for(j=9;j>=0;j--){m=i-I[j];if(m>=0)break;}return Ki[j];}int TYPE_TO_NUM(char type){int x;if(type<91)type+=32;switch(type){case 'z':x=0;break;case 'a':x=1;break;case 'b':x=2;break;case 'c':x=3;break;case 'd':x=4;break;case 'e':x=5;break;case 'y':x=6;break;case 's':x=7;break;case 'n':x=8;break;}return x;}float Compute_P0(float V,int TYPE,float dd1){float P0;float K1[6]={0.246,0.449,0.794,1.48,3.15,4.57};float K2[6]={7.44,19.02,50.6,143.2,507.3,951.5};float K3[6]={0.441e-4,0.765e-4,1.31e-4,2.34e-4,4.77e-4,7.06e-4};P0=(K1[TYPE]*pow(V,-0.09)-K2[TYPE]/dd1-K3[TYPE]*V*V)*V;return P0;}float Compute_DIFP0(int TYPE,float Ki,int n1){float Kb,DIFP0;float KB[6]={0.2925e-3,0.7725e-3,1.9875e-3,5.625e-3,19.95e-3,37.35e-3};Kb=KB[TYPE];DIFP0=Kb*n1*(1-1/Ki);return DIFP0;}float Select_dd1(int TYPE){int i;float dd1;float DD1[6][4]={{50,63,71,80},{75,90,100,125},{125,140,160,180},{200,250,315,400},{355,400,450,500},{500,560,630,710}};printf("该带型推荐的小带轮基准直径有(mm):\n");for(i=0;i<4;i++){printf("%.2f ",DD1[TYPE][i]);}printf("\n请选择小带轮直径dd1:");scanf("%f",&dd1);return dd1;}float Select_dd2(int dd1,float i){float DD2[]={50,56,63,71,80,90,100,112,125,140,150,160,180,200,224, 250,280,315,355,400,425,450,500,560,600,630,710,800};float dd2,temp,t;int j=0;temp=i*dd1;for(j=0;j<28;j++){t=temp-DD2[j];if(t<=0)break;}if((DD2[j]-temp)<(temp-DD2[j-1]))dd2=DD2[j];elsedd2=DD2[j-1];return dd2;}float* Compute_LAK(float dd1,float dd2,int TYPE){int j=0;float a1,a2,a0,Ld0,temp,KALF,Ld,a,KL;float LAK[3];float kl[23][6]={{400,0.87},{450,0.89},{500,0.91},{560,0.94},{630,0.96,0.81},{710,0.99,0.83},{800,1.00,0.85,0.82},{900,1.03,0.8 7,0.84,0.83},{1000,1.06,0.89,0.86,0.86,0.83},{1120,1.08,0.91,0.88,0.88,0.86},{1250,1.10,0.93,0.90,0.91,0.89},{1400,1.14, 0.96,0.92,0.93,0.91},{1600,1.16,0.99,0.95,0.95,0.93},{1800,1.18,1.01,0.98,0.97,0.96},{2000,0,1.03,1.00,0.99,0.98},{2240,0,1.06,1 .03,1.02,1.00},{2500,0,1.09,1.05,1.04,1.03},{2800,0,1.11,1.07,1.07,1.06},{3150,0,1.13,1.09,1.09,1.08},{3550,0,1.17,1.13 ,1.12,1.11},{4000,0,1.19,1.15,1.15,1.14},{4500,0,0,1.18,1.18,1.17},{5000,0,0,0,1. 21,1.20}};a1=0.7*(dd1+dd2);a2=2*(dd1+dd2);printf("请输入初估中心距a0(范围为%.2fmm~%.2fmm):",a1,a2);scanf("%f",&a0);Ld0=2*a0+(dd1+dd2)*PAI/2+(dd2-dd1)*(dd2-dd1)/a0/4;for(j=0;j<23;j++){temp=Ld0-kl[j][0];if(temp<=0)break;}if((Ld0-kl[j-1][0])>(kl[j][0]-Ld0)){ Ld=kl[j][0];KL=kl[j][TYPE+1];}else{ Ld=kl[j-1][0];KL=kl[j-1][TYPE+1];}a=a0+(Ld-Ld0)/2;LAK[0]=Ld;LAK[1]=a;LAK[2]=KL;return LAK;}float Compute_VMAX(int TYPE){float VMAX;switch(TYPE){case 0:case 1:case 2:case 3:VMAX=25;break;case 4:case 5:VMAX=30;break;}return VMAX;}float Select_M(int TYPE){float m;float M[6]={0.06,0.1,0.17,0.3,0.6,0.9};m=M[TYPE];return m;}float Compute_B(int TYPE,int z){float f[6]={8,10,12.5,17,23,29};float e[6]={12,15,19,25.5,37,44.5};float B;B=(z-1)*e[TYPE]+2*f[TYPE];return B;}float Compute_KALF(float ALF1){floatkalf[2][14]={220,210,200,190,180,170,160,150,140,130,120,110,100,90,1.20,1. 15,1.10,1.05,1.00,0.98,0.95,0.92,0.89,0.86,0.82,0.78,0.73,0.68},KALF;int i;for(i=0;i<14;i++){if(ALF1<kalf[0][i]&&ALF1>kalf[0][i+1]){KALF=kalf[1][i]+(kalf[1][i]-kalf[1][i+1])*(ALF1-kalf[0][i])/10;break;}}return KALF;}五、程序运行截图电动机功率4kw,,转速960r/min,传动比2,工作时间24h。