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矢量合成的核心逻辑:
3.5 从理论到实践的几点提醒
理论讲完了,说点实际的。我在调试第一版SVPWM程序时,遇到过几个坑:
- 角度对齐: Park变换用的θ,必须和电机转子实际位置对齐。差一个电角度,Id和Iq就解耦不干净,转矩会抖动。我建议上电后先做一次角度校准。
- 变换系数一致性: Clark变换用等幅值,反Park变换也要用等幅值。混用会导致电压增益错误。
- 扇区边界处理: 参考矢量刚好落在扇区边界时,计算Tx、Ty要小心除零。我一般加一个很小的死区值,避免数值不稳定。
- 零矢量分配: V0和V7的分配方式,会影响谐波含量和开关损耗。七段式SVPWM比五段式谐波小,但开关次数多。这个后面会专门讲。
调试小技巧: 刚开始调SVPWM时,可以先给一个固定的Vα、Vβ,看逆变器输出是不是正确的三相正弦波。用示波器量一下相电压波形,如果马鞍波形状对了,说明变换和合成逻辑基本没问题。
嗯,空间矢量基础就聊到这儿。Clark和Park变换是矢量控制的两条腿,矢量合成是SVPWM的心脏。这三者配合好了,后面的调制、死区补偿、过调制处理才能站得住脚。