v带传动c语言设计流程.docx
- 文档编号:15231679
- 上传时间:2023-07-02
- 格式:DOCX
- 页数:14
- 大小:106.18KB
v带传动c语言设计流程.docx
《v带传动c语言设计流程.docx》由会员分享,可在线阅读,更多相关《v带传动c语言设计流程.docx(14页珍藏版)》请在冰点文库上搜索。
v带传动c语言设计流程
新鄉学院
题目:
V带传动的c语言设计
院系:
机电工程学院
班级:
机自专升本二班
姓名:
卢晓盟
学号:
指导教师:
梁炜
一、程序框图
二、V带设计程序
#include<>
#include<>
#include<>
#definePAI
intTYPE_TO_NUM(chartype);/*将输入的字符(不论大小写)转换为数字方便使用*/
floatSelect_Ki(floati);/*查表选择Ki的程序*/
floatSelect_KA(floatH,intGZJ,intYDJ);/*查表选择KA的程序*/
floatSelect_KL(floatLd,intTYPE);/*查表选择KL的程序*/
floatSelect_M(intTYPE);/*查表选择m的程序*/
floatSelect_dd1(intTYPE);/*查表选择小轮基准直径dd1的程序*/
floatSelect_dd2(intdd1,floati);/*查表选择大轮直径dd2的程序*/
floatCompute_P0(floatV,intTYPE,floatdd1);/*计算P0的程序*/
floatCompute_DIFP0(intTYPE,floatKi,intn1);/*计算DIFP0的程序*/
floatCompute_VMAX(intTYPE);/*计算VMAX的程序*/
floatCompute_KALF(floatALF1);/*计算KALF的程序*/
floatCompute_B(intTYPE,intz);/*计算带宽B的程序*/
float*Compute_LAK(floatdd1,floatdd2,intTYPE);/*计算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;
intYDJ,GZJ,TYPE,ANS;
chartype,ans;
printf("V带传动设计程序\n");
printf("设计者卢晓盟\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=*(dd2-dd1)/a;
KALF=Compute_KALF(ALF1);
z=ceil(Pd/(KALF*KL*(P0+DIFP0)));
if(z>=10)
gotoDX;
m=Select_M(TYPE);
F0=500*Pd*/(z*V*KALF)+m*V*V;
Q=2*z*F0*sin(ALF1*PAI/360);
B=Compute_B(TYPE,z);
printf("计算结果\n");
printf("小轮直径:
%fmm\n大轮直径:
%fmm\n中心距:
%fmm\n带长:
%fmm\n带宽:
%fmm\n带的根数:
%f\n初拉力:
%fN\n轴压力:
%fN\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)
gotoDD1;
elseif(ANS==7)
gotoSTART;
elseif(ANS==8)
printf("程序终止");
else
{
printf("输入错误,请从头输入");
gotoX;
}
}
floatSelect_KA(floatH,intGZJ,intYDJ)
{
floatka1[4][3]={{,,},{,,},{,,},{,,}};
floatka2[4][3]={{,,},{,,},{,,},{,,}};
floatKA;
if(YDJ==1)
{
if(H<10)
KA=ka1[GZJ-1][0];
elseif(H>16)
KA=ka1[GZJ-1][2];
else
KA=ka1[GZJ-1][1];
}
if(YDJ==2)
{
if(H<10)
KA=ka2[GZJ-1][0];
elseif(H>16)
KA=ka2[GZJ-1][2];
else
KA=ka2[GZJ-1][1];
}
returnKA;
}
floatSelect_Ki(floati)
{
floatm;
floatKi[10]={,,,,,,,,,};
floatI[10]={,,,,,,,,,};
intj=9;
for(j=9;j>=0;j--)
{
m=i-I[j];
if(m>=0)
break;
}
returnKi[j];
}
intTYPE_TO_NUM(chartype)
{
intx;
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;
}
returnx;
}
floatCompute_P0(floatV,intTYPE,floatdd1)
{
floatP0;
floatK1[6]={,,,,,};
floatK2[6]={,,,,,};
floatK3[6]={,,,,,};
P0=(K1[TYPE]*pow(V,-K2[TYPE]/dd1-K3[TYPE]*V*V)*V;
returnP0;
}
floatCompute_DIFP0(intTYPE,floatKi,intn1)
{
floatKb,DIFP0;
floatKB[6]={,,,,,};
Kb=KB[TYPE];
DIFP0=Kb*n1*(1-1/Ki);
returnDIFP0;
}
floatSelect_dd1(intTYPE)
{
inti;
floatdd1;
floatDD1[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);
returndd1;
}
floatSelect_dd2(intdd1,floati)
{
floatDD2[]={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};
floatdd2,temp,t;
intj=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];
else
dd2=DD2[j-1];
returndd2;
}
float*Compute_LAK(floatdd1,floatdd2,intTYPE)
{
intj=0;
floata1,a2,a0,Ld0,temp,KALF,Ld,a,KL;
floatLAK[3];
floatkl[23][6]={{400,},{450,},{500,},
{560,},{630,,},{710,,},{800,,,},{900,,,,},{1000,,,,,},
{1120,,,,,},{1250,,,,,},{1400,,,,,},{1600,,,,,},
{1800,,,,,},{2000,0,,,,},{2240,0,,,,},{2500,0,,,,},
{2800,0,,,,},{3150,0,,,,},{3550,0,,,,},{4000,0,,,,},{4500,0,0,,,},{5000,0,0,0,,}};
a1=*(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;
returnLAK;
}
floatCompute_VMAX(intTYPE)
{
floatVMAX;
switch(TYPE)
{
case0:
case1:
case2:
case3:
VMAX=25;
break;
case4:
case5:
VMAX=30;
break;
}
returnVMAX;
}
floatSelect_M(intTYPE)
{
floatm;
floatM[6]={,,,,,};
m=M[TYPE];
returnm;
}
floatCompute_B(intTYPE,intz)
{
floatf[6]={8,10,,17,23,29};
floate[6]={12,15,19,,37,};
floatB;
B=(z-1)*e[TYPE]+2*f[TYPE];
returnB;
}
floatCompute_KALF(floatALF1)
{
floatkalf[2][14]={220,210,200,190,180,170,160,150,140,130,120,110,100,90,,,,,,,,,
,,,,},KALF;
inti;
for(i=0;i<14;i++)
{
if(ALF1
{
KALF=kalf[1][i]+(kalf[1][i]-kalf[1][i+1])*(ALF1-kalf[0][i])/10;
break;
}
}
returnKALF;
}
三、程序运行截图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 传动 语言 设计 流程