当前位置:首页 >> 机械/仪表 >>

哈工大V带传动电算报告(附程序代码)


Harbin Institute of Technology

哈 尔 滨工业 大 学 机 械 设计作 业 设计计 算 说明书

课程名称: 设计题目: 院 班 学 系: 级: 号:

机械设计 V 带传动设计

设 计 者: 指导教师: 设计时间:

哈尔滨工业大学
<

br /> 一、程序框图
开始

A

输入 P, n1,

i
查标准长度确定 Ld,同时 查取 KL,计算实际中心距 a

输入各原始数据

查表求传动比系数 Ki 查 KA, 计算 Pd,选型 B

计算小带轮包角 α1 查表 确定包角系数 Kα

输入带型号 计算 Po, ?Po 根据型号确定最大带速 Vmax, 额定功率 P0 中系数 K1,K2,K3, 弯曲影响系数 Kb

Z=
输出该型号带轮系列直径,选 择输入小带轮基准直径 dd1

Pd (Po + ?Po )K L Kα
B N

Z<10 ?

V=

πd d 1n1
60 × 1000
减小直径 V<Vmax ? Y N Y

Y 计算 Fo, Q,B ( 取整) 输出结果

计算下一种 带轮直径? N

d d 2= i × d d 1
查标准带轮直径表确定 dd2 计算下一 型号带 ? N 结束 Y

a1=0.7(dd1+dd2),a2=2(dd1+dd2) 输入初估中心距 a0,计算 Ld0

A
图 1 V 带设计程序框图

二、V 带设计程序
#include<stdio.h> #include<math.h> #include<string.h> #define PAI 3.14 int 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() { float P,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(" 设计者 李宏达 1080810306\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]; else KA=ka1[GZJ-1][1]; } if(YDJ==2) { if(H<10) KA=ka2[GZJ-1][0]; else if(H>16) KA=ka2[GZJ-1][2]; else KA=ka2[GZJ-1][1]; } return KA; } float Select_Ki(float i) { float m; float Ki[10]={1.0000,1.0136,1.0276,1.0419,1.0567,1.0719,1.0875,1.1036,1.1202,1.1373}; 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]; else dd2=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.87,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},{40 00,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) { float kalf[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;

}

三、程序运行截图


相关文章:
哈工大 机械设计 大作业 V带传动电算报告
哈工大 机械设计 大作业 V带传动电算报告 隐藏>> Harbin Institute of Technology...d d 1 A 图 1 V 带设计程序框图 二、V 带设计程序 function varargout =...
V带传动电算报告
机械设计V带传动电算程序C 2页 2财富值喜欢此文档的还喜欢 哈工大V带传动电算报告(附... 10页 免费 机械设计V带传动电算程序C 2页 2财富值 V带传动电算...
V带传动电算报告
机械设计V带传动电算程序C 2页 2财富值喜欢此文档的还喜欢 哈工大V带传动电算报告(附... 10页 免费 机械设计V带传动电算程序C 2页 2财富值 V带传动电算...
V带传动电算程序
哈工大V带传动电算报告(... 10页 免费 机械设计V带传动电算程序... 2页 ...哈​工​大​机​械​设​计​大​作​业​、​V​带...
哈工大带传动电算
哈工大带传动电算_工学_高等教育_教育专区。Harbin Institute of Technology 上...2.电算的任务 (1)编制 V 带传动设计程序框图。 (2)编制 V 带传动设计源...
哈工大带传动电算
哈工大带传动电算_工学_高等教育_教育专区。Harbin Institute of Technology 大...2、传动设计要求(1)编制 V 带传动设计程序框图。 (2)编制 V 带传动设计原...
哈工大带传动电算
哈工大带传动电算_工学_高等教育_教育专区。哈尔滨工业大学上机电算设计说明书 ...输出最终代码程序 哈尔滨工业大学上机电算设计说明书 四、程序流程图开始 A ...
哈工大带传动电算
哈工大带传动电算_机械/仪表_工程科技_专业资料。哈尔滨工业大学上机电算设计...·3 五、V 带设计 C 程序· ···4 六、出错判据、算例及界面· ...
哈工大带传动电算
哈工大带传动电算_工学_高等教育_教育专区。哈尔滨工业大学上机电算设计说明书 ...·3 五、V 带设计 C 程序· ···4 六、出错判据、算例及界面· ...
V带传动电算哈工大机械设计
V带传动电算哈工大机械设计_工学_高等教育_教育专区。Harbin Institute of Technology 大作业设计说明书 课程名称: 设计题目: 院班学系: 级: 号: 机械设计 V ...
更多相关标签:
哈工大齿轮传动设计 | 哈工大液压传动 | 液压与气压传动哈工大 | 哈工大组织机构代码 | 哈工大c语言程序设计 | 哈工大威海学校代码 | 哈工大ltp开源代码 | 哈工大威海代码 |