发射机构云台的pitch电机的软件重力补偿
本文最后更新于83 天前,其中的信息可能已经过时,如有错误请发送邮件到2275012286@qq.com,或者在下方留言。

想了解更多技术分享请搜索“技术”标签,本人水平有限,内容可能不严谨或存在错误,如有发现错误请在评论区处留言,欢迎批评指正。

一、前言

1.什么是电机前馈力矩补偿

电机前馈力矩补偿是一种主动补偿控制策略,核心是在反馈控制的基础上,提前根据系统模型或已知扰动,计算出抵消干扰、跟踪指令所需的力矩,并直接叠加到控制器输出中,从而提升电机的动态响应速度和控制精度。

简单来说,传统的反馈控制(如 PID)是 “事后补救”—— 检测到实际输出与指令的偏差后,才调整输出力矩来纠正偏差;而前馈补偿是 “事前预判”—— 提前算出需要的力矩,主动施加,减少偏差的产生。

主要作用:

  • 提升动态响应速度:前馈力矩提前提供了跟踪指令所需的力矩,无需等待反馈偏差积累,电机能更快地跟随指令变化,减少动态滞后。
  • 提高控制精度:主动抵消已知扰动(如摩擦、重力、惯性),大幅降低稳态误差,尤其适合高精度定位、速度跟踪场景(如数控机床、伺服机械臂)。
  • 降低反馈控制器负担:前馈承担了大部分 “确定性” 力矩需求,反馈控制器只需处理模型误差和未知扰动,可减小反馈增益,避免系统震荡。

2.关于MIT模式电机控制

MIT模式是麻省理工学院开发的一种电机混合闭环控制模式。它常通过 CAN 总线传输控制指令,能实现位置、速度、力矩的精细化协同控制,特别适配四足机器人等需力控或柔顺控制的场景。

核心控制逻辑与公式:

  • MIT 模式的控制核心是通过融合位置偏差调节、速度偏差调节和前馈补偿量,计算出电机控制所需的参考信号(力矩或电流),具体有两种核心计算公式,分别对应力矩和电流输出,具体如下:

灵活的控制模式切换

通过调整位置增益Kp和速度增益Kd的参数,MIT 模式可切换为不同的专项控制模式,适配不同场景需求,具体如下:

  • 电流模式:当KpKd均为 0 时,刚度和阻尼都为 0,此时可通过前馈电流cff​直接控制电机相电流,适合需要精准力矩输出的场景。
  • 速度模式:当Kp为 0、Kd不为 0 时,刚度为 0 而阻尼生效,结合前馈电流可精准控制电机转速,避免转速波动。
  • 位置模式:当KpKd均不为 0 且速度指令为 0 时,可实现电机定点定位控制;若期望位置是连续变化的函数,期望速度作为其导数,还能实现位置和速度的同步跟踪,适合轨迹运动场景。

3.软件重力补偿应用

在电机控制(尤其是机器人关节、机械臂这类需要力控或位置精准保持的场景)中,重力补偿是一种抵消负载自身重力对电机输出力矩影响的控制策略,核心目的是让电机只需输出 “有效控制力矩”,而非额外承担克服重力的力矩,从而提升控制精度、响应速度和能效。

核心原理:

以机器人关节为例,关节电机驱动的连杆 / 负载会因自身重量产生一个重力矩,这个力矩的大小和方向会随关节角度变化而改变。

  • 若没有重力补偿:电机需要同时输出 克服重力的力矩 + 实现运动 / 保持位置的控制力矩
  • 若加入重力补偿:预先计算出当前角度下的重力矩,让电机输出一个大小相等、方向相反的补偿力矩,抵消重力的影响,此时电机只需输出 “控制力矩” 即可。

数学表达:

  • 对于单关节电机,重力补偿的核心是计算重力矩 τg​,公式为:
  • 在 MIT 模式电机控制中,重力补偿力矩通常会作为前馈项cff​ 的一部分)加入控制公式:
    此时,参考电流 cref​ 已经包含了抵消重力的分量,电机输出的力矩就能精准跟踪指令。

关系式实现方式:

  • 模型法(常用):基于负载的动力学模型,通过理论计算得到重力矩与关节角度的关系。适合已知负载参数(质量、质心位置)的场景。
  • 辨识法:若负载参数未知,可通过实验辨识:控制电机在不同角度下保持静止,记录电机的输出力矩,拟合出重力矩与角度的函数关系,再将其作为补偿项。

二、演示

我将以RM英雄发射机构的pitch电机为例子,以辨识法的方法来获得角度和重力矩之间的关系,借用matlab软件(版本R2024b),使用正弦函数作为拟合函数

实验操作:

运行后我们能得到以下图像:

实验分析:

我们看图发现,这里会出现两条拟函数线,并且对于数据点位,相同位置,但是不同运动方向下,电机力矩是不一样的,这是为什么呢?这里有一种猜测,pitch电机的外部发射结构的有摩擦力的影响。当发射机构上抬的时候,此时进行受力分析,电机要不仅要克服重力的作用,还要克服摩擦力,所以电机需要更大的力矩来抬升。当发射机构下降的时候,此时进行受力分析,重力和摩擦力反向,摩擦力抵消了一部分重力,所以电机需要的力矩会比较小。理论上,两种情况对应的就是这上下两个拟合函数,接下来我们来验证一下。

经过验证,我们发现确实如此!通过拟合函数预测出来的前馈力矩和实际电机力矩基本吻合,接下来我们只要把拟合函数的结果作为前馈项cff​ 的一部分)加入控制公式,同时注意pitch 电机给力矩前馈要判断运动方向调用不同拟合函数来给前馈力矩。正弦函数拟合也会比常用的线性拟合的精度要高,精确的话这样操作似乎不只能软件上重力补偿,似乎都能软件上重力摩擦力全补偿了。

✧(≖ ◡ ≖✿)有问题欢迎在下方留言,你的建议是我更新的动力!
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