MATLAB 齿轮共轭齿廓计算与绘制
本程序为 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 对齿廓和节圆的交点进行数值求解,请注意选择合适的初始值。
原文地址: https://www.cveoy.top/t/topic/n4jv 著作权归作者所有。请勿转载和采集!