先记住一句话
电机驱动器的核心闭环是:测转子角度和相电流,把期望力矩换成 Iq,用三相逆变桥与 PWM 追踪该电流;位置和速度只是包在它外面的更慢控制环。
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 周期
- ADC 在合适的 PWM 时刻采样两相或三相电流。
- 由机械编码器角度乘极对数,并加电角度 offset,得到电角度。
- Clarke/Park 变换把
ia, ib, ic变成旋转坐标的Id, Iq。 - PI 电流环比较
Id/Iq目标与测量,输出Vd/Vq。 - 逆 Park + SVPWM 把电压命令变成三相 duty。
- 检查过流、过压、欠压、编码器失锁和温度,再进入下一周期。
表贴式 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 说明相电阻/电感校准。