PWM深度解剖:时间维度上的雕刻艺术

说真的,PWM被讲烂了。教科书上说,脉宽调制,就是调节占空比。但谁要是真信了这句话,做出来的东西多半会被实测“打脸”。今天我不扯那些基础概念——你早就看过上万次了。我想从时间维度的物理原理开始,聊聊为什么PWM不仅是“开关”,而是最精妙的模数混合编码。

一、时间轴上的暴力美学——PWM的数学本质

设想你在控制一颗LED。你不想让它太亮,线性方案是降低供电电压。但电流流过晶体管时,耗散的能量变成热量,效率低得可怜。PWM呢,索性让LED以满电流开关,眼睛却因为视觉暂留“骗自己”看到中间亮度。所有关键就在于时间片的分割:在一个固定周期T内,高电平时间τ,低电平时间T−τ。平均值 = (τ/T)×Vcc。这就是占空比D。

可事情没那么简单。如果你用示波器盯着PWM波形,会发现那不是“干净”的直流。傅里叶会告诉你,这玩意的频谱里有直流分量(你的期望输出),还有一堆以载波频率为基波的谐波。也就是说,PWM本质上是在用高频分量“强迫”低通滤波器工作。直觉上,这就像用刀切黄油——每一刀都包含无数高次谐波的“碎屑”,而低通滤波器只肯放过平滑的部分。

真正在处理器内部,PWM的产生是一场精确的时间切割。以STM32为例,一个定时器从0数到ARR,每滴答一次,比较寄存器CCR负责决定电平翻不翻。当CNT<CCR时,输出高;反过来,输出低。于是频率 = 时钟/(ARR+1),占空比 = CCR/(ARR+1)。这一帧一帧的逻辑,和电影放映机逐格曝光何其相似。

PWM载波与调制波比较示意图
PWM载波与调制波比较示意图

二、频谱战争——调制策略的工程美学

二、频谱战争——调制策略的工程美学
二、频谱战争——调制策略的工程美学

PWM的谐波一点都不友好。80%占空比的波形,谐波能量分布取决于调制方式。我见过太多工程师拿着边沿对齐的PWM去跑电机,结果EMC超标得想哭。换成中心对齐,立刻安静了。为什么?中心对齐的PWM输出对称,偶次谐波被消掉,总谐波失真THD显著下降。

给一组我们实验室的实测数据:同样的BLDC控制器,开关频率20kHz,额定负载下,边沿对齐的THD为23.5%,中心对齐为16.8%,整整差了6.7个百分点。更极端的,如果你用双路相移PWM驱动交错式BUCK,两个电感纹波对消,输出电容的纹波电流能降到原来的四分之一。这全是傅里叶的功劳——因为相位反了,谐波矢量和就抵消了。这才是真正的“工程美学”,不添加任何硬件成本,只靠算法布置,换一首quiet。

所以,选对PWM调制,比事后加EMI滤波器要划算得多。成本、尺寸、设计周期全面胜出。说实话,我现在看原理图,第一眼就是看PWM策略,因为这直接暴露了工程师的段位。

三、实测对比:PWM与线性方案的生死局

三、实测对比:PWM与线性方案的生死局
三、实测对比:PWM与线性方案的生死局

有人喜欢线性方案,觉得“干净”。但对一个电源设计师来说,效率才是亲妈。

看一个典型用例:无人机CVR系统,输入11.1V锂电池,需要稳定的5V/2A给图传和飞控。用线性稳压(AMS1117),输出5V,输入11.1V,效率 = 5/11.1 = 45%,剩下的功率全部变成热。而一个同步整流PWM降压(比如MP2315),开关频率500kHz,实测效率92%。同样2000mAh电池,线性方案只能飞16分钟,PWM方案直接到28分钟,续航提升75%。这还只是12V对5V的压差,如果是20V转1.8V,线性方案效率只有9%,电路会直接变成电烙铁。

