3、空间矢量基础:Clark变换、Park变换与矢量合成原理

聊SVPWM,绕不开坐标变换。很多初学者一看到Clark、Park就头大,觉得公式多、概念绕。其实说白了,就是把电机里那些旋转的、耦合的物理量,拆解成我们好控制的直流分量。

我个人习惯把坐标变换理解成「换视角看问题」。你站在不同坐标系下,同一个电压矢量长得不一样,但本质没变。今天我们就从abc自然坐标系开始,一步步走到dq旋转坐标系。

3.1 为什么需要坐标变换?

三相电机里,A、B、C三相电压是耦合的。你控制A相,B相和C相也会跟着动。这就像三个人抬轿子,一个人使劲,另外两个人也得调整。直接控制三相正弦量,计算量大,还不直观。

坐标变换的目的,就是解耦。把三个耦合的交流量,变成两个独立的直流量。这样控制起来,就跟控制直流电机一样简单。

核心思想: 三相静止 → 两相静止 → 两相旋转。每一步都在简化问题。

3.2 Clark变换:abc → αβ

Clark变换,也叫3/2变换。把三相静止坐标系(A、B、C)映射到两相静止坐标系(α、β)。α轴和A轴重合,β轴超前α轴90度。

公式很简单:

// 等幅值变换(常用)
Iα = Ia
Iβ = (Ia + 2*Ib) / √3

// 或者写成矩阵形式
| Iα |   | 1      -1/2      -1/2   | | Ia |
| Iβ | = | 0      √3/2     -√3/2  | | Ib |
| I0 |   | 1/2     1/2       1/2   | | Ic |

注意,这里有个小坑。Clark变换有两种常用形式:等幅值变换和等功率变换。我刚开始做项目时,没注意这个区别,结果算出来的电压幅值总对不上,查了半天才发现是变换系数的问题。

避坑指南: 等幅值变换下,αβ坐标系下的电压幅值与三相电压幅值相等。等功率变换下,功率守恒但幅值会变。SVPWM调制中,我建议统一用等幅值变换,后续计算扇区、作用时间时更直观。

变换后的αβ坐标系,两个轴互相垂直,没有耦合。但问题来了——αβ坐标系是静止的,而电机转子在转。你看到的电压矢量,在αβ坐标系下还是正弦波。控制起来依然麻烦。

3.3 Park变换:αβ → dq

Park变换解决了这个问题。它把静止的αβ坐标系,旋转到与转子磁场同步的dq坐标系。d轴(直轴)与转子磁极对齐,q轴(交轴)超前d轴90度。

公式:

Id = Iα * cos(θ) + Iβ * sin(θ)
Iq = -Iα * sin(θ) + Iβ * cos(θ)

// 矩阵形式
| Id |   | cosθ   sinθ | | Iα |
| Iq | = | -sinθ  cosθ | | Iβ |

θ是转子位置角,也就是d轴与α轴的夹角。这个角度通常由编码器或观测器提供。

你想想看,经过Park变换后,Id和Iq变成了什么?

  • Id(励磁分量): 控制磁通大小。Id越大,磁场越强。
  • Iq(转矩分量): 控制转矩输出。Iq越大,电机出力越大。

这两个量是直流量!你只需要控制两个直流量的给定值,就能精确控制电机的转矩和磁通。这就是矢量控制的精髓。

我的经验: 实际调试时,Id通常给0(表贴式永磁电机),只调节Iq来控制转矩。但内嵌式永磁电机需要弱磁控制,Id要负向给定。这个后面章节会细讲。

3.4 矢量合成原理

好了,现在我们知道怎么把三相量变成两相旋转量。但SVPWM的核心,是怎么用逆变器的8个基本电压矢量,合成任意方向、任意大小的参考电压矢量。

逆变器有6个开关管,组成3个桥臂。每个桥臂有两种状态:上管导通(1)或下管导通(0)。所以总共2³ = 8种状态。

