4、电流采样与调理:单电阻采样、双电阻采样、三电阻采样、采样时序与重构、运放偏置与滤波
电流采样,是电机控制的「眼睛」。眼睛看不清,算法再牛也白搭。
做EPS这些年,我见过太多因为采样问题导致的抖动、噪音甚至炸管。说白了,电流采样搞不定,你的FOC就是空中楼阁。今天咱们就把单电阻、双电阻、三电阻这些方案掰开揉碎了聊。
4.1 三种采样方案,怎么选?
先看一张对比表,心里有个底:
| 方案 | 硬件成本 | 采样精度 | 重构难度 | 适用场景 |
|---|---|---|---|---|
| 单电阻采样 | 最低 | 中等 | 高 | 低成本、低转速应用 |
| 双电阻采样 | 中等 | 较高 | 低 | EPS主流方案 |
| 三电阻采样 | 最高 | 最高 | 无 | 高性能、高可靠性 |
我个人习惯,EPS项目首选双电阻。为什么?性价比最优。单电阻虽然便宜,但采样窗口窄,重构算法写起来让人头秃。三电阻当然好,但多一个运放、多一路ADC,成本上去了,老板会找你谈话的。
4.2 单电阻采样:省钱但费脑
单电阻采样,只在直流母线上放一个采样电阻。你想想看,一个电阻搞定三相电流,听着就玄乎。
原理是利用PWM开关状态,在不同时刻采集母线电流,再反推出三相电流。举个例子,当A相上管和B相下管导通时,母线电流等于A相电流。换个开关状态,又能采到B相或C相。
关键点:一个PWM周期内,必须采集至少两次母线电流,才能重构出两相电流(第三相由基尔霍夫定律算出)。
但坑来了。当占空比接近0%或100%时,采样窗口会变得极窄。窄到ADC都来不及转换。我在项目中遇到过,电机低速轻载时,电流重构直接失败,电机一顿一顿的。
避坑指南:我曾经在单电阻方案上栽过跟头。解决方法是加入「移相PWM」或「注入零序分量」,人为拉宽采样窗口。但代价是电流纹波会变大,需要权衡。
4.3 双电阻采样:EPS的黄金搭档
双电阻采样,在下桥臂的任意两相各放一个电阻。比如A相和B相。这样,任何时候都能直接读出两相电流,第三相算出来就行。
为什么说它是EPS的黄金搭档?因为EPS电机通常工作在中等转速,PWM占空比不会极端到0%或100%。双电阻的采样窗口足够宽,ADC有充足的时间完成转换。
采样时序怎么安排?看这里:
// 伪代码示例:双电阻采样时序
// 假设PWM周期为50us,死区时间为2us
// 在PWM计数器的中间点触发ADC
void PWM_ISR() {
// 等待死区结束
delay(2us);
// 采集A相和B相电流
adc_start(ADC_CH_A);
adc_start(ADC_CH_B);
// 等待转换完成
while(!adc_done());
i_a = adc_read(ADC_CH_A);
i_b = adc_read(ADC_CH_B);
i_c = -i_a - i_b; // 基尔霍夫定律
}
嗯,这里要注意。采样点必须避开PWM开关切换的瞬间,否则会采到尖峰噪声。我一般把采样点放在PWM计数器的中间点,也就是开关状态最稳定的时刻。
4.4 三电阻采样:简单粗暴,但贵
三电阻采样,三相下桥臂各放一个电阻。三相电流直接读,不需要重构,不需要计算。精度最高,延迟最小。
但代价也明显:三个采样电阻、三个运放、三个ADC通道。PCB面积大,成本高。一般用在高端EPS或者功能安全要求极高的场合。
我的建议:如果你的项目对成本不敏感,或者需要满足ASIL-D功能安全等级,直接上三电阻。省心,少掉头发。
4.5 采样时序与重构:细节决定成败
不管是单电阻还是双电阻,采样时序都是核心。时序错了,电流就是错的。
几个关键原则:
- 避开死区:死区时间内,上下管都关断,电流路径不确定。采样必须等死区结束后再进行。
- 避开开关尖峰:MOS管开关瞬间会有电压尖峰,耦合到采样电阻上就是噪声。我习惯在开关动作后等3-5us再采样。
- 同步PWM中心:对于双电阻,采样点最好对齐PWM计数器的中心点。此时三相电流最稳定。
对于单电阻的重构,还有个「不可观测区」的问题。当电压矢量落在某些扇区边界时,采样窗口会消失。解决办法是「脉冲移位」或「电流预测」。说白了,就是强行改变PWM波形,让采样窗口露出来。
警告:脉冲移位会引入额外的电流纹波和转矩脉动。EPS对NVH(噪声、振动、平顺性)要求很高,用单电阻方案时一定要做充分的台架测试。
4.6 运放偏置与滤波:把信号洗干净
采样电阻上的信号是毫伏级的,必须经过运放放大才能送给ADC。这里有两个关键点:偏置和滤波。
运放偏置:电机电流是交流的,有正有负。但ADC只能采集正电压(比如0-3.3V)。所以需要给运放加一个直流偏置,把交流信号抬升到ADC的中间点。
// 偏置电压计算示例
// ADC参考电压:3.3V
// 采样电阻:0.001Ω (1mΩ)
// 最大电流:±100A
// 运放增益:50倍
// 最大差分电压:100A * 0.001Ω = 0.1V
// 放大后电压:0.1V * 50 = 5V (超出ADC范围!)
// 实际设计:增益改为20倍
// 放大后电压:0.1V * 20 = 2V
// 偏置电压:1.65V (ADC中点)
// ADC输入范围:1.65V ± 1V = 0.65V ~ 2.65V
滤波:采样信号上有很多高频噪声,来自PWM开关、电机换向、甚至电源纹波。我一般在运放输出端加一个RC低通滤波器,截止频率设置在开关频率的1/10左右。
举个例子,PWM频率20kHz,RC滤波器的截止频率设在2kHz。R取1kΩ,C取0.1μF,算下来截止频率约1.6kHz,够用。
小技巧:运放的选型也很关键。我习惯用零漂移运放,比如OPA2188。温漂小,长时间运行也不会偏。EPS方向盘打到底堵转时,电流采样不能飘,否则力矩控制就废了。
好了,电流采样这块就聊到这儿。说白了,采样方案的选择就是一场权衡游戏:成本、精度、复杂度、可靠性。EPS作为安全件,我建议至少用双电阻。别为了省几毛钱,把整个项目的可靠性搭进去。