从控制信号到机器人运动:拆解 u→u \rightarrowu 执行器动态 →τa→\rightarrow \tau_a \rightarrowτa 多体动力学 →q¨→q,q˙\rightarrow \ddot q \rightarrow q,\dot qq¨q,q˙

很多初学者会问:
为什么机器人动力学模型总是和“力矩”绑在一起?整个模型到底在模拟什么?

一句话回答:

动力学模型模拟的是一条完整的物理因果链:
控制输入 uuu 先经过执行器,变成关节力矩 τa\tau_aτa;关节力矩作用在机器人多体结构上,产生关节加速度 q¨\ddot qq¨;加速度再被积分成速度 q˙\dot qq˙ 和位置 qqq

力矩不是终点,它只是这条链上的一个关键接口。


一、总览:一条完整的因果链

先看整体流程:

u  →  执行器动态  →  τa  →  机器人多体动力学  →  q¨  →  q,q˙ u \;\rightarrow\; \text{执行器动态} \;\rightarrow\; \tau_a \;\rightarrow\; \text{机器人多体动力学} \;\rightarrow\; \ddot q \;\rightarrow\; q,\dot q u执行器动态τa机器人多体动力学q¨q,q˙

画成图就是:

控制器输出 u
   ↓
执行器动态:电气、流体、热、机械耦合
   ↓
关节力矩 τ_a
   ↓
机器人多体动力学:惯量、科氏、重力、摩擦、外力
   ↓
关节加速度 q̈
   ↓
积分
   ↓
关节速度 q̇、关节位置 q
   ↓
传感器反馈给控制器,形成闭环

严格来说,执行器动态会依赖关节速度 q˙\dot qq˙,机器人动力学又依赖执行器力矩 τa\tau_aτa,所以这是一个耦合系统。
但为了理解,我们可以先把这条链看成单向因果链。


二、环节 1:控制输入 uuu

uuu 是控制器最终送给驱动器的指令。
它可以是:

  • 电机电压;
  • 电机电流;
  • PWM 占空比;
  • 液压伺服阀电压;
  • 气动比例阀开度;
  • 压电驱动电压;
  • SMA 加热电流。

不同执行器的 uuu 物理量不同,但作用一样:
它是能量或信号入口。

控制器为什么给出这个 uuu
因为它根据期望轨迹和传感器反馈,计算出当前应该施加多大的驱动量。


三、环节 2:执行器动态

执行器动态的任务是:

u  →  τa u \;\rightarrow\; \tau_a uτa

但它不是瞬时映射,而是有内部状态和动态过程。

一般可以写成:

x˙a=fa(xa,u,q˙,τL) \dot x_a = f_a(x_a,u,\dot q,\tau_L) x˙a=fa(xa,u,q˙,τL)

τa=ga(xa,u,q˙) \tau_a = g_a(x_a,u,\dot q) τa=ga(xa,u,q˙)

其中:

  • xax_axa 是执行器内部状态,比如电流、压力、温度、马氏体分数、阀芯位移;
  • q˙\dot qq˙ 是关节速度,会影响反电动势、液压流量、气动压差等;
  • τL\tau_LτL 是负载力矩;
  • τa\tau_aτa 是执行器最终输出到关节的力矩。举几个例子。

1. 直流电机

电气动态:

Ldidt=u−Ri−Keθ˙ L\frac{di}{dt}=u-Ri-K_e\dot\theta Ldtdi=uRiKeθ˙

电磁力矩:

τa=Kti \tau_a=K_t i τa=Kti

所以电压 uuu 不会立刻变成力矩,它先改变电流 iii,电流再产生力矩。

2. 液压执行器

阀控液压缸:

QL=Kqxv−KcPL Q_L=K_q x_v-K_c P_L QL=KqxvKcPL

压力动态:

Vt4βeP˙L=QL−Apx˙p−CtPL \frac{V_t}{4\beta_e}\dot P_L=Q_L-A_p\dot x_p-C_tP_L 4βeVtP˙L=QLApx˙pCtPL

输出力:

F=ApPL F=A_pP_L F=ApPL

