4. 电压空间矢量:定义、合成原理与扇区划分

好,咱们进入SVPWM的核心地带了。电压空间矢量这个概念,说白了就是让电机转得更圆、更顺的关键。我记得刚接触这个时,总觉得它很玄乎,后来亲手调过几台电机才明白——它就是把三相电压的“开关动作”变成“旋转磁场”的桥梁。

4.1 电压空间矢量的定义

先问个问题:三相逆变器输出的是三个独立的相电压,对吧?但电机要的是旋转磁场。怎么把三个静止的电压变成旋转的矢量?

数学上,我们用一个变换公式:

V = (2/3) * (Va + Vb * e^(j*2π/3) + Vc * e^(j*4π/3))

这个V就是电压空间矢量。它把三相电压映射到复平面上。每个开关状态对应一个固定的矢量位置。

关键点:电压空间矢量不是物理存在的电压,而是一个数学工具。它描述的是三相电压合成的等效旋转效果。

我在项目中遇到过有人把相电压峰值直接当矢量幅值用,结果算出来的扇区全错了。记住:这里的系数2/3是等幅值变换,不是等功率变换。做电流环时别搞混。

4.2 合成原理:从离散到连续

逆变器只有8个开关状态——6个非零矢量和2个零矢量。但我们要的是任意角度、任意幅值的电压矢量。怎么办?

答案是:在一个开关周期内,用相邻的两个非零矢量去“拼”出目标矢量。

举个例子。假设目标矢量Vref落在扇区I,那就用V1和V2来合成:

T1 = Ts * Vref * sin(π/3 - θ) / Vdc
T2 = Ts * Vref * sin(θ) / Vdc
T0 = Ts - T1 - T2

其中Ts是开关周期,θ是Vref在扇区内的角度,Vdc是母线电压。

我的习惯:实际代码里,我会先算好sin(π/3 - θ)和sin(θ)的查表值,避免在线算三角函数。MCU的算力能省则省。

你想想看,这个合成过程本质上就是“时间平均”。在一个周期里,V1作用T1时间,V2作用T2时间,零矢量填满剩下的时间。平均下来,等效于Vref。

4.3 扇区划分:6个扇区的逻辑

复平面上,6个非零矢量把360°分成6个60°的扇区。怎么判断Vref落在哪个扇区?

我常用的方法是看Vα和Vβ的符号和比值:

扇区 角度范围 判断条件
I 0° ~ 60° Vα > 0, Vβ > 0, Vβ / Vα < √3
II 60° ~ 120° Vβ > 0, |Vβ / Vα| > √3
III 120° ~ 180° Vα < 0, Vβ > 0, -Vβ / Vα < √3
IV 180° ~ 240° Vα < 0, Vβ < 0, Vβ / Vα < √3
V 240° ~ 300° Vβ < 0, |Vβ / Vα| > √3
VI 300° ~ 360° Vα > 0, Vβ < 0, -Vβ / Vα < √3

我曾经踩过的坑:用浮点数比较Vβ / Vα时,Vα接近0会除零。后来我改用交叉比较法——直接比较Vα、Vβ和它们的线性组合,彻底避开除法。

实际工程中,更高效的扇区判断是用三个中间变量:

Vref1 = Vβ
Vref2 = (√3/2) * Vα - (1/2) * Vβ
Vref3 = -(√3/2) * Vα - (1/2) * Vβ

扇区 = (Vref1 > 0) + 2*(Vref2 > 0) + 4*(Vref3 > 0)

这个公式直接出扇区号,不用角度计算,快得很。

4.4 知识体系总览

下面这张图把本章的核心逻辑串起来了。从三相电压到空间矢量,再到扇区划分和合成计算,一条线走通。

电压空间矢量知识体系 三相电压 Va, Vb, Vc Clark变换 → Vα, Vβ 电压空间矢量 Vref 扇区判断(6扇区) 矢量合成:T1, T2, T0计算 最终输出PWM占空比

4.5 工程实现要点

代码实现时,我建议按这个顺序来:

  1. 读ADC:获取三相电流/电压(如果有传感器)
  2. Clark变换:得到Vα, Vβ
  3. 扇区判断:用交叉比较法,避免除法
  4. 计算T1, T2:查表或实时计算
  5. 分配PWM:根据扇区映射到三相桥臂

一个小技巧:零矢量的分配方式会影响谐波。我习惯用七段式SVPWM——把零矢量拆成V0和V7各一半,对称性好,谐波小。

嗯,到这里电压空间矢量的定义、合成和扇区划分就讲完了。这些是SVPWM的骨架,后面所有章节都建立在这个基础上。你先把这部分吃透,后面调电机时才不会发懵。