问题:接触工件,却不持续强推
设想机器人在装配时把零件移向定位面。表面位置并不完全已知:几毫米误差,就可能把自由空间中的正确运动变成不必要的推压。直观办法是让机器人更柔顺,也就是在受到力时允许它偏离要求的位置。但这足以限制工件受到的压力吗?本文研究以牛顿计量的力;若要讨论压强,还必须知道实际接触面积。
目标是区分三个容易混淆的问题:机器人让步多少、全部静止后还剩多少力、停止之前出现多大的力峰值。我们建立单轴模型,求解其动力学,并比较三组参数。核心结果是:很小的最终作用力仍可伴随明显更大的峰值;运动中改变刚度,也会改变能量收支。这是使用合成数据的教学计算,不是机器人实测,也不是实际机器的调参指南。
先理解含义,再看公式:什么是阻抗
弹簧形变越大,反作用力越大。阻尼器产生与速度有关的阻力并耗散能量;质量则抵抗速度的变化。阻抗控制试图设定一种具有所需特性的运动—力关系。本文只调整刚度和阻尼,保持等效质量不变;这是常被称为刚度控制的一个特例。机器人腕部不一定真的装有弹簧:电机可以实现这种关系,但其效果也就依赖传感、计算与执行。
历史基础是 Neville Hogan 于 1985 年发表的理论工作,它把操作视为与环境的动态交互。Russ Tedrake 的课程笔记区分了直接力控制与构造期望机械响应。我们用这些来源建立概念背景;以下数值例子由本文构造,并非复现它们的实验。阻抗控制不是最近才出现的发现,本文也不声称是原创研究。
一个轴、一个表面,明确正负方向
将未变形表面设为 x = 0,进入材料的方向为正。x 的单位是米;微小压入量代表接触的等效弹性变形,并非穿过理想刚性墙面。表面对机器人的力为 −Kₑx,机器人对表面的力则为 F = Kₑx。环境刚度取合成值 Kₑ = 20 000 N/m。假设接触持续存在、关系线性、轴向无摩擦且环境没有阻尼。
控制器把末端拉向虚拟位置 δ = 0.005 m,即表面内侧五毫米处。我们故意设置这个参考误差,以便看清问题。等效质量 m = 2 kg 保持不变,并不必然等于整个机械臂的质量。指令刚度 K 的单位是 N/m,阻尼 D 的单位是 N s/m。初始时已经接触,x(0) = 0、速度为零,因此不模拟靠近表面时的碰撞。参考在初始时刻施加,此后固定。重力与其他动力学在模型中缺省或被理想补偿。
要确定接触点如何运动,就把各个力相加:回拉作用 K(δ − x)、阻力 −Dẋ 和反作用力 −Kₑx。ẋ 表示速度,ẍ 表示加速度。由牛顿第二定律得到:
第一式中的每一项都是力。控制器与表面都抵抗位移,因此动力学中出现 K + Kₑ。这个和很关键:仅根据机器人在空气中的表现选择参数,并不能自动描述接触后的系统。即使软件不知道表面刚度,表面仍然会进入物理方程。
最终作用力:参考位置错误的代价
先看最容易理解的情况:所有运动结束后,速度与加速度都为零,只剩相互作用的两个等效弹簧。求解前式得到平衡形变 x* 与力 F*:
当 K = 200 N/m 时,接触点移动约 0.0495 mm,最终力为 0.9901 N。它远没有到达要求的五毫米:正是这个位置误差体现了让步。其他条件不变,把 K 提高到 1000 N/m 后,位移增至 0.2381 mm,力增至 4.7619 N。这些力小于 Kδ,因为表面也会变形;Kₑ 趋于无穷大时,F* 才趋于 Kδ。而 K 趋于零时,用于维持接触的回拉作用也消失了。
这个公式说明一种取舍:降低 K 可以减弱几何误差的影响,但也降低抵抗位置扰动的能力。它本身不能保证工艺所需的力。另外,静态结果中没有 D:在这个模型里,阻尼改变的是到达平衡的过程,而非最终值。要判断工件在这个过程中是否受到过大的推力,就必须把时间纳入分析。
峰值:表面改变了相对阻尼
受到弹簧加速的质量可能越过静态力平衡点,因为到达那里时仍有速度。阻尼器会从运动中移除能量。比较不同系统时,我们使用单位为弧度每秒的固有频率 ωₙ,以及无量纲阻尼比 ζ。它们不是新增指令,而是概括已有参数的综合作用。
在 0 < ζ < 1 时,系统对突然施加的参考呈欠阻尼响应:会超过最终值,并在振荡中收敛。ζ = 1 时为临界阻尼;在我们的初始条件下,它上升但不超调。D = 2√(mK) 在 Kₑ = 0 的自由空间中可实现临界阻尼;但在 K = 200 N/m 的接触条件下,它只给出 ζ ≈ 0.0995。阻尼并未消失,只是相对于新的总刚度而言太小。
表中 A 的刚度较低,阻尼按自由空间设定;B 保持同样低的刚度,但将表面刚度计入临界阻尼;C 刚度更高,阻尼仍按自由空间设定。A、C 的峰值是解析最大值,不是从图中挑选最高采样点得出的估计。B 所列值是渐近极限,没有有限的峰值时刻。
| 情况 | K (N/m) | D (N s/m) | ζ | 最终 F (N) | 最大值/极限 F (N) |
|---|---|---|---|---|---|
| A | 200 | 40.000 | 0.0995 | 0.9901 | 1.7133 |
| B | 200 | 401.995 | 1 | 0.9901 | 0.9901 |
| C | 1000 | 89.443 | 0.2182 | 4.7619 | 7.1207 |
A 在约 31.42 ms 后达到约 1.7133 N,比最终值高约 73%。我们没有证明这个力会损坏零件,只是说明静态值并不是上界。C 中增大 K,使最终力和峰值都更高。B 消除了该特定模型的超调,但需要知道 Kₑ,并理想实现大得多的 D。把这个数字直接写入真实控制器,并不能保证相同结果。

