机械臂高速运动时,连杆并不是绝对刚体。加减速和换向会引起弹性变形与振动,进而影响末端定位精度。
MoHub 上的“机械臂刚柔耦合”案例提供了一组很适合对比的模型。本文在 MWORKS Sysplorer 中分别运行刚体模型和 MNF 柔性体模型,导出完整时序数据,从末端位置、加速度、连杆变形、模态能量和频率成分几个角度进行对比。
一、刚体模型和柔性模型有什么区别?
案例模型库为RobotArm,机械臂由 6 个连杆、5 个转动副组成:
World → Part_1 → rev1 → Part_2 → rev2 → Part_3 → rev3 → Part_4 → rev4 → Part_5 → rev5 → Part_6刚体模型中,6 个连杆全部按刚体处理;柔性模型只做了一处修改:把第 3 连杆替换成 MNF 柔性体,其余结构、驱动信号和仿真参数保持一致。
柔性体核心配置如下:
TYFlexBody.ModalBody modalBody( str_mnf_name = "modelica://RobotArm/Visualizers/link3.mnf", nMnfModal = 32, clampedNodes = {9898, 9899}, elastq = 7:32)nMnfModal = 32表示读取 32 阶模态,前 6 阶对应刚体自由度,因此真正参与弹性变形的是第 7~32 阶,共 26 个弹性模态。
二、仿真设置与运行结果
两套模型均使用 Dassl 求解器,仿真时间 0~10 s,输出 1000 个区间,最终得到 1001 个采样点。刚体模型和柔性模型均顺利完成检查、编译和仿真。
从结果查看器直接观察,两条末端轨迹几乎完全重合。但这并不意味着柔性没有影响。
本次末端运动范围是米级,而刚柔位置差异只有亚毫米级,因此必须把两组结果逐点相减。
三、位置偏差只有 0.33 mm,但加速度差异明显
以末端 Part_6 质心为例,柔性模型减去刚体模型后:
| 方向 | 位置偏差峰值 | 加速度偏差峰值 |
|---|---|---|
| x | 0.331 mm | 2.26 m/s² |
| y | 0.041 mm | 10.17 m/s² |
| z | 0.214 mm | 13.54 m/s² |
从位置看,最大偏差只有约0.33 mm;但加速度偏差最高达到13.5 m/s²。
这说明只看末端位置,很容易得出“刚体模型已经够用”的结论。位置是加速度的二次积分,高频变化经过积分后会被明显削弱,因此研究振动、冲击或结构动态响应时,加速度往往更敏感。
四、柔性连杆主要发生弯曲,而不是拉伸
柔性模型通过两个夹持节点与相邻刚体连接。
仿真过程中,两节点间距最大变化只有约0.011 mm,而机械臂末端横向位置偏差峰值达到0.331 mm,两者相差接近 30 倍。
这说明第 3 连杆的主要变形并不是轴向拉伸,而是弯曲变形,符合细长机械臂在惯性载荷下的典型结构响应。
五、前 6 阶模态贡献了 99.69%
柔性模型实际输出modalBody.q[1]到modalBody.q[26]共 26 个弹性模态坐标,与32 - 6 = 26完全对应。
统计各阶模态最大幅值后发现:
第 1 阶能量占比约70.99%
前 3 阶累计约85.40%
前 6 阶累计达到99.69%
前 10 阶累计约99.86%
也就是说,本工况下的柔性变形几乎完全由低阶模态主导。
如果前几阶已经覆盖绝大部分变形能量,继续增加高阶模态往往只会增加计算量。
六、刚柔偏差主要是低频成分
对三个方向的加速度偏差做频谱分析后,x、y、z 三个方向的主峰都出现在0.0999 Hz,即 10 s 仿真记录中的最低非零频率。
这说明本次柔性影响主要表现为随机械臂运动缓慢变化的低频、准静态偏差,而不是明显的高频振荡。
这一结果也与驱动方式有关:模型采用匀速转动和低频正弦运动,整体激励较平缓。如果换成高速启停、阶跃输入或更剧烈的轨迹,高频弹性响应会更值得关注。
七、结论
通过这组刚柔模型对比,可以得到四个直观结论:
只看位置可能低估柔性影响。本例位置偏差约 0.33 mm,但加速度偏差最高达到 13.5 m/s²。
连杆变形以弯曲为主。两端节点间距只变化 0.011 mm,而末端横向偏差达到 0.331 mm。
低阶模态决定主要变形。前 6 阶弹性模态已经贡献 99.69% 的能量。
本工况以低频柔性误差为主。偏差频谱主峰集中在 0.0999 Hz。
如果想判断自己的机械臂是否有必要进行柔性建模,可以采用同样的方法:复制刚体模型,把最可能发生变形的连杆替换成 MNF 柔性体,保持驱动和仿真参数一致,再比较末端位移和加速度。
对于普通轨迹规划,亚毫米级位置偏差可能可以接受;但如果关注高速运动、末端精度、振动响应或结构载荷,柔性体建模的价值会明显增加。
本文使用的机械臂刚柔耦合案例可在 MoHub 查看:
https://mohub.net/model/25435/summary