已知两齿轮Z1=20,Z2=64,模数m=1.5,压力角a=20°,啮合点在啮合线段距离中心轮Z1距离为r_c范围为14.11-15.96mm,利用matlab求解公式$g_{y c}=\mathrm{m} \frac{1}{2} d_1 \sin \alpha \pm \sqrt{\left(\frac{1}{2} d_1 \sin \alpha\right)^2-\left(\frac{1}{2} d_1\right)^2+r_c^2}$,节点上半径为15mm此时接触点位于节点上距离为0,利用matlab求解接触点c与节点在啮合线上的距离,并生成曲线
时间: 2023-07-25 22:35:06 浏览: 92
以下是利用MATLAB求解接触点c与节点在啮合线上的距离,并生成曲线的代码:
```matlab
Z1 = 20; % 主动轮齿数
Z2 = 64; % 从动轮齿数
m = 1.5; % 模数
a = 20; % 压力角
rc = linspace(14.11, 15.96, 100); % 点c到中心距离的范围
d1 = m * Z1; % 主动轮直径
d2 = m * Z2; % 从动轮直径
alpha = deg2rad(a); % 压力角,弧度制
gyc1 = m / 2 * d1 * sin(alpha) + sqrt((m / 2 * d1 * sin(alpha))^2 - (m / 2 * d1)^2 + rc.^2); % 主动轮齿顶与从动轮齿根的gyc
gyc2 = m / 2 * d1 * sin(alpha) - sqrt((m / 2 * d1 * sin(alpha))^2 - (m / 2 * d1)^2 + rc.^2); % 主动轮齿根与从动轮齿顶的gyc
gc = (d1 + d2) / 2 * cos(alpha); % 节点在啮合线上的距离
% 计算节点上的接触点
rc0 = 0; % 接触点距离中心轮的距离为0
gyc10 = m / 2 * d1 * sin(alpha) + sqrt((m / 2 * d1 * sin(alpha))^2 - (m / 2 * d1)^2 + rc0^2); % 主动轮齿顶与从动轮齿根的gyc
gyc20 = m / 2 * d1 * sin(alpha) - sqrt((m / 2 * d1 * sin(alpha))^2 - (m / 2 * d1)^2 + rc0^2); % 主动轮齿根与从动轮齿顶的gyc
gc0 = (d1 + d2) / 2 * cos(alpha); % 接触点距离节点的距离为0
% 生成曲线
plot(rc, gyc1, 'b');
hold on;
plot(rc, gyc2, 'r');
plot([rc(1), rc(end)], [gc, gc], 'k--');
plot(rc0, gyc10, 'bo');
plot(rc0, gyc20, 'ro');
plot([rc(1), rc(end)], [gc0, gc0], 'k--');
xlabel('rc');
ylabel('gyc');
legend('主动轮齿顶-从动轮齿根', '主动轮齿根-从动轮齿顶', '节点在啮合线上的距离', '主动轮齿顶-从动轮齿根(节点上)', '主动轮齿根-从动轮齿顶(节点上)', '接触点距离节点的距离为0');
```
运行该代码可以得到一条曲线,其中蓝色的曲线表示主动轮齿顶与从动轮齿根的接触点,红色的曲线表示主动轮齿根与从动轮齿顶的接触点,黑色的虚线表示节点在啮合线上的距离。此外,还有蓝色实心圆点和红色实心圆点分别表示节点上的接触点。
阅读全文