供进一步核查的推导
从动力学方程中减去平衡位置 x* 对应的部分,恒定力就被消去,剩下一个阻尼振子。其特征根为 −ζωₙ ± iωd,其中 ωd = ωₙ√(1 − ζ²),i 是虚数单位。初始位置与速度为零决定了解的系数。欠阻尼情形得到:
t 是以秒计的时间,tₚ 是第一个最大值时刻,Fₚ 为对应力。第二行正的指数项衡量超过 F* 的比例:对 x(t) 求导,寻找 t = 0 之后第一个速度零点,再代入该时刻。速度正比于 exp(−ζωₙt) sin(ωdt),所以第一个相关零点是 π/ωd。ζ = 1 时应改用 x(t) = x*[1 − (1 + ωₙt)exp(−ωₙt)],它在非负时间上单调增加,不能除以此时为零的 ωd。
能量:稳定不等于力小
现在可以检查系统为何收敛,同时避免把收敛误当成力的上限。将能量 E 定义为质量的动能与两个等效弹簧势能之和,单位为焦耳。在参数与参考固定时,它的时间导数非常简单:
验证时,对三项求导并提出 ẋ,括号内就是动力学方程给出的 −Dẋ。因此运动会耗散能量。在平衡点附近也可使用 ½mẋ² + ½(K + Kₑ)(x − x*)²;它只与原能量相差一个常数,最小值为零。D 为正时,唯一能持续静止的状态就是平衡状态。然而 A 与 C 仍然出现峰值。系统可以稳定并耗散能量,同时释放一部分初始储能。
无源性讨论的是这种收支,而不是接触是否无害。只看机器人、不计环境弹簧时,储能 S = ½mẋ² + ½K(x − δ)² 满足 dS/dt = Fₑₓₜẋ − Dẋ²,其中 Fₑₓₜ 是环境对机器人的力。第一项是通过接触交换的功率。这个恒等式适用于参考固定的理想连续模型;它不能认证协作机器人,不包含生物力学限值,也不能自动证明加入延迟、采样或电机饱和后仍有相同性质。
如果 AI 改变刚度,能量从哪里来?
假设感知系统或学习策略在识别零件后决定提高机械臂刚度。这是待分析的可能架构,并非 EL-AI 产品描述。若位置误差已经存在,增大 K 会在没有运动的情况下增加虚拟弹簧储能。当 x = 0、δ = 5 mm 时,把 K 从 200 提高到 1000 N/m,会增加 0.010 J,计算为 ½(1000 − 200) × 0.005²。表面并未通过位移提供这部分能量;控制参数改变引入了另一条能量输入路径。
一般形式能说明问题,也避免把任何上层控制器都可能遇到的问题归咎于 AI。当 K 与 δ 随时间变化,而 m、Kₑ 不变时,对 E 求导会多出两项:
K̇ 是刚度变化率,δ̇ 是参考位置速度。两个新增项的单位都是瓦,并可能输入能量。这不意味着每次自适应都会不稳定,而是说明固定参数下的证明已经不够。还需分析更新过程,必要时约束其能量和变化速度,并验证整个系统。仅保持 K 为正并不能解决问题。若等效质量也变化,还会出现本文未包含的额外项。
选择其他控制方式会改变什么
直接力控制试图把 F 调节到要求值,而不是让力作为位置误差的结果出现。当工艺要求确定载荷时,它可能有用,但需要可靠的力信息,并处理无接触与有接触之间的转换。导纳控制则利用测得的力生成运动指令,再交给内环执行;这条链路引入自身动力学。这不是同一软件的三种名称,也没有哪一种会自动消除转换峰值。
工业应用必须先明确任务:保持位置、跟随表面与施加力并不是相同目标。工具可能在不同方向需要不同刚度,而本文只有一个轴。真实机械臂的等效质量及力到关节力矩的映射也会随姿态变化。EL-AI 计划探索工业与协作机器人方向,因此这些问题具有相关性;这并不能证明公司已经完成控制器、部署或物理测试。
复现结果,同时认识缺失部分
附件计算的是解析解,而不是对复杂接触仿真器进行数值积分。图像每 0.1 ms 对解析解取样一次;这个间隔只用于画曲线,不代表数字控制器的频率。代码检查计算点的形变非负、解析峰值与对应时刻解一致,以及能量导数等于 −Dẋ²。不使用随机数,也不训练模型。对 N 个时刻和三个案例,计算成本为 O(N),保存全部轨迹所需内存也是 O(N);若只计算峰值,每个案例仅需固定工作量。
未包含的效应有非线性变形、带初始速度的碰撞、摩擦、脱离接触、关节弹性、滤波、噪声、延迟与饱和。开展物理试验需要平台模型与接口、实际控制频率、力测量校准、机械臂构型及可重复协议;还应记录瞬态与初始条件,并由具备相应能力的人员核查适用约束。我们不报告未经测量的安全百分比、开发板性能或机器人性能。
回答最初的问题
让机器人更柔顺,可以降低位置误差造成的力,却不能单独决定最大接触力。必须共同考虑机器人与环境刚度、质量、阻尼及初始条件。本例中,较柔顺的 A 最终低于一牛顿,瞬态却超过 1.7 N。改变刚度或参考时,还要重新核算能量收支。数学的价值在于把“机器人很柔顺”这一模糊描述,变成彼此区分、可验证的问题,从而避免赋予行为未经证明的保证。
来源与已运行代码
Russ Tedrake, Robotic Manipulation, Manipulator Control: Indirect force control (course notes, 2026).
Kevin M. Lynch and Frank C. Park, Modern Robotics, 11.2.2 Linear Error Dynamics (book companion).
from experiment import run
for r in run()['rows']:
print(r['case'], round(r['force_equilibrium_N'], 3),
round(r['peak_force_N'], 3), r['peak_kind'])
代码、数据与说明 · JSON. 教学计算使用 Python 3.14.0,图使用 Matplotlib 3.11.2。分析由 AI 辅助,不声称经过同行评审或人工审核。原创 ImageGen 封面仅作示意,不记录 EL-AI 人员、场所或实际安装。来源查阅于 2026 年 10 月 4 日。

