4、PWM调制技术:单极性PWM、双极性PWM、SPWM的原理与实现

各位同学,今天我们聊一个逆变器软件里最核心的话题——PWM调制。说实话,搞逆变器如果不懂PWM,那基本等于开车不会挂挡。我当年刚入行时,第一个任务就是调SPWM波形,结果板子一上电,MOS管直接冒烟了……嗯,从那以后我对PWM的每个细节都格外小心。

这一章我们重点讲三种调制方式:单极性PWM、双极性PWM,还有最常用的SPWM。我会把原理、实现方法、以及调制比和输出电压的关系一次讲透。

4.1 单极性PWM:简单粗暴,但有个坑

单极性PWM,说白了就是输出电压只在正半周或负半周内变化。比如正半周时,高电平是Vdc,低电平是0;负半周时,高电平是0,低电平是-Vdc。波形看起来像一串宽度不同的脉冲,但始终不跨越零线。

它的实现逻辑很简单:

  • 用正弦波(调制波)和三角波(载波)比较
  • 调制波大于载波时,输出高电平
  • 调制波小于载波时,输出低电平

我在项目中遇到过一个问题:单极性PWM虽然开关损耗低,但输出波形里会有明显的低频谐波。尤其是当调制比很低的时候,波形失真比较严重。所以它更适合对谐波要求不高的场合,比如小功率逆变器。

关键点:单极性PWM的开关频率等于载波频率,但输出电压的等效频率是载波频率的两倍。这是因为正负半周交替时,脉冲密度翻倍了。

4.2 双极性PWM:波形干净,但损耗大

双极性PWM就不同了。它的输出电压在+Vdc和-Vdc之间来回跳变,每个开关周期都要穿越零线。你想想看,这意味着什么?意味着开关管每时每刻都在高频切换,损耗自然就上去了。

但好处也很明显:波形更干净,谐波含量低。我早期做一款UPS产品时,客户要求THD小于3%,我试了单极性死活过不了,换成双极性一次通过。不过代价就是散热器大了整整一圈。

双极性PWM的实现方式:

  • 同样用正弦波和三角波比较
  • 调制波大于载波时,输出+Vdc
  • 调制波小于载波时,输出-Vdc

注意:双极性PWM的开关损耗大约是单极性的两倍。如果你做的是大功率逆变器,散热设计一定要留够余量。我曾经因为没算好损耗,导致IGBT结温超标,整机热保护频繁触发……那段时间真是焦头烂额。

4.3 SPWM:正弦脉宽调制的精髓

SPWM,全称正弦脉宽调制,是逆变器领域最经典的调制方式。它的核心思想很简单:用一系列宽度按正弦规律变化的脉冲,来等效一个正弦波。

为什么能等效?因为冲量等效原理——窄脉冲的面积和正弦波对应区间的面积相等,经过低通滤波后,就能还原出正弦波。这个原理我在大学课本上看了三遍才真正理解,后来做项目时亲手调出来波形,才恍然大悟。

SPWM的生成方法有两种:

  1. 自然采样法:直接用正弦波和三角波比较,交点就是开关时刻。精度高,但计算量大,适合用硬件实现。
  2. 规则采样法:在三角波的顶点或底点采样正弦波的值,然后计算占空比。计算简单,适合软件实现。

我个人习惯用规则采样法,尤其是在MCU上做软件SPWM时。下面给出一段伪代码,展示如何计算占空比:

// 规则采样法计算SPWM占空比
// 输入:调制比m (0.0 ~ 1.0),角度theta (0 ~ 2*PI)
// 输出:占空比duty (0.0 ~ 1.0)

float calc_spwm_duty(float m, float theta) {
    // 正弦调制波的值
    float sin_val = sin(theta);
    // 规则采样:在三角波顶点采样
    float duty = 0.5f + 0.5f * m * sin_val;
    // 限幅处理,防止过调制
    if (duty > 0.95f) duty = 0.95f;
    if (duty < 0.05f) duty = 0.05f;
    return duty;
}

小技巧:实际项目中,我建议用查表法代替实时计算sin值。提前算好一个周期的正弦表,运行时直接查表插值,能省下大量CPU时间。我做过测试,查表法比实时计算快至少10倍。

4.4 调制比与输出电压的关系

调制比m,定义为调制波幅值与载波幅值的比值。在SPWM中,m的范围通常是0到1。当m=1时,输出基波电压幅值最大;m越小,输出电压越低。

具体关系如下:

调制比 m 输出基波电压幅值 说明
0.0 0 V 无输出
0.5 0.5 * Vdc 半压输出
0.8 0.8 * Vdc 常用工作点
1.0 Vdc 最大线性输出
> 1.0 过调制区 谐波急剧增加

这里有个重要公式:Vout = m * Vdc(线性调制区)。但要注意,当m超过1时,就进入过调制区了。过调制虽然能提高输出电压,但代价是谐波含量暴增。我建议一般不要超过0.95,留点余量给动态响应。

实战经验:我曾经在一个光伏逆变器项目中,为了追求最大功率输出,把调制比调到1.05。结果并网时电流波形严重畸变,电网谐波超标被罚款。后来老老实实把m限制在0.95以内,波形漂亮多了。

4.5 三种调制方式的对比总结

最后,我用一张表总结一下三种方式的优缺点,方便你选型时参考:

调制方式 谐波含量 开关损耗 实现复杂度 适用场景
单极性PWM 中等 简单 小功率、低成本
双极性PWM 简单 对THD要求高的场合
SPWM 低(线性区) 中等 中等 通用逆变器、UPS

嗯,这一章的内容就到这里。PWM调制是逆变器软件的基石,你把它吃透了,后面讲闭环控制、死区补偿都会轻松很多。下一章我们聊载波频率的选择和死区时间的影响,那又是另一个有意思的话题了。

课后建议:动手在开发板上跑一下SPWM代码,用示波器看波形变化。调调制比从0.1到1.0,观察输出电压和波形失真。纸上得来终觉浅,亲手调过才能真正理解。