矢量编号 开关状态 (A B C) α轴分量 β轴分量 幅值
V0 000 0 0 0
V1 100 2/3 Vdc 0 2/3 Vdc
V2 110 1/3 Vdc 1/√3 Vdc 2/3 Vdc
V3 010 -1/3 Vdc 1/√3 Vdc 2/3 Vdc
V4 011 -2/3 Vdc 0 2/3 Vdc
V5 001 -1/3 Vdc -1/√3 Vdc 2/3 Vdc
V6 101 1/3 Vdc -1/√3 Vdc 2/3 Vdc
V7 111 0 0 0

6个非零矢量(V1~V6)把平面分成6个扇区,每个扇区60度。V0和V7是零矢量,幅值为0。

矢量合成的原理,就是「伏秒平衡」。在一个PWM周期内,用相邻的两个非零矢量和零矢量,按时间比例组合,使平均效果等于参考矢量。

公式表达:

Vref * Ts = Vx * Tx + Vy * Ty + V0 * T0

其中:
- Vref:参考电压矢量
- Ts:PWM周期
- Vx、Vy:相邻的两个非零矢量
- Tx、Ty:对应的作用时间
- T0:零矢量作用时间(T0 = Ts - Tx - Ty)

举个例子,如果Vref落在第I扇区(0°~60°),就用V1(100)和V2(110)来合成。Tx和Ty的计算公式:

Tx = √3 * Ts * |Vref| / Vdc * sin(60° - θ)
Ty = √3 * Ts * |Vref| / Vdc * sin(θ)
T0 = Ts - Tx - Ty

θ是Vref在扇区内的角度偏移。

关键点: 只要Vref的幅值不超过六边形内切圆(即最大不失真电压为Vdc/√3),就能用SVPWM精确合成。超过这个范围,就会进入过调制区,输出波形会失真。

下面这张图,展示了从三相静止到两相旋转的完整变换链路,以及SVPWM矢量合成的核心逻辑:

空间矢量变换与SVPWM合成链路 三相静止 abc Clark 变换 两相静止 αβ Park 变换 两相旋转 dq 扇区判断 Tx Ty 计算 PWM 比较输出 说明: 1. 左侧路径(abc → Clark → αβ → Park → dq)是矢量控制的正向变换链路。 2. 右侧路径(αβ → 扇区判断 → Tx/Ty计算 → PWM输出)是SVPWM的合成链路。 3. 实际控制中,dq轴给定经过反Park变换回到αβ,再送入SVPWM模块。 4. 扇区判断依据Vα、Vβ的符号和比例关系,确定参考矢量落在哪个60°扇区。 5. Tx、Ty是相邻两个非零矢量的作用时间,T0由PWM周期减去Tx、Ty得到。

3.5 从理论到实践的几点提醒

理论讲完了,说点实际的。我在调试第一版SVPWM程序时,遇到过几个坑:

  • 角度对齐: Park变换用的θ,必须和电机转子实际位置对齐。差一个电角度,Id和Iq就解耦不干净,转矩会抖动。我建议上电后先做一次角度校准。
  • 变换系数一致性: Clark变换用等幅值,反Park变换也要用等幅值。混用会导致电压增益错误。
  • 扇区边界处理: 参考矢量刚好落在扇区边界时,计算Tx、Ty要小心除零。我一般加一个很小的死区值,避免数值不稳定。
  • 零矢量分配: V0和V7的分配方式,会影响谐波含量和开关损耗。七段式SVPWM比五段式谐波小,但开关次数多。这个后面会专门讲。

调试小技巧: 刚开始调SVPWM时,可以先给一个固定的Vα、Vβ,看逆变器输出是不是正确的三相正弦波。用示波器量一下相电压波形,如果马鞍波形状对了,说明变换和合成逻辑基本没问题。

嗯,空间矢量基础就聊到这儿。Clark和Park变换是矢量控制的两条腿,矢量合成是SVPWM的心脏。这三者配合好了,后面的调制、死区补偿、过调制处理才能站得住脚。