1. 减速器周期阻力:特征、来源与"周期"这个关键词
装上减速器之后,电机轴的负载转矩不再是常数。除了摩擦、间隙、负载波动这些"随机或缓变"扰动,还存在一类随电机转角周期性重复的阻力扰动:
Td(θ) = Ad·sin(N·θ + φ)
扰动频率 fd = N·fmotor —— N 是"每转扰动次数"(啮合阶次),fmotor 是电机轴转频。转速恒定 → 扰动频率恒定;转速变化 → 扰动频率成正比变化
不同减速器的周期扰动来源不同,但数学特征完全一致——它是电机角度的周期函数:
| 减速器类型 | 周期扰动来源 | 典型阶次 N | 备注 |
|---|---|---|---|
| 行星减速器 | 太阳轮/行星轮齿形分度误差、啮合刚度波动 | ≈ 太阳轮齿数 Zs,及倍频 | 阶次高(几十次/转),幅值小 |
| 谐波减速器 | 柔轮周期弹性形变、波发生器偏心 | 常为 2/转 及其倍频、柔轮齿差次 | 阶次低(几次/转),幅值大、随负载增大 |
| 轴承/联轴器 | 滚动体通过频率、偏心 | 1/转 或滚动体数/转 | 常与减速器扰动叠加 |
为什么"周期"是关键?因为 FOC 外环的抑制能力受带宽限制,而周期扰动的频率往往远超速度环带宽:
示例:电机 30 rad/s(≈286 rpm),减速器扰动阶次 N=12 → 扰动频率 fd=12×30/2π≈57 Hz≈360 rad/s。而速度环带宽通常只整定到 20~50 rad/s(还要避开机械谐振)。扰动频率高于带宽 7~18 倍,PI 反馈只能衰减、无法消除——误差会以同样的周期波动透传到 Iq 指令和转速上。
还要注意区分:周期阻力 ≠ 摩擦/间隙。摩擦是速度相关非线性(见《静摩擦远大于动摩擦系统的电机驱动优化》),间隙只在换向时出现(见《关节模组减速器》专题),它们都不是"固定角度周期的连续函数";而周期阻力是转角为自变量、每转几乎完全重复的确定性信号——这个性质正是角度域重复控制的用武之地。
2. 为什么单一手段不够:三者的分工边界
针对周期扰动,三种手段各有不可替代的角色,也各有天花板。工程上不是"选一个",而是叠在一起、各管一段:
| 控制器 | 管什么 | 为什么不够用 | 分工定位 |
|---|---|---|---|
| PI 速度环 | 跟踪速度指令、保证系统稳定、抑制带宽内的扰动 | 带宽受机械谐振限制,对高频周期扰动衰减有限,且 PI 不"认识"周期结构 | 基础闭环:先稳下来 |
| DOB 扰动观测器 | 实时观测总扰动(摩擦+负载+部分周期阻力)并前馈抵消 | 观测带宽受 Q 滤波器限制(防止微分噪声放大),高频分量观测不准、补偿不干净 | 实时补偿:压低频、压随机 |
| 角度域重复控制 RC | 学习并抵消"随转角重复"的残余周期纹波 | 只对周期信号有效,需要若干圈收敛,非周期扰动无效 | 周期学习:专治啮合波纹 |
PI 兜底稳定、DOB 压实时扰动、RC 消周期残差。DOB 把大部分扰动(摩擦、负载、低频分量)实时抵消,剩下的"高频但每转重复"的残差交给 RC 按角度学习——两者带宽互补,不打架。
3. 组合架构总览
三个控制器在速度环层面的叠加关系(电流环以下不变,见《三闭环带宽分配与PI整定》):
Tref = uPI + uDOB + uRC → Iq,ref = Tref / Kt
Kt:电机转矩常数。DOB 与 RC 都以"额外转矩指令"的形式前馈叠加,与 PI 的输出同量纲、直接相加
注意 DOB 与 RC 的输入完全不同:DOB 是"模型+测量"的实时观测,不依赖信号是否周期;RC 是"上一圈的经验",输入是误差和角度索引——它根本不"看"扰动,只按角度把历史误差学进表里。这就是两者能叠加而不冲突的原因。
4. PI 速度环:基础闭环的带宽选择
PI 速度环承担基础稳定与指令跟踪(整定方法见《三闭环带宽分配与PI整定》),在带减速器的场合有两个额外约束:
- 惯量要用折算值:Jeq = Jm + JL/N²(减速比越大,负载惯量折算到电机轴越小)。PI 参数必须按 Jeq 整定,否则动态偏离设计值。
- 带宽要避开机械谐振:减速器(尤其谐波)带来电机轴—弹性—负载的双惯量谐振点。速度环带宽取谐振频率的 1/3~1/2 以下,必要时加陷波(见《转矩扰动观测与补偿》)。
带宽一旦定死,高于带宽的周期扰动就只能靠 DOB/RC 解决——这就是为什么"PI 调好了"不等于"纹波没了"。
5. DOB 扰动观测器:实时观测与前馈
DOB 的核心思想一句话:把实际系统与名义模型的输出差当作总扰动。电机轴动力学(全部折算到电机轴):
J·dω/dt = Tref − Td (Td:周期阻力+摩擦+负载的总扰动)
Jn·dω̂/dt = Tref − T̂d (名义模型,Jn 取辨识的总等效惯量)
用速度测量误差驱动扰动估计收敛(龙伯格型,嵌入式最常用):
ω̂(k+1) = ω̂(k) + Ts/Jn·(Tref(k) − T̂d(k))
T̂d(k+1) = T̂d(k) + Lo·(ω(k) − ω̂(k))
观测器增益 Lo 决定扰动观测带宽(≈ √(Lo/Jn)),工程上取速度环带宽的 3~10 倍
补偿方式:直接把估计出的扰动前馈回转矩指令,抵消扰动:
uDOB = +T̂d → Tref = uPI + T̂d + uRC
DOB 的"天花板"来自观测带宽:Lo 越大越能观测高频扰动,但速度测量噪声(编码器差分)会被放大——这就是周期扰动"观测不准、补偿不干净"的根本原因。典型取舍:
- DOB 带宽开高 → 高频扰动补偿好,但噪声放大、可能激发机械谐振(谐波减速器尤其危险);
- DOB 带宽保守 → 稳定安全,但高频周期残差留了下来——正好交给 RC 收尾。
工程实现提醒:速度信号用观测器/滤波器输出而非编码器直接差分;Jn 用辨识值,模型误差会直接限制 DOB 效果。
6. 角度域重复控制 RC:专治随转角重复的纹波
重复控制(Repetitive Control)的思路和 DOB 完全不同:周期信号上一圈什么样、这一圈还什么样——把上一圈的误差存下来,这一圈提前补。普通时间域 RC 的周期是固定时间,转速一变就失效;角度域 RC 把周期定义为"电机一转",按角度查表,转速任意变化都自动跟随。
idx = ⌊θ / (2π/M)⌋ mod M
uRC(k) = LUT[idx]
LUT[idx] ← LUT[idx] + Krc·e(k) (e = ω* − ω,学习律)
Krc:学习增益。速度偏低(e>0)→ 该角度位置需要更多转矩 → 表值增加;下一圈转到同一角度时提前补上
加上稳定性低通 Qrc(z)(对更新后的表值做一阶平滑),滤除高频噪声、防止学习发散:
LUT[idx] ← (1−q)·LUT[idx] + q·(LUT[idx] + Krc·e(k))
q∈(0,1),典型 0.3~0.8。q 越小越稳、收敛越慢
RC 的三个工程要点:
- 收敛需要时间:学习律逐圈更新,通常需要 5~20 圈收敛到稳定抑制——所以它适合"长期恒速/往复运行"的工况,不适合要求瞬时响应的场合;
- 启停逻辑必加:电机静止或转速突变时冻结 LUT 更新,防止把瞬态误差大量写进表里造成震荡(见代码实现);
- 只对周期信号有效:间隙、突变负载这类非周期非线性,RC 学不进去(它没有固定角度周期),仍需 DOB 与机械消隙配合。
RC 与 DOB 的配合节奏:先让 DOB 把能观测的扰动实时抵消,剩下高频周期残差由 RC 学——DOB 是"当场抵消",RC 是"上一圈的经验",两者带宽互补、互不抢功。
7. 交互式仿真器
仿真模型:单惯量 + 周期阻力(示例参数,非真实测量)。Jeq=2e-3 kg·m²,Kt=0.4 N·m/A,速度环带宽约 25 rad/s,周期扰动 Td(θ)=Ad·sin(N·θ)。默认 N=6、ω=30 rad/s 时扰动频率约 180 rad/s,远高于速度环带宽——这就是"PI 压不住"的真实场景。
7.1 演示A:纯PI → +DOB → +DOB+RC 三方案对比
同样的扰动、同样的速度环参数,切换三种配置看稳态波动逐级减小。上图为转速,下图为 Iq 指令:
观察要点:
- 纯 PI:转速和 Iq 都有明显的同频波动(扰动频率≈N·ω/2π),PI 只能把误差"看见"却压不下去;
- +DOB:扰动被实时观测并前馈,稳态波动改善一部分;但观测带宽有限(Q 滤波与速度差分噪声),高频周期残差仍然明显——这正是留给 RC 的部分;
- +RC:角度域 LUT 学习几圈后,残余周期纹波被进一步压到接近零——对比稳态峰峰值可以定量看到逐级改善。
7.2 演示B:角度域 RC 的学习收敛过程
配置固定为 PI+DOB+RC,LUT 从全零开始。看转速波动随圈数增大而收敛,以及学习曲线的下降包络:
观察要点:
- 前几圈 LUT 还是空表,转速波动与纯 PI 接近;随着学习进行,每转波动 RMS 沿包络下降,最终收敛到接近零;
- 调大 Krc:收敛更快但可能过冲振荡;调小则更稳更慢——Krc 与收敛速度/稳定性是一对矛盾。
8. 代码实现(C语言,可编译模块)
8.1 DOB 扰动观测器:龙伯格型 + Q 平滑
8.2 角度域重复控制:LUT 学习 + 冻结逻辑
8.3 速度环整合:PI + DOB + RC 叠加
9. 调参顺序:行星 vs 谐波差异
同一套组合拳,两种减速器的调参重点完全不同——根源是行星刚度高、有背隙;谐波刚度软、无背隙但摩擦大、谐振低:
| 步骤 | 行星减速器 | 谐波减速器 |
|---|---|---|
| 0 基础 | 脱开减速器单独调好电机电流环/速度环,排除电机齿槽转矩干扰 | 同左(齿槽转矩见《齿槽转矩补偿》) |
| 1 惯量 | 辨识总等效惯量 Jeq,按 Jeq 重调速度环 PI | 同左;Jn 辨识不准会直接限制 DOB 效果 |
| 2 谐振 | 谐振频率较高,速度环带宽可相对开高 | 先扫频找低频谐振,速度环带宽保守(谐波极易啸叫) |
| 3 DOB | Lo 可开较高,抑制摩擦与冲击扰动 | Lo 必须保守,Q 平滑更重,防止激励弹性谐振 |
| 4 RC | 主要抑制齿轮啮合阶次波纹(N≈Zs);注意换向背隙 RC 无效,需预载转矩 | Krc 更小,优先靠 DOB 补偿弹性形变,RC 只收尾柔轮周期残差 |
谐波刚度软、谐振频率低,DOB 与 RC 增益严禁同时拉满——两个前馈叠加极易激发低频弹性振荡,轻则啸叫、重则损伤柔轮。谐波上先保守 DOB,RC 增益从 0.02 量级起步。
10. 工程要点与常见误区
- 不要指望电流环压制周期阻力:电流环只跟踪 Iq 指令,周期扰动是机械侧扰动,必须在外环(速度环)或转矩指令前馈层面补偿
- 先确认扰动来自减速器:拆掉减速器空转电机,Iq 做 FFT;波动消失 → 扰动来自减速器;波动仍在 → 是电机齿槽转矩(换用《齿槽转矩补偿》)
- 速度信号质量决定一切:DOB 与 RC 都吃速度误差,编码器差分噪声会直接进入观测与学习——用速度观测器输出(见《速度观测器》),不要直接差分
- 补偿增益从零往上加:DOB 的 Lo、RC 的 Krc 都从最小值起步,出现啸叫/振荡立即回退——尤其谐波减速器
- RC 表会漂移:温度、磨损会改变阻力曲线,RC 表慢慢失准;可在空闲时自动重新学习(清表重跑)
- RC 不治背隙:换向空程是非周期非线性,RC 无效;行星减速器的换向冲击靠预载转矩(bias torque)解决
- 辨识阶次 N 用 FFT:恒速运行抓 Iq,FFT 找峰并验证"频率 ∝ 转速",确认扰动阶次后再设 RC 分辨率与 LUT 格数
周期阻力 = 随转角每转重复的确定性扰动,频率往往远高于速度环带宽 → PI 压不住;DOB 实时观测、当场抵消,但带宽有限压不干净;角度域重复控制按转角查表、一圈一圈学,专治残余周期纹波——三件套叠起来:PI 兜底、DOB 压实时、RC 消周期。记住分工边界:DOB 看"现在",RC 记"上一圈"。