2、空间矢量基础:Clark变换与Park变换
聊SVPWM之前,咱们得先把坐标系这件事搞清楚。我见过不少新手,一上来就盯着逆变器的开关状态看,结果越看越晕。其实你换个角度——从空间矢量的视角去看,整个问题就清晰多了。
说白了,SVPWM的核心思想,就是把三相交流电机里的电压、电流这些物理量,用一个旋转的空间矢量来表示。那怎么从实际的三相静止坐标,变到这个旋转的矢量空间呢?这就得靠Clark变换和Park变换了。
2.1 为什么要引入空间矢量?
三相电机有三相绕组,通的是三相正弦交流电。每一相都有自己的电压、电流,单独看每一相,都是随时间变化的正弦波。但你想过没有,这三相合在一起,会产生一个合成的磁场,这个磁场在空间中是旋转的。
我习惯用一个比喻:三相绕组就像三个壮汉在拉一个转盘,每个人用的力是正弦变化的,但三个人配合好,转盘就转起来了。我们关心的不是某个人出了多少力,而是转盘整体受到的合力——这个合力,就是空间矢量。
核心思想: 三相物理量(电压、电流、磁链)可以用一个在复平面内旋转的矢量 Vs 来等效表示。这个矢量的幅值代表合成量的大小,旋转角速度代表电角频率。
2.2 Clark变换:从三相静止到两相静止
Clark变换,也叫3/2变换。它的任务很简单:把三相静止坐标系(a, b, c)下的量,变换到两相静止坐标系(α, β)下。
为什么要这么干?因为三相系统有冗余。你想想看,三相电流满足 ia + ib + ic = 0,实际上只有两个自由度。用两相坐标系,刚好去掉冗余,而且α-β轴是正交的,控制起来方便多了。
变换公式长这样(以电压为例):
// Clark变换(等幅值变换)
V_alpha = V_a
V_beta = (V_a + 2*V_b) / sqrt(3)
注意,这里我写的是等幅值变换。还有一种叫等功率变换,系数会差一个√(2/3)。我个人习惯用等幅值变换,因为这样变换前后矢量的幅值不变,调试时看着直观。
我的经验: 在项目中,如果你用等幅值变换,SVPWM的调制比最大是1,也就是相电压幅值等于直流母线电压的一半。用等功率变换的话,这个系数会变。建议初学者先用等幅值,不容易搞混。
2.3 Park变换:从两相静止到两相旋转
Clark变换完了,我们得到了α-β静止坐标系下的矢量。但这个矢量还是旋转的——电机转起来,它也跟着转。控制起来还是麻烦,因为要给一个正弦波做参考。
Park变换就是来解决这个问题的。它把α-β静止坐标系,变换到d-q旋转坐标系。d轴和q轴跟着转子一起转,这样一来,原来旋转的矢量在d-q坐标系下就变成了直流量。
为什么会这样?你想想看,你坐在一个旋转的椅子上看一个旋转的物体,如果你们转速一样,那物体在你眼里就是静止的。Park变换就是这个道理。
变换公式:
// Park变换
Vd = V_alpha * cos(theta) + V_beta * sin(theta)
Vq = -V_alpha * sin(theta) + V_beta * cos(theta)
这里的θ是转子位置角,也就是d轴与α轴之间的夹角。
注意: 我曾经在调试一个高速电机时,发现电流环一直抖。查了半天,结果是Park变换里的角度θ给错了——用的是电角度,我误用了机械角度。电机极对数一多,差得可不是一星半点。切记:FOC里所有角度都是电角度。
2.4 三种坐标系的关系
为了让你看得更清楚,我画了一张图,把三种坐标系的关系串起来:
2.5 矢量表达:静止 vs 旋转
搞清楚了变换,咱们再聊聊矢量在不同坐标系下的表达方式。
2.5.1 静止坐标系下的矢量
在α-β坐标系下,电压矢量可以写成:
V_s = V_alpha + j * V_beta
这个矢量是旋转的,旋转角速度等于电角频率ωe。对于理想正弦波,Vα和Vβ都是正弦信号,相位差90度。
我记得刚做电机控制那会儿,用示波器看Vα和Vβ的波形,两个正弦波正交,挺漂亮的。但一接入闭环,波形就开始变形——后来才知道是死区效应和采样噪声搞的鬼。
2.5.2 旋转坐标系下的矢量
在d-q坐标系下,电压矢量变成:
V_s = V_d + j * V_q
稳态运行时,Vd和Vq都是直流量。这就是FOC的精髓——把交流量变成直流量,然后用PI控制器就能实现无静差跟踪。
关键对比:
- 静止坐标系: 矢量旋转,分量是正弦波,适合做开环V/F控制或直接转矩控制。
- 旋转坐标系: 矢量静止(相对转子),分量是直流量,适合做FOC矢量控制。
2.6 变换的工程实现要点
在实际代码里,Clark和Park变换就是几行乘加运算。但有几个坑,我帮你踩过了:
| 变换 | 常见坑点 | 我的建议 |
|---|---|---|
| Clark | 系数选错(等幅值 vs 等功率) | 统一用等幅值,SVPWM计算更直观 |
| Clark | 电流采样顺序搞反 | 先采a相,再采b相,c相用公式算 |
| Park | 角度θ用错(电角度 vs 机械角度) | θ = 机械角度 × 极对数 |
| Park | sin/cos计算精度不够 | 用查表法或CORDIC,别用泰勒展开 |
| 反Park | 符号搞反导致正反馈 | 先仿真验证,再上硬件 |
小技巧: 调试时,我习惯在DSP里把变换前后的数据通过DAC输出,用示波器看波形。Clark变换后,Vα和Vβ应该是两个正交的正弦波;Park变换后,Vd和Vq应该是平稳的直流量。如果看到波动,先检查角度对不对。
2.7 小结
这一节我们聊了空间矢量的基础——Clark变换和Park变换。说白了,就是坐标系的转换游戏:从三相到两相,从静止到旋转。掌握了这个,你就拿到了理解SVPWM的钥匙。
嗯,这里要再强调一句:变换本身不难,难的是理解为什么要这么变。你想想看,如果没有Park变换,我们就得用PR控制器去跟踪正弦波,参数调起来那叫一个痛苦。有了d-q坐标系,一切变成直流,PI控制器就能搞定,省心多了。