4. 电流采样与调理:采样电阻、运放选型,共模抑制与滤波设计

电流采样,说白了就是电机的“眼睛”。你控制算法算得再好,如果不知道实际电流是多少,那全是瞎蒙。我刚开始做转向电机控制时,就吃过这个亏——算法模型跑得飞起,一上电机就抖得像筛糠。查了三天,最后发现是采样电路上一个小电容焊错了位置。

嗯,这一节我们就来聊聊电流采样与调理的那些事。从采样电阻怎么选,到运放怎么配,再到共模抑制和滤波设计,我会把我在项目中踩过的坑、积累的经验都抖出来。

4.1 采样电阻:精度与功耗的博弈

采样电阻,也叫分流电阻。它的原理很简单:电流流过电阻产生压降,我们测这个压降就知道电流了。但实际选型时,要考虑的东西可不少。

4.1.1 阻值选择

阻值选大了,信号强,但发热也大。选小了,发热小,但信号弱,容易被噪声淹没。我个人习惯这样权衡:

  • 额定电流下压降:通常取 50mV ~ 100mV。太低了信噪比差,太高了功耗受不了。
  • 功耗计算:P = I²R。比如 100A 电流,用 1mΩ 电阻,功耗就是 10W。这可不是闹着玩的,散热要做好。
  • 温漂:我建议选 ±50ppm/°C 以内的。有一次我用了个 ±100ppm 的,温度一上来,电流读数飘了 5%,转向手感直接变了。

经验公式:R = V_sense / I_max,其中 V_sense 取 50mV ~ 75mV 比较稳妥。

4.1.2 功率与封装

采样电阻的功率等级要留余量。我一般留 1.5~2 倍。比如算出来 5W,我会选 10W 的电阻。你想想看,电机堵转时电流可能飙升,电阻要是先烧了,整个板子都可能报废。

封装方面,常见的 2512 封装能到 2W 左右,再大就要用 4527 或者更专业的金属条电阻了。转向电机电流大,我建议直接用金属条电阻,散热好,寄生电感也小。

4.1.3 布局注意事项

采样电阻的布局,直接影响采样精度。我踩过这个坑:

  • 开尔文连接:必须用四线制。采样线直接从电阻两端走,不要经过大电流路径。否则 PCB 铜箔的电阻会引入误差。
  • 远离热源:电阻本身发热,旁边不要放敏感电路。我见过有人把运放紧贴着采样电阻放,结果温漂得一塌糊涂。
  • 差分走线:采样线要等长、平行走,减少共模噪声耦合。

警告:千万不要用 PCB 铜箔当采样电阻!铜的温漂很大(约 3900ppm/°C),而且精度没法保证。我曾经在一个快速原型上这么干过,结果温度一变化,电流读数完全不能用。

4.2 运放选型:关键参数与实战考量

采样电阻出来的信号很微弱,需要运放放大后才能给 ADC 用。运放选型,我重点关注这几个参数:

4.2.1 失调电压与温漂

失调电压 Vos 是运放自身的“零位误差”。比如 Vos=1mV,放大 50 倍后,输出端就有 50mV 的误差。对于转向电机,这会导致零位电流不准,手感发涩。

我建议选 Vos < 100μV 的运放。温漂也要小,最好 < 1μV/°C。像 OPA2188、AD8628 这类自稳零运放,我经常用,效果不错。

4.2.2 共模抑制比 (CMRR)

这个参数太重要了,我单独拿出来说。电机驱动是 PWM 斩波,母线电压在开关瞬间剧烈跳变。采样电阻两端的共模电压会跟着跳,如果运放的 CMRR 不够,这些共模噪声就会转化为差模误差。

我建议 CMRR > 100dB。在车载环境下,电磁干扰本来就大,CMRR 低了根本扛不住。

4.2.3 带宽与压摆率

带宽决定了运放能处理多快的信号。对于电机电流采样,PWM 频率通常是 10kHz~20kHz,但电流波形里含有丰富的谐波。我一般选带宽在 1MHz 以上的运放。

压摆率 SR 也要够。如果 SR 太小,运放输出跟不上输入变化,会失真。对于转向电机,SR > 1V/μs 基本够用。

4.2.4 轨到轨输出

这个看 ADC 的输入范围。如果 ADC 是 0~3.3V,运放最好能轨到轨输出,充分利用 ADC 的量程。否则信号范围受限,分辨率会打折扣。

小技巧:选型时,我习惯把运放的 datasheet 翻到“典型应用”那一页。如果里面有电机电流采样的电路,那基本错不了。厂家已经帮你验证过了。

4.3 共模抑制:PWM 噪声的克星

共模抑制,说白了就是让运放只放大有用的差模信号,把没用的共模噪声踢出去。在电机驱动里,共模噪声主要来自 PWM 开关动作。

4.3.1 共模噪声的来源

你看这个图就明白了:

共模噪声产生原理 母线正 (Vbus+) 母线负 (GND) Q1 Q2 中点 R_shunt I 共模电压 = (Vbus+ + GND)/2 Q1导通时:中点≈Vbus+ Q2导通时:中点≈GND 开关瞬间:中点剧烈跳变 → 共模电压跳变 → 采样电阻两端共模噪声

