2. FOC 系统架构与核心器件

好,咱们正式开始搭建 FOC 系统之前,得先把“骨架”和“器官”搞清楚。说白了,FOC 就是个精密的闭环控制系统,它由三大部分组成:控制环路、功率变换单元和电流采样反馈。这三者缺一不可,配合不好,电机就会抖得像筛子。

我个人习惯,拿到一个项目,先画系统框图。把每个模块的输入输出理清楚,再动手选型。这样后面调参的时候,心里才有底。

核心观点: FOC 系统的性能天花板,往往不取决于算法多花哨,而取决于硬件底子——尤其是电流采样精度和功率管的开关特性。

2.1 FOC 三环控制架构

FOC 控制,本质上是个嵌套的 PID 调节器。从外到内,分别是位置环、速度环、电流环。你想想看,最外环的位置环,输出给速度环做目标;速度环算完,再给电流环做目标;电流环最终输出 SVPWM 波,驱动电机。

为什么会这样设计?因为内环的响应速度必须比外环快一个数量级。电流环的带宽通常在 1-5 kHz,速度环在 100-500 Hz,位置环可能只有 10-50 Hz。这样外环的扰动,内环能迅速压住。

我在项目中遇到过,有人把速度环的 PI 参数调得比电流环还激进,结果系统一启动就震荡。嗯,这里要注意,内环的响应速度是外环的基石。

FOC 三环控制架构 位置环 P / PI 速度环 PI 电流环 PI + 解耦 SVPWM 调制 电流采样 Ia, Ib, Ic 速度/位置 编码器 / Hall 说明: 内环(电流)带宽 > 5× 外环(速度)带宽 > 5× 最外环(位置)带宽,否则系统容易失稳。

2.2 功率器件:MOSFET 与 IGBT

功率管是 FOC 系统的“肌肉”。选型不对,算法再好也白搭。低压小功率(< 100V, < 1kW)的场合,MOSFET 是绝对主力。高压大功率(> 300V, > 5kW),IGBT 更合适。

我建议你记住一个简单的分界线:母线电压低于 100V,无脑选 MOSFET;高于 300V,优先考虑 IGBT。中间区域,看开关频率和成本。

参数 MOSFET IGBT
电压等级 < 600V(主流低压) > 600V(主流高压)
开关频率 20 kHz - 200 kHz < 20 kHz(通常 8-16 kHz)
导通压降 Rds(on) 特性,低压时极低 Vce(sat) 约 1.5-2.5V,高压时优势明显
驱动要求 栅极电荷 Qg 小,驱动简单 米勒平台明显,需要负压关断
典型应用 无人机、机器人、电动工具 电动汽车、变频空调、工业伺服
选型小技巧: 我习惯先算峰值电流,然后留 1.5-2 倍裕量。比如电机堵转电流 30A,我会选 50A-60A 的管子。再根据母线电压,确认耐压至少留 20% 余量。别为了省几块钱,烧了管子炸了板子。

2.3 栅极驱动器

MCU 的 GPIO 直接驱动功率管?别闹。GPIO 的驱动能力只有几 mA,而功率管的栅极需要瞬间灌入几 A 的电流才能快速开关。栅极驱动器就是干这个的。

我踩过一个坑:曾经用了一款便宜的驱动芯片,死区时间设得太短,结果上下管直通,MOSFET 瞬间冒烟。嗯,从那以后,我选驱动芯片必看三个参数:峰值驱动电流、传播延迟、死区时间可调范围。

  • 峰值电流: 至少 1A 起步,大功率管需要 4A-10A。
  • 传播延迟: 最好 < 50 ns,延迟不对称会导致波形畸变。
  • 死区时间: 硬件可调或 SPI 可配,建议 100 ns - 1 μs 范围。

另外,高端 MOSFET 的驱动需要自举电路或隔离电源。低压系统常用自举,成本低;高压系统必须用隔离驱动,比如 Si823x 系列。

2.4 电流采样方案

电流环是 FOC 的心脏,而电流采样就是心脏的“听诊器”。采样不准,电流环就是瞎的。常见的方案有三种:单电阻、双电阻、三电阻。

我建议你根据成本和精度需求来选。三电阻最准,但成本高;单电阻最省,但低速时采样窗口不够。

方案 采样电阻数 精度 成本 适用场景
单电阻 1 个(直流母线) 中等,低速区误差大 低 低成本风扇、泵类
双电阻 2 个(两相下桥臂) 较高,可重构第三相 中 通用伺服、机器人关节
三电阻 3 个(三相下桥臂) 最高,全范围精确 高 高性能伺服、电动汽车
避坑指南: 我曾经在双电阻方案上栽过跟头。当 SVPWM 调制比接近 1 时,有一相的采样窗口会变得极窄,甚至消失。这时候必须用移相法或电流重构算法来补数据。否则电流环会突然失控,电机“咯噔”一下。

采样电阻的阻值也有讲究。阻值大了,发热严重,效率低;阻值小了,信号太弱,信噪比差。我一般按 满量程压降 50-100 mV 来算。比如峰值电流 30A,选 2 mΩ 的电阻,压降 60 mV,再用差分运放放大 20-50 倍,送到 ADC 刚好满量程。

最后说一句,采样电阻的布局要远离功率管的散热区域。温度漂移会让阻值变化,导致电流读数偏大或偏小。嗯,细节决定成败。