1. SVPWM 基础概念:从 SPWM 到电压空间矢量

各位同学好,我是老周。做电力电子这些年,我接触过不少控制算法,但 SVPWM 始终是我最喜欢的一个。为什么?因为它把「控制」这件事变得很直观。今天咱们就来聊聊 SVPWM 到底是什么,它和传统的 SPWM 有什么不同,以及那个听起来很玄乎的「电压空间矢量」到底在说什么。

1.1 什么是 SVPWM?

SVPWM,全称 Space Vector Pulse Width Modulation,空间矢量脉宽调制。说白了,它不是像 SPWM 那样单纯地生成三个正弦波,而是从电机旋转磁场的角度去思考问题。

我习惯这样理解:SVPWM 的目标是让逆变器输出的电压矢量,在空间中以圆形轨迹旋转。这个圆形轨迹对应的是电机内部的旋转磁场,而旋转磁场正是电机转动的根本原因。

核心思想: SVPWM 不是「调电压」,而是「调矢量」。它直接控制的是合成电压矢量的方向和大小,而不是三个相电压的瞬时值。

你可能会问:为什么要这么绕?直接调正弦波不行吗?嗯,这个问题我当年也问过师傅。答案很简单——SVPWM 的直流母线利用率更高,谐波更小。具体高多少?咱们后面会算。

1.2 SVPWM 与 SPWM 的区别

先看一张对比表,这样更清楚:

对比项 SPWM SVPWM
控制目标 生成三相对称正弦电压 生成圆形旋转磁场
调制方式 三角载波与正弦波比较 电压空间矢量合成
直流母线利用率 约 78.5% 约 90.7%
谐波特性 含较多低次谐波 谐波集中在开关频率附近
实现复杂度 简单,纯模拟或数字 稍复杂,需坐标变换
过调制能力 有限 可扩展至六阶梯波

看到这个表格,你可能注意到了——SVPWM 的直流母线利用率比 SPWM 高了 12% 左右。我在一个 7.5kW 的伺服驱动器项目里实测过,同样的直流母线电压,SVPWM 能让电机多跑出 10% 的转速。这个差距在电池供电的场合尤其重要。

小提示: 直流母线利用率 = 输出线电压基波幅值 / 直流母线电压。SPWM 最大输出相电压幅值为 Vdc/2,线电压幅值为 √3·Vdc/2 ≈ 0.866Vdc,利用率约 86.6%。但 SVPWM 可以输出到 Vdc/√3 ≈ 0.577Vdc 的相电压,线电压幅值就是 Vdc,利用率 100%。不过实际考虑死区和非线性,工程上通常按 90.7% 来算。

1.3 电压空间矢量与磁链圆的关系

这是 SVPWM 最核心的概念。咱们从电机原理说起。

电机定子绕组通入三相对称电流后,会产生一个旋转磁场。这个旋转磁场的轨迹,理想情况下是一个圆。磁链圆的半径由电压和频率共同决定。

关键公式来了:

ψ = ∫ (u - i·R) dt

忽略定子电阻压降(高频时近似成立),磁链 ψ 近似等于电压 u 对时间的积分。也就是说:电压矢量的轨迹,决定了磁链的轨迹。

如果电压矢量走的是圆形轨迹,磁链就是圆形;如果电压矢量走的是六边形,磁链就是六边形。SVPWM 的目标就是让电压矢量尽可能逼近圆形。

注意: 这个近似在低速时误差较大。我曾在 5Hz 以下的场合吃过亏——电阻压降占比太大,磁链圆严重畸变,电机抖得像筛糠。后来加了定子电阻补偿才解决。所以低速时一定要考虑 i·R 项。

下面这张图展示了 SVPWM 的核心逻辑:

SVPWM 核心逻辑:从电压矢量到磁链圆 三相逆变器 6个开关管 8种开关状态 电压空间矢量 U₀ ~ U₇ 6个有效矢量 + 2个零矢量 矢量合成 相邻矢量 + 零矢量 伏秒平衡原理 磁链圆轨迹 ψ = ∫ u dt 圆形旋转磁场 关键点 8种状态 6个扇区 伏秒平衡 圆形轨迹 高利用率

1.4 八个基本电压矢量

三相逆变器有 6 个开关管,上下桥臂互补导通。每个桥臂的状态用 1 表示上管导通、0 表示下管导通。这样一共有 2³ = 8 种状态。

这 8 种状态对应 8 个电压矢量:

  • 6 个有效矢量:U₁(001)、U₂(010)、U₃(011)、U₄(100)、U₅(101)、U₆(110),幅值均为 2Vdc/3
  • 2 个零矢量:U₀(000)、U₇(111),幅值为 0

这 6 个有效矢量把平面分成 6 个扇区,每个扇区 60°。SVPWM 的核心工作就是:判断当前参考电压矢量落在哪个扇区,然后用该扇区相邻的两个有效矢量和零矢量去合成它。

我的经验: 刚开始做 SVPWM 时,我总纠结于扇区判断的代码怎么写。后来发现,用 Clarke 变换后的 αβ 分量来判断扇区是最简洁的。C2000 的 IQmath 库里有现成的函数,直接调用就行。别自己造轮子,除非你想练手。

1.5 伏秒平衡原理

合成矢量的依据是伏秒平衡:

Uref · Ts = Ux · Tx + Uy · Ty + U₀ · T₀

其中:

  • Uref 是参考电压矢量
  • Ts 是 PWM 周期
  • Ux、Uy 是相邻的两个有效矢量
  • Tx、Ty 是对应的作用时间
  • T₀ 是零矢量作用时间

说白了就是:在一个周期内,用几个基本矢量的组合,让平均效果等于参考矢量。这个思路和 SPWM 的「面积等效」本质上是相通的,但 SVPWM 是在矢量空间里做这件事。

1.6 为什么 SVPWM 更优?

我总结三个核心优势:

  1. 直流母线利用率高:比 SPWM 高约 15%,这意味着同样的电池电压,电机能跑更快
  2. 谐波特性好:谐波集中在开关频率及其倍数附近,滤波更容易
  3. 数字化实现友好:C2000 的 ePWM 模块配合 HRPWM,可以精确控制每个矢量的作用时间

避坑提醒: 我曾经在一个项目里直接套用 SPWM 的载波频率来跑 SVPWM,结果发现开关损耗比预期高了不少。后来才意识到,SVPWM 的开关次数分布和 SPWM 不一样——SVPWM 在每个扇区切换时会有额外的开关动作。建议根据实际散热条件适当降低开关频率,或者采用不连续调制(DPWM)来减少开关次数。

1.7 小结

这一章咱们把 SVPWM 的底子打好了。记住三句话:

  • SVPWM 的目标是生成圆形旋转磁场
  • 它用 6 个有效矢量和 2 个零矢量来合成任意参考矢量
  • 伏秒平衡是合成的数学基础