4. PWM关键参数设计:频率、分辨率与纹波的三角博弈
做电机控制这些年,我调试过不少板子,也烧过几块驱动芯片。回头来看,PWM参数设计这块坑最多,也最容易被忽视。很多人上来就抄参考设计,频率设个20kHz完事,结果电机嗡嗡响,或者电流纹波大得离谱。
这一章咱们就把PWM的三个核心参数掰开揉碎讲清楚。你想想看,频率选高了会怎样?选低了又怎样?占空比分辨率够不够用?滤波电路能不能压住纹波?这些问题,一个都绕不开。
核心观点:PWM参数设计不是独立决策,而是频率、分辨率、纹波三者之间的权衡。没有最优解,只有最适合你应用场景的折中方案。
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 三个参数的权衡决策流程
说了这么多,到底怎么选?我总结了一个决策流程,每次做新项目都按这个走:
- 先定频率下限:根据听觉噪声要求,一般不低于16kHz。如果不在乎噪声,可以降到8kHz甚至更低。
- 再定频率上限:根据功率管的开关损耗和散热能力,算出最大允许频率。
- 检查分辨率:在选定频率下,计算占空比分辨率。如果达不到控制精度要求,要么降频率,要么换更高分辨率的MCU。
- 评估纹波:用公式估算电流纹波。如果超过电机额定电流的10%~20%,考虑加LC滤波或降低频率。
- 实际测试验证:以上都是理论计算,最终要在实际负载下测电流波形和温升。
一个小技巧:如果你用的是STM32或类似MCU,可以利用定时器的互补输出和死区插入功能。这样可以在不提高PWM频率的前提下,通过调整死区时间来微调有效电压,相当于变相提高了分辨率。
嗯,PWM参数设计这块内容不少,但核心就是频率、分辨率、纹波这三个变量的平衡。没有标准答案,每个项目都要重新算一遍。但只要你理解了它们之间的制约关系,就不会走偏。