1. 噪声源分析:电流采样电阻的热噪声与量化噪声
做 FOC 电流环,第一关就是采样噪声。我见过不少新手,算法写得漂漂亮亮,一上电机就抖成筛子。查来查去,问题出在采样电阻上。说白了,你采到的电流信号里,混着两种躲不掉的噪声——热噪声和量化噪声。
这一节,咱们就把这两个“捣蛋鬼”彻底扒清楚。
1.1 热噪声:电阻自带的“体温”干扰
热噪声也叫约翰逊噪声。任何电阻,只要温度高于绝对零度,内部载流子就会做无规则热运动。这种运动会在电阻两端产生随机的电压波动。你想想看,这玩意儿是去不掉的,只能尽量压低。
热噪声的电压有效值公式很简单:
Vn = sqrt(4 * k * T * R * Δf)
其中:
- k:玻尔兹曼常数(1.38×10⁻²³ J/K)
- T:绝对温度(K)
- R:电阻值(Ω)
- Δf:系统带宽(Hz)
举个例子。我用过一个 10mΩ 的采样电阻,系统带宽 1MHz,室温 300K。算一下:
Vn = sqrt(4 * 1.38e-23 * 300 * 0.01 * 1e6)
≈ sqrt(1.656e-16)
≈ 12.87 nV/√Hz
嗯,12.87 nV/√Hz。看起来很小对吧?但别忘了,FOC 电流环的带宽通常只有几 kHz,可采样电路前端的抗混叠滤波器带宽往往设得很高。我遇到过一哥们,滤波器带宽设了 500kHz,结果热噪声全灌进 ADC 了。
关键结论:热噪声与电阻值 R 和带宽 Δf 的平方根成正比。想降噪,要么用更小的采样电阻,要么压缩前端带宽。
我的经验:采样电阻别一味追求小阻值。阻值太小,信噪比会恶化。我一般选 5mΩ~20mΩ 之间,配合差分放大器,效果比较稳。
1.2 量化噪声:ADC 的“数字脚印”
量化噪声是 ADC 把连续模拟信号变成离散数字值时产生的误差。说白了,ADC 的位数有限,它只能把电压分成 2^N 个台阶。落在两个台阶之间的值,只能就近取整。这个取整误差,就是量化噪声。
量化噪声的 RMS 值公式:
Vq_rms = LSB / sqrt(12)
LSB 就是最低有效位对应的电压:
LSB = Vref / 2^N
假设 Vref = 3.3V,12 位 ADC:
LSB = 3.3 / 4096 ≈ 0.806 mV
Vq_rms = 0.806 / sqrt(12) ≈ 0.233 mV
你看,0.233mV 的 RMS 噪声。如果电流采样电阻是 10mΩ,那对应的电流噪声就是 23.3mA RMS。这个值在低速或者零速工况下,足以让电流环抖得厉害。
| ADC 位数 | LSB (Vref=3.3V) | 量化噪声 RMS | 等效电流噪声 (10mΩ) |
|---|---|---|---|
| 10 位 | 3.22 mV | 0.93 mV | 93 mA |
| 12 位 | 0.806 mV | 0.233 mV | 23.3 mA |
| 14 位 | 0.201 mV | 0.058 mV | 5.8 mA |
| 16 位 | 0.050 mV | 0.0145 mV | 1.45 mA |
注意:量化噪声是 ADC 的固有限制。提高位数能降低它,但会带来成本、速度和功耗的代价。我见过有人用 16 位 ADC 做电流采样,结果采样率上不去,电流环带宽受限,得不偿失。
1.3 两种噪声的对比与权衡
热噪声和量化噪声,一个来自模拟前端,一个来自数字转换。它们会叠加在一起,共同影响你的电流采样精度。
我个人习惯这样权衡:
- 热噪声主导的场景:采样电阻大、带宽宽、温度高。这时候优先考虑降低电阻值或压缩带宽。
- 量化噪声主导的场景:ADC 位数低、信号幅度小。这时候优先考虑提高 ADC 位数或增加信号增益。
我曾经在一个项目中,采样电阻用了 50mΩ,ADC 是 10 位的。结果热噪声和量化噪声都很大,电流环根本稳不住。后来我把电阻降到 10mΩ,ADC 换成 12 位,同时加了一级 10kHz 的低通滤波。效果立竿见影。
避坑指南:别只盯着 ADC 位数。我见过有人把 12 位 ADC 换成 16 位,噪声没降多少,成本翻了三倍。后来一查,热噪声才是瓶颈。先分析清楚噪声来源,再对症下药。
1.4 知识体系:噪声源全景图
下面这张图,把热噪声和量化噪声的来龙去脉、影响因素、以及应对思路串起来了。你可以把它当作本章的知识地图。
1.5 小结
这一节咱们把热噪声和量化噪声的根因、公式、影响和权衡都过了一遍。记住两个核心点:
- 热噪声是电阻的物理特性,跟温度和带宽挂钩。想降它,就压带宽或换小电阻。
- 量化噪声是 ADC 的数字脚印,跟位数和参考电压有关。想降它,就提高位数或放大信号。