2、电流环硬件基础:电流采样方式与ADC配置要点
做FOC电流环,第一关就是怎么把电机里的电流准确读出来。说白了,你控制得再好,采样不准全是白搭。我见过不少工程师,算法调得漂漂亮亮,一上电机就抖,最后发现是采样电阻的布局出了问题。
今天咱们就把电流采样的几种方式、运放怎么选、ADC怎么配,一次性说清楚。
2.1 三种电流采样方式:单电阻、双电阻、三电阻
先看一张总览图,帮你快速建立整体认知。
2.2 单电阻采样
单电阻采样,就是在直流母线上串一个采样电阻。你想想看,一个电阻搞定,成本确实低。但问题来了——你只能测到母线电流,而我们需要的是三相电流。
怎么解决?靠PWM状态重构。在特定的开关状态下,母线电流等于某一相的电流。通过在不同时刻采样,就能拼出三相电流。
单电阻采样的关键限制:
- PWM占空比接近50%时,采样窗口太短,容易采不到
- 低速区(占空比小)重构误差大
- 需要ADC在PWM周期内多次触发,对MCU时序要求高
我曾经踩过的坑: 有个项目用单电阻做风机驱动,低速启动时电机咔咔响。查了两天,发现是占空比在50%附近时,采样窗口只有不到1μs,ADC根本来不及稳定。后来加了移相PWM才解决。
2.3 双电阻采样
双电阻采样,在下桥臂的任意两相各放一个采样电阻。这是工业界最常用的方案,我个人也最喜欢用。
为什么?因为你可以直接测到两相电流,第三相通过基尔霍夫定律算出来:
I_c = -(I_a + I_b)
双电阻采样的时序要求比单电阻宽松很多。只要在下桥臂导通时采样就行,采样窗口通常有3-5μs,ADC有充足的时间。
| 参数 | 单电阻 | 双电阻 | 三电阻 |
|---|---|---|---|
| 采样电阻数量 | 1个 | 2个 | 3个 |
| 直接测量相数 | 0(需重构) | 2 | 3 |
| 低速性能 | 差 | 好 | 最好 |
| 成本 | 低 | 中 | 高 |
| PCB布局难度 | 简单 | 中等 | 较复杂 |
我的建议: 如果你做通用伺服或机器人关节,直接上双电阻。成本增加不多,但调试省心太多。单电阻省的那几毛钱,可能让你多调两周程序。
2.4 三电阻采样
三电阻采样,三相下桥臂各放一个采样电阻。这是精度最高的方案,也是高端伺服的首选。
好处很明显:三相电流独立测量,没有重构误差,也不受PWM占空比限制。你可以在任意时刻读取任意一相的电流。
但代价也不小:
- 三个采样电阻,三个运放,成本翻倍
- PCB面积增大,走线更复杂
- 三个通道的增益一致性需要校准
2.5 运放选型与配置要点
采样电阻出来的信号是mV级的,必须经过运放放大后才能进ADC。这里我分享几个实战经验。
2.5.1 运放选型关键参数
| 参数 | 推荐值 | 为什么重要 |
|---|---|---|
| 失调电压 | < 1mV | 失调大了,小电流根本测不准 |
| 增益带宽积 | > 5MHz | PWM开关频率通常20kHz,运放要能跟上 |
| 压摆率 | > 5V/μs | 采样瞬间信号跳变,压摆率不够会失真 |
| 共模抑制比 | > 80dB | 抑制PWM开关带来的共模噪声 |
2.5.2 放大倍数怎么定
这个要结合ADC的参考电压来算。举个例子:
采样电阻:10mΩ
最大电流:10A
采样电压:10mΩ × 10A = 100mV
ADC参考电压:3.3V
放大倍数:3.3V / 100mV = 33倍
实际选型:取33倍,用33kΩ和1kΩ电阻配置
注意: 别把放大倍数算得太满。我习惯留20%的余量,防止电流尖峰把ADC打饱和。比如上面算出来33倍,我实际用27倍左右。
2.6 ADC配置要点
ADC配置得好不好,直接决定电流环的性能。我见过太多人在这上面翻车。
2.6.1 采样时序
电流采样必须在PWM周期的特定时刻触发。以双电阻为例:
- PWM定时器到达下桥臂导通中点
- 触发ADC开始采样
- 等待采样电容充电完成(采样时间)
- 启动转换
- 读取结果
采样时间怎么算?
采样时间 > (采样电容 + 寄生电容) × (采样电阻 + 信号源内阻) × 9
经验值:一般设置 500ns - 1μs 就够用了
2.6.2 分辨率与采样率
| 应用场景 | 推荐ADC分辨率 | 采样率要求 |
|---|---|---|
| 低速风机 | 10-12位 | 50kSPS |
| 工业伺服 | 12-14位 | 200kSPS |
| 高端机器人 | 14-16位 | 500kSPS |
一个小技巧: 如果MCU内置ADC的采样率不够,可以用PWM触发ADC的注入组(Injected Group)。这样可以在PWM周期内插入额外的采样点,不影响主程序的运行。
2.7 硬件布局避坑指南
最后聊几个我实际项目中踩过的坑:
- 采样电阻要用四端开尔文接法——两端的焊盘走大电流,中间两个焊盘走采样信号。直接焊在功率走线上,你会采到一堆噪声。
- 运放要靠近采样电阻——模拟信号线越短越好,长了就是天线。
- ADC参考电压要单独滤波——别跟数字电源共用,否则采样值跳来跳去。
- 采样电阻的功率要留余量——我一般按实际功耗的2倍选型,防止过热导致阻值漂移。