1. SVPWM基本原理回顾:从三相逆变器拓扑到电压空间矢量合成

各位工程师朋友,咱们开始第一讲。SVPWM这东西,说白了就是让电机转得又稳又顺的核心技术。很多人在调参时遇到抖动、噪音、电流畸变,追根溯源,往往是对SVPWM的物理本质理解不够透彻。今天我就带大家从头捋一遍,把基础打扎实。

1.1 三相逆变器拓扑:八个开关状态

先看硬件。一个典型的三相电压源逆变器,有六个开关管(Q1~Q6),分成上桥臂和下桥臂。同一相上下两个管子不能同时导通——这是常识,但我在项目里真见过有人因为死区时间设置不当导致直通炸管的。

核心约束:同一相上下桥臂互补导通,即 Sa + Sa' = 1。

这样一来,每相只有两种状态:上管导通(记为1)或下管导通(记为0)。三相组合起来,一共2³ = 8种状态。其中6个是非零矢量(V1~V6),2个是零矢量(V0和V7)。

状态编号 Sa Sb Sc 矢量名称 说明
0 000 V0 零矢量,下桥臂全通
1 100 V1 基本矢量,α轴正向
2 110 V2 基本矢量,60°方向
3 010 V3 基本矢量,120°方向
4 011 V4 基本矢量,180°方向
5 001 V5 基本矢量,240°方向
6 101 V6 基本矢量,300°方向
7 111 V7 零矢量,上桥臂全通

我的习惯:调试时先把这8个状态手动输出一遍,用示波器看相电压波形。如果V0和V7对应的相电压不是0和Vdc,那多半是硬件或驱动逻辑有问题。这一步能省掉后面很多排查时间。

1.2 电压空间矢量的物理意义

为什么要搞出这么一套矢量?你想想看,电机定子绕组在空间上相差120°分布。三相电压加在绕组上,产生的合成磁动势是一个旋转的空间矢量。这个矢量的大小和方向,直接决定了电机的转矩和转速。

把三相电压变换到αβ坐标系下,公式很简单:

Vα = Vdc × (2/3) × (Sa - 0.5×Sb - 0.5×Sc)
Vβ = Vdc × (2/3) × (√3/2 × Sb - √3/2 × Sc)

代入8种开关状态,就能得到6个基本矢量和2个零矢量在αβ平面上的位置。它们把平面分成了6个扇区,每个扇区60°。

我曾经踩过的坑:有次做高速电机驱动,发现电流波形在扇区边界处有毛刺。查了两天才意识到,是扇区判断的边界条件写错了——用了 >= 而不是 >,导致相邻扇区切换时矢量计算跳变。这种细节,调参时根本看不出来,但跑高速就原形毕露。

1.3 电压空间矢量合成:伏秒平衡原理

现在问题来了:我们只能输出6个固定方向的矢量,但想要的是任意方向和任意大小的电压矢量。怎么办?

答案是伏秒平衡。在一个PWM周期Ts内,用相邻的两个基本矢量加上零矢量,按时间比例组合,就能等效出任意目标矢量。

假设目标矢量Vref落在扇区I(V1和V2之间),那么:

Vref × Ts = V1 × T1 + V2 × T2 + V0 × T0
其中 T1 + T2 + T0 = Ts

解这个方程,得到T1和T2的计算公式:

T1 = √3 × Ts × (|Vref|/Vdc) × sin(60° - θ)
T2 = √3 × Ts × (|Vref|/Vdc) × sin(θ)
T0 = Ts - T1 - T2

其中θ是Vref在当前扇区内的角度,范围0~60°。

物理本质:SVPWM不是在“调制”电压,而是在“拼凑”一个平均效果。电机绕组是感性负载,电流有惯性,它只关心一个周期内的平均电压。只要伏秒平衡成立,电机就会乖乖地按我们想要的方式旋转。

1.4 从矢量合成到实际PWM波形

算出T1、T2、T0之后,怎么变成开关管的驱动信号?这涉及到矢量作用顺序。常用的有七段式和五段式两种。

七段式顺序(以扇区I为例):

  1. 从V0(000)开始
  2. 切换到V1(100),持续T1/2
  3. 切换到V2(110),持续T2/2
  4. 切换到V7(111),持续T0
  5. 再反向回到V2、V1、V0

这样每个周期开关动作6次,谐波含量低,但开关损耗稍大。五段式则只动作4次,效率高但谐波大一些。

我建议:伺服驱动一般用七段式。虽然开关损耗大一点,但电流谐波小,电机运行更平滑。五段式更适合对效率要求极高、对噪音不敏感的大功率场合。

1.5 知识体系总览

下面这张图把SVPWM的完整逻辑串起来了。从逆变器拓扑到最终PWM波形,每一步都有明确的物理对应关系。

SVPWM知识体系总览 三相逆变器拓扑 6个开关管,8种状态 6个基本矢量 + 2个零矢量 V1~V6,V0,V7 扇区划分 6个扇区,每个60° 伏秒平衡原理 Vref×Ts = ΣVi×Ti T1、T2、T0计算 三角函数 + 扇区查表 矢量作用顺序 七段式 / 五段式 PWM波形生成 比较器装载,死区插入 电机控制执行 电流环、速度环、位置环 核心逻辑:从硬件状态 → 空间矢量 → 伏秒平衡 → PWM波形 → 电机控制 每一步都有明确的物理意义,调参时才能知道问题出在哪个环节

1.6 常见误区提醒

讲完原理,我结合经验说几个容易踩的坑:

  • 误区一:认为SVPWM的输出是正弦波。其实输出的是等幅的PWM脉冲,只是平均效果等效于正弦波。用示波器看相电压,别指望看到光滑的正弦。
  • 误区二:忽略直流母线电压波动。Vdc在公式里是常数,但实际母线电压有纹波。如果不做补偿,低速时电流会畸变。我习惯在软件里加一个母线电压前馈。
  • 误区三:死区时间设置不当。死区太大会导致电压损失和电流过零畸变,太小又可能直通。一般取0.5~2μs,具体要看IGBT/MOSFET的关断延迟。
  • 误区四:扇区判断用浮点运算。嵌入式MCU做浮点三角函数很慢,建议用查表法或CORDIC算法。我见过有人用atan2做扇区判断,结果PWM频率只能跑到5kHz。

特别提醒:SVPWM的线性调制范围是|Vref| ≤ Vdc/√3。超过这个值就进入过调制区,输出电压会饱和,电流波形会失真。很多伺服在高速时转矩下降,根源就在这里。调参时如果发现高速电流波形变差,先检查调制比是否超限。