

上一篇我们解决了四连杆的位置问题:
给定曲柄角 theta,通过两个圆的交点求出活动铰点 C 的位置。
但工程上只知道“机构能动”还不够。我们还要继续问:
摇杆是不是匀速摆动?
哪些位置速度变化最剧烈?
有没有加速度突变风险?
传动角是否太小?
这一篇就基于上一篇的位置结果,继续计算速度、加速度和传动角。

上一篇我们已经能得到每一帧的 A、B、C、D 坐标。
接下来可以从 C 点和 D 点求摇杆角:
beta = atan2(C_y - D_y, C_x - D_x)
这里的 beta 就是摇杆相对于水平轴的角度。
如果曲柄角 theta 是输入,那么我们可以把摇杆角写成:
beta = beta(theta)
也就是说,输入曲柄转到不同角度时,输出摇杆会到不同角度。
在真实时间里,角速度应该是:
omega = d beta / d t
但这里我们先做一个更简单的分析:假设曲柄输入角速度恒定,那么 theta 和时间成正比。
这时可以先看:
d beta / d theta
它代表输入曲柄角变化一点时,输出摇杆角变化多少。
如果这个值变化很大,说明机构的输出运动不是匀速的;如果局部变化特别剧烈,后续做动力学或控制时就需要特别注意。
核心代码如下:

theta = np.array(theta_list)
beta = np.unwrap(np.array(rocker_angle_list))
omega = np.gradient(beta, theta)
alpha = np.gradient(omega, theta) 这里的 np.unwrap 很重要。因为角度通常会在 -pi 和 pi 之间跳变,如果不展开角度,求导时会出现假的速度尖峰。

动画能告诉我们机构“怎么动”,但曲线能告诉我们“动得怎么样”。
这张图里有四条曲线:
摇杆角度 beta(theta)
摇杆角速度趋势 d beta / d theta
摇杆角加速度趋势
传动角 mu(theta)
从这些曲线可以看出,四连杆输出并不是简单的匀速摆动。即使曲柄以恒定角速度转动,摇杆的速度和加速度也会随位置变化。
这就是很多机构设计里常见的问题:
输入很平稳,不代表输出也平稳。

传动角通常指连杆和摇杆之间的夹角。它反映的是力从连杆传到摇杆时,方向是否“顺手”。
直观理解:
传动角接近 90°,力传递比较理想。
传动角太小,力臂变差,机构容易效率低、受力大。
接近死点时,传动角问题尤其明显。
所以在做四连杆设计时,我们不只看轨迹是否满足要求,还要看整个运动范围内的传动角是否合理。
一个机构如果轨迹对了,但某些位置传动角太差,实际设备里可能会出现:
卡滞
冲击
电机负载突然变大
关节受力异常
寿命下降
这一篇没有加入质量、惯量、摩擦和外载荷,所以还不是完整动力学仿真。
但它已经比“画一个会动的机构”多走了一步:
位置 -> 角度 -> 速度 -> 加速度 -> 传动角
这条链路是后面继续做动力学、尺寸优化和控制仿真的基础。
下一篇我准备继续做四连杆的一个关键问题:
死点和运动范围。
我们会看:
为什么有些曲柄角度没有解?
什么情况下两个圆没有交点?
死点和传动角有什么关系?
杆长组合如何影响可运动范围?
第 001 篇:四连杆位置求解。
第 002 篇:四连杆速度、加速度和传动角。
第 003 篇:四连杆死点和运动范围。