4、单电阻采样方案:原理、采样窗口、重构算法、死区时间影响。

好,咱们今天聊聊单电阻采样。说实话,这个方案在低成本电机驱动里用得特别多。你想想看,一个电阻、一个运放,就能把三相电流都采回来,成本优势太明显了。但代价是什么?是算法复杂度上去了,采样窗口得精打细算,重构算法也得写得漂亮。

我个人习惯把单电阻采样叫做“抠门但聪明”的方案。为什么这么说?因为它用最少的硬件,干最复杂的活。我在项目里遇到过好几次,明明硬件设计没问题,但电机一跑起来电流波形就是不对。后来查来查去,发现是采样时刻没选对,重构出来的电流全是噪声。嗯,这里面的门道,咱们今天一条一条捋清楚。

4.1 单电阻采样的基本原理

说白了,单电阻采样就是在直流母线上串一个采样电阻。你想想看,任何时候,三相电流加起来等于零(星形连接)。所以只要知道两相电流,第三相就能算出来。但问题来了——母线电流不是一直等于某一相电流的。

母线电流和相电流的关系,取决于当前开关管的导通状态。比如:

  • 当上管A、下管B、下管C导通时,母线电流 = Ia
  • 当上管A、上管B、下管C导通时,母线电流 = -(Ia + Ib) = Ic
  • 其他组合以此类推

所以,单电阻采样的核心思路就是:在PWM周期的特定时刻,采集母线电流,然后根据当前开关状态,反推出某一相电流。再结合基尔霍夫电流定律,把三相电流全算出来。

关键点:单电阻采样只能在一个PWM周期内采集到一个电流样本。要得到两相电流,需要两个不同的采样时刻。这就是为什么需要“两次采样”或者“移相采样”。

4.2 采样窗口:你只有那么点时间

采样窗口,是单电阻方案里最容易翻车的地方。我刚开始做的时候,觉得不就是采个电流嘛,随便找个时间点采一下不就行了?结果发现,采样窗口太窄,ADC还没稳定,PWM状态就变了。

采样窗口受限于两个因素:

  1. 最小有效时间(Tmin):开关管导通后,电流需要时间建立稳定。这个时间包括:死区时间、开关管导通延迟、电流建立时间。一般需要1-2μs。
  2. ADC采样时间(Tsample):ADC本身需要采样保持时间。比如12位ADC,采样时间通常需要0.5-1μs。

所以,一个可靠的采样窗口,至少需要:Tmin + Tsample ≈ 2-3μs

你想想看,如果PWM周期是50μs(20kHz),那2-3μs的窗口还算宽裕。但如果PWM频率跑到40kHz,周期只有25μs,那采样窗口就变得非常紧张了。

我曾经踩过的坑:有一次做高速电机项目,PWM频率设到了60kHz。单电阻采样窗口只有不到1.5μs。结果ADC采样值全是乱的,电流重构出来像锯齿波。后来没办法,只能降低PWM频率,或者改用双电阻方案。所以,单电阻采样不适合超高频PWM场景。

4.3 重构算法:从母线电流到三相电流

重构算法,说白了就是“猜”电流。你只采到了一个值,但你需要三个值。怎么猜?靠的是PWM状态和时序。

常见的重构算法有两种:

4.3.1 两次采样法(最常用)

在一个PWM周期内,安排两次采样:

  • 第一次采样:在PWM周期的中间时刻,此时母线电流等于某一相电流(比如Ia)
  • 第二次采样:在PWM周期的另一个时刻,此时母线电流等于另一相电流(比如Ib)

然后:Ic = -(Ia + Ib)。搞定。

但这里有个前提:两次采样时刻,对应的开关状态必须不同。如果两次采样时开关状态一样,那采到的就是同一相电流,没用。

4.3.2 移相PWM法

当PWM占空比很接近0%或100%时,两次采样法会失效。因为采样窗口太窄了。这时候可以用移相PWM法:

  • 把三相PWM的载波相位错开
  • 这样,即使某一相的占空比接近极限,其他相的开关状态还能提供采样窗口
  • 代价是:增加了PWM的开关损耗,而且算法更复杂

我个人的建议:如果占空比在10%-90%范围内,用两次采样法就够了。如果经常工作在极限占空比(比如弱磁区),那就得考虑移相PWM法。我在一个风机项目里用过移相法,效果不错,但代码量翻了一倍。

4.4 死区时间影响:看不见的误差源

死区时间,是单电阻采样里最容易忽略的问题。你想想看,死区时间内,所有开关管都是关断的。这时候母线电流是多少?是零吗?不是!

实际上,死区时间内,电流通过续流二极管流动。母线电流不反映任何一相电流,而是反映续流路径上的电流。如果你在死区时间内采样,那采到的值就是错的。

死区时间对单电阻采样的影响,主要体现在:

影响方面 具体表现 严重程度
采样窗口缩小 死区时间占用了PWM周期,实际可用采样窗口变窄 中等
电流重构误差 死区时间内采到的电流值,不能用于重构 严重
零电流钳位 在电流过零附近,死区效应导致电流波形失真 中等

怎么解决?我一般用两个办法:

  1. 采样时刻避开死区:把采样点安排在死区结束之后,确保开关管已经稳定导通。这个最简单,也最有效。
  2. 死区补偿:在软件里对死区造成的电压误差进行补偿。这个比较复杂,但能从根本上改善电流波形质量。

避坑指南:我曾经在一个项目里,死区时间设了2μs,PWM频率20kHz。结果采样窗口被压缩到只剩1μs。ADC根本来不及稳定。后来我把死区时间降到1μs,采样窗口就宽裕多了。所以,死区时间不是越大越好,够用就行。

4.5 单电阻采样的局限性

说了这么多优点,也得说说缺点。单电阻采样不是万能的:

  • 低速性能差:电机转速很低时,反电动势小,电流纹波大。单电阻采样很难准确捕捉到瞬时电流。
  • 对PWM频率敏感:PWM频率越高,采样窗口越窄,重构误差越大。
  • 算法复杂度高:相比双电阻或三电阻,单电阻的软件工作量至少多30%。

所以,选方案的时候要权衡。如果成本敏感、PWM频率不高、对电流精度要求一般,单电阻是首选。但如果要做高性能伺服,我建议还是上双电阻或三电阻,省心很多。

好了,单电阻采样这部分就聊到这儿。下一节咱们讲双电阻采样方案,那个就简单多了,但成本也上去了。到时候再细聊。