1. SVPWM基础回顾:从三相逆变器拓扑到电压空间矢量

各位同学,咱们今天正式开讲SVPWM。说实话,我入行那会儿,最早接触的是SPWM,觉得正弦波调制挺完美的。直到第一次做电机驱动项目,发现SPWM出来的电流谐波大、母线利用率低,电机嗡嗡响得厉害。后来换了SVPWM,效果立竿见影。嗯,这就是咱们今天要聊的核心——为什么SVPWM更适合电机控制。

1.1 三相逆变器拓扑:你每天都在用的电路

先看最基础的东西。三相两电平逆变器,说白了就是六个开关管,三个桥臂。每个桥臂上下两个管子互补导通,绝对不能同时导通——这个我吃过亏,后面说。

核心结构:直流母线电压 Vdc,三个桥臂输出 A、B、C,接电机三相绕组。

每个桥臂只有两种状态:上管导通(输出接 Vdc,记为“1”),或者下管导通(输出接 GND,记为“0”)。三个桥臂组合起来,一共 23 = 8 种状态。

状态编号 开关组合 (A B C) 说明
0 000 零矢量,三相都接GND
1 100 A相接Vdc,B、C接GND
2 110 A、B接Vdc,C接GND
3 010 B相接Vdc,A、C接GND
4 011 B、C接Vdc,A接GND
5 001 C相接Vdc,A、B接GND
6 101 A、C接Vdc,B接GND
7 111 零矢量,三相都接Vdc

我曾经犯过的错:调试时死区时间设得太短,上下管直通,MOS管直接冒烟。后来我习惯在代码里加死区补偿,并且用示波器先看栅极波形再上强电。各位千万别省这一步。

1.2 电压空间矢量:从开关状态到旋转磁场

为什么要搞空间矢量?你想想看,电机要转起来,需要的是旋转磁场。SPWM是分别控制三相正弦电压,但电机绕组是空间分布的,三相合成磁场才是关键。

我们把8种开关状态映射到复平面,就得到6个非零矢量和2个零矢量。非零矢量幅值都是 (2/3)Vdc,方向相差60°。

电压空间矢量分布图(六扇区) V₁(100) V₂(110) V₃(010) V₄(011) V₅(001) V₆(101) V₀(000) / V₇(111) 扇区Ⅰ 扇区Ⅱ 扇区Ⅲ 扇区Ⅳ 扇区Ⅴ 扇区Ⅵ 6个非零矢量将平面分为6个扇区,每个扇区60°

你看这张图,六个矢量把平面切成六块披萨。任意一个目标电压矢量 Vref,都可以用相邻的两个非零矢量和零矢量合成。这就是SVPWM的基本原理——伏秒平衡。

1.3 SVPWM vs SPWM:差距到底在哪?

我直接说结论:SVPWM的直流母线利用率比SPWM高15.47%。这个数字怎么来的?

  • SPWM:相电压峰值最大为 Vdc/2,线电压峰值最大为 (√3/2)Vdc ≈ 0.866Vdc
  • SVPWM:线电压峰值最大为 Vdc,直接拉满

说白了,同样一块母线电压,SVPWM能输出更高的电压给电机。电机转速和电压成正比,所以SVPWM能让你跑得更快。

对比项 SPWM SVPWM
母线利用率 86.6% 100%
电流谐波 较高 较低(约降低30%)
转矩脉动 明显 平滑
实现复杂度 简单 中等(C2000有硬件支持)
过调制能力 有限 可扩展至六阶梯波

我个人习惯:在C2000上做SVPWM,直接用ePWM模块的HRPWM功能,配合死区插入,代码量其实不大。后面章节我会带大家手写完整的SVPWM实现。

1.4 为什么电机控制非SVPWM不可?

你想想看,电机控制的核心是什么?是产生一个幅值和角度都可控的旋转磁场。SPWM虽然也能转,但它的电压矢量轨迹是圆的内接六边形,不是完美的圆。SVPWM通过在一个开关周期内切换相邻矢量,让平均电压矢量逼近圆形轨迹。

我在做伺服驱动器项目时对比过:同样负载下,SPWM的电流THD大概在8%左右,换成SVPWM直接降到3%以下。电机温度低了,噪音也小了。客户验收时拿听诊器听电机,说“这个安静”。

还有一个关键点:SVPWM天然适合数字控制。你算好扇区、算好作用时间,直接更新比较寄存器就行。C2000的ePWM模块甚至能自动完成对称PWM生成,你只需要喂给它占空比数据。

1.5 本章小结:你该带走什么?

  • 三相逆变器8种开关状态,6个非零矢量 + 2个零矢量
  • SVPWM用相邻矢量合成目标电压,母线利用率100%
  • 比SPWM多15.47%的电压输出,谐波更低
  • C2000的硬件资源让SVPWM实现变得简单可靠

一句话记住:SVPWM不是玄学,是伏秒平衡的工程实现。母线电压利用率高、谐波小、适合数字控制——这三个理由足够让你在电机控制项目中首选SVPWM。