4. 单电阻采样同步问题:非导通相不可测、PWM开关噪声区、低速/零速采样窗口不足

单电阻采样,说白了就是只用一个电流传感器,在直流母线上“抓”出三相电流。成本低、体积小,很多小功率伺服都在用。但便宜有便宜的代价——采样同步的坑,一个比一个深。

我最早接触单电阻方案是在一款低压伺服驱动器上。当时觉得,不就是算好时间点采两次样嘛,能有多难?结果样机一跑,电流波形跟心电图似的,全是毛刺。后来才明白,单电阻采样有三个绕不过去的坎:非导通相不可测、采样点落在开关噪声区、低速/零速时采样窗口不足。今天咱们一个一个拆开讲。

4.1 非导通相电流不可测:原理与困境

先看单电阻采样的基本逻辑。直流母线上只有一个采样电阻,通过检测不同开关状态下流过电阻的电流,反推出三相电流。具体来说,在一个PWM周期内,需要采集两次:一次在零矢量期间,一次在有效矢量期间。

但问题来了——非导通相(即电流为零的那一相)的电流,你根本测不到。

为什么会这样?因为单电阻只能看到母线电流,而母线电流等于某一相电流(取决于当前开关状态)。当某一相上下桥臂都关断时,该相电流不流过母线,自然也就无法被采样电阻“看见”。

核心矛盾:单电阻采样只能获取两相电流,第三相必须通过基尔霍夫电流定律(ia + ib + ic = 0)推算。但如果采样时刻不对,推算出来的第三相电流误差会非常大。

我在项目中遇到过一种情况:电机低速运行时,非导通相的电流很小,但采样噪声却很大。推算出来的第三相电流,波形完全失真,导致电流环震荡。后来我加了一个自适应滤波,才勉强压住。

4.2 采样点落在PWM开关噪声区

这是单电阻采样最头疼的问题。PWM开关瞬间,母线电压剧烈跳变,会在采样电阻上产生巨大的共模噪声和振铃。如果你把采样点放在开关沿附近,采到的电流值基本不能用。

我习惯把采样窗口分成三个区域:

区域 时间范围 噪声水平 是否可用
开关噪声区 开关沿前后 0.5~1.5 μs 极高(振铃幅度可达信号幅度的 50% 以上) ❌ 不可用
过渡区 噪声区结束后 0.5~1 μs 中等(仍有残余振荡) ⚠️ 谨慎使用
稳定区 过渡区之后至下一个开关沿 低(信号稳定) ✅ 推荐

你想想看,如果PWM频率是10kHz,一个周期才100μs。再扣除死区时间、噪声区、过渡区,真正能用的采样窗口可能只有十几微秒。这点时间,够干啥?

避坑指南:我曾经在调试时发现,采样点明明避开了开关沿,但电流波形还是有周期性毛刺。查了两天才找到原因——PCB布局导致采样回路与功率回路耦合,开关噪声通过地平面串扰进了采样电路。后来把采样电阻的地线单独走了一根Kelvin连接,问题才解决。

4.3 低速/零速时采样窗口不足

这是单电阻采样的“绝症”。低速或零速时,电机反电动势很小,电流环需要很窄的脉冲宽度来维持电流。但窄脉冲意味着有效矢量的持续时间极短——短到连一个稳定的采样窗口都凑不出来。

我举个例子:假设PWM周期100μs,死区时间2μs,开关噪声区前后各1μs。如果有效矢量的脉宽只有5μs,扣除噪声区和过渡区,真正能采样的时间可能不到2μs。ADC采样保持时间都不够,更别说做平均滤波了。

这个问题在零速堵转时尤其严重。电机不转,反电动势为零,电流环只能靠很小的占空比来维持电流。采样窗口被压缩到极限,甚至完全消失。

我的经验:对于低速工况,我通常会切换到三电阻采样或电流重构算法。如果硬件不允许,那就只能牺牲一点电流环带宽,把采样点移到下一个PWM周期。说白了,就是“用时间换精度”。

4.4 单电阻采样同步的核心逻辑

说了这么多问题,咱们来梳理一下单电阻采样同步的核心逻辑。我画了一张图,帮你把整个流程串起来。

单电阻采样同步核心逻辑 单电阻采样三大问题 非导通相不可测 只能推算第三相 PWM开关噪声区 采样点需避开开关沿 低速/零速窗口不足 窄脉冲导致采样时间不够 电流重构误差大 ia+ib+ic≠0 采样值被噪声淹没 信噪比急剧下降 电流环带宽受限 动态响应变差 常用解决方案 电流重构算法 利用两相推算第三相 + 死区补偿 采样窗口自适应 根据脉宽动态调整 采样点位置 多模式切换 低速切三电阻采样 或降低PWM频率 目标:稳定、准确的电流采样

4.5 实用技巧与避坑指南

最后,分享几个我在实际项目中用过的技巧,希望能帮你少走弯路。

4.5.1 采样点动态偏移

不要死板地把采样点固定在PWM周期的某个位置。我习惯根据当前有效矢量的脉宽,动态调整采样点的位置。脉宽宽的时候,采样点往中间靠;脉宽窄的时候,采样点往一边挤,尽量避开噪声区。

// 伪代码:动态采样点计算
if (pulse_width > MIN_STABLE_WINDOW) {
    sample_point = pwm_center + pulse_width / 2 - NOISE_GUARD;
} else {
    // 脉宽太窄,放弃本次采样,使用上一周期值
    sample_valid = FALSE;
    use_previous_sample();
}

4.5.2 电流重构的相位补偿

非导通相的电流推算,不能简单用ia+ib+ic=0。因为采样时刻不同,三相电流之间存在相位差。我建议在重构时加入一个相位补偿因子,补偿量取决于电机转速和PWM频率。

一个小技巧:如果电机转速不高(低于额定转速的10%),相位差可以忽略,直接用基尔霍夫定律推算即可。但转速一高,必须加补偿,否则电流环会震荡。

4.5.3 硬件层面的优化

软件能解决的问题有限,硬件上的优化往往更直接:

  • 采样电阻的布局:尽量靠近IGBT模块,走线要短而粗,减少寄生电感。
  • 差分采样:用差分ADC或差分运放,能有效抑制共模噪声。
  • RC滤波:在采样电阻两端并联一个小电容(几十pF),可以滤除高频振铃。但注意电容不能太大,否则会影响采样建立时间。

我曾经踩过的坑:有一款产品,单电阻采样在实验室跑得好好的,一到客户现场就出问题。后来发现是现场的地线接地不良,导致共模噪声增大。最后在采样电路前端加了一个共模扼流圈,问题才解决。所以,单电阻采样对地线质量非常敏感,这一点一定要记住。