1. SVPWM 基础:三相逆变器拓扑、电压空间矢量概念与基本原理

各位工程师朋友,咱们今天开始聊 SVPWM。说实话,我刚接触电力电子那会儿,最先学的是 SPWM,觉得正弦波调得挺漂亮。后来进了第一个电机驱动项目,发现老工程师们都在用 SVPWM,我就纳闷——这玩意儿到底好在哪?

带着这个问题,我啃了不少资料,也亲手调过几块板子。今天就把这些经验掰开揉碎了讲给你听。咱们从最基础的三相逆变器拓扑开始,一步步把 SVPWM 的底裤扒干净。

1.1 三相逆变器拓扑——硬件长什么样?

先看硬件。三相逆变器说白了就是六个开关管搭成的桥式电路。我习惯把它想象成三个半桥拼在一起,每个半桥负责一相输出。

核心结构:六个开关管(IGBT 或 MOSFET),每相上下各一个,组成三个桥臂。直流母线电压 Vdc 加在桥臂两端,中间点引出三相输出。

你想想看,每个桥臂只有两种状态:上管导通、下管关断(我记为 1),或者上管关断、下管导通(我记为 0)。三个桥臂组合起来,一共 2³ = 8 种开关状态。

开关状态 (a,b,c) 上管导通相 下管导通相 输出线电压
000 无 A, B, C 0
100 A B, C Vdc
110 A, B C Vdc
010 B A, C Vdc
011 B, C A Vdc
001 C A, B Vdc
101 A, C B Vdc
111 A, B, C 无 0

注意看,000 和 111 这两种状态输出为零,我们叫它零矢量。其余六种叫非零矢量。这八个状态,就是 SVPWM 的全部家当。

我的经验:刚开始做硬件时,我总担心开关管同时导通会炸管子。后来养成了习惯——每次换相都插入死区时间,哪怕只有几百纳秒。这个习惯救过我至少两次。

1.2 电压空间矢量——把开关状态画成向量

好,现在咱们把八个开关状态映射到复平面上。为什么要这么做?因为电机绕组里的电压是空间分布的,用矢量表示更直观。

我习惯用 Clarke 变换把三相电压 (Va, Vb, Vc) 映射到 α-β 坐标系:

Vα = Va - 0.5*Vb - 0.5*Vc
Vβ = (√3/2)*(Vb - Vc)

把八个开关状态代进去,你会得到六个非零矢量(幅值都是 2/3 * Vdc)和两个零矢量(幅值为 0)。六个非零矢量把复平面分成六个扇区,每个扇区 60 度。

关键点:六个非零矢量 V1~V6 依次相差 60°,幅值相等。两个零矢量 V0 和 V7 位于原点。这八个矢量就是 SVPWM 的「基本积木」。

为什么会这样?因为每个非零矢量对应一个特定的线电压组合,在电机绕组里产生一个确定方向的磁动势。你想想看,如果我们能合成任意方向的电压矢量,就能控制电机转子平滑旋转。

下面这张图展示了八个基本电压空间矢量的分布:

基本电压空间矢量分布图 α β 扇区 I 扇区 II 扇区 III 扇区 IV 扇区 V 扇区 VI V1 (100) V2 (110) V3 (010) V4 (011) V5 (001) V6 (101) V0/V7 (000/111) 六个非零矢量将平面分为六个扇区,每个扇区 60°

注意:千万不要把矢量方向和扇区编号搞混。我见过有人把 V1 放在 0° 位置,结果扇区判断全错,电机抖得像筛糠。标准做法是 V1 对应 (100) 状态,放在 α 轴正方向。

1.3 SVPWM 基本原理——怎么合成任意矢量?

现在问题来了:我们只有八个固定的矢量,但想要合成任意角度、任意幅值的电压矢量,怎么办?

答案是用「伏秒平衡」原理。说白了,就是在一个开关周期内,用相邻的两个非零矢量和零矢量,按时间比例组合,让平均效果等于目标矢量。

我举个例子。假设目标矢量 Vref 落在扇区 I(V1 和 V2 之间),那么:

Vref * Ts = V1 * T1 + V2 * T2 + V0 * T0

其中:
T1 = Ts * m * sin(60° - θ)
T2 = Ts * m * sin(θ)
T0 = Ts - T1 - T2
m = |Vref| / (2/3 * Vdc)  —— 调制比

你看,只要算出 T1、T2、T0,就能用三个基本矢量拼出目标矢量。这就是 SVPWM 的核心思想。

SVPWM 的优势:

  • 直流母线利用率高:最大输出线电压可达 Vdc,比 SPWM 高出约 15.4%
  • 谐波含量低:电压利用率高,电流波形更正弦
  • 适合数字化实现:用 DSP 或 MCU 算起来很方便
  • 动态响应快:直接控制磁链轨迹,转矩脉动小

我记得第一次在 DSP 上实现 SVPWM 时,算完 T1、T2 后直接写比较寄存器,电机转起来那叫一个顺滑。相比之下,SPWM 调了半天还有嗡嗡声。

1.4 七段式与五段式——两种实现方式

算出了 T1、T2、T0,怎么安排开关顺序?这里有两种主流方式。

特性 七段式 SVPWM 五段式 SVPWM
开关次数/周期 7 次 5 次
谐波性能 更好(对称性好) 稍差
开关损耗 较高 较低(约降低 30%)
适用场景 对谐波要求高的场合 对效率要求高的场合

七段式的开关序列是:000 → 100 → 110 → 111 → 110 → 100 → 000。你看,从零矢量开始,经过两个非零矢量,再到另一个零矢量,再原路返回。这样波形对称,谐波小。

五段式则省掉了一个零矢量,序列变成:000 → 100 → 110 → 100 → 000。少两次开关动作,损耗自然低。

我的建议:刚开始做实验时先用七段式,波形好,调试方便。等产品要量产了,再根据温升测试结果考虑要不要切到五段式。我曾经在一个 10kW 的逆变器项目里,从七段式改到五段式,散热器温度降了 8°C,效果很明显。

1.5 为什么 SVPWM 比 SPWM 好?

这个问题我当年也纠结过。简单说三点:

  1. 电压利用率:SPWM 最大输出相电压是 Vdc/2,线电压是 0.866Vdc。SVPWM 线电压能到 Vdc,多了 15.4%。这意味着同样的母线电压,SVPWM 能让电机跑得更快。
  2. 谐波特性:SVPWM 的电压谐波主要集中在开关频率附近,低次谐波少。电机铁损和铜损都更低,发热小。
  3. 数字化友好:SVPWM 的计算流程非常规整——扇区判断、作用时间计算、比较值映射,三步走。用 C 语言写起来很顺手。

说白了,SVPWM 就是拿开关频率换电压利用率。你想想看,同样的硬件,不花一分钱成本就能多出 15% 的电压,何乐而不为?

避坑提醒:我曾经在一个项目里直接拿 SPWM 的代码改 SVPWM,忘了更新载波频率。结果开关损耗飙升,MOSFET 热得能煎鸡蛋。记住,SVPWM 的开关频率一般比 SPWM 低一些,因为每个周期开关次数多,要留散热余量。

好了,这一章的基础内容就到这里。SVPWM 的核心思想其实不复杂——八个基本矢量,伏秒平衡,合成任意目标。后面的章节我们会深入聊波形质量怎么诊断、怎么修复,那些才是真正考验功力的地方。