3、电流采样与调理:相电流采样方式
做FOC控制,说白了就是跟电流打交道。你算法写得再漂亮,电流采不准,一切都是白搭。我刚开始做电机驱动那会儿,就吃过这个亏——明明PI参数调得挺好,电机一跑起来就是抖,查了三天才发现是采样电阻的布局出了问题。
今天咱们就把电流采样这事儿彻底聊透。从采样方式到运放设计,再到时序和噪声处理,一条龙讲清楚。
3.1 三种采样方式:单电阻、双电阻、三电阻
先说说最基础的问题:怎么把相电流测出来?目前主流的有三种方案。
3.1.1 三电阻采样
这是最直观的方式。三相各放一个采样电阻,直接测每一相的电流。好处是什么?简单、直接、精度高。每一相独立采样,互不干扰。
我在做伺服驱动器时,用的就是三电阻方案。当时要求电流环带宽做到2kHz,三电阻的精度和实时性完全能满足。
适用场景:高性能伺服、机器人关节、精密数控机床
缺点:成本高、PCB面积大、需要三个运放通道
3.1.2 双电阻采样
双电阻是工业界最常用的方案。只采样两相电流,第三相通过基尔霍夫电流定律算出来(Ia + Ib + Ic = 0)。
嗯,这里要注意:这个计算成立的前提是电机中性点没有引出。如果中性点接了别的东西,这个公式就不准了。
我的经验:双电阻采样时,采样电阻最好放在下桥臂的源极和GND之间。这样在PWM开关瞬间,电流信号比较干净。
3.1.3 单电阻采样
单电阻方案最省钱,但也是最折腾人的。只用一个电阻放在直流母线上,通过在不同PWM状态下采样,重构出三相电流。
为什么会这么麻烦?因为母线电流在不同开关状态下,反映的是不同的相电流组合。你需要在一个PWM周期内,在特定的时间窗口里采样两次,才能算出两相电流。
避坑指南:我曾经在单电阻方案上栽过跟头。当电机运行在低速轻载时,PWM占空比很小,采样窗口窄得可怜,根本采不到有效值。后来加了脉冲注入技术才解决。
三种方式怎么选?我一般这样判断:
| 方案 | 成本 | 精度 | 复杂度 | 推荐场景 |
|---|---|---|---|---|
| 三电阻 | 高 | ★★★★★ | 低 | 高性能伺服 |
| 双电阻 | 中 | ★★★★ | 中 | 工业通用 |
| 单电阻 | 低 | ★★★ | 高 | 低成本、小功率 |
3.2 采样电阻选型
采样电阻选不好,后面运放设计得再好也没用。我总结了几条硬指标:
- 阻值:一般在1mΩ~50mΩ之间。阻值大了功耗高,阻值小了信号弱。我习惯先算一下:最大电流下,电阻上的压降不要超过100mV。比如最大电流10A,那电阻就选10mΩ,压降刚好100mV。
- 功率:按I²R算,再留2倍余量。10A电流、10mΩ电阻,功耗是1W,选2W的电阻比较稳妥。
- 温漂:这个容易被忽略。普通电阻温漂50ppm/°C,温度从25°C升到85°C,阻值漂了0.3%。对于高精度应用,我建议用锰铜电阻或合金电阻,温漂能做到5ppm/°C以下。
- 寄生电感:高频电流采样时,寄生电感会引起振铃。选贴片电阻时,尽量选低ESL的型号。
小技巧:采样电阻的焊盘散热要均匀。我见过一个案例,电阻一端焊盘大、一端焊盘小,导致两端温度不均,阻值偏移了1%以上。
3.3 运放电路设计
采样电阻上的信号只有几十毫伏,必须放大后才能进ADC。运放电路设计得好不好,直接决定了采样精度。
我常用的电路是差分放大加偏置:
// 典型运放电路参数
// 采样电阻:10mΩ
// 最大电流:±10A
// 采样电压:±100mV
// ADC参考电压:3.3V
// 目标放大倍数:16.5倍(100mV → 1.65V)
// 运放选型建议:
// 1. 低失调电压:< 100μV
// 2. 低温漂:< 1μV/°C
// 3. 高共模抑制比:> 80dB
// 4. 带宽:> 1MHz(考虑PWM开关频率)
// 推荐型号:AD8418、INA240、TI INA181
嗯,这里有个关键点:运放的共模输入范围。如果采样电阻放在高端(靠近母线正极),共模电压可能高达几十伏,普通运放根本扛不住。这时候要用差分运放或者隔离运放。
我的习惯:低端采样(电阻在GND侧)用单电源运放,高端采样用差分运放。别为了省几块钱选错运放,否则调试时哭都来不及。
3.4 ADC采样时序
采样时序是FOC里最容易出问题的地方。你想想看,PWM开关瞬间,电流波形上全是毛刺,这时候采样等于白采。
正确的做法是:在PWM的中间时刻采样。为什么?因为此时上下桥臂都处于稳定导通状态,电流纹波最小。
我一般这样安排时序:
- PWM周期:50μs(20kHz)
- 采样窗口:PWM中心点前后各2μs
- ADC转换时间:1μs(12位ADC,1MHz采样率)
- 采样保持时间:500ns
避坑指南:我曾经遇到过一个问题——PWM死区时间设置得太长,导致采样窗口和死区重叠了。结果采到的电流全是零,电机直接飞车。后来我把采样窗口往后挪了2μs,问题就解决了。
3.5 采样噪声处理
电流采样噪声是FOC的天敌。噪声大了,电流环会抖,电机声音会变尖,严重时还会引起振荡。
我处理噪声的思路是三步走:
- 硬件滤波:在运放输出端加RC低通滤波,截止频率设为PWM频率的1/10左右。比如20kHz的PWM,截止频率设在2kHz。
- 软件滤波:ADC采样后做均值滤波或中值滤波。我习惯采3次取平均,既滤掉了噪声,又不会引入太大延迟。
- 布局优化:采样电阻到运放的走线要短、要粗,远离功率走线和电感。模拟地和功率地要单点连接。
小技巧:如果噪声实在压不下去,可以试试在ADC采样完成后,做一个简单的滑动平均滤波。窗口大小设4~8个点,效果立竿见影。
最后,我画了一张电流采样的整体流程图,方便你理解各个环节的关系:
这张图把整个流程串起来了。从电机出来的相电流,经过采样电阻、运放调理、ADC采样,再到时序控制和噪声处理,最后进入FOC电流环。每一步都环环相扣,哪一步出了问题,最终都会反映在电机的运行品质上。
好了,电流采样这部分就聊到这儿。记住一句话:采样是FOC的地基,地基不牢,房子盖得再高也得塌。
公众号:蓝海资料掘金营,微信deep3321