本程序为 MATLAB 代码,需要在 MATLAB 环境下运行。

clear all
clc

N = 1000;
T = 0:2*pi/N:2*pi;
r = 50; % 基圆半径为50
h = 5; % 齿高
z1 = 6; % 齿数
z2 = z1;
d = 100; % 中心距
ri_1 = d*z1/(z1+z2); % 节圆半径
h1 = 0.8; % 小齿齿高
m = 6; % 小齿齿数
z_1 = z1*m;
z_2 = z_1;

% 极坐标系下的齿廓
l = h1*sin(z1*m*T);
u = h*sin(z1*T) + r;
c = (h*sin(z1*T)+r) + h1*sin(z1*m*T);

% 画出原始齿廓
figure
axis equal 
plot(T,c);

% 计算齿廓的法线
x = c.*cos(T);
y = c.*sin(T);
[t, r] = cart2pol(x, y);
t = unwrap(t);
tn = unwrap(atan2(diff(y), diff(x)), 1.8*pi) - pi/2;

% 计算齿廓和节圆的交点
xc = zeros(1, z1); % 交点的 x 坐标 
yc = zeros(1, z1); % 交点的 y 坐标
for i = 1:z1 
    theta = 2*pi*(i-1)/z1;
    A = cos(theta); 
    B = -sin(theta);
    C = ri_1*sin(theta); 
    t0 = theta + pi/2; % 初始值 
    f = @(t) A*x(t) + B*y(t) - C;
    t = fzero(f, t0);% 数值求解 
    xc(i) = x(t); yc(i) = y(t);
end 

% 将交点旋转到节点时,齿廓上对应的点为啮合点
xm = xc .* cos(tn) - yc .* sin(tn); 
ym = xc .* sin(tn) + yc .* cos(tn);

% 计算共轭齿廓方程
y1 = 5*sin(6*T) + 0.5*sin(72*T) + 30; % 原始齿轮的共轭齿廓方程
y2 = ym; % 共轭齿轮的共轭齿廓方程

% 画出共轭齿廓
figure
axis equal
plot(T, y1, T, y2);

程序演示了如何通过极坐标系下的齿廓,计算出齿廓和节圆的交点,并旋转得到节点时的啮合点。然后利用共轭原理,通过计算共轭齿廓方程,生成两个齿轮的共轭齿廓并绘制出来。

程序中的参数可以根据实际情况进行修改,具体含义如下:

  • N:极坐标系下绘制齿廓的点数。
  • T:极坐标系下的角度序列。
  • r:基圆半径。
  • h:齿高。
  • z1:齿数。
  • z2:齿数,与 z1 相等。
  • d:中心距。
  • ri_1:节圆半径。
  • h1:小齿齿高。
  • m:小齿齿数。
  • z_1:小齿轮齿数,等于 z1*m。
  • z_2:大齿轮齿数,等于 z_1。
  • y1:原始齿轮的共轭齿廓方程。
  • y2:共轭齿轮的共轭齿廓方程。

程序中采用了 MATLAB 自带的函数 fzero 对齿廓和节圆的交点进行数值求解,请注意选择合适的初始值。

MATLAB 齿轮共轭齿廓计算与绘制

原文地址: https://www.cveoy.top/t/topic/n4jv 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录