当上管 Q1 导通时,电机中点电压接近母线正;下管 Q2 导通时,中点电压接近 GND。这个跳变幅度可能有几十伏,频率是 PWM 的开关频率。采样电阻就串在这个中点回路里,两端的共模电压自然也跟着跳。

4.3.2 提高共模抑制的方法

我总结了几条实战经验:

  • 差分放大拓扑:必须用差分输入,不能单端。单端放大对共模噪声毫无抵抗力。
  • 电阻匹配:差分放大器的增益由电阻比决定。四个电阻必须精密匹配,否则 CMRR 会急剧下降。我一般用 0.1% 精度的电阻。
  • 共模扼流圈:在采样线入口加一个小共模扼流圈,可以有效抑制高频共模噪声。我习惯用几百 μH 的。
  • 屏蔽与隔离:采样线用屏蔽线,屏蔽层单端接地。如果成本允许,用隔离运放(如 AMC1301)直接把共模隔离掉。

核心思路:共模抑制不是靠一个器件搞定的,而是靠电路拓扑、器件选型、PCB 布局的综合设计。哪一环漏了,都可能出问题。

4.4 滤波设计:把信号洗干净

采样信号经过运放放大后,还是会有高频噪声。这些噪声主要来自 PWM 开关尖峰和电机换向。滤波的目的,就是在不损失有用信号的前提下,把噪声滤掉。

4.4.1 一阶 RC 滤波

最简单也最常用的方法。在运放输出端串一个电阻,对地接一个电容,构成低通滤波器。

截止频率 f_c = 1 / (2πRC)。我一般这样选:

  • PWM 频率 20kHz,我取 f_c = 2kHz ~ 5kHz
  • R 取 1kΩ ~ 10kΩ,C 根据公式算
  • 电容用 C0G 或 NP0 材质,温漂小

注意:RC 滤波会引入相位延迟。对于电流环,延迟太大会影响控制带宽。我一般把滤波器的延迟控制在电流环采样周期的 1/10 以内。比如采样周期 50μs,延迟不要超过 5μs。

4.4.2 二阶有源滤波

如果一阶滤波不够,可以用二阶有源滤波。用运放搭一个 Sallen-Key 低通滤波器,滚降特性更好(-40dB/dec)。

我分享一个我常用的电路参数:

参数 说明
截止频率 3kHz 兼顾噪声抑制和带宽
品质因数 Q 0.707 巴特沃斯响应,平坦通带
R1 = R2 10kΩ 0.1% 精度
C1 = C2 5.3nF 根据 f_c 和 Q 算出

4.4.3 数字滤波

除了硬件滤波,我还会在软件里做数字滤波。常用的有:

  • 移动平均滤波:取最近 N 个采样值的平均。简单有效,但会引入 N/2 个采样周期的延迟。
  • 一阶低通数字滤波:y[n] = α * x[n] + (1-α) * y[n-1]。α 越小,滤波越强,延迟也越大。
  • 中值滤波:对异常尖峰特别有效。我习惯先做中值滤波,再做低通滤波。

我的做法:硬件滤波负责滤掉高频噪声(> 10kHz),数字滤波负责处理低频噪声和毛刺。两者配合,效果最好。

4.5 整体框架图

下面这张图总结了电流采样与调理的完整链路:

电流采样与调理链路 采样电阻 阻值选择 功率/封装 差分放大 运放选型 共模抑制 滤波电路 RC/有源滤波 截止频率设计 ADC 各环节关键参数 采样电阻 阻值: 0.5mΩ ~ 2mΩ 功率: 5W ~ 15W 温漂: < ±50ppm/°C 封装: 2512 / 4527 / 金属条 运放 Vos: < 100μV CMRR: > 100dB 带宽: > 1MHz SR: > 1V/μs 滤波器 截止频率: 2kHz ~ 5kHz 滚降: -20dB/dec (一阶) 延迟: < 采样周期/10 电容: C0G / NP0

4.6 避坑指南

最后,我分享几个我亲身踩过的坑,希望能帮你少走弯路:

坑1:采样电阻布局不当

我曾经把采样电阻放在大电流回路中间,结果 PCB 铜箔的压降比电阻还大。后来改成开尔文连接,问题才解决。

坑2:运放供电不足

有一次我选了轨到轨运放,但供电电压只有 3.3V,输出摆幅根本不够。后来换成 5V 供电,才把 ADC 量程用满。

坑3:滤波电容选错材质

我试过用 X7R 电容做滤波,温度一变化,电容值漂了 20%,截止频率也跟着变。后来全部换成 C0G,稳得很。

我的习惯:每次改版后,我都会用示波器抓一下采样波形。看看噪声幅度、共模跳变、滤波效果。只有波形干净了,我才敢说采样电路没问题。

好了,电流采样与调理这部分就聊到这。内容不少,但都是实打实的经验。你设计时遇到具体问题,可以回头翻翻这一节,应该能找到答案。


公众号:蓝海资料掘金营,微信deep3321