对旋转关节,再通过机构变成力矩。

3. 气动执行器

气体可压缩,所以压力动态和热力学过程必须考虑:

dPdt=γRTV(m˙in−m˙out)−γPVdVdt \frac{dP}{dt}=\frac{\gamma RT}{V}(\dot m_{in}-\dot m_{out})-\frac{\gamma P}{V}\frac{dV}{dt} dtdP=VγRT(m˙inm˙out)VγPdtdV

输出力由两侧压差决定:

F=P1A1−P2A2 F=P_1A_1-P_2A_2 F=P1A1P2A2

4. 智能材料执行器

压电、SMA、EAP 等往往有滞回、蠕变、热动态或粘弹性。

例如 SMA:

mcpdTdt=I2Re−hAs(T−T∞)−mΔHξ˙ m c_p\frac{dT}{dt}=I^2R_e-hA_s(T-T_\infty)-m\Delta H\dot\xi mcpdtdT=I2RehAs(TT)mΔHξ˙

温度变化驱动相变,相变产生应力和力。

所以执行器动态这一环的核心是:

把控制输入 uuu 转换成机器人本体能接受的广义力 τa\tau_aτa


四、环节 3:τa\tau_aτa 为什么是力矩?

因为机器人关节大多是旋转关节。

旋转运动中,和牛顿第二定律 F=maF=maF=ma 对应的是:

τ=Jθ¨ \tau = J\ddot\theta τ=Jθ¨

其中:

  • τ\tauτ 是力矩;
  • JJJ 是转动惯量;
  • θ¨\ddot\thetaθ¨ 是角加速度。

如果关节是移动关节,那么对应的就是力 FFF 和位移 xxx

所以在机器人动力学中,统称它们为“广义力”。
旋转关节的广义力就是力矩,移动关节的广义力就是力。

从拉格朗日方程看:

ddt(∂L∂q˙)−∂L∂q=Q \frac{d}{dt}\left(\frac{\partial L}{\partial \dot q}\right)-\frac{\partial L}{\partial q}=Q dtd(q˙L)qL=Q
如果 qqq 是角度,那么 QQQ 的量纲就是 N⋅mN\cdot mNm,也就是力矩。
因此,τa\tau_aτa 不是人为规定必须叫力矩,而是由关节自由度自然决定的。

五、环节 4:机器人多体动力学

执行器输出 τa\tau_aτa 后,它进入机器人多体动力学。

机器人整体动力学通常写成:

M(q)q¨+C(q,q˙)q˙+G(q)+τf(q˙)=τa+τext M(q)\ddot q+C(q,\dot q)\dot q+G(q)+\tau_f(\dot q)=\tau_a+\tau_{ext} M(q)q¨+C(q,q˙)q˙+G(q)+τf(q˙)=τa+τext

各项含义:

  • M(q)q¨M(q)\ddot qM(q)q¨:惯性力矩;
  • C(q,q˙)q˙C(q,\dot q)\dot qC(q,q˙)q˙:科氏力和离心力项;
  • G(q)G(q)G(q):重力项;
  • τf(q˙)\tau_f(\dot q)τf(q˙):摩擦项;
  • τa\tau_aτa:执行器主动力矩;
  • τext\tau_{ext}τext:外部接触力、负载、碰撞等。这个方程在说:

执行器给的力矩、外部给的力矩,要用来克服机器人本身的惯性、科氏力、重力、摩擦,剩下的才变成加速度。

把加速度解出来:

q¨=M(q)−1[τa+τext−C(q,q˙)q˙−G(q)−τf(q˙)] \ddot q=M(q)^{-1}\left[\tau_a+\tau_{ext}-C(q,\dot q)\dot q-G(q)-\tau_f(\dot q)\right] q¨=M(q)1[τa+τextC(q,q˙)q˙G(q)τf(q˙)]

所以,机器人多体动力学这一环的输出是:

q¨ \ddot q q¨

也就是关节加速度。


六、环节 5:从 q¨\ddot qq¨q,q˙q,\dot qq,q˙

加速度不是最终状态。
真实机器人运动需要速度和位置。

