📄 08-齿轮传动的设计计算.m
字号:
disp ' ******** 圆柱齿轮传动设计 ********'
P1 = 22 ; N1 = 970 ; I = 3.5 ; K = 1.4;
hd = pi/180 ; Ha = 1.0 ; Ca = 0.25;
m = [2 2.5 3 4 5 6 8 10 12 16 20 25 32 40 50]; % 优先选用第一系列
disp '(注意:以下输入的齿轮材料和齿面硬度类别的标识字符要用大写,并用单引号括起)'
CL = input(' 选择齿轮材料:碳钢-TG;合金钢-HG == ');
CM = input(' 选择齿面硬度类别:硬齿面-YC;软齿面-RC == ');
disp ' 齿宽系数的选择参考:'
disp ' 对称布置--软齿面 0.8-1.4;硬齿面 0.4-0.9'
disp ' 非对称布置--软齿面 0.6-1.2;硬齿面 0.3-0.6'
disp ' 悬臂布置--软齿面 0.3-0.4;硬齿面 0.2-0.25'
Fd = input(' 选择齿宽系数: Fd = ');
disp ' ====== 已知条件 ======'
fprintf (1,' 主动轮传递功率 P1 = %3.3f Kw \n',P1)
fprintf (1,' 主动轮转速 n1 = %3.3f r/min \n',N1)
fprintf (1,' 传动比 i = %3.3f \n',I)
fprintf (1,' 载荷系数 K = %3.3f \n',K)
fprintf (1,' 齿高系数 ha* = %3.3f \n',Ha)
fprintf (1,' 顶隙系数 c* = %3.3f \n',Ca)
fprintf (1,' 齿宽系数 Fd = %3.3f \n',Fd)
disp '(注意:以下输入齿面热处理硬度是数值)'
if CL == 'TG'
disp ' 齿轮材料-碳钢'
if CM == 'YC'
disp ' 齿面硬度类别-硬齿面'
HRC1 = input(' 输入小齿轮感应淬火硬度HRC1 = ');
HRC2 = input(' 大齿轮感应淬火硬度HRC2 = ');
CHM1 = 11*HRC1+610 ; CHM2 = 11*HRC2+610;
CFM1 = 380 ; CFM2 = 380;
elseif CM == 'RC'
disp ' 齿面硬度类别-软齿面'
HBS1 = input(' 输入小齿轮调质/正火硬度HBS1 = ');
HBS2 = input(' 大齿轮调质/正火硬度HBS2 = ');
CHM1 = (9*HBS1+3750)/10 ; CHM2 = (9*HBS2+3750)/10;
CFM1 = (2*HBS1+675)/5 ; CFM2 = (2*HBS2+675)/5;
end
elseif CL == 'HG'
disp ' 齿轮材料-合金钢'
if CM == 'YC'
disp ' 齿面硬度类别-硬齿面'
CHM1 = 1500 ; CHM2 = 1500;
CFM1 = 460 ; CFM2 = 460;
elseif CM == 'RC'
disp ' 齿面硬度类别-软齿面'
HBS1 = input(' 输入小齿轮调质/正火硬度HBS1 = ');
HBS2 = input(' 大齿轮调质/正火硬度HBS2 = ');
CHM1 = (10*HBS1+1700)/6 ; CHM2 = (10*HBS2+1700)/6;
CFM1 = (19*HBS1+9700)/50; CFM2 = (19*HBS2+9700)/50;
end
end
disp '(注意:以下输入的齿轮传动方向类别的标识字符要用大写,并用单引号括起)'
FX = input(' 选择齿轮传动方向:单向传动-DX;双向传动-SX == ');
if FX == 'DX'
disp ' 齿轮单向传动'
CFP1 = 1.4*CFM1 ; CFP2 = 1.4*CFM2;
elseif FX == 'SX'
disp ' 齿轮双向传动'
CFP1 = CFM1 ; CFP2 = CFM2;
end
fprintf (1,' 小齿轮齿根弯曲许用应力 CFP1 = %3.3f MPa \n',CFP1)
fprintf (1,' 大齿轮齿根弯曲许用应力 CFP2 = %3.3f MPa \n',CFP2)
disp '(注意:以下输入齿轮齿数是数值)'
if CM == 'YC'
disp ' 闭式硬齿面齿轮传动小齿轮齿数范围是:17-20'
Z1 = input(' 输入小齿轮齿数 z1 = ');
elseif CM == 'RC'
disp ' 闭式软齿面齿轮传动小齿轮齿数范围是:20-30'
Z1 = input(' 输入小齿轮齿数 z1 = ');
end
Z2 = round(I*Z1);
fprintf (1,' 大齿轮齿数 z2 = %3.0f \n',Z2)
U= Z2/Z1;
disp ' 初选斜齿轮螺旋角的范围是9-10度,直齿轮是0度'
disp ' 经过试算,如果螺旋角超过15度,重新初选的范围是16-17度'
disp ' 经过试算,如果螺旋角超过25度,重新初选的范围是26-27度'
BAT = input(' 输入齿轮螺旋角(度) Bat = ');
BATR = BAT*hd;
ZV1 = Z1/(cos(BATR))^3 ; ZV2 = U*ZV1;
YFS1 = ZV1/(0.269118*ZV1-0.840687);
YFS2 = ZV2/(0.269118*ZV2-0.840687);
fprintf (1,' 小齿轮齿形系数 Yfs1 = %3.3f \n',YFS1)
fprintf (1,' 大齿轮齿形系数 Yfs2 = %3.3f \n',YFS2)
if YFS1/CFP1 > YFS2/CFP2
YFCP = YFS1/CFP1;
else
YFCP = YFS2/CFP2;
end
CHP1= 0.9*CHM1 ; CHP2 = 0.9*CHM2;
fprintf (1,' 小齿轮齿面接触许用应力 CHP1 = %3.3f MPa \n',CHP1)
fprintf (1,' 大齿轮齿面接触许用应力 CHP2 = %3.3f MPa \n',CHP2)
if CHP1 > CHP2
CHP = CHP2;
else
CHP = CHP1;
end
[Aa,Ad,Am] = ADM(BAT); % 根据螺旋角查询齿轮强度计算系数
T1= 9550*P1/N1;
fprintf (1,' 主动轮传递的转矩 T1 = %3.3f NM \n',T1)
if CM == 'YC'
disp ' 硬齿面齿轮传动-按照齿根弯曲强度确定齿轮模数'
Mj = Am*(K*T1*YFCP/(Fd*Z1^2))^(1/3);
for i = 1 : 15
if Mj <= m(i)
Mn = m(i) ; break
end
end
Aj = Mn*(Z1+Z2)/(2*cos(BATR));
A = round(Aj/2+0.5)*2;
elseif CM == 'RC'
disp ' 软齿面齿轮传动-按照齿面接触强度确定齿轮直径'
Dj = Ad*(K*T1*(U+1)/(Fd*U*CHP^2))^(1/3);
Aj = Dj*(1+U)/(2*cos(BATR));
A = round(Aj/2+0.5)*2;
Mj = 2*A*cos(BATR)/(Z1+Z2);
for i = 1 : 15
if Mj <= m(i)
Mn = m(i) ; break
end
end
end
fprintf (1,' ( 中心距计算值 Aj = %3.3f mm )\n',Aj)
fprintf (1,' ( 中心距圆整值 A = %3.3f mm )\n',A)
if BAT < 8
BATA = 0;
else
BA = Mn*(Z1+Z2)/(2*A);
fprintf (1,' ( 螺旋角余弦值 Ba = %3.3f )\n ',BA)
if BA >= 1
disp ' 无法计算螺旋角,需要增大中心距!'
DT = round((Mn*(Z1+Z2)-2*A)/2)+2;
A= A+DT;
BAA = Mn*(Z1+Z2)/(2*A);
fprintf (1,' * 增大齿轮传动中心距后的螺旋角余弦值 = %3.3f \n',BAA)
end
BATj = acos(Mn*(Z1+Z2)/(2*A));
BATA = BATj/hd;
end
D1= Mn*Z1/(cos(BATj));
[Aa,Ad,Am] = ADM(BATA); % 根据螺旋角查询齿轮强度计算系数
if CM == 'YC'
disp ' * 按照齿面接触强度校核 !'
Dx = Ad*(K*T1*(U+1)/(Fd*U*CHP^2))^(1/3);
if Dx <= D1
disp ' 满足齿面接触强度!'
else
fprintf (1,' ( 按照齿面接触强度需要的小齿轮分度圆直径 Dx = %3.3f mm )\n',Dx)
disp ' 不满足齿面接触强度,需要重新计算!'
Aj = Dx*(1+U)/(2*cos(BATR));
A = round(Aj/2+0.5)*2+2;
Mj = 2*A*cos(BATR)/(Z1+Z2);
for i = 1 : 15
if Mj <= m(i)
Mn = m(i) ; break
end
end
BA = Mn*(Z1+Z2)/(2*A);
fprintf (1,' ( 螺旋角余弦值 Ba = %3.3f )\n ',BA)
if BA >= 1
disp ' 无法计算螺旋角,需要增大中心距!'
DT = round((Mn*(Z1+Z2)-2*A)/2)+2;
A = A+DT;
BAA = Mn*(Z1+Z2)/(2*A);
fprintf (1,' * 增大齿轮传动中心距后的螺旋角余弦值 = %3.3f \n',BAA)
end
BATj = acos(Mn*(Z1+Z2)/(2*A));
BATA = BATj/hd;
end
elseif CM == 'RC'
disp ' * 按照齿根弯曲强度校核 !'
ZV1 = Z1/(cos(BATj))^3 ; ZV2 = U*ZV1;
YFS1 = ZV1/(0.269118*ZV1-0.840687);
YFS2 = ZV2/(0.269118*ZV2-0.840687);
if YFS1/CFP1 > YFS2/CFP2
YFCP = YFS1/CFP1;
else
YFCP = YFS2/CFP2;
end
Mx = Am*(K*T1*YFCP/(Fd*Z1^2))^(1/3);
if Mx <= Mj
disp ' 满足齿根弯曲强度!'
else
fprintf (1,' ( 按照齿根弯曲强度需要的齿轮模数 Mx = %3.3f mm \)n',Mx)
disp ' 不满足齿根弯曲强度,需要重新计算!'
for i = 1 : 15
if Mx <= m(i)
Mn = m(i) ; break
end
end
Aj = Mn*(Z1+Z2)/(2*cos(BATR));
A = round(Aj/2+0.5)*2;
BATj = acos(Mn*(Z1+Z2)/(2*A));
BATA = BATj/hd;
end
end
D1 = Mn*Z1/(cos(BATj));
D2 = Mn*Z2/(cos(BATj));
B = Fd*D1 ; B2 = 2*round(B/2+0.5) ; B1 = B2+6;
Da1 = D1+2*Ha*Mn;
Da2 = D2+2*Ha*Mn;
disp ' ====== 输出齿轮传动参数的设计结果 ======'
fprintf (1,' 小齿轮齿数 Z1 = %3.0f \n',Z1)
fprintf (1,' 大齿轮齿数 Z2 = %3.0f \n',Z2)
fprintf (1,' 齿轮副模数 Mn = %3.2f mm \n',Mn)
fprintf (1,' 齿轮副螺旋角 Bata = %3.3f 度 \n',BATA)
fprintf (1,' 齿轮副中心距 a = %3.3f mm \n',A)
fprintf (1,' 小齿轮分度圆直径 d1 = %3.3f mm \n',D1)
fprintf (1,' 大齿轮分度圆直径 d2 = %3.3f mm \n',D2)
fprintf (1,' 小齿轮齿顶圆直径 da1 = %3.3f mm \n',Da1)
fprintf (1,' 大齿轮齿顶圆直径 da2 = %3.3f mm \n',Da2)
fprintf (1,' 小齿轮宽度 b1 = %3.0f mm \n',B1)
fprintf (1,' 大齿轮宽度 b2 = %3.0f mm \n',B2)
% 齿轮传动计算系数函数文件ADM.m
function [Aa,Ad,Am]=ADM(BAT)
if BAT < 8
Aa = 483 ; Ad = 766 ; Am = 12.6;
elseif BAT >= 8 & BAT < 15
Aa = 476 ; Ad = 756 ; Am = 12.4;
elseif BAT >= 15 & BAT < 25
Aa = 462 ; Ad = 733 ; Am = 12.0;
elseif BAT >= 25 & BAT < 35
Aa = 447 ; Ad = 709 ; Am = 11.5;
End
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -