第三节:关节力矩控制——直流电机力矩模型、电流环与力矩环的关系、力矩传感器与力矩估计

聊到关节力矩控制,很多刚入行的朋友第一反应就是:“给电机发个力矩指令不就行了?”

嗯,没那么简单。力矩控制是机器人实现柔顺交互、力位混合控制的基础。我做了这么多年机器人控制,坦白讲,力矩控制做不好,后面所有的高级功能都是空中楼阁。

3.1 直流电机的力矩模型

我们先从最基础的直流电机说起。你想想看,电机输出的力矩到底是怎么来的?

直流电机的电磁力矩模型,核心就一个公式:

τ_m = K_t · i

其中:

  • τ_m —— 电机输出的电磁力矩(N·m)
  • K_t —— 力矩常数(N·m/A),由电机本身决定
  • i —— 电枢电流(A)

说白了,力矩和电流是线性关系。这也是为什么我们常说“控制电流就是控制力矩”。

但实际项目中,这个模型有几个坑:

  • K_t 不是恒定的 —— 温度升高、磁钢老化,K_t 会漂移。我曾经在高温环境下测试,力矩偏差直接到了 8%,后来不得不加温度补偿。
  • 摩擦和齿槽效应 —— 低速时尤其明显。电机空转时你给个小电流,它可能纹丝不动,因为静摩擦力还没克服。
  • 反电动势的影响 —— 电机转速高了,反电动势会限制电流上升速度,影响动态响应。

核心结论: 直流电机的力矩控制,本质上就是电流控制。但要想控制得准,必须考虑非线性因素。

3.2 电流环与力矩环的关系

很多教科书把电流环和力矩环分开讲,但实际工程中,它们是一对“父子关系”。

我习惯这样理解:

  • 电流环(内环) —— 负责快速跟踪电流指令。带宽高,响应快,一般用 PI 控制器。
  • 力矩环(外环) —— 负责根据期望力矩,计算出电流环需要的电流指令。

结构图如下:

τ_des 力矩控制器 电流控制器 电机+负载 τ_act 力矩/电流反馈 外环(力矩环) 内环(电流环)

为什么要这样分层?

原因很简单:电流环的带宽远高于力矩环。电流环的响应时间通常在微秒到毫秒级,而力矩环因为涉及机械动力学,响应时间在毫秒到十毫秒级。

我的经验: 电流环的 PI 参数可以先整定好,然后固定不变。力矩环的增益则要根据负载惯量、刚度等动态调整。我习惯在力矩环里加一个前馈项,把期望力矩直接映射到电流指令上,这样响应能快 30% 左右。

3.3 力矩传感器与力矩估计

力矩控制离不开力矩反馈。反馈从哪里来?两种方式:

  1. 直接测量 —— 用力矩传感器
  2. 间接估计 —— 通过电流、位置等信息推算

3.4.1 力矩传感器

常见的力矩传感器有:

类型 原理 精度 带宽 成本
应变片式 金属应变片电桥 高(0.1% FS) 中(~1kHz) 中等
压电式 压电效应 高(0.5% FS) 高(~10kHz) 高
磁弹性式 磁导率变化 中(1% FS) 中(~500Hz) 低
电容式 极板间距变化 高(0.2% FS) 高(~5kHz) 高

我个人最常用的是应变片式力矩传感器。为什么?性价比高,精度够用,而且标定相对简单。但要注意:

避坑指南: 我曾经在协作机器人项目里,直接用了某品牌的力矩传感器,结果发现温度漂移严重。后来才意识到,应变片式传感器必须做温度补偿,否则 10°C 的温度变化就能带来 2% 的误差。从那以后,我每次选型都会问清楚温度系数。

3.4.2 力矩估计(无传感器方法)

有些场合装不了力矩传感器(比如空间受限、成本敏感),那就得靠估计。

最常用的方法是基于电流的力矩估计:

τ_est = K_t · i - τ_friction - τ_inertia

其中:

  • τ_friction —— 摩擦力矩,需要建模补偿
  • τ_inertia —— 惯性力矩,需要知道加速度

摩擦力矩的建模,我推荐用 Stribeck 模型:

τ_friction = τ_c + (τ_s - τ_c) · exp(-|ω/ω_s|^δ) + B · ω

参数说明:

  • τ_c —— 库仑摩擦力
  • τ_s —— 静摩擦力
  • ω_s —— Stribeck 速度
  • δ —— 经验系数(通常取 0.5~2)
  • B —— 粘滞摩擦系数

嗯,这里要注意:摩擦力模型参数需要实验标定。我习惯的做法是让电机匀速转动,记录不同速度下的电流值,然后拟合出摩擦曲线。

力矩估计的精度瓶颈: 不是电流测量精度,而是摩擦模型的准确性。低速时尤其明显,因为摩擦力占主导。如果你需要高精度的力矩控制,还是老老实实上传感器吧。

3.4 实际项目中的力矩控制策略

说了这么多理论,最后分享一点实战经验。

我做过一个六轴协作机器人的力矩控制项目,总结了几条原则:

  1. 电流环一定要快 —— 电流环的采样率至少 10kHz,PWM 频率 20kHz 以上。否则力矩环的带宽上不去。
  2. 力矩环的带宽要匹配机械谐振频率 —— 如果机械结构有 50Hz 的谐振,力矩环带宽不要超过 20Hz,否则会激振。
  3. 力矩传感器要定期标定 —— 我见过太多项目,传感器装上去就不管了,结果半年后数据完全不准。建议每 3 个月做一次零点标定。
  4. 力矩估计要加低通滤波 —— 电流噪声、加速度噪声都会传递到估计值上。我一般用截止频率 50~100Hz 的二阶巴特沃斯滤波器。

最后说一句:力矩控制没有银弹。传感器方案精度高但成本高、可靠性差;估计方案成本低但精度有限。选哪种,取决于你的项目需求。我个人习惯是:能装传感器就装传感器,实在不行再考虑估计。

一个小技巧: 如果你用估计方案,可以在关节低速运行时,用电流值减去摩擦补偿后的结果作为力矩反馈。虽然精度不如传感器,但对于力位混合控制中的“软”交互场景,完全够用。


可可精品资料库