1. 噪声源分析:电机PWM开关噪声、采样电阻寄生参数、ADC量化噪声、共模干扰、地弹噪声

做FOC电流采样,说白了就是跟噪声做斗争。我刚开始搞电机驱动那会儿,总觉得算法调好了就万事大吉,结果一上电,电流波形跟心电图似的——全是毛刺。后来才明白,不把噪声源头搞清楚,再好的算法也是白搭。

这一章咱们就来扒一扒,那些藏在电流采样信号里的“捣蛋鬼”到底是谁。

1.1 电机PWM开关噪声——头号杀手

电机驱动靠的是PWM,这玩意儿一开一关,电压就在母线电压和0V之间来回跳。你想想看,几十伏甚至上百伏的电压,在几微秒内完成切换,这本身就是个巨大的电磁干扰源。

我遇到过最夸张的一次,PWM开关瞬间,采样信号上直接蹦出个2V的尖峰。那会儿我盯着示波器看了半天,还以为传感器坏了。

PWM开关噪声主要通过两条路径窜进来:

  • 容性耦合:MOS管的漏极和源极之间有个寄生电容Cds,开关瞬间的高dV/dt会通过这个电容耦合到采样回路
  • 感性耦合:功率回路的di/dt在寄生电感上产生感应电压,直接叠加到采样信号上

关键数据:典型的MOS管开关速度在20-100ns之间,对应的dV/dt可达10-50V/ns。这个量级的干扰,如果不做处理,采样信号基本没法看。

1.2 采样电阻寄生参数——看不见的陷阱

采样电阻,大家都觉得它就是个电阻。嗯,理想情况下确实如此。但实际的高频模型里,它还有串联电感和并联电容。

我习惯用贴片电阻做采样,比如2512封装的10mΩ电阻。它的寄生电感大概在0.5-2nH之间。别小看这零点几纳亨,在PWM开关的上升沿,di/dt轻松达到1A/μs,这时候寄生电感上的压降就是:

V_L = L * di/dt = 1nH * 1A/μs = 1mV

1mV对于10mΩ的采样电阻来说,对应的电流误差就是100mA。如果你的系统要求电流精度在1%以内,这个误差已经不能忽略了。

我的经验:选采样电阻时,不光要看阻值和功率,还得看它的频率特性。我一般选那些标称“低感”或“高频”的采样电阻,虽然贵一点,但省心。

1.3 ADC量化噪声——躲不开的宿命

ADC量化噪声,说白了就是数字世界的“舍入误差”。你想想看,一个12位的ADC,参考电压3.3V,它的最小分辨率是:

LSB = 3.3V / 4096 ≈ 0.8mV

对应到电流上,如果采样电阻是10mΩ,那就是80mA的量化步长。这意味着你永远无法分辨80mA以内的电流变化。

量化噪声是白噪声,均匀分布在0到LSB/2之间。它的RMS值大约是:

V_q_rms = LSB / √12 ≈ 0.23mV

嗯,这个值看起来不大,但如果你做高精度电流环,比如伺服驱动器要求1mA级别的分辨率,那12位ADC就不够用了。我见过有人用16位甚至18位的ADC,配合过采样技术,把量化噪声压到微伏级别。

注意:量化噪声是系统固有的,你没法消除它。但可以通过提高ADC位数、增加采样率、使用过采样+抽取滤波来“稀释”它。我曾经在一个项目中把12位ADC通过256倍过采样,硬是等效出了16位的分辨率。

1.4 共模干扰——差分信号的噩梦

电机驱动系统里,功率地和信号地之间往往存在电位差。这个电位差就是共模电压的来源。共模干扰的特点是:它同时出现在差分信号的两条线上,幅度相同,相位相同。

你可能会问:“我用的是差分采样,共模信号不是会被抵消吗?”

理论上是的,但实际中差分放大器的共模抑制比(CMRR)是有限的。普通的运放CMRR在60-80dB之间,好一点的能到100dB以上。假设共模电压是1V,CMRR为80dB,那么差模输出端会看到:

V_out_diff = V_cm / 10^(CMRR/20) = 1V / 10000 = 0.1mV

0.1mV对应10mΩ采样电阻就是10mA的误差。如果共模电压更大,或者CMRR更差,这个误差会直线上升。

我遇到过最头疼的情况是,电机低速运行时,反电动势很小,但共模干扰反而很大。后来查了半天,发现是PWM开关瞬间,功率回路的地电位发生了剧烈波动,通过寄生电容耦合到了信号地。

解决办法:使用隔离放大器或隔离ADC,把采样回路和主控回路彻底隔开。虽然成本高一些,但对于高可靠性场合,这笔钱不能省。

1.5 地弹噪声——被忽视的“隐形杀手”

地弹噪声,这个名字听起来有点玄乎。其实说白了就是:当大电流突然流过地线时,地线上的寄生电感会产生一个电压降,导致不同位置的地电位不一样。

举个例子,你的采样电阻一端接在功率地上,另一端接在电机相线上。而ADC的参考地接在信号地上。这两个地之间如果有1cm的走线,寄生电感大约10nH。当电机电流以1A/μs的速率变化时,地线上的压降就是:

V_gnd = 10nH * 1A/μs = 10mV

10mV的误差,对于10mΩ采样电阻来说,就是1A的电流误差。这可不是闹着玩的。

我早期做的一个项目,电流采样总是有规律地跳动,怎么滤波都滤不掉。后来用示波器一量,发现ADC的参考地和采样电阻的地之间,居然有50mV的电位差。嗯,这就是典型的地弹噪声。

避坑指南:我曾经在PCB布局时,把采样电阻的地和ADC的地分开走线,结果地弹噪声直接导致电流环震荡。后来改成星形接地,所有地线单独回到电源输入端,问题才解决。

知识体系总览

为了让你更直观地理解这五种噪声源的关系,我画了张图:

FOC电流采样噪声源分析 电流采样 噪声源 PWM开关噪声 dV/dt, di/dt耦合 采样电阻寄生参数 L_parasitic, C_parasitic ADC量化噪声 LSB舍入误差 共模干扰 CMRR限制 地弹噪声 地电位波动 五种噪声源相互叠加,共同影响电流采样精度

这张图把五种噪声源的关系理清楚了。你会发现,它们不是孤立存在的,而是相互叠加、相互影响。比如PWM开关噪声会通过采样电阻的寄生参数放大,地弹噪声又会加剧共模干扰。所以处理噪声问题,不能头痛医头脚痛医脚,得系统性地看待。

好了,噪声源咱们分析完了。下一章我会讲讲怎么用硬件手段把这些噪声挡在门外。记住一句话:能靠硬件解决的,就别指望软件。滤波算法再牛,也架不住信号本身已经烂透了。


专注资料整理