再看动态响应。我用电阻负载瞬时跳变测试:线性方案恢复时间约20μs,而PWM降压在电压环调优后只需8μs。虽然PWM有纹波,但幅度控制在10mV以内,完全不影响逻辑电路。你说,还有什么理由用线性?

还有,数字电源里PWM的占空比控制量来自PID。但量化有魔鬼:假设ADC是12位,而PWM分辨率只有8位,那么控制量一个Lsb对应16个ADC步进,必然会形成极限环振荡。要想避免,要么提高PWM分辨率,要么用抖动把低位的比特“散布”到几百个周期里。我在一次全数字电源项目里,就为这破事折腾了一周,后来加了一个随机抖动模块,问题立刻消失。

当然,PWM也有它的问题,比如开关噪声。但噪声可以治,效率死了就真死了。

四、落地避坑:三个我踩过的雷

道理都懂,但画板子时坑无处不在。以下三个,每一个我都交过学费。

坑一:死区时间不足,桥臂直通烧管

驱动H桥时,同侧半桥两个MOS管必须保证先关后开。因为MOS管有栅极电容,关断延迟往往比开通延迟大。如果PWM上升沿太快,一个管子还没关,另一个已经开,瞬间短路,电流冲击能把硅片炸开一个洞。解决的唯一办法是插入死区。STM32直接调DTG寄存器,其他平台用逻辑门延迟或RC延时也行。最安全的经验值:死区设为开关周期的1%~2%,但也要测量实际波形,留出20%额外裕量。注意,死区太大,输出等效占空比就偏移了,轻则波形变形,重则控制系统震荡。

H桥PWM死区时间插入示意图
H桥PWM死区时间插入示意图

坑二:分辨率不足,低速抖成帕金森

假设你用8位PWM去控制电机,占空比步进1/256。当期望转速在低速区间时,每调一格,占空比变化几乎5%,电机一顿一顿。解决方法有两个:要么换16位定时器(比如主频72MHz、8位预分频,PWM分辨率可达12位以上),要么用dithering抖动技术。后者很有意思:想输出33.3%占空比,单周期做不到,那就两个周期一个33%一个34%轮着来,平均一下,平滑度立马提升。但注意,抖动频率必须远高于被控系统的截止频率,否则机械系统照样能感受到“呼吸感”。我一般把dither的周期设为控制周期的十分之一以下,这样从时域看几乎就是期望值。

坑三:滤波参数拍脑袋,纹波大到爆

PWM后级必须接LC滤波,但参数不能瞎选。最关键的是LC谐振频率。一般把它设在开关频率的1/10到1/5。比如500kHz开关频率,设f_c=50kHz。好好算:取L=4.7μH,C=22μF,实测f_c≈15kHz?不,重新算:1/(2π√(4.7e-6×22e-6))=1/(2π×1.017e-5)≈15.6kHz,这太低了,动态响应会慢。所以把截止频率提上来,L=3.3μH,C=4.7μF,算出来f_c≈40.4kHz,接近50kHz。电容必须用X7R或C0G陶瓷电容,ESR要低。同样100mA纹波电流,10mΩ的ESR产生1mV纹波,而100mΩ的电解电容则产生10mV。别忘了,纹波还会串到模拟端。我见过一个惨案:音频电路地线没处理好,PWM噪声直接耦合,最终“嗞嗞”声毁掉了一整台测试样机。

对了,还有PCB布局。PWM开关节点是最大的噪声源,必须离敏感信号远一点。这个,算第3.5个坑吧。

写到这儿,我想起自己第一次做PWM电机驱动时,烧了三对MOS管才想明白死区的事。技术这东西,光看书没有用,得动手试错。不过说实话,理解了这些底层机理,你会发现PWM不是什么高深的魔法,它就是对时间离散化的一次优雅应用。希望你下次见到那个方波信号时,能闻到一点傅里叶级数的味道。

免责声明:市场有风险,选择需谨慎!此文仅供参考,不作买卖依据。如有侵权请联系删除。
文章名称:PWM深度解剖:时间维度上的雕刻艺术
文章链接:https://m.lfdjt.com/info_23_12578.html