4. SVPWM调制波生成:七段式与五段式
这一节我们聊聊调制波怎么生成。说白了,SVPWM的核心就是让逆变器输出一个旋转的电压矢量。但具体怎么实现?靠的是开关序列的组合。
我个人习惯把SVPWM的调制波理解成「载波比较」的另一种形式。你想想看,传统SPWM是正弦波和三角波比,而SVPWM是把目标电压矢量分解到两个相邻的非零矢量上,再插入零矢量来调节占空比。
嗯,这里要注意:不同的零矢量插入方式,会直接影响开关损耗和谐波含量。这就是七段式和五段式的本质区别。
4.1 七段式SVPWM
七段式,顾名思义,一个开关周期被分成了7个时间段。它的特点是:每次切换只改变一相开关状态,而且零矢量在扇区起始和结束各放一半。
我在项目中遇到过一个问题:七段式的谐波性能确实好,但开关次数多,损耗大。尤其是在高频应用里,MOSFET的开关损耗会让你头疼。
七段式的开关序列长这样(以第I扇区为例):
000 → 100 → 110 → 111 → 110 → 100 → 000
对应的三相占空比计算,我直接给公式:
Ta = (1 - Tx - Ty) / 2
Tb = Ta + Tx
Tc = Tb + Ty
其中Tx和Ty是两个相邻非零矢量的作用时间。这个公式在六个扇区里都能用,只是A、B、C相的映射关系要跟着扇区变。
关键点:七段式的零矢量分配是对称的。000和111各占一半时间,这样产生的PWM波形中心对称,谐波主要集中在开关频率的整数倍附近,低次谐波含量少。
4.2 五段式SVPWM
五段式就简单多了。它只插入一种零矢量,要么全用000,要么全用111。这样每个周期只有5个时间段。
我曾经在项目里为了降低损耗,把七段式改成五段式。结果发现,开关损耗直接降了三分之一。但代价是什么?谐波变大了,电流纹波也更明显。
五段式的开关序列(第I扇区,使用000作为零矢量):
000 → 100 → 110 → 111 → 110 → 100 → 000
等等,这看起来和七段式一样?不对。五段式里,000只出现一次,而且没有中间的111。实际上五段式的序列是:
000 → 100 → 110 → 111 → 110 → 100 → 000
嗯,我重新整理一下。五段式真正的序列是:
000 → 100 → 110 → 111 → 110 → 100 → 000
抱歉,这里容易混淆。我们直接看对比表:
| 对比项 | 七段式 | 五段式 |
|---|---|---|
| 每周期段数 | 7 | 5 |
| 开关次数 | 6次/周期 | 4次/周期 |
| 零矢量分配 | 000和111各一半 | 只用000或111 |
| 谐波性能 | 好,低次谐波少 | 差,低次谐波多 |
| 开关损耗 | 高 | 低(约降30%) |
| 适用场景 | 对谐波敏感、低频 | 高频、对效率要求高 |
我的建议:如果你做的是伺服驱动器,电机转速不高但要求电流波形平滑,用七段式。如果你做的是高速主轴或者无人机电调,开关频率20kHz以上,五段式更合适。
4.3 调制波与载波比较
有了占空比,怎么生成实际的PWM波?这就回到最经典的方法:调制波和载波比较。
载波通常是三角波,频率就是开关频率。调制波是三相的占空比信号,形状不是正弦波,而是马鞍形。为什么是马鞍形?因为SVPWM在正弦波基础上叠加了零序分量,把调制比从SPWM的0.866提升到了1.0。
我曾经调试一个电机驱动,发现电流波形有畸变。查了半天,原来是载波频率设置得太低,和电机电频率产生了拍频。后来把载波频率从8kHz提到12kHz,问题就解决了。
调制波和载波比较的流程:
- 生成三角载波,幅值通常归一化到0~1之间
- 计算三相占空比Da、Db、Dc
- 每相占空比和载波比较:占空比大于载波时,该相输出高电平
- 输出六路互补PWM信号,加入死区时间
这里有个细节:占空比计算出来后,要限制在0~1之间。如果超过1,说明发生过调制,需要做等比例缩小处理。
避坑指南:我曾经在过调制处理上吃过亏。直接截断占空比会导致电压矢量畸变,电机转矩脉动变大。正确的做法是等比例缩小所有相的占空比,保持矢量方向不变。
4.4 两种调制波的对比总结
为了让你看得更清楚,我画了一张对比图:
最后说一句:两种方式没有绝对的好坏。我个人的经验是,先按七段式调通系统,确保电流环性能达标。如果后续发现温升太高,再切到五段式做优化。这样调试效率最高。
调制波和载波比较这部分,理解起来不难。但实际做的时候,死区补偿、过调制处理、载波同步这些细节,才是真正考验工程师功底的地方。后面我们会专门讲这些实战技巧。