3、电压空间矢量与坐标系:Clark变换(3s/2s)、Park变换(2s/2r)、电压空间矢量的合成

好,咱们进入正题。这一章要聊的,是SVPWM的数学基础——坐标系变换。说白了,就是把电机里那些缠来缠去的三相交流量,变成我们好控制的直流量。

我刚接触SVPWM时,觉得Clark和Park就是两个数学公式,套进去算就完了。后来在调试一个永磁同步电机项目时,发现电流波形总是不对,查了三天才发现是变换矩阵的系数用错了。嗯,从那以后,我对这两个变换的理解就深了很多。

3.1 为什么要变换坐标系?

电机三相绕组在空间上差120°,通入三相正弦电流后,会产生一个旋转的磁场。这个磁场在静止三相坐标系(3s)下看,是三个分量在交替变化。

你想想看,控制三个随时间变化的正弦量,是不是很麻烦?PID调参都找不到基准点。

所以我们要做两件事:

  1. 降维:把三个变量变成两个变量(3s → 2s)
  2. 去交流化:把静止坐标系下的交流量,变成旋转坐标系下的直流量(2s → 2r)

这样一来,控制就变成了调两个直流量的PI,简单多了。

核心思想: 变换不改变物理本质,只改变观察角度。就像你站在路边看旋转木马(静止坐标系),和坐在木马上看(旋转坐标系),看到的运动形式完全不同。

3.2 Clark变换(3s/2s)

Clark变换,也叫3/2变换。它把三相静止坐标系(a, b, c)下的电压,投影到两相静止坐标系(α, β)上。

我习惯用等幅值变换,因为这样变换后的α、β分量幅值,和原来三相电压的幅值一样,调试时心里有数。

3.2.1 变换公式

假设三相电压为 \(u_a\)、\(u_b\)、\(u_c\),且满足 \(u_a + u_b + u_c = 0\)(无中线星形接法),则:

u_α = u_a
u_β = (u_a + 2*u_b) / √3

如果三相不平衡,或者需要保留零序分量,就要用完整的矩阵形式:

| u_α |   | 1    -1/2   -1/2 | | u_a |
| u_β | = | 0    √3/2  -√3/2| | u_b |
| u_0 |   | 1/2   1/2    1/2 | | u_c |

注意,这里用的是等幅值变换系数(2/3因子已隐含在矩阵中)。如果你用等功率变换,系数会不同,但最终SVPWM的效果是一样的。

我的经验: 在代码实现时,建议把变换矩阵的系数预先算好,写成常量。不要在每次PWM周期里重复计算sin、cos或开方,否则DSP的算力会白白浪费掉。

3.2.2 物理意义

Clark变换后,α-β坐标系是一个平面直角坐标系。α轴与a相轴线重合,β轴超前α轴90°。

原来三相电压合成的空间矢量,现在可以用一个在α-β平面上旋转的矢量 \(\vec{V}_s\) 来表示:

\(\vec{V}_s = u_α + j·u_β\)

这个矢量的幅值,就是三相电压合成的幅值;它的旋转角速度,就是电角频率。

3.3 Park变换(2s/2r)

Park变换,也叫2s/2r变换。它把静止的α-β坐标系,变换到随转子旋转的d-q坐标系。

为什么要转?因为对于永磁同步电机,d轴和q轴的磁路特性不同——d轴是永磁体励磁方向,q轴是转矩方向。控制时,我们希望d轴电流控制磁场,q轴电流控制转矩,互不干扰。

3.3.1 变换公式

Park变换需要一个关键参数:转子位置角 θ(d轴与α轴的夹角)。

u_d =  u_α * cosθ + u_β * sinθ
u_q = -u_α * sinθ + u_β * cosθ

写成矩阵形式:

| u_d |   |  cosθ   sinθ | | u_α |
| u_q | = | -sinθ   cosθ | | u_β |

反过来,从d-q变回α-β的逆Park变换:

| u_α |   |  cosθ  -sinθ | | u_d |
| u_β | = |  sinθ   cosθ | | u_q |

