⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 08-齿轮传动的设计计算.m

📁 MATLAb 机械源码文件好东西啊
💻 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 + -