v带传动c语言设计流程.docx

上传人:b****3 文档编号:27550398 上传时间:2023-07-02 格式:DOCX 页数:14 大小:106.18KB
下载 相关 举报
v带传动c语言设计流程.docx_第1页
第1页 / 共14页
v带传动c语言设计流程.docx_第2页
第2页 / 共14页
v带传动c语言设计流程.docx_第3页
第3页 / 共14页
v带传动c语言设计流程.docx_第4页
第4页 / 共14页
v带传动c语言设计流程.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

v带传动c语言设计流程.docx

《v带传动c语言设计流程.docx》由会员分享,可在线阅读,更多相关《v带传动c语言设计流程.docx(14页珍藏版)》请在冰豆网上搜索。

v带传动c语言设计流程.docx

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(ALF1kalf[0][i+1])

{

KALF=kalf[1][i]+(kalf[1][i]-kalf[1][i+1])*(ALF1-kalf[0][i])/10;

break;

}

}

returnKALF;

}

三、程序运行截图

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 唐诗宋词

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1