4. PWM关键参数设计:频率、分辨率与纹波的三角博弈

做电机控制这些年,我调试过不少板子,也烧过几块驱动芯片。回头来看,PWM参数设计这块坑最多,也最容易被忽视。很多人上来就抄参考设计,频率设个20kHz完事,结果电机嗡嗡响,或者电流纹波大得离谱。

这一章咱们就把PWM的三个核心参数掰开揉碎讲清楚。你想想看,频率选高了会怎样?选低了又怎样?占空比分辨率够不够用?滤波电路能不能压住纹波?这些问题,一个都绕不开。

核心观点:PWM参数设计不是独立决策,而是频率、分辨率、纹波三者之间的权衡。没有最优解,只有最适合你应用场景的折中方案。

PWM关键参数设计知识体系 PWM参数设计 PWM频率选择 占空比分辨率 PWM滤波与纹波 听觉噪声 开关损耗 定时器位数 死区时间 LC滤波器 纹波率 设计原则:三者相互制约,不可独立优化 频率↑ → 分辨率↓ → 纹波↓(但开关损耗↑)

4.1 PWM频率的选择依据

频率选多少?这个问题我每次做新项目都要重新算一遍。没有万能频率,但有几条硬约束。

第一条:避开人耳听觉范围。人耳对2kHz~8kHz最敏感。电机控制PWM频率如果落在这个区间,你会听到尖锐的啸叫声。我有个项目,客户投诉说电机有异响,查了半天发现PWM频率设了6kHz。改到18kHz后,世界清净了。

第二条:考虑功率管的开关损耗。频率每翻一倍,开关损耗差不多也翻一倍。MOSFET还好,IGBT在高频下损耗会非常可观。我见过有人把频率设到40kHz,结果散热器烫得能煎鸡蛋。

第三条:与电机电气时间常数匹配。电机绕组是个RL电路,电流响应有时间常数τ = L/R。PWM周期必须远小于这个时间常数,否则电流还没建立起来就切换了,控制效果会很差。

应用场景 推荐频率范围 主要约束
直流有刷电机(小功率) 10kHz ~ 20kHz 听觉噪声、MOSFET开关损耗
直流无刷电机(BLDC) 16kHz ~ 40kHz 换相精度、电流纹波
伺服电机(高精度) 20kHz ~ 100kHz 电流环带宽、分辨率
大功率IGBT驱动 2kHz ~ 8kHz 开关损耗、散热

我的习惯做法:先按应用场景选一个基准频率,比如BLDC我通常从20kHz起步。然后看电流纹波是否在可接受范围内,再微调。如果纹波太大,优先考虑加滤波,而不是盲目提频率。

4.2 占空比分辨率与系统精度的权衡

占空比分辨率,说白了就是你的PWM能调多细。这取决于定时器的计数位数和时钟频率。

举个例子:定时器是16位,时钟频率80MHz,PWM频率20kHz。那么每个周期的计数值是80MHz / 20kHz = 4000。占空比分辨率就是1/4000 ≈ 0.025%。听起来不错对吧?

但如果你把PWM频率提到100kHz,计数值就变成800。分辨率降到1/800 = 0.125%。差了5倍。

这就是频率和分辨率之间的直接矛盾。频率越高,每个周期内的计数步数越少,能表达的占空比档位就越少。

我曾经踩过的坑:有个伺服项目,我为了提高电流环带宽,把PWM频率提到了80kHz。结果发现电机在低速时抖动得厉害。查了半天,是占空比分辨率不够,低速时每步对应的电压变化太大,导致转矩脉动。后来我降回40kHz,同时优化了电流环算法,问题解决了。

分辨率不够时,有几个补救办法:

  • 使用更高位数的定时器:从16位换到32位,但MCU不一定支持。
  • 采用HRPWM(高分辨率PWM):有些MCU有微步进功能,可以在计数时钟的边沿之间再插值。
  • 降低PWM频率:这是最直接的办法,但要确认纹波和噪声能接受。
  • 使用死区补偿或抖动技术:在多个周期之间微调占空比,等效提高分辨率。

4.3 PWM滤波与电流纹波

PWM输出本质上是方波,电机绕组是感性负载,天然有低通滤波效果。但光靠绕组的电感往往不够,电流纹波还是很大。

电流纹波的公式:

ΔI = (Vbus - Vemf) × D × (1-D) × T / L

其中:

  • Vbus:母线电压
  • Vemf:电机反电动势
  • D:占空比
  • T:PWM周期
  • L:绕组电感

从公式能看出来,纹波和周期T成正比。频率越高(T越小),纹波越小。但前面说了,频率高了分辨率会下降。

加LC滤波器是常见做法。但要注意,LC滤波器会引入谐振峰。如果PWM频率的谐波正好落在谐振频率附近,反而会放大纹波。

滤波方式 优点 缺点 适用场景
仅靠绕组电感 零成本、无额外器件 纹波较大、受电机参数影响 低成本、对纹波不敏感
输出LC滤波器 纹波抑制效果好 增加体积和成本、有谐振风险 高精度伺服、音频敏感场合
多电平PWM 等效频率高、纹波小 电路复杂、成本高 大功率、高端驱动

设计建议:LC滤波器的截止频率一般取PWM频率的1/10到1/20。比如PWM频率20kHz,截止频率设在1kHz~2kHz。这样既能有效滤除PWM载波分量,又不会对电流环带宽造成太大影响。

4.4 三个参数的权衡决策流程

说了这么多,到底怎么选?我总结了一个决策流程,每次做新项目都按这个走:

  1. 先定频率下限:根据听觉噪声要求,一般不低于16kHz。如果不在乎噪声,可以降到8kHz甚至更低。
  2. 再定频率上限:根据功率管的开关损耗和散热能力,算出最大允许频率。
  3. 检查分辨率:在选定频率下,计算占空比分辨率。如果达不到控制精度要求,要么降频率,要么换更高分辨率的MCU。
  4. 评估纹波:用公式估算电流纹波。如果超过电机额定电流的10%~20%,考虑加LC滤波或降低频率。
  5. 实际测试验证:以上都是理论计算,最终要在实际负载下测电流波形和温升。

一个小技巧:如果你用的是STM32或类似MCU,可以利用定时器的互补输出和死区插入功能。这样可以在不提高PWM频率的前提下,通过调整死区时间来微调有效电压,相当于变相提高了分辨率。

嗯,PWM参数设计这块内容不少,但核心就是频率、分辨率、纹波这三个变量的平衡。没有标准答案,每个项目都要重新算一遍。但只要你理解了它们之间的制约关系,就不会走偏。