通过积分:

q˙k+1=q˙k+q¨kΔt \dot q_{k+1}=\dot q_k+\ddot q_k\Delta t q˙k+1=q˙k+q¨kΔt

qk+1=qk+q˙kΔt q_{k+1}=q_k+\dot q_k\Delta t qk+1=qk+q˙kΔt

实际仿真中常用更高精度的积分器,比如 RK4。

于是:

  • q¨\ddot qq¨ 决定速度怎么变;
  • q˙\dot qq˙ 决定位置怎么变;
  • q,q˙q,\dot qq,q˙ 决定机器人当前姿态和运动状态。

这就是仿真里每个时间步发生的事:

  1. 控制器算出 uuu
  2. 执行器模型算出 τa\tau_aτa
  3. 多体动力学算出 q¨\ddot qq¨
  4. 积分器更新 q˙,q\dot q,qq˙,q
  5. 传感器和接触模型更新反馈与外力;
  6. 进入下一时刻。

七、闭环:链条不是单向的

上面为了清楚,写成了单向链:

u→τa→q¨→q,q˙ u\rightarrow \tau_a\rightarrow \ddot q\rightarrow q,\dot q uτaq¨q,q˙

但真实系统是闭环:

控制器 → u → 执行器 → τ_a → 机器人 → q, q̇
   ↑                                      ↓
   └──────────── 传感器反馈 ──────────────┘

控制器不断读取 q,q˙q,\dot qq,q˙,和期望轨迹比较,再重新计算 uuu

所以动力学模型模拟的是:

在控制输入、执行器动态、外部负载和接触作用下,机器人状态如何随时间演化。


八、正动力学与逆动力学

这条链可以从两个方向使用。

正动力学

给定力矩 τa\tau_aτa 和外力 τext\tau_{ext}τext,求运动:

τa,τext→q¨,q˙,q \tau_a,\tau_{ext} \rightarrow \ddot q,\dot q,q τa,τextq¨,q˙,q

用于仿真、预测、虚拟样机。

逆动力学

给定期望运动:

q,q˙,q¨ q,\dot q,\ddot q q,q˙,q¨

求需要多少力矩:

τ=M(q)q¨+C(q,q˙)q˙+G(q)+τf(q˙) \tau = M(q)\ddot q+C(q,\dot q)\dot q+G(q)+\tau_f(\dot q) τ=M(q)q¨+C(q,q˙)q˙+G(q)+τf(q˙)

用于前馈控制、计算力矩控制、轨迹规划。

所以动力学模型不是单纯“输出力矩”或“输出位置”,而是描述力和运动之间的映射。


九、建模时怎么选层次?

不是所有场景都需要完整链条。

  • 低速、低精度控制:
    可以把执行器简化为力矩源,甚至 τa≈Ku\tau_a\approx K uτaKu

  • 高精度力控、位置控:
    必须加入摩擦、间隙、减速器柔顺、执行器动态。

  • 液压、气动:
    必须考虑压力动态、阀流量、可压缩性、泄漏。

  • 压电、SMA、EAP:
    必须考虑滞回、蠕变、热动态或粘弹性。

  • 实时控制:
    常做降阶,比如电流环近似一阶,阀动态近似一阶,智能材料用现象学模型。


十、总结:一句话记住这条链

u→执行器动态→τa→机器人多体动力学→q¨→q,q˙ u \rightarrow \text{执行器动态} \rightarrow \tau_a \rightarrow \text{机器人多体动力学} \rightarrow \ddot q \rightarrow q,\dot q u执行器动态τa机器人多体动力学q¨q,q˙

它的含义是:

  • uuu 是控制命令;
  • 执行器把命令变成广义力 τa\tau_aτa
  • 多体动力学把广义力变成加速度 q¨\ddot qq¨
  • 积分把加速度变成速度 q˙\dot qq˙ 和位置 qqq
  • 传感器再把运动反馈给控制器,形成闭环。

所以,力矩只是执行器和机械本体之间的接口变量
整个动力学模型模拟的,是机器人从控制信号到实际运动的完整物理因果链。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