首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >导纳和阻抗的原理及本质对比

导纳和阻抗的原理及本质对比

作者头像
索旭东
发布2026-09-15 21:05:40
发布2026-09-15 21:05:40
740
举报
文章被收录于专栏:具身小站具身小站

真正让它们在工程上产生天壤之别的,恰恰就是观测量不一样。在控制理论中,观测什么和控制什么直接决定了系统的物理本质和稳定性边界。本文从纯数学、控制架构、物理本质三个维度来拆解。

  • 阻抗控制(测的是位置,控的是力):机器人假装自己是一根弹簧,推它,它因为变形(位置变化)而自动产生一个推力
  • 导纳控制(测的是力,控的是位置):机器人假装自己是一个带力传感器的滑块,推它,它先测到推力,然后根据推力大小决定往后退多少。

1. 纯数学对比:微分与积分的因果倒置

先看两个公式,假设目标都是建立 F 和 X 的线性关系:

阻抗公式:

导纳公式: Y 是导纳,如果简化为质量-阻尼系统,X 是通过对 F 的二次积分得到)

如果仅从数学视角考虑,它们互为逆矩阵,在数学上是完全等价的:阻抗是 F=Z⋅ΔX,导纳是 ΔX=Y⋅ΔF,而 Y=Z−1。

如果从控制角度,会问一个的问题:在当前的采样周期里,能立刻算出来的是什么?

  • 阻抗控制的算力要求: 要算出 F,需要知道 X 和 X˙,甚至 X¨。X 可以直接测,X˙可以通过编码器差分得到,X¨通常很难测准(需要加速度计或二次差分)。因此,阻抗控制是一个代数运算(虽然含有微分项,但在数字控制里是差分),它把测量到的位置误差,瞬时、直接地映射成力。
  • 导纳控制的算力要求: 要算出 X,我需要知道 F,力可以直接测(六维力传感器)。因此,导纳控制是一个动态滤波(积分运算),当测到一个力误差 ΔF 时,不能瞬间变出一个位置,必须让这个力误差驱动一个虚拟的质量块,经过两次积分(产生加速度,积分成速度,再积分成位置),才能得出位置指令。

一句话总结:阻抗是看位置,瞬间给力;导纳是看力,慢慢给位置(通过积分)。

2. 阻抗控制 vs 导纳控制

基于位置的阻抗控制正是混淆的根源,因为很多工业机器人底层没有力矩环,工程师只能把阻抗控制硬塞进位置环里。

假设底层只有位置环,工程师想把阻抗控制改造成基于位置的形式,他会把阻抗公式 F=KΔX反解出来:ΔX=K−1F,此时,基于位置的阻抗控制公式变成了:Xc=Xd−K−1Fext,看起来和导纳控制 Xc=f(Fd−Fext) 一模一样了,本质区别在于“动态阶数”和“力的来源”:

  1. 基于位置的阻抗控制(通常特指静态刚度控制):往往只使用了弹簧(K),忽略了质量和阻尼,计算是现在测到的力大了 10N,刚度是 1000N/m,那么位置立刻后退 1cm。这是一个比例控制器(P 控制),位置和力是瞬时线性对应的。
  2. 导纳控制:完整质量-阻尼-弹簧系统(M, B, K),计算现在力误差是 10N,质量是 2kg,那么加速度是 5m/s²,系统积分一下,速度增加了,再积分一下,位置才开始变化,这是一个二阶滤波器。

核心区别: 如果突然施加一个冲击力,基于位置的阻抗会让机器人瞬间跳开(因为 ΔX 瞬间产生);而导纳控制下的机器人因为有一个虚拟质量 M,它会表现得像个很重的东西,先产生加速度,然后才缓慢移动。


3. 观测量不同的本质区别(物理底层逻辑)

在物理世界里,测量位置输出力 和 测量力输出位置,面临的物理约束是完全不同的。

阻抗控制(测位置,控力矩):想象手(机器人)是一根弹簧。 机器人底层电流环控制的是力矩(电流),底层的摩擦、惯量都被力矩环补偿掉了(理论上)。
  • 当环境推的时候,关节编码器感觉到了微小的位置变化(ΔX)。
  • 大脑(控制器)根据胡克定律 F=KΔX瞬间算出要施加多大的反作用力,底层电流环瞬间输出对应的电流。
  • 优点: 力的响应极快(只受电流环带宽限制),即使环境是块铁板(刚性极大),只要力矩环稳定,系统就稳定,因为弹簧压不动铁板,但弹簧不会自己震荡。
  • 缺点: 自由空间里,如果力矩环有摩擦没补偿干净,机器人推不动,它就动不了,位置精度差。