我曾经踩过的坑: 位置角θ的零点定义,不同电机厂商可能不同。有的把d轴对齐a相轴线,有的对齐反电动势过零点。如果θ零点没对齐,你会发现d轴和q轴的电流会串扰,怎么调PI都调不好。建议拿到电机后,先用手转动转子,用示波器看编码器Z信号和反电动势的相位关系,确认θ零点。

3.3.2 变换后的效果

经过Park变换,原来在α-β坐标系下旋转的电压矢量,在d-q坐标系下变成了静止的直流量。

这意味着:

  • u_d 控制励磁(对于永磁同步电机,通常控制为0)
  • u_q 控制转矩(与负载成正比)
  • 两个PI调节器可以独立设计,互不影响

3.4 电压空间矢量的合成

好了,现在我们知道怎么把三相电压变到d-q坐标系。但SVPWM的核心,是如何用逆变器的6个开关管,合成出任意方向的电压矢量。

3.4.1 基本电压矢量

三相两电平逆变器有6个开关管,上桥臂和下桥臂互补导通。每个桥臂的状态用1(上通下断)或0(下通上断)表示。

这样一共有8种开关组合:

状态 a相 b相 c相 矢量编号 矢量幅值
0 0 0 0 V0 0(零矢量)
1 1 0 0 V1 2/3·Vdc
2 1 1 0 V2 2/3·Vdc
3 0 1 0 V3 2/3·Vdc
4 0 1 1 V4 2/3·Vdc
5 0 0 1 V5 2/3·Vdc
6 1 0 1 V6 2/3·Vdc
7 1 1 1 V7 0(零矢量)

其中V1~V6是6个非零矢量,它们在α-β平面上互差60°,构成一个正六边形。V0和V7是零矢量,幅值为0。

3.4.2 合成原理

假设我们需要合成一个目标电压矢量 \(\vec{V}_{ref}\),它落在某个扇区里。我们可以用该扇区相邻的两个基本矢量,加上零矢量,通过时间平均来合成。

举个例子,如果 \(\vec{V}_{ref}\) 落在扇区I(V1和V2之间):

\(\vec{V}_{ref} = \frac{T_1}{T_s}·\vec{V}_1 + \frac{T_2}{T_s}·\vec{V}_2 + \frac{T_0}{T_s}·\vec{V}_0\)

其中:

  • T1、T2:V1、V2的作用时间
  • T0:零矢量作用时间
  • Ts:PWM周期,T1 + T2 + T0 = Ts

通过解这个矢量方程,就能算出T1和T2。具体公式我后面会详细推导,这里先记住核心思想:用相邻基本矢量合成任意矢量。

关键点: 合成后的矢量幅值不能超过六边形的内切圆半径,否则会进入过调制区。这个最大幅值是 \(\frac{V_{dc}}{\sqrt{3}}\),也就是SVPWM的线性调制区上限。

3.5 知识体系总览

下面这张图,把本章的三个核心内容串起来了:

电压空间矢量与坐标系变换知识体系 电压空间矢量与坐标系变换知识体系 三相静止坐标系 (a, b, c) / 3s Clark变换 两相静止坐标系 (α, β) / 2s Park变换 两相旋转坐标系 (d, q) / 2r 电压空间矢量合成 用6个基本矢量 + 2个零矢量,通过时间平均合成任意目标矢量 α-β平面上的矢量 扇区判断 根据u_α、u_β 确定目标矢量所在扇区 时间计算 计算T1、T2、T0 相邻基本矢量的作用时间 PWM生成 根据时间分配 生成三相PWM占空比 💡 学习路径建议: 先理解Clark和Park的物理意义,再掌握矢量合成的时间计算方法。 不要死记公式,要理解「为什么这样变换」和「变换后有什么好处」。

3.6 本章小结

这一章我们讲了三个核心内容:

  • Clark变换:把三相静止(a,b,c)变到两相静止(α,β),降维但不改变旋转特性
  • Park变换:把两相静止(α,β)变到两相旋转(d,q),把交流变直流,方便控制
  • 矢量合成:用6个基本矢量和2个零矢量,通过时间平均合成任意目标电压矢量