选取中小型机械常见V带传输参数:
电动机工作功率Pd/kW =2.2
电动机满载转速nm/(r/min)=940
工作机的转速nw/(r/min)=55
传动比i1=2.8
最短工作年限=10年/日工作量<10h
设计内容︰
(1)V带的型号、长度Ld和根数Z;
(2)带轮结构尺寸:小带轮直径d1,大带轮直径d2;
(3)传动中心距a,小带轮包角α,带速v;
(4)轴上压力Fq,初压力F0,轮宽B;
步骤:
1.确定工作情况系数KA
2.传动比系数Ki
3.Pd和n1选型
4.确定带轮基准直径dd1、 dd2
5.确定带速v
6.确定传动中心距和带基准长度
7.选取相近的标准带长Ld
8.计算实际中心距a
9.计算小带轮包角α和包角系数Kα
10.确定P0,∆P0和V带根数Z
11.求初拉力F0(单根)
12.作用在轴上的压力Fp(合力)
13.确定合适的方案(结构尺寸)
方法:
1.输入P,n1, i输入载荷情况和每天工作时间(由i判断Ki)
2.根据工作状况和工作时间确定KA
3.根据Pd和n1选型,依据选型图
4.dd1=dd_standard (, : i)( i初始为1)
5.根据型号确定最大带速Vmax,并淘汰掉不合格的带型
6.根据dd2=i*dd1*(1-Epsilon)确定dd2,并进行标准化选取,并取dd2/2<100。
7.求得a推荐区间[a1-a2],并淘汰掉不在这个区间范围内的坐标(记为0)修正Ld(对应位置变成零)
8.计算小带轮包角ALF1和包角系数KALF,淘汰掉ALF1在[90,220]之外的情况,修正a和Ld_fact
9.根据小带轮的包角ALF1,确定合理情况的KALF1。
10.求得P0,∆P0,z并通过0
12.dd1是否是dd_standard最后列。
%第一部分,对数据的处理和输入
function [ ] = v( )%定义第一个函数v
%计算v带传动中work_situation,Pd,n1,i, dd1,dd2,a,Ld,KL,ALF1,Z,F0,Q,B。
%% 输入v带传动各项数据
P=2.2;%输入名义功率P(kw)
n1=940;%主动轮(小轮)转速n1(r/min)
i=2.8;%传动比i
i_rate_change=0.05;
%为计算方便,将P,n1转化为国际单位制;
w1=n1*pi/30;%小带轮角速度
%% 输入实验所需表格
excel_KA=[1 1.1 1.2 1.1 1.2 1.3;1.1 1.2 1.3 1.2 1.3 1.4;1.2 1.3 1.4 1.4 1.5 1.6;1.3 1.4 1.5 1.5 1.6 1.8];%KA系数
excel_line=[0.9659 2.89975 ;0.9659 2.72280 ;0.9659 2.13101 ;1.16112 1.46891 ;
1.21825 0.89902 ;1.22252 0.37241; 1.32193 -0.24592];
%v带传动线性系数,这种系数适用单位为Pd——kw,N1——r/mim
%带型对照表:Z——1;Z-A——2;A-B——3;B-C——4;C-D——5;D-E——6;E——7
excel_v_max=[25,25,25,25,30,30];%对Y(未列出),A,B,C型带v_max=25,D,E型带v_max=30。
excel_Kb=[0.2925 0.7725 1.9875 5.625 19.95 37.35]*0.001;%Kb为弯曲影响系数
%P0为根据表查得普通V带基本额定功率P0的计算公式计算出来的,K1,K2,K3为其系数。
excel_K1=[0.246 0.449 0.794 1.48 3.15 4.57];
excel_K2=[7.44 19.02 50.6 143.2 507.3 951.5];
excel_K3=[0.441 0.765 1.31 2.34 4.77 7.06]*10^(-4);
%输入标准值
dd_standard=[50 63 71 75 80 90 100 112 125 132 140 150 160 180 200 224 250 280 315;%Z
75 80 85 90 100 106 112 118 125 132 140 150 160 180 200 224 250 280 315;%A
125 132 140 150 160 170 180 200 224 250 280 315 355 400 450 500 inf inf inf;%B
200 212 224 236 250 265 280 315 355 400 450 500 inf inf inf inf inf inf inf;%C
355 375 400 425 450 475 500 530 600 inf inf inf inf inf inf inf inf inf inf];%D
Epsilon =0.02;%滑动系数
Ld=[200 224 250 280 315 355 400 450 500 560 630 710 800 900 1000 1120 1250 1400 1600 1800 2000 2240 2500 2800 3150 3550 4000 4500 5000];
KL=[0.00 0.00 0.00 0.00 0.00 0.00 0.87 0.89 0.91 0.94 0.96 0.99 1.00 1.03 1.06 1.08 1.10 1.14 1.16 1.18 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00;
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.81 0.83 0.85 0.87 0.89 0.91 0.93 0.96 0.99 1.01 1.03 1.06 1.09 1.11 1.13 1.17 1.19 0.00 0.00;
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.82 0.84 0.86 0.88 0.90 0.92 0.95 0.98 1.00 1.03 1.05 1.07 1.09 1.13 1.15 1.18 0.00;
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.83 0.86 0.88 0.91 0.93 0.95 0.97 0.99 1.02 1.04 1.07 1.09 1.12 1.15 1.18 1.21;
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.83 0.86 0.89 0.91 0.93 0.96 0.98 1.00 1.03 1.06 1.08 1.11 1.14 1.17 1.20];
%确定包角系数K_ALF
%根据小轮包角角度范围area_ALF1,确定包角系数KALF
area_ALF1=[220 210 200 190 180 170 160 150 140 130 120 110 100 90];
K_ALF=[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];
%计算传动比系数Ki(取标准值)
% 1——1.01 1
if 1<=i|i<1.015
Ki=1;
end
% 1.02——1.04 1.0316
if 1.015<=i|i<1.045
Ki=1.0316;
end
% 1.05——1.08 1.0276
if 1.045<=i||i<1.085
Ki=1.0276;
end
% 1.09——1.12 1.0419
if 1.085<=i|i<1.125
Ki=1.0419;
end
% 1.13——1.18 1.0567
if 1.125<=i|i<1.185
Ki=1.0567;
end
% 1.19——1.24 1.0719
if 1.185<=i|i<1.245
Ki=1.0719;
end
% 1.25——1.34 1.0875
if 1.245<=i|i<1.345
Ki=1.0875;
end
% 1.35——1.91 1.1036
if 1.345<=i|i<1.515
Ki=1.1036;
end
% 1.52——1.99 1.1202
if 1.515<=i|i<1.995
Ki=1.1202;
end
% >2.00 1.1373
if i>1.995
Ki=1.1373;
end
m=[0.06 0.1 0.17 0.3 0.6];%单位长度质量m/(m/kg)
e=[12 15 19 25.5 37];%单1位mm
f=[8 10 1.5 17 23];%单位mm
%% 查表求传动比系数Ki,查KA, 计算Pd,选带型
% %输入载荷情况和工作小时,根据这个确定KA。
% disp(['确定工作状况']);
% disp(['载荷平稳 1']);
% disp(['载荷变动小 2']);
% disp(['载荷变动较大 3']);
% disp(['载荷变动剧烈 4']);
% work_situation = input('Input a number:');
% disp(['You input number is:',num2str(work_situation)]);
% %确定工作时间
% disp(['确定工作时间']);
% disp(['t<10 1']);
% disp(['1016 3']);
% work_time_everyday = input('Input a number:');
% disp(['You input number is:',num2str(work_time_everyday)]);
work_situation=1;
work_time_everyday=1;
%根据工作状况和工作时间确定KA
if n1>=600;
KA=excel_KA(work_situation,work_time_everyday);
else
KA=excel_KA(work_situation,work_time_everyday+3);
end
Pd=KA*P;%确定设计功率
%根据Pd和n1选型
%思路:根据选型图给出的对数坐标系,各带传动关系在初始段皆为直线,对各v带传动直线进行线性拟合,
%将点(Pd,KA)带进图中,确定包夹住(Pd,KA)的两条直线,根据这两条直线的型号,确定三种带传动型号,在下式中分别计算。
%确定包夹点直线的思路为将Pd带入各个直线方程,计算出对应的转速Nc,比较n1和解出的Nc大小,选择比n1大的和比n1小的两条直线。
for j=1:6
Nc(j)= 10^excel_line(j,2)* (Pd)^excel_line(j,1);
end
for j=1:6
if (Nc(j)-n1)>0
line=j; %退出循环后,点(Pd,KA)位于line(i)和line(i+1)之间。
end
end
line_style=zeros(1,6);%选择line_style储存带型,如果选择,则为1,否则为0。
%line_style对应带型为:Z—1;A—2;B—3;C—4;D—5;E—6
switch line
case 1 %选择Z带和A带
line_style(1)=1;
line_style(2)=1;
case 2 %选择Z、A、B带
line_style(1)=1;
line_style(2)=1;
line_style(3)=1;
case 3 %选择A、B、C带
line_style(2)=1;
line_style(3)=1;
line_style(4)=1;
case 4 %选择B、C、D带
line_style(3)=1;
line_style(4)=1;
line_style(5)=1;
case 5 %选择C、D、E带
line_style(4)=1;
line_style(5)=1;
line_style(6)=1;
case 6 %选择D、E带
line_style(5)=1;
line_style(6)=1;
case 7 %选择E带
line_style(6)=1;
end
%% 确定dd1,dd2
%带型用TYPE标记,表示行向量的意义
for length=1:19
dd1=dd_standard(:,length)'; %dd1依次遍历dd_standard中的所有数
for TYPE=1:5
V(TYPE)=w1*dd1(TYPE)/1000/2; %计算带速
if V(TYPE)>excel_v_max(TYPE)
line_style(TYPE)=0;
end
end
dd2=i*dd1*(1-Epsilon);
dd2=standard(dd2);%使用standard函数对dd2进行标准化选取
for TYPE=1:5
if dd2(TYPE)/2>100|dd1>dd2
dd2(TYPE)=inf;%根据轴承座高度和底盘距离淘汰不合适的情况。
end%原程序是对小轿车分析用到轴承座高度,这里不用但删了代码就跑不了
judge_i=dd2(TYPE)/dd1(TYPE)/(1-Epsilon)/i;
if judge_i>(1+i_rate_change) | judge_i<(1-i_rate_change)
dd2(TYPE)=inf;%除去因为标准化导致的传动比误差过大的情况。
end
end
%% 确定不同带型实际长度Ld_fact
% a=(dd1+dd2)%初始中心距推荐选择原则为0.7*(dd1+dd2)——2*(dd1+dd2)
for TYPE=1:5%不考虑E型带,一般用不上。
Ld_fact(TYPE,:)=Ld.*line_style(TYPE);
for j=1:29
if KL(TYPE,j)==0
Ld_fact(TYPE,j)=0;
end
end
end
% 公式:Ld=2*a+pi/2*(dd1+dd2)+(dd2-dd1)^2/4/a;
%% 计算中心距a,修正Ld_fact
a1=0.7*(dd1+dd2);%推荐a极小值
a2=2*(dd1+dd2);%推荐a极大值
for TYPE=1:5;
for j=1:size(Ld_fact,2)
mid=( 2*Ld_fact(TYPE,j)-pi*( dd1(TYPE)+dd2(TYPE) ) )^2-8*( dd2(TYPE)-dd1(TYPE) )^2;
if mid<0 %淘汰掉a为复数(有虚数部分)的可能。这步我也没看懂
mid=0;
end
a(TYPE,j)=( 2*Ld_fact(TYPE,j)-pi*(dd1(TYPE)+dd2(TYPE))+sqrt(mid) )/8;
if Ld_fact(TYPE,j)==0 | a(TYPE,j)a2
a(TYPE,j)=0;
Ld_fact(TYPE,j)=0;%对不在[a1,a2]范围内的坐标置0.
end
end
end
%% 计算小带轮包角ALF1和包角系数KALF,修正a和Ld_fact
for TYPE=1:size(dd1,2)
ALF1(TYPE,:)=180-( dd2(TYPE)-dd1(TYPE) )*a(TYPE,:).^(-1)*57.3;
end
KALF=zeros(5,size(ALF1,2));
for TYPE=1:5
for j=1:size(ALF1,2)
if ALF1(TYPE,j)<90|ALF1(TYPE,j)>220 %如果包角在85——90或220——225之间,怎么办?
ALF1(TYPE,j)=-inf;%标记不符合90——220的角。
a(TYPE,j)=0;%根据包角关系淘汰
Ld_fact(TYPE,j)=0;%根据包角关系淘汰
end
for k=1:14
if (area_ALF1(k)-ALF1(TYPE,j))>0
signal=k; %退出循环后,ALF1(TYPE,j)在area_ALF1(k)——area_ALF1(k+1)之间
end
end
if ALF1(TYPE,j)~=-inf
if signal~=14%获得包角系数KALF
if ( area_ALF1(signal)-ALF1(TYPE,j) )>( ALF1(TYPE,j)-area_ALF1(signal+1) )
KALF(TYPE,j)=K_ALF(signal+1);
else
KALF(TYPE,j)=K_ALF(signal);
end
end
end
end
end
%% 求合理情况下Z的根数,淘汰掉Z>=10的情况,并修正a,Ld_fact,ALF1和KALF。
for TYPE=1:5
P0(TYPE)=(excel_K1(TYPE)*V(TYPE)^(-0.09)-excel_K2(TYPE)/dd1(TYPE)-excel_K3(TYPE)*V(TYPE)^2)*V(TYPE);%求得P0
DIFP0(TYPE)=excel_Kb(TYPE)*n1*(1-1/Ki);%求得ΔP0
Z(TYPE,:)=Pd/( P0(TYPE)+DIFP0(TYPE) )*( KL(TYPE,:).*KALF(TYPE,:) ).^-1;%求得v带根数Z
for j=1:size(Z,2)
if Z(TYPE,j)<=0||Z(TYPE,j)>9%当Z>9时,直接舍去,不考虑<9.5的情况。
Z(TYPE,j)=-inf;
ALF1(TYPE,j)=-inf;%根据V带根数Z淘汰
KALF(TYPE,j)=0;%根据V带根数Z淘汰
a(TYPE,j)=0;%根据V带根数Z淘汰
Ld_fact(TYPE,j)=0;%根据V带根数Z淘汰
else
Z(TYPE,j)=ceil(Z(TYPE,j));%向上取整
end
end
end
%% 求初拉力F0,左右在轴上的压力FQ,轮毂宽度B
for TYPE=1:1:5
for j=1:1:size(a,2)
if a(TYPE,j)~=0
F0(TYPE,j)=500*Pd/V(TYPE)/Z(TYPE,j)* ( (2.5-KALF(TYPE,j))/KALF(TYPE,j) )+m(TYPE)*V(TYPE)^2;
Q(TYPE,j)=2*F0(TYPE,j)*Z(TYPE,j)*sin(ALF1(TYPE,j)/2/180*pi);
B(TYPE,j)=( Z(TYPE,j)-1 )*e(TYPE)+2*f(TYPE);
else
F0(TYPE,j)=0;
Q(TYPE,j)=0;
B(TYPE,j)=0;
end
end
end
output(work_situation,Pd,n1,i, dd1,dd2,a,Ld,KL,ALF1,Z,F0,Q,B,length);
end
end
%第二部分输出到表格
function [ ] = output(work_situation,Pd,n1,i, dd1,dd2,a,Ld,KL,ALF1,Z,F0,Q,B,length)
global row;
global result;
if length==1
%工作状况,显示位置(3,A—B)
result{3,1}='载荷情况为:';
switch work_situation
case 1
result{3,2}='载荷平稳';
case 2
result{3,2}='载荷变动小';
case 3
result{3,2}='载荷变动较大';
case 4
result{3,2}='载荷变动剧烈';
end
%工作时间,显示位置(4,A—B)
result{4,1}='工作时间';
result{4,2}='10年1班';
%电动机工作功率Pd/kW,显示位置(5,A—B)
result{5,1}='电动机工作功率Pd/kW';
result{5,2}=Pd;
%电动机满载转速n1/(r/min),显示位置(6,A—B)
result{6,1}='电动机满载转速n1/(r/min)';
result{6,2}=n1;
%传动比i,显示位置(7,A—B)
result{7,1}='传动比i';
result{7,2}=i;
%排列方式为'带型' 'dd1' 'dd2' 'a' 'Ld' 'KL' 'ALF1' 'Z', 'F0' 'Q' 'B'
result{8,1}='带型';result{8,2}='dd1';result{8,3}='dd2';result{8,4}='a';result{8,5}='Ld';result{8,6}='KL';result{8,7}='ALF1';result{8,8}='Z';result{8,9}='F0';result{8,10}='Q';result{8,11}='B';
row=9;
end
for TYPE=1:1:5
for j=1:1:size(a,2)
if a(TYPE,j)~=0
%带型(第1列)
switch TYPE
case 1
result{row,1}=char('Z型带');
case 2
result{row,1}='A型带';
case 3
result{row,1}='B型带';
case 4
result{row,1}='C型带';
case 5
result{row,1}='D型带';
end
%dd1(第2列)
result{row,2}=dd1(TYPE);
%dd2(第3列)
result{row,3}=dd2(TYPE);
%a(第4列)
result{row,4}=a(TYPE,j);
%Ld(第5列)
result{row,5}=Ld(j);
%KL(第6列)
result{row,6}=KL(TYPE,j);
%ALF1(第7列)
result{row,7}=ALF1(TYPE,j);
%Z(第8列)
result{row,8}=Z(TYPE,j);
%F0(第9列)
result{row,9}=F0(TYPE,j);
%Q(第10列)
result{row,10}=Q(TYPE,j);
%Q(第11列)
result{row,11}=B(TYPE,j);
row=row+1;
end
end
end
if length==19
writecell(result,'v_result.xlsx');
end
end
function [ dd2 ] = standard( dd2 )
%对dd2进行标准化取值
%输入标准值
dd2=[137.2000 205.8000 343.0000 548.8000 974.1200];
dd_standard=[50 63 71 75 80 90 100 112 125 132 140 150 160 180 200 224 250 280 315;%Z
75 80 85 90 100 106 112 118 125 132 140 150 160 180 200 224 250 280 315;%A
125 132 140 150 160 170 180 200 224 250 280 315 355 400 450 500 inf inf inf;%B
200 212 224 236 250 265 280 315 355 400 450 500 inf inf inf inf inf inf inf;%C
355 375 400 425 450 475 500 530 600 inf inf inf inf inf inf inf inf inf inf];%D
for i=1:5
for j=1:length(dd_standard)
if dd2(i)>dd_standard(i,j)
sign=j;
end
end
if sign==19||dd_standard(i,sign+1)==inf
dd2(i)=inf;
else
if ( dd2(i)-dd_standard(i,sign) )>( dd_standard(i,sign+1)-dd2(i) )
dd2(i)=dd_standard(i,sign+1);
else
dd2(i)=dd_standard(i,sign);
end
end
end
function [ ] = output(work_situation,Pd,n1,i, dd1,dd2,a,Ld,KL,ALF1,Z,F0,Q,B,length)
global row;
global result;
if length==1
%工作状况,显示位置(3,A—B)
result{3,1}='载荷情况为:';
switch work_situation
case 1
result{3,2}='载荷平稳';
case 2
result{3,2}='载荷变动小';
case 3
result{3,2}='载荷变动较大';
case 4
result{3,2}='载荷变动剧烈';
end
%工作时间,显示位置(4,A—B)
result{4,1}='工作时间';
result{4,2}='10年1班';
%电动机工作功率Pd/kW,显示位置(5,A—B)
result{5,1}='电动机工作功率Pd/kW';
result{5,2}=Pd;
%电动机满载转速n1/(r/min),显示位置(6,A—B)
result{6,1}='电动机满载转速n1/(r/min)';
result{6,2}=n1;
%传动比i,显示位置(7,A—B)
result{7,1}='传动比i';
result{7,2}=i;
%排列方式为'带型' 'dd1' 'dd2' 'a' 'Ld' 'KL' 'ALF1' 'Z', 'F0' 'Q' 'B'
result{8,1}='带型';result{8,2}='dd1';result{8,3}='dd2';result{8,4}='a';result{8,5}='Ld';result{8,6}='KL';result{8,7}='ALF1';result{8,8}='Z';result{8,9}='F0';result{8,10}='Q';result{8,11}='B';
row=9;
end
for TYPE=1:1:5
for j=1:1:size(a,2)
if a(TYPE,j)~=0
%带型(第1列)
switch TYPE
case 1
result{row,1}=char('Z型带');
case 2
result{row,1}='A型带';
case 3
result{row,1}='B型带';
case 4
result{row,1}='C型带';
case 5
result{row,1}='D型带';
end
%dd1(第2列)
result{row,2}=dd1(TYPE);
%dd2(第3列)
result{row,3}=dd2(TYPE);
%a(第4列)
result{row,4}=a(TYPE,j);
%Ld(第5列)
result{row,5}=Ld(j);
%KL(第6列)
result{row,6}=KL(TYPE,j);
%ALF1(第7列)
result{row,7}=ALF1(TYPE,j);
%Z(第8列)
result{row,8}=Z(TYPE,j);
%F0(第9列)
result{row,9}=F0(TYPE,j);
%Q(第10列)
result{row,10}=Q(TYPE,j);
%Q(第11列)
result{row,11}=B(TYPE,j);
row=row+1;
end
end
end
if length==19
xlswrite('v_result.xls',result);
end
end
end%end多了一个但不影响,可能是为了保证完全结束
求求三连啦