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 知识体系总览
下面这张图把本章的核心逻辑串起来了。从三相电压到空间矢量,再到扇区划分和合成计算,一条线走通。
4.5 工程实现要点
代码实现时,我建议按这个顺序来:
- 读ADC:获取三相电流/电压(如果有传感器)
- Clark变换:得到Vα, Vβ
- 扇区判断:用交叉比较法,避免除法
- 计算T1, T2:查表或实时计算
- 分配PWM:根据扇区映射到三相桥臂
一个小技巧:零矢量的分配方式会影响谐波。我习惯用七段式SVPWM——把零矢量拆成V0和V7各一半,对称性好,谐波小。
嗯,到这里电压空间矢量的定义、合成和扇区划分就讲完了。这些是SVPWM的骨架,后面所有章节都建立在这个基础上。你先把这部分吃透,后面调电机时才不会发懵。