1. SVPWM 基础回顾:从三相逆变器到电压空间矢量
做 FOC 的朋友,天天跟 SVPWM 打交道。但说实话,很多人一开始并不清楚——为什么非得用 SVPWM?正弦波 PWM 不也能转吗?
嗯,这个问题,我当年刚入行时也困惑过。后来在调试一个 2kW 伺服驱动器时,才真正体会到 SVPWM 的价值。今天咱们就从最基础的拓扑开始,把 SVPWM 的来龙去脉理清楚。
1.1 三相逆变器拓扑:八个开关状态
先看最经典的三相两电平逆变器。六个开关管,上下桥臂互补导通。你想想看,每一相的输出要么接母线正(VDC),要么接母线负(GND)。
所以三相一共就 2³ = 8 种状态。我用 SaSbSc 来表示,1 代表上管导通、下管关断,0 则相反。
| SaSbSc | 矢量编号 | 说明 |
|---|---|---|
| 000 | V0 | 零矢量,三相都接负母线 |
| 100 | V1 | 基本矢量,A 相正,B、C 负 |
| 110 | V2 | 基本矢量,A、B 正,C 负 |
| 010 | V3 | 基本矢量,B 相正,A、C 负 |
| 011 | V4 | 基本矢量,B、C 正,A 负 |
| 001 | V5 | 基本矢量,C 相正,A、B 负 |
| 101 | V6 | 基本矢量,A、C 正,B 负 |
| 111 | V7 | 零矢量,三相都接正母线 |
1.2 从开关状态到电压空间矢量
光有开关状态还不够。我们要把这些状态映射到电机定子绕组的合成磁动势上。Clark 变换就是干这个的。
把三相电压 (Ua, Ub, Uc) 变换到 αβ 坐标系:
Uα = 2/3 * (Ua - 0.5*Ub - 0.5*Uc)
Uβ = 2/3 * (√3/2 * Ub - √3/2 * Uc)
把 8 个开关状态代进去,就能得到 6 个非零矢量和 2 个零矢量在 αβ 平面上的位置。6 个非零矢量幅值相等,都是 2/3·VDC,彼此相隔 60°。
这就是电压空间矢量的由来。说白了,就是把逆变器的离散开关状态,变成了一个可以在复平面上旋转的矢量。
1.3 为什么需要 SVPWM?
你可能会问:用正弦波 PWM(SPWM)不也能产生正弦电压吗?
没错,SPWM 确实能让电机转起来。但问题在于——母线电压利用率太低。
SPWM 的相电压峰值最多到 VDC/2,线电压峰值是 √3/2·VDC ≈ 0.866·VDC。而 SVPWM 的线电压峰值可以做到 VDC。也就是说,同样的母线电压,SVPWM 能多输出约 15.4% 的电压。
我在做一款低压伺服驱动器时,母线只有 48V。如果用 SPWM,电机高速区根本跑不上去。换成 SVPWM 后,转速直接提升了 15%,而且转矩脉动还更小。从那以后,我再也没用过 SPWM。
| 调制方式 | 线电压峰值 | 电压利用率 | 谐波含量 |
|---|---|---|---|
| SPWM | √3/2·VDC | 86.6% | 较高 |
| SVPWM | VDC | 100% | 较低 |
| 过调制 SVPWM | 可达 1.15·VDC | 最高 115% | 含低次谐波 |
1.4 SVPWM 的核心逻辑:伏秒平衡
SVPWM 的数学基础是伏秒平衡原理。假设我们要合成一个目标矢量 Vref,它落在某个扇区里。那就用这个扇区相邻的两个基本矢量 Vx、Vy,再加上零矢量 V0/V7,通过时间加权来等效。
公式很简单:
Vref · Ts = Vx · Tx + Vy · Ty + V0 · T0
其中 Ts = Tx + Ty + T0
解这个方程,就能算出每个矢量的作用时间。这就是 SVPWM 最核心的计算步骤。
你想想看,只要 Ts 足够小(开关频率足够高),合成出来的效果就无限接近一个连续旋转的电压矢量。电机绕组感受到的,就是一个平滑的旋转磁场。
1.5 本章知识体系总览
下面这张图,把 SVPWM 的完整逻辑链条画出来了。从逆变器拓扑到最终输出 PWM,每一步都环环相扣。
1.6 小结
这一章我们做了三件事:
- 从三相逆变器的 8 个开关状态出发,理解了电压空间矢量的物理含义
- 对比了 SPWM 和 SVPWM 的电压利用率,明白了为什么 SVPWM 是 FOC 的标配
- 梳理了伏秒平衡的核心逻辑,为后续的扇区判断和时间计算打下基础
我个人觉得,SVPWM 最妙的地方在于——它用离散的开关动作,实现了连续的矢量旋转。这种「以有限逼近无限」的思想,在嵌入式控制领域随处可见。搞懂了它,你再看后面的过调制技术,就会觉得顺理成章。