2. 空间矢量基础:Clark变换与Park变换回顾,电压空间矢量的概念
好,咱们进入第二章。这一章是FOC的数学基础,说白了就是搞明白两件事:怎么把三相电流拆成两个正交分量,以及怎么用空间矢量的视角看电压。
我记得刚入行那会儿,看到Clark和Park这两个名字,第一反应是“又来了,又是数学推导”。但后来在项目里调了几次波形,才真正体会到——没有这两个变换,FOC根本转不起来。
2.1 为什么需要坐标变换?
先问个问题:三相电机有三相绕组,电流是正弦波,互相差120度。你直接去控制这三相电流,能控吗?
能,但很麻烦。因为三相是耦合的,A相电流变化会影响B相和C相。而且转矩和磁通是混在一起的,你分不清哪个电流分量在出力,哪个在励磁。
所以我们需要解耦。把三相静止坐标系(abc)下的交流量,变成两相旋转坐标系(dq)下的直流量。这样,转矩和磁通就分开了,控制起来就像调直流电机一样简单。
这个解耦过程,分两步走:
- Clark变换:abc → αβ(三相静止 → 两相静止)
- Park变换:αβ → dq(两相静止 → 两相旋转)
核心思想:变换本身不改变物理本质,只是换了个坐标系看问题。就像你站在地上看旋转的风扇,和坐在风扇上看地面,看到的运动轨迹不同,但风扇还是那个风扇。
2.2 Clark变换:从abc到αβ
Clark变换的目标是:把三相电流 ia、ib、ic 投影到两相正交的α-β坐标系上。
数学表达式很简单:
iα = i_a
iβ = (1/√3) * (i_a + 2*i_b)
等一下,为什么 ic 没出现?因为三相电流满足 ia + ib + ic = 0(星形连接,中性点不接地),所以 ic 可以由前两个推出来。
写成矩阵形式更清楚:
[ iα ] [ 1 -1/2 -1/2 ] [ i_a ]
[ iβ ] = [ 0 √3/2 -√3/2 ] [ i_b ]
[ i0 ] [ 1/2 1/2 1/2 ] [ i_c ]
这里 i0 是零序分量,在平衡系统中为0,一般不管它。
我个人的习惯:在实际代码里,我通常用等幅值变换(系数2/3版本),这样变换后的αβ幅值和三相幅值一致,调试时看波形更直观。如果你用等功率变换,幅值会变,注意换算。
2.3 Park变换:从αβ到dq
Clark变换之后,我们得到了两个正交的正弦波 iα 和 iβ。但正弦波还是交流量,不好控。
Park变换就是干这个的——把静止的αβ坐标系,旋转起来。旋转角速度等于电角速度 ωe,旋转角度 θe 由编码器或观测器提供。
公式:
i_d = iα * cos(θe) + iβ * sin(θe)
i_q = -iα * sin(θe) + iβ * cos(θe)
变换之后,id 和 iq 就变成了直流量。其中:
- id:励磁分量,控制磁通
- iq:转矩分量,控制力矩
你想想看,两个直流量,用PI控制器就能轻松跟踪。这就是FOC的精髓。
我曾经踩过的坑:Park变换的角度 θe 必须和电机转子位置严格对齐。有一次我编码器安装时偏了5度,结果id和iq一直控不准,电机发热严重。后来用示波器抓了反电动势波形,才发现是角度偏了。所以,角度校准是FOC调试的第一步,千万别跳过。
2.4 电压空间矢量的概念
好,现在我们把电流变换到了dq坐标系。但控制最终要落实到电压上——你得给逆变器发PWM波,让电机两端产生正确的电压。
这里就引出了电压空间矢量的概念。
什么叫电压空间矢量?
简单说:三相逆变器有6个开关管,可以组合出8种开关状态(6个有效矢量 + 2个零矢量)。每种状态对应一个合成电压矢量,在αβ平面上画出来,就是六个方向、幅值相等的矢量,间隔60度。
这六个矢量围成一个正六边形。你想要的任意方向、任意大小的电压矢量,都可以用这六个矢量合成出来——这就是SVPWM(空间矢量脉宽调制)的基本原理。
一句话总结:电压空间矢量,就是把三相逆变器的开关状态,映射到αβ平面上的一个旋转矢量。你控制这个矢量的幅值和角度,就控制了电机的电压。
2.5 变换与空间矢量的关系图
下面这张图,把整个变换链路和空间矢量的关系画清楚了。我建议你多看几遍,把每一步的物理意义搞明白。
2.6 变换的逆过程
实际控制中,我们不光要正向变换(abc→αβ→dq),还要反向变换(dq→αβ→abc)。
因为PI控制器输出的是Vd*和Vq*(电压指令),需要先反Park变成Vα*和Vβ*,再通过SVPWM合成出三相电压。
反Park公式:
Vα* = Vd* * cos(θe) - Vq* * sin(θe)
Vβ* = Vd* * sin(θe) + Vq* * cos(θe)
你看,和正变换就差一个符号。代码实现时,我习惯把正反Park写成一个函数,用参数控制方向,省得写两遍。
2.7 常见问题与避坑
| 问题 | 原因 | 解决方法 |
|---|---|---|
| id和iq控不稳 | 角度θe不准或延迟 | 校准编码器零位,补偿角度采样延迟 |
| 电机发热严重 | id不为0,励磁过大 | 检查id参考值,表贴式电机id*=0 |
| 转矩输出不足 | SVPWM调制比受限 | 检查直流母线电压,考虑过调制 |
| 电流波形畸变 | Clark/Park变换系数错误 | 核对等幅值/等功率变换系数 |
我再强调一次:变换系数一定要和你的电流采样对齐。我见过有人用了等功率变换的系数,但电流采样是等幅值标定的,结果id和iq一直对不上,查了两天才发现。建议在代码里把变换矩阵写成常量,调试时用示波器抓αβ波形验证。
2.8 本章小结
这一章我们干了三件事:
- Clark变换:把三相电流变成两相正交电流(αβ)
- Park变换:把静止的两相电流变成旋转的两相直流(dq)
- 电压空间矢量:理解了逆变器开关状态如何映射到αβ平面上的电压矢量
这些变换是FOC的数学骨架。你不需要背公式,但一定要理解为什么这么做——说白了,就是为了把交流量变成直流量,把耦合变成解耦,把复杂控制变成简单PI。