本节摘要:运动学回答"动成什么样",动力学回答"要使多大力"。本节讲清惯量项、科氏项、重力项的物理来历,用两连杆臂的方程骨架展示耦合为什么是高速运动的真正敌人,并比较牛顿-欧拉与拉格朗日两条建模路线。
最初人们真的以为机械臂就是"每个关节一个电机、各转各的"。早期示教再现式机器人的控制柜里,每个轴的伺服环彼此独立,参数也独立整定。低速时这套东西工作得好好的,直到搬运速度提上来:大臂一甩,小臂像鞭梢一样甩过头,二轴伺服频频过流。问题不在伺服,在方程——各轴根本不是各转各的,而是被一组耦合的二阶微分方程拴在一起。这组方程就是动力学。
串联机械臂的动力学标准形式是:
M(q)·q̈ + C(q, q̇)·q̇ + G(q) = τ
三项各有来历。惯量矩阵 M(q):关节 i 转动时,它拖动的不是只有自己轴上的转子,还有后面所有连杆的"折算质量",所以 M 依赖关节位置 q。科氏与离心项 C(q,q̇)·q̇:连杆在旋转系里运动产生的表观力,速度为零时消失,高速时按速度平方增长。重力项 G(q):臂形不同,各轴承受的重力矩不同——手臂伸平时肩轴最累,竖直收拢时几乎不累。
把两连杆平面臂的惯量耦合写成方程最直观(质量 m1、m2,杆长 L1、L2,简化到质心在杆端):
τ1 = [ (m1+m2)L1² + m2L2² + 2·m2·L1·L2·cosθ2 ]·q̈1 + [ m2·L2² + m2·L1·L2·cosθ2 ]·q̈2 − m2·L1·L2·sinθ2·q̇2² − m2·L1·L2·sinθ2·(2·q̇1·q̇2) + (m1+m2)·g·L1·cosθ1 + m2·g·L2·cos(θ1+θ2) τ2 = [ m2·L2² + m2·L1·L2·cosθ2 ]·q̈1 + m2·L2²·q̈2 + m2·L1·L2·sinθ2·q̇1² + m2·g·L2·cos(θ1+θ2)
盯着这组方程能读出四个工程事实。一,τ2 的方程里有 q̈1 项:大臂加速会"推着"小臂转,这就是二轴伺服过流的元凶。二,出现 cosθ2 的项说明耦合强度随臂形变化——臂收拢时耦合弱,伸平时强。三,−sinθ2·q̇2² 这类项是离心力,速度平方级;q̇1·q̇2 是科氏力,只在双关节同动时出现。四,重力项只依赖位置,与前馈控制里"重力补偿"的可行性直接挂钩。

牛顿-欧拉法从每个连杆的力平衡与力矩平衡出发,向外递推速度加速度、向内递推力和力矩,计算量 O(n),是实时控制的首选——商用控制器里每毫秒算一遍的动力学多数是它。拉格朗日法从能量出发(动能减势能,对广义坐标求导),方程层次清楚、不漏项,适合推公式、写论文、理解结构,但计算量 O(n²) 起。教科书爱用拉格朗日推导两连杆,工程代码爱用牛顿-欧拉递推,两者结果恒等,只是"谁在算账"的路径不同。
动手验证动力学最好的玩具是倒立摆或两连杆仿真:给 τ1 一个阶跃,观察 q2 被牵连着晃——那不是数值误差,是方程本身在告诉你"关节之间没有围墙"。
动力学方程最大的用途是前馈:给定期望的 q、q̇、q̈,直接算出需要的力矩 τ 提前喂给电机,反馈只负责收拾残局。第 2.5 节会看到,"PD 反馈 + 动力学前馈"能把轨迹跟踪误差压缩一个数量级。而当前馈模型失准(负载变了、摩擦没建模),误差重新由反馈兜底——这也是理解"模型准到什么程度值得建模"的标尺:负载固定、速度高的场合,建模收益巨大;轻载低速的场合,PID 反馈足够,不必背着模型跑。
⚠️ 常见坑:把动力学模型当真值。名义参数(质量、质心、惯量)与实物总有出入,夹爪一换、线缆一捆,惯量就变了。凡是宣称"开环力控"的系统,都要问一句:参数误差吃在哪里?
教科书方程与真实机械臂之间有两道必补的修正。第一道是摩擦:库仑摩擦与黏性摩擦在关节里无处不在,其量级可以占到重力项的一到两成。通行做法是在方程右侧加一项符号随速度翻转的库仑项加线性黏性项,四个参数靠恒速转动实验拟合。第二道是传动柔性:谐波减速器不是理想刚体,大负载下表现出"弹簧"特性(关节刚性有限),在高速高精场合引入柔性关节模型(电机角与连杆角分离,中间一根扭簧)。这两道修正决定了模型精度的天花板:摩擦辨识不清,前馈在低速段失灵;柔性忽略,高刚度增益一加就振。
不必依赖 CAD 的名义参数,实测辨识更靠谱。最小流程:让机械臂按激励轨迹(充分覆盖各关节速度加速度组合的优化轨迹)空跑几十秒,记录关节角、速度与电机电流(电流乘力矩常数近似力矩);随后做线性回归——动力学方程对惯性参数是线性的,最小二乘一次解出全部组合参数。辨识后的模型用于前馈,跟踪误差的改善立竿见影;再让空跑与带载各辨识一次,还能顺便验证负载对惯量项的影响是否与理论一致。这套流程不依赖任何高深工具,一个下午即可完成,收益却贯穿整个项目周期。
夹具、线缆、防护罩这些"非标负载"恰恰是惯量误差的大头。实用做法分两步:先用 CAD 或三维扫描估算几何与质量分布,得到一版参数;再用辨识流程实测修正,重点核对惯量矩阵对角项与重力项。若负载在工作过程中变化(抓取与否),按两种工况分别辨识,控制器根据夹爪状态切换参数集——这就是增益调度的动力学版本。
补一个动力学参数辨识的实操路径:理论建模给出方程结构(惯性矩阵、科氏项、重力项的形式),数值由实验辨识填充。最省事的辨识法是激励轨迹法——设计一条让各动力学项充分激励的周期轨迹(傅里叶级数参数化),让机械臂跟踪并记录关节力矩,最小二乘解出参数向量;比逐项测量(摆动测惯量、静态测摩擦)快得多且精度更好。辨识结果的验收标准:用另一条未参与辨识的轨迹做交叉验证,预测力矩与实测力矩的误差应在百分之几以内。没有做过参数辨识的动力学模型,仿真的控制算法上线后调参范围经常要放大数倍——辨识省下的调参时间,通常十倍于辨识本身。