导纳控制(测力,控位置):想象手(机器人)是一根由伺服电机带动的巨大铁棍,底层是位置环,增益极高(非常硬)。
  • 当环境推的时候,铁棍(位置环)纹丝不动(因为位置环极硬),但是,手腕上的六维力传感器感觉到了力 Fext。
  • 大脑(控制器)根据导纳公式算出:既然这么大的力,应该往后让一让,于是发送一个新的位置指令给伺服电机,电机转动,到达新位置,环境施加的力减小了。
  • 优点: 自由空间位置极准(因为本质是位置控制)。
  • 缺点: 力的响应慢(要经过力传感器采样、计算、位置环跟踪)。如果环境是块铁板,位置环的微小跟踪延迟或超调,都会导致力急剧增加,很容易引发剧烈的震荡(这就是为什么导纳控制碰硬环境需要加大阻尼的原因)。

4. 区别对比

维度

阻抗控制

导纳控制

物理类比

一根可调弹簧

一个带力传感器的重型电机

数学本质

F=f(X)F=f(X)代数运算(主要是比例/微分)

X=f(F)X=f(F)动态运算(主要是积分/滤波)

反馈观测量

运动量(位置、速度)

接触力(六维力传感器)

底层控制环

力矩/电流环

位置/速度环

落地难度

需要底层开放力矩接口

加个力传感器写外环即可

核心优势

力带宽高,不怕硬环境,能瞬间响应冲击

位置精度高,自由空间运动平滑,硬件通用性好

核心劣势

自由空间位置不精准,硬件要求高(需要低摩擦/力控)

力带宽低,接触硬环境容易震荡(需要加虚拟阻尼)

只要面对的是直驱电机机器人,如果想做高精度的力控(比如精密轴孔装配),就必须回到最原始的阻抗控制(测位置,控电流),因为导纳控制的延迟在硬接触下是致命的。

5、工程选型

到了工厂或者实验室,选哪种算法,由机器人的底层能力决定。

1. 选导纳控制(最常见)

条件:用的是市面上 90% 的成熟工业/协作机器人(如 UR、库卡、发那科、ABB 等)。

  • 底层能力:这些机器人只开放位置控制接口(或者速度接口),发个位置指令,内部伺服系统拼命让关节转到那个位置,没法直接控制电机电流/力矩。
  • 落地动作:在末端法兰盘上加装一个六维力传感器,写一个外环(通常在工控机或机器人控制器二次开发接口里):读力传感器数据 -> 跑导纳公式 -> 输出位置修正量给机器人。
  • 适用场景:打磨、去毛刺、拖动示教、简单装配。如果接触面是硬邦邦的金属,必须把虚拟阻尼调大,否则会哒哒哒地抖。

2. 选阻抗控制

条件:用的是直驱电机机械臂、液压机械臂,或者带关节力矩传感器(如 Franka、KUKA iiwa、DLR 机械臂)的机器人。

  • 底层能力:这些机器人底层开放了力矩/电流环控制,并且机械本体摩擦小、反向驱动性好,可以直接下发关节扭矩指令。
  • 落地动作:不需要额外的六维力传感器(靠关节编码器测量位置误差即可算出力,关节电流环直接执行)。写一个控制律:读取编码器 -> 计算位置误差 -> 根据刚度/阻尼公式算出期望关节力矩 -> 直接下发力矩指令。
  • 适用场景:精密轴孔装配、需要极快力响应的打磨、腿足机器人足底柔顺、康复机器人。优势是不怕硬环境,力控带宽极高,反应极快。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-08-29,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 1. 纯数学对比:微分与积分的因果倒置
  • 2. 阻抗控制 vs 导纳控制
  • 3. 观测量不同的本质区别(物理底层逻辑)
    • 阻抗控制(测位置,控力矩):想象手(机器人)是一根弹簧。 机器人底层电流环控制的是力矩(电流),底层的摩擦、惯量都被力矩环补偿掉了(理论上)。
    • 导纳控制(测力,控位置):想象手(机器人)是一根由伺服电机带动的巨大铁棍,底层是位置环,增益极高(非常硬)。
  • 4. 区别对比
  • 5、工程选型
    • 1. 选导纳控制(最常见)
    • 2. 选阻抗控制
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档