3、采样同步问题:PWM载波与采样时刻的关系、单电阻/双电阻/三电阻采样的同步窗口、电流重构误差来源

好,咱们进入第三章。这一章讲的是采样同步,说白了就是“什么时候去读电流”。

很多人做FOC,代码写完了,电机也能转,但一转起来就嗡嗡响,电流波形乱七八糟。我刚开始做的时候也这样,折腾了好几天,最后发现——采样时刻没选对。

你想想看,PWM在那边高频开关,母线电压在跳,电流也在跳。你随便找个时刻去采样,采回来的值能准吗?肯定不准。所以,采样必须和PWM载波同步。

3.1 PWM载波与采样时刻的关系

先看一个基本事实:FOC里用的PWM,通常是中心对齐模式(Center-Aligned PWM)。载波是一个三角波,周期为Tpwm。三角波的顶点和底点,对应着开关管的开关动作。

电流采样,最理想的时刻是三角波的顶点或底点。为什么?因为这时候开关管处于“死区”或“换相完成”状态,母线电压相对稳定,电流纹波也最小。

核心原则:采样时刻必须避开开关动作瞬间,选择在PWM载波的波峰或波谷处。

我习惯把采样时刻放在三角波的底点(即计数值为0的时刻)。这样,ADC触发信号刚好在PWM周期开始的时候产生,留给电流建立和ADC转换足够的时间。

PWM模式 推荐采样时刻 说明
中心对齐(Up-Down) 波峰或波谷 电流纹波最小,噪声最低
边沿对齐(Up) 周期开始或结束 需要额外注意开关噪声
非对称PWM 根据占空比调整 不推荐用于FOC采样

小技巧:如果你用STM32,可以配置TIM的触发输出(TRGO)在更新事件时产生,直接触发ADC注入组采样。这样硬件自动同步,省去软件干预。

3.2 单电阻/双电阻/三电阻采样的同步窗口

不同的硬件方案,采样窗口的约束完全不同。我一个个说。

3.2.1 三电阻采样

三电阻采样最简单。每个桥臂下管串联一个采样电阻,三个电流同时采。你只需要在PWM波谷时刻触发一次ADC,三个通道同时转换,完事。

同步窗口:整个PWM周期都可以,但最佳窗口在波谷。因为这时候下管导通,电流流过采样电阻,信号最干净。

3.2.2 双电阻采样

双电阻采样只采两相电流(通常是U相和V相),W相通过基尔霍夫定律计算:Iw = -(Iu + Iv)。

同步窗口:必须在两相下管同时导通的区间内采样。这个区间就是PWM波谷附近。如果占空比接近0%或100%,这个窗口会变得非常窄,甚至消失。

注意:双电阻采样在占空比极端(<10%或>90%)时,采样窗口可能不足ADC转换时间。这时候需要做“移相”或“插入无效矢量”来扩展窗口。

3.2.3 单电阻采样

单电阻采样最省钱,但也最麻烦。它只在直流母线上放一个采样电阻,通过不同开关状态下的电流路径,重构三相电流。

同步窗口:需要在一个PWM周期内采样两次。第一次在波谷,第二次在波峰。两次采样的电流值,结合当前开关状态,才能解算出三相电流。

方案 采样电阻数 采样次数/周期 同步窗口要求 成本
三电阻 3 1 宽松 高
双电阻 2 1 中等 中
单电阻 1 2 严格 低

3.3 电流重构误差来源

说到误差,我踩过的坑可不少。电流重构的误差,主要来自以下几个方面。

  • 采样时刻偏移:ADC触发信号和PWM载波不同步,导致采到的电流不是真实值。我曾经遇到过ADC触发延迟了200ns,结果电流波形上出现周期性尖刺。
  • ADC转换时间不足:采样窗口太短,ADC还没转换完,开关状态就变了。尤其是单电阻采样,两次采样之间的间隔必须足够长。
  • 死区影响:死区时间内,电流路径不确定,采样电阻上的电压不反映真实电流。我建议在死区结束后再触发采样。
  • 寄生参数:采样电阻的寄生电感、PCB走线的寄生电容,都会引入高频噪声。嗯,这个在高速电机(比如10krpm以上)时特别明显。
  • 运放带宽:电流采样通常要经过运放放大。运放的带宽不够,信号会失真。我习惯选增益带宽积(GBW)在10MHz以上的运放。

避坑指南:我曾经在一个项目中,单电阻采样重构出来的电流总是有直流偏置。查了三天,最后发现是ADC的采样保持时间设置太短,电容没充饱。把采样周期从3个时钟周期改成8个,问题解决。

下面这张图,我把采样同步的核心逻辑画出来了。你可以看到PWM载波、采样时刻、以及不同采样方案的窗口关系。

PWM载波与采样同步关系图 PWM载波(三角波) 采样点 采样点 采样点 三电阻采样窗口:整个周期可用 双电阻采样窗口:波谷附近(需两相下管同时导通) 单电阻采样窗口:波谷和波峰各一次 说明:采样点必须避开开关动作瞬间 单电阻采样需要两次采样,窗口最窄,对时序要求最高

总结一下:采样同步的核心,就是让ADC在电流最稳定的时刻去读数。三电阻最省心,双电阻要注意占空比边界,单电阻最考验时序设计。我个人建议,如果成本允许,优先用三电阻或双电阻。单电阻虽然省钱,但调试周期长,误差来源多。

我的习惯:每次换方案,我都会先用示波器抓一下采样电阻两端的波形,确认采样窗口内信号是平的。这一步能省掉后面80%的调试时间。