3. 机械臂动力学基础
运动学只回答“机械臂在哪里”,动力学才回答“要施加多大力矩才能让它按预期运动”。在联合仿真中,控制器输出的力矩进入物理模型,物理模型再返回关节加速度、速度与位置,因此动力学模型的正确性直接决定仿真结果是否可信。本节围绕两条主线展开:一是用拉格朗日方程从能量角度建立关节空间动力学模型,二是用牛顿-欧拉法从力与力矩递推角度高效计算同一模型,并重点解释惯性矩阵、科氏力与重力项各自的物理含义。
一、关节空间动力学方程的统一形式
对 n 自由度刚性机械臂,关节空间动力学方程可写成如下标准形式:
M(q)·q̈ + C(q, q̇)·q̇ + G(q) + τ_f(q̇) = τ
其中 q、q̇、q̈ 分别为关节位置、速度与加速度向量;M(q) 为 n×n 惯性矩阵;C(q,q̇)·q̇ 为科氏力与离心力项;G(q) 为重力项;τ_f 为摩擦项;τ 为关节驱动力矩。理解每一项的来源,比记住公式更重要:M(q) 描述“当前位形下各关节的等效惯量”,C 项描述“速度耦合带来的附加力矩”,G(q) 描述“为抵抗重力必须持续输出的力矩”。
二、拉格朗日方程:从能量到力矩
拉格朗日方法的核心是构造拉格朗日函数 L = K − P,其中 K 为系统总动能,P 为总势能,然后代入:
d/dt(∂L/∂q̇_i) − ∂L/∂q_i = τ_i
以两连杆平面机械臂为例,设连杆质量 m₁、m₂,长度 l₁、l₂,质心距关节 d₁、d₂,转动惯量 I₁、I₂,重力加速度 g 沿 −y 方向。其惯性矩阵可写为:
M11 = I1 + I2 + m1·d1² + m2·(l1² + d2² + 2·l1·d2·cos q2)
M12 = M21 = I2 + m2·(d2² + l1·d2·cos q2)
M22 = I2 + m2·d2²
可以看到 M11 随 q₂ 变化,说明“关节 1 感受到的惯量”取决于关节 2 的位形。这正是机械臂动力学强耦合的体现,也是仿真中不能把各关节当作独立单轴系统处理的原因。
三、牛顿-欧拉法:递推计算的高效路径
拉格朗日方程便于推导与理解,但符号展开随自由度增加迅速膨胀。牛顿-欧拉法采用“向外递推速度与加速度、向内递推力与力矩”的两遍算法,计算复杂度为 O(n),更适合实时控制与仿真。其流程为:
- 向外递推:从基座到末端,依次计算各连杆的角速度、角加速度、质心线加速度。
- 向内递推:从末端到基座,依次计算各连杆所受合力与合力矩,并投影到关节轴得到 τ_i。
在仿真实现中,通常用牛顿-欧拉法计算给定 (q, q̇, q̈) 下的 τ,再用它反推 M(q)、C(q,q̇) 与 G(q),例如令 q̇=0、q̈=0 得到 G(q),令 q̇=0、q̈=e_i 得到 M 的第 i 列。
四、惯性矩阵、科氏力与重力项的物理含义
惯性矩阵 M(q):对角元 M_ii 表示关节 i 自身的等效惯量,非对角元 M_ij 表示关节 j 加速时对关节 i 产生的耦合力矩。M(q) 是对称正定矩阵,且随位形变化。在仿真中若忽略 M(q) 的位形依赖,机械臂在伸展与折叠状态下的响应会明显失真。
科氏力与离心力项 C(q,q̇)·q̇:当多个关节同时运动时,速度乘积项会产生附加力矩。例如 q̇₁·q̇₂ 项使关节 1 在关节 2 快速摆动时受到额外负载。低速仿真时该项较小,但高速轨迹跟踪中不可忽略,否则会出现明显的轨迹偏差。
重力项 G(q):G(q) = ∂P/∂q,表示在当前位形下为保持静止所需施加的关节力矩。对水平伸展的机械臂,肩关节重力矩最大;对竖直下垂位形,重力矩可能接近零。重力补偿是位置控制与力控制的基础环节。
五、联合仿真中的实现要点
在 Simulink/Simscape 或 Gazebo 等环境中,动力学通常由物理引擎自动计算,但理解上述各项有助于排查异常。例如:仿真中机械臂静止时关节持续输出较大力矩,说明重力项 G(q) 在起作用;高速运动时力矩出现剧烈波动,往往是科氏力项被激发;若把 M(q) 简化为常数矩阵,则轨迹跟踪在伸展位形下会出现系统性滞后。
掌握本节内容后,后续的关节空间控制、计算力矩控制以及动力学参数辨识,都将以 M(q)、C(q,q̇)、G(q) 这三项为核心展开。