约束与接触:拉格朗日乘子到底是什么力
目录
在拉格朗日法那篇文章里,我们把平面五杆机构沿一个关节暂时“切开”,先写成树形系统,再用闭环条件:
要求左右两条支链回到同一个末端点。动力学方程随之多出一项:
其中 汇总速度耦合与重力, 是约束雅可比。那篇文章把 称为拉格朗日乘子,也说它代表维持闭环所需的约束力。
这句话很容易留下几个疑问:
- 一个从方程里增加的未知量,为什么会具有力的意义?
- 真正作用在关节上的量是 ,还是 ?
- 铰链可以推也可以拉,桌面接触却只能推;它们能使用同一种写法吗?
- 摩擦为什么会把一个等式问题变成互补问题?
这些疑问恰好把前面的拉格朗日法、五杆机构、雅可比和阻抗控制连接在一起。闭环机构关心“几何怎样始终成立”,接触问题还要决定“约束何时出现、何时消失,以及出现后能够传递什么力”。
本文从五杆机构的切口重新出发,逐步走到刚体接触与摩擦。
1. 五杆机构的两条支链必须对上同一个点
设五杆机构的左右基座点为 ,四个关节坐标为:
定义平面单位向量:
从左支链走到末端,得到:
从右支链走到末端,得到:
切开机构时, 与 暂时成为两个可以独立运动的端点。重新闭合只需要一个条件:
,因此它提供两个标量约束。四个关节坐标减去两个独立约束,留下五杆机构的两个自由度。
这个写法已经埋下了“力”的入口。 使用笛卡尔位移描述两个切口之间的错位;如果没有闭环反力,两条支链在惯性、重力和驱动力矩作用下会产生不同加速度, 与 随即分开。约束力的任务,就是恰好修正这份分离趋势。
2. 约束雅可比描述哪些速度被禁止
对闭环条件求时间导数:
其中:
把左侧关节速度映射为 , 把右侧关节速度映射为 。负号来自 。
满足闭环的关节速度必须落在 的零空间中:
这就是机构真正允许的瞬时运动方向。任何让 的速度,都会在切口处制造相对运动,因而被闭环铰链禁止。
再求一次导数,得到加速度约束:
描述关节加速度造成的切口相对加速度, 则来自机构几何本身正在变化。漏掉后者,相当于只约束瞬时切线,却忘记约束流形本身是弯曲的。
3. 虚功把约束雅可比的转置变成了力
现在考虑一份满足闭环的微小虚位移 。它必须满足:
理想刚性约束不会沿允许运动方向做虚功。设广义约束力为 ,于是:
线性代数告诉我们,与 零空间正交的向量必定位于 的行空间,也就是 的列空间。因此存在一组系数 ,使:
把它放回虚功:
力的形式由约束几何直接决定了。 把关节速度映射到“违反约束的速度”; 则把约束空间中的反力映射回关节广义力。这与雅可比文章里的:
完全是同一个对偶关系。
在五杆机构中:
它表示在切口两侧施加一对大小相等、方向相反的笛卡尔力,再由左右支链各自的雅可比转置映射成关节力矩。闭环反力由此自动满足作用力与反作用力。
4. 拉格朗日乘子何时可以直接叫“力”
在当前五杆例子里, 的单位是米,约束虚功写成:
为了得到焦耳, 的单位必须是牛顿。此时 确实可以解释为切口处的一对笛卡尔力分量。
但这个结论依赖约束函数的选择。假设把同一个约束重新缩放:
新的约束雅可比为 。为了保持同一份广义约束力,需要:
因此:
约束函数换了尺度或基底,乘子的数值也会跟着改变;真正作用在系统上的广义力 保持不变。
所以更准确的表述是:
拉格朗日乘子是约束反力在所选约束坐标中的系数, 才是坐标无关的广义约束力。
当约束坐标就是正交笛卡尔距离时, 可以直接读作力;若约束混合了角度、距离或人为缩放,乘子的分量可能分别具有牛米、牛顿或经过缩放的单位。符号也取决于 的方向定义。
5. 加速度与约束力必须同时求解
把树形系统的动力学和加速度约束放在一起:
未知量同时包含 和 。整理为块矩阵:
这是一组典型的 KKT 方程。第一行要求动力学平衡,第二行要求加速度留在约束流形上。左下与右上两个雅可比块,把“运动不能穿过约束”和“约束会产生反力”放进同一个线性系统。
也可以先消去 。定义:
若约束独立, 可逆,乘子为:
方括号里的量,是系统完全不施加约束力时切口将产生的相对加速度; 把这份“想要分开”的趋势换算成恰好抵消它的约束力。
6. 约束空间逆质量衡量约束方向有多容易被推动
常被称为 Delassus 算子或约束空间逆质量矩阵。它回答一个直接的物理问题:在约束方向施加单位反力,会产生多大的约束空间加速度。
质量大、机械优势小的方向,单位力造成的加速度较小;接近机构奇异位形时,不同约束方向还可能变得线性相关。
对五杆机构,如果 满行秩,两条闭环约束独立, 通常是 正定矩阵。到达并联奇异位形后,左右远端连杆提供的约束方向可能合并, 或相关约束映射失去秩。此时会出现两个重要现象:
- 某个方向失去有效约束,机构能够产生意外瞬时运动;
- 多组 可能生成相同的广义约束力,单独的乘子不再唯一。
四条腿支撑一张刚性桌子也会产生类似情况:桌面的加速度可以唯一,四条腿之间怎样分配法向力却未必唯一。伪逆会选出某个数学解,真实载荷分配还受结构柔性、制造误差和接触顺序影响。
这也是为什么“求出了 ”还不等于“精确预测了每处真实载荷”。刚体模型只提供理想约束下的反力分配。
7. 闭环是双边约束,接触是单边约束
五杆机构的铰链始终闭合。它既能阻止两端分开,也能阻止两端互相穿过;对应的 可以取正值或负值。这类约束称为双边约束:
桌面与物体之间的接触规律不同。定义法向间隙函数 :
刚体不能互相穿透,因此:
法向接触力只能把物体推离桌面,不能隔空把物体吸向桌面:
接触雅可比:
仍然通过转置把法向力映射成广义力:
从闭环到接触,雅可比转置的作用没有变化。新的难点来自约束是否激活:闭环约束始终存在,接触约束会随运动建立和解除。
8. 互补条件把“接触或分离”写成一个方程组
法向接触需要同时满足三条规则:
通常简写为:
符号 在这里表示互补,而非普通几何正交。它规定两个非负量至少有一个等于零:
- 时,物体与环境分离,因此 ;
- 时,接触正在传力,因此 ;
- 对应刚好贴住、尚未承受法向载荷。
这条关系同时消除了“穿透”和“隔空接触力”。接触集合无需提前完全确定,求解器会在每个候选接触上选择分离分支或接触分支。
连续时间里,已经建立且保持的接触还满足 ,其法向力可以像双边约束一样由加速度方程求出。接触即将解除时,维持 所需的 若变成负值,说明刚体模型要求环境“拉住”物体;正确的模式应切换为 、。
数值仿真通常在离散时间中对下一时刻的间隙、法向速度或冲量写互补条件。只在当前时刻检查 ,无法自动处理一个时间步内发生的碰撞。
9. 摩擦在法向约束之外增加了一个锥
法向接触确定物体能否离开表面,切向摩擦决定物体沿表面怎样运动。设切向相对速度为:
库仑摩擦要求切向力位于摩擦锥内:
其中 是摩擦系数。摩擦状态分成两种:
粘着:
切向力只需抵消外界造成的滑动趋势,可以位于摩擦锥内部。
滑动:
摩擦力落在锥面上,并沿最大耗散方向反对滑动。
法向接触可以用一对标量互补关系清楚表达,三维库仑摩擦则同时包含锥约束、粘滑切换和最大耗散原则。工程求解器常把圆锥离散成多边形,从而得到线性或混合线性互补问题;保留精确二次锥时,则可使用锥优化或非线性互补形式。
10. 碰撞瞬间,乘子从力变成了冲量
持续接触阶段, 的单位通常是牛顿。碰撞持续时间极短,接触力可能非常大,直接描述峰值既困难也没有必要。对动力学跨越碰撞时刻积分:
分别是碰撞前后的速度, 是法向冲量:
它的单位是牛秒。冲量通过同一个 改变广义动量。对于单个无摩擦碰撞,还可以用恢复系数 规定法向速度跳变:
闭环约束、持续接触和碰撞冲量共享同一套几何映射,时间尺度决定了乘子表示力还是冲量。基于时间步的刚体仿真通常直接求每一步的接触冲量,再用它更新速度,因此互补问题中的未知量常具有牛秒单位。
11. 约束方程正确,数值积分仍可能慢慢“开环”
理论上,只要初始状态满足:
并且每一步都严格满足加速度约束,闭环就会一直保持。有限精度积分会不断积累微小误差,导致 缓慢偏离零,这就是约束漂移。
常见的 Baumgarte 稳定化把加速度约束改为:
它让位置与速度约束误差像临界阻尼二阶系统一样衰减。 太小,纠偏很慢; 太大,会制造数值刚性和异常大的约束力。
另一类方法在积分后把位置与速度投影回约束流形。时间步接触算法则常把非穿透、冲量和速度更新放进同一个优化或互补问题中,避免先积分、后发现已经穿透的割裂流程。
实际实现至少应监测:
- :闭环或接触位置误差;
- :约束速度误差;
- 或 :法向载荷是否出现负值或异常峰值;
- :摩擦是否到达锥边界;
- 的秩与条件数:约束是否冗余或接近奇异。
12. 把这篇文章放回整个系列
现在可以把前面几篇文章中的同一结构拼在一起:
- 拉格朗日法用 组织自由系统的动力学;
- 五杆机构用 描述两条支链必须闭合;
- 雅可比 划分允许运动与被禁止的相对运动;
- 雅可比转置 把约束空间中的反力映射回关节;
- 拉格朗日乘子 给出反力在约束坐标中的系数;
- 单边接触为乘子增加 ,并用互补条件决定约束是否激活;
- 摩擦锥继续限制切向力,碰撞则把力的乘子换成冲量。
从这里继续向前,混合力/位控制会主动指定约束方向的力与自由方向的运动;操作空间控制会在任务空间中组织质量矩阵和约束投影;轨迹优化与 MPC 则会把动力学、接触模式、摩擦锥和执行器限制放进同一个求解问题。
拉格朗日乘子因此成为系列中的一座桥:它一端连接几何约束,另一端连接真实的关节力矩、接触力与冲量。
参考与延伸阅读
- Kevin M. Lynch, Frank C. Park, Modern Robotics: Constrained Dynamics.
- Russ Tedrake, Underactuated Robotics: Multi-Body Dynamics, MIT.
- David E. Stewart, Jeffrey C. Trinkle, An Implicit Time-Stepping Scheme for Rigid Body Dynamics with Coulomb Friction.
- Mihai Anitescu, Florian A. Potra, Formulating Dynamic Multi-Rigid-Body Contact Problems with Friction as Solvable Linear Complementarity Problems, 1997.