1. 为什么电流采样是 FOC 的地基
FOC 的电流环是最内环,也是最"快"的环:电流环带宽上不去,速度环、位置环再好的参数都被架在空中。而电流环的所有运算——Clarke/Park 变换、PI 调节、反 Park、SVPWM——全部建立在"三个相电流采得准不准"之上:
- 采样噪声:经电流环 PI 放大后直接表现为 iq 抖动 → 转矩脉动、振动、MOS 发热
- 采样延迟:多一个 PWM 周期的滞后,就吃掉一块电流环相位裕度,限制带宽上限(见《三闭环整定与滞后》)
- 偏移/增益误差:未被校准的直流偏移会让电流环"以为"有电流,导致转矩偏置、零位漂移
所以电流采样方案的选择与实现质量,直接决定了这台驱动器"能多快、能多稳"。
2. 三种采样方案总览
三相电流的测量方式,核心区别在于采样电阻放几个、放在哪:
| 方案 | 采样电阻 | 怎么得到三相电流 | 成本 | 精度 | 采样窗口约束 | 典型应用 |
|---|---|---|---|---|---|---|
| 三电阻 | 3 个(每相下桥) | 直接采 ia、ib、ic | 高 | 最高 | 各相下管导通时各采一次 | 高性能伺服、机器人关节 |
| 双电阻 | 2 个(两相下桥) | 采两相 + 第三相重构 ic=−(ia+ib) | 中 | 高 | 两相下管同时导通窗口 | 通用伺服、中高端驱动器 |
| 单电阻 | 1 个(直流母线) | 一个周期内两次采样母线电流,按矢量重构两相 | 低 | 中(受窗口限制) | 需要两个非零矢量窗口,低调制/扇区边界会不足 | 低成本、小功率、无刷电调 |
一句话:三电阻"最贵最省心",双电阻"性价比之王",单电阻"最便宜但最讲究时机"。
3. 采样电阻位置与电流的关系
3.1 下桥臂采样电阻(三/双电阻)
电阻串在下桥臂 MOSFET 与地之间,只有当该相下管导通时,流过电阻的电流才等于该相相电流。上管导通时该相电流走母线,不经过下桥电阻。
- 三电阻:A/B/C 各一个电阻,各相下管导通时分别采样,理论上任何时刻都能凑齐三相
- 双电阻:只放 A、B 两相电阻,利用基尔霍夫电流定律 ia + ib + ic = 0 推出第三相:ic = −(ia + ib)
3.2 直流母线采样电阻(单电阻)
单个电阻放在直流母线上,流过的是母线电流。母线电流不等于任何一相电流,它等于当前时刻所有"上管导通相"的相电流之和。巧的是,在 SVPWM 的每个非零矢量作用期间,母线电流恰好等于某一相的相电流:
矢量 (1,0,0):Ibus = +ia
矢量 (1,1,0):Ibus = −ic
矢量 (0,1,1):Ibus = +ia(反向)… 依扇区而定
因此在一个 PWM 周期内采两次(分别落在两个相邻非零矢量期间),就能解出两相电流,第三相用基尔霍夫补齐。
4. 采样时刻的选择:为什么要"卡"在开关状态里
无论哪种方案,采样都必须避开开关动作瞬间——MOSFET 开关瞬间有振铃、dv/dt 噪声、死区期间的续流二极管换流,此刻采样的电压是"脏"的。工程上用中心对齐(对称)PWM,在开关状态"稳定"的窗口内采样:
- 三电阻:在三角载波的峰值/谷值附近,各相下管导通且开关刚稳定后采样;用 ADC 定时触发与 PWM 同步
- 双电阻:在零矢量(000 或 111)期间,两相下管同时导通,可同时采样两相
- 单电阻:在非零矢量期间各采一次,且要保证该矢量持续的时间足够 ADC 完成转换
① 同步:ADC 触发与 PWM 计数同步,消除抖动的等效延迟;② 避开开关沿:采样点与最近的开关动作间隔 ≥ 几百 ns~1µs(含死区与振铃收敛);③ 稳定窗口:采样必须在目标开关状态持续期内完成,且该窗口要"够宽"。
5. 单电阻电流重构详解(重点)
5.1 重构原理
以中心对齐 PWM 的一个周期为例,七段式 SVPWM 按顺序经历:000 → 非零矢量 U1 → 非零矢量 U2 → 111 → U2 → U1 → 000。若分别在 U1 和 U2 期间各采样一次母线电流:
第 1 扇区:采到 Ibus(U1) = ia、Ibus(U2) = −ic → ib = −(ia+ic)
第 2 扇区:采到 Ibus(U1) = ib、Ibus(U2) = ia → ic = −(ia+ib)
各扇区采样组合按 60° 旋转轮换,查表确定本次采到的是哪两相
5.2 重构失效区:为什么单电阻"挑"工况
- 低调制区(m 很小):非零矢量作用时间极短,ADC 来不及完成转换 → 重构失败
- 扇区边界:相邻两个非零矢量中有一个时间过短(矢量切换点附近)→ 该次采样无效
- 低速/堵转:恰好落在失效区的电流段,无法可靠重构 → 出现"采样盲区"
对策(工程上常组合使用):
- 移相采样:把两个采样点往非零矢量中点偏移,尽量在窗口中心采,提高抗干扰
- 注入测量矢量:失效区内额外插入一个短的非零矢量(牺牲一点谐波/噪声)换取可测窗口
- 相邻周期补采:本周期缺的相用相邻周期采到的值补(电流变化快时引入误差,需权衡)
- 最小脉冲钳位:把过短的矢量脉宽钳位到最小可测宽度,同时按钳位量修正输出电压
- 控制层规避:低调制/零速附近改用双电阻或三电阻,或让调制不要长时间停留失效区
6. 偏移与增益校准
采样链路(电阻→运放→ADC)必然有直流偏移与增益误差,不校准会直接污染电流环:
| 校准项 | 做法 | 消除的误差 |
|---|---|---|
| 零电流偏移 | 下桥全关(或全开),三相无电流时采 N 次取平均,存为 offset | 运放偏置、ADC 失调 → 采样"假电流" |
| 增益校准 | 注入已知电流/已知电压,比对采样值与真实值,算每路增益系数 | 电阻容差、运放增益误差 → 三相不对称 |
| 温漂 | 关键场合做温度补偿或在运行中周期性重校零(母线零电流时) | 运放/电阻随温度漂移 |
一个固定的偏移电流,经 Clarke/Park 后会变成一个随电角度旋转的 dq 轴正弦扰动,表现为转矩在一个电周期内波动、零速时 dq 电流"打圈"、定位出现周期性偏差——而且它不会随 PI 消除,只能靠校准干掉。
7. 交互式演示:PWM 周期与采样窗口可视化
下面的仿真器画出一个中心对齐 PWM 周期内三相的开关状态。拖动调制比、切换扇区,观察:① 三相各相占空比如何变化;② 双电阻的"两相下管同时导通窗口"落在哪;③ 单电阻重构依赖的两个非零矢量窗口是否"够宽"(窄到发红=重构失败区)。
观察要点:
- 扇区从 0 转到 5:三相占空比的"高低关系"轮换,单电阻采样的两相组合也随扇区轮换(见信息栏)
- 把调制比调到很小(<0.15):两个非零矢量窗口变得极窄(红色),单电阻重构进入失败区
- 扇区边界附近:某个非零矢量窗口变窄,重构需要"换扇区补采"或注入测量矢量
- 双电阻窗口(绿色):始终存在且较宽——这就是双电阻比单电阻更稳、更贵的原因
8. C 语言实现
8.1 三电阻:ADC 同步触发采样(定时器与 PWM 同步)
8.2 双电阻:两相采样 + 第三相重构
8.3 单电阻:两次采样 + 按扇区重构
9. 工程要点与常见误区
要点 1:采样窗口不足是单电阻的第一杀手
低调制、扇区边界处非零矢量时间过短,重构必失败。先按 Tmin ≥ Tadc + Tsetup 算最小可测脉宽(ADC 转换 + 信号建立时间,典型 1~2µs),再决定是否需要注入测量矢量或改用双/三电阻。
要点 2:采样点要落在"开关状态稳定"处
开关沿附近的振铃和死区换流会污染采样。中心对齐 PWM 的三角波谷值/峰值是最佳触发点,用硬件(定时器 TRGO→ADC 注入)同步,避免软件轮询的对齐抖动。
要点 3:偏移校准必须做,且要定期重校
运放偏置/ADC 失调会产生随电角度旋转的 dq 扰动。上电做零电流偏移校准,运行中在母线零电流窗口(如零矢量期间)周期性重校,对抗温漂。
要点 4:增益校准保证三相对称
三个电阻 + 三路运放增益不可能完全一致,增益失配会让 Clarke 变换引入 2 倍频扰动。出厂做增益校准,把每路增益系数归一。
要点 5:采样延迟计入环路设计
采样+计算+更新的总延迟(常为 1~1.5 个 PWM 周期)要计入电流环相位裕度预算(见《三闭环整定与滞后》),不要只调 PI 不看延迟。
误区 1:认为"采样快 = 采样准"
采样时刻选错,采得再快也是采到噪声。关键是"时刻对不对、窗口稳不稳",不是 ADC 多快。
误区 2:单电阻靠"多采几次平均"解决窗口不足
窗口不足是时间上不够 ADC 转换,平均救不了。要注入测量矢量、钳位最小脉宽或换拓扑。
误区 3:重构符号/相别搞错
单电阻重构的"本次采到哪一相、正负方向"随扇区轮换,查表或代码里符号标错会得到相位错乱的电流 → 电流环发散。务必按扇区逐条核对重构映射表。
10. 小结
- 电流采样决定电流环性能:噪声、延迟、偏移、增益四项都要管
- 三电阻直接采三相(最贵最稳)、双电阻采两相重构(性价比之王)、单电阻采母线按矢量重构(最便宜最讲究时机)
- 采样时刻选在中心对齐 PWM 的稳定窗口,避开开关沿,硬件同步触发
- 单电阻重构靠一个周期两次采样 + 扇区查表;低调制/扇区边界会失效,需注入测量矢量等对策
- 零电流偏移与增益校准是出厂必备,运行期重校抗温漂
- 采样延迟要计入电流环相位预算,不能只靠调 PI