先记住一句话

电机驱动器的核心闭环是:测转子角度和相电流,把期望力矩换成 Iq,用三相逆变桥与 PWM 追踪该电流;位置和速度只是包在它外面的更慢控制环。

torque commandIq referencesample phase current/angleClarke/ParkPI voltageSVPWM bridge
Outer loopsposition / speed
Current loopId,Iq PI
ModulatorPWM duties
Bridge + motorphase currents
转子 electrical angle 决定坐标变换;phase currents 闭环后,外层才可把电机近似成 torque source。

1. 驱动器里有什么

DC bus
  ↓
bulk capacitors → 3 half-bridges / 6 MOSFETs → U V W phases → motor
                         ↑ gate driver
                         ↑ PWM
encoder ─→ angle ─→ MCU / FOC ←─ phase current sensors
                          ↑
               command + limits + watchdog

此外还常有母线电压、板温/电机温度、制动电阻、隔离通信、预充/继电器接口以及硬件过流比较器。软件崩溃时,硬件过流和栅极驱动器仍应能迅速关断 MOSFET。

2. 半桥和三相逆变器

一个半桥用高侧和低侧 MOSFET 把相线切到正母线或负母线;三相电机需要三组半桥。上下管绝不能同时导通,否则形成 shoot-through 直通短路。驱动器会插入短暂 dead time,但 dead time 也会引入电压误差和转矩纹波。

3. PWM 不是“忽大忽小的力矩命令”

PWM 以固定频率快速切换母线,通过 duty cycle 合成期望平均相电压。绕组电感让电流相对平滑,电流环再根据误差逐周期调整 duty。开关频率越高,纹波和可闻噪声可能更小,但 MOSFET 开关损耗、驱动损耗和 EMI 会增加。

di/dt ≈ (Vapplied − R·i − back_EMF) / L

因此高转速时 back-EMF 吃掉电压裕量,即使命令很大,实际电流也追不上;这就是转矩—转速曲线进入电压受限区。

4. 六步换向与 FOC

六步 / trapezoidal

每个电角周期按六个扇区导通相对固定的两相。逻辑简单、成本低,但转矩纹波和声学噪声通常更大。

FOC / sinusoidal

把三相电流投影到随转子旋转的 d-q 坐标,让磁通分量与转矩分量近似解耦,便于平滑精确控制。

5. 一次 FOC 周期

  1. ADC 在合适的 PWM 时刻采样两相或三相电流。
  2. 由机械编码器角度乘极对数,并加电角度 offset,得到电角度。
  3. Clarke/Park 变换把 ia, ib, ic 变成旋转坐标的 Id, Iq
  4. PI 电流环比较 Id/Iq 目标与测量,输出 Vd/Vq
  5. 逆 Park + SVPWM 把电压命令变成三相 duty。
  6. 检查过流、过压、欠压、编码器失锁和温度,再进入下一周期。

表贴式 PMSM 常把 Id 目标设为 0、用 Iq 产生转矩;弱磁、高凸极电机或 MTPA 控制会使用非零 Id。所以“FOC 就是 Id=0”不是普遍定义。

6. 三层级联闭环

q_des ─→ [position P] ─→ velocity_des
              ↓
dq_des → [velocity PI] ─→ torque / Iq_des
              ↓
        [current PI + FOC] ─→ PWM ─→ motor
              ↑                         │
              └──── encoder + current ──┘
直接控制相对速度
电流/转矩环相电流、磁场最快,常与 PWM 同数量级
速度环角速度中间,必须低于电流环带宽
位置环关节/转子位置最外层,受机械共振和通信限制

确切频率取决于电机电感、PWM、采样、CPU 和机械系统。常见“20 kHz FOC、1 kHz 关节命令”只是数量级示例,不是所有机器人都必须如此。

7. 机器人常见的混合命令

τcmd = τff + Kp(qdes − q) + Kd(dqdes − dq)

上位机发送目标位置、速度、前馈力矩和 Kp/Kd,驱动器或低层控制板把它转成最终力矩。设 Kp=Kd=0 接近纯力矩模式;只有 Kp 会表现成虚拟弹簧;Kd 提供阻尼。增益过高、编码器噪声、延迟或柔性传动都可能引发振荡。

8. 校准不是可选装饰

  • 测相电阻、相电感,设置合理的电流环参数。
  • 识别极对数、相序、编码器方向和电角度零偏。
  • 确认编码器机械零点与关节零位、减速比和方向。
  • 设置 phase current、DC current、速度、温度、母线电压和位置软硬限位。

相电流上限与电池电流上限不是同一个数字;PWM 与三相能量交换会让二者在不同工作点差很多。

9. 四个 driver 与 FOC 手算

例 1:PWM 平均电压

理想 buck/half-bridge 简化下,48 V bus、duty=25%,平均输出约 0.25×48=12 V。Motor inductance 使高频脉冲电压形成较平滑的 current ripple。

例 2:torque command 到 Iq

Motor Kt=0.12 N·m/A,command torque=1.8 N·m,则 Iq_ref=1.8/0.12=15 A。若 drive current limit=12 A,实际最大 torque 约 1.44 N·m。

例 3:电角度

7 pole-pair PMSM 的 mechanical angle=30°,electrical angle=7×30°=210°(对 360° 取模)。Pole-pair 配错会让 Park transform 旋转到错误坐标。

例 4:级联频率

Current loop 20 kHz、speed loop 2 kHz、position loop 500 Hz。每个 position tick 内有 4 次 speed updates、40 次 current updates;外环必须比内环慢,才能把内环视为已收敛 actuator。

常见误解:

位置控制不是驱动器直接“把电机拉到角度”。它通常先把位置误差变成速度,再把速度误差变成力矩/电流,最后由 FOC 生成 PWM。

自测

1. 为什么 FOC 需要电角度而不是只要机械角度?

绕组磁场相对于磁极周期决定换向;电角度约等于机械角度乘极对数再加校准偏移。

2. 为什么高速时命令电流可能大于实际电流?

反电动势接近可合成电压上限,电流环已经把 duty 用满,仍没有足够绕组电压让电流继续上升。

3. 为什么不能只依靠上位机的软件电流限制?

上位机可能掉线或延迟;短路和 shoot-through 需要驱动器本地硬件在微秒级保护。

一手资料

TI FOC Made Easy 解释三相逆变与 FOC;ODrive Controller 展示位置—速度—电流级联环;ODrive Motor Calibration 说明相电阻/电感校准。