1. 为什么需要坐标变换?
上一篇我们讲到,FOC的核心是控制id和iq——把定子电流分解成产生磁通的d轴分量和产生转矩的q轴分量。
但现实是:我们能直接测量和控制的只有三相电流 ia, ib, ic,它们是随转子位置不断变化的交流量。而我们想要控制的id和iq是直流量(在稳态下)。
我们能控制的是三相交流量,我们想控制的是旋转坐标系下的直流量。坐标变换就是在这两者之间架起桥梁。
FOC中的坐标变换分两步:
- Clarke变换:三相静止坐标系(ABC) → 两相静止坐标系(αβ)
- Park变换:两相静止坐标系(αβ) → 两相旋转坐标系(dq)
反过来,从dq到ABC需要反Park变换和反Clarke变换(在SVPWM中完成)。
2. Clarke变换:3相 → 2相静止
2.1 几何意义
三相电流ia, ib, ic在空间上相差120°,它们可以合成一个空间电流矢量。Clarke变换的本质就是把这个三维的矢量投影到一个二维平面上。
α轴与A相重合,β轴超前α轴90°。
2.2 公式推导
等幅值Clarke变换(最常用,保证变换前后幅值不变):
iα = ia
iβ = (ia + 2·ib) / √3
由于三相电流满足 ia + ib + ic = 0(星形连接,无中线),所以只需要测量两相电流就能算出第三相。
Clarke变换有两种常见形式:等幅值变换(变换后αβ幅值与相电压幅值相同)和等功率变换(变换前后功率不变,系数为√(2/3))。FOC中一般用等幅值变换,因为PI参数整定更直观。本文所有公式均为等幅值变换。
3. Park变换:2相静止 → 2相旋转
3.1 几何意义
Clarke变换后,iα和iβ仍然是随转子旋转的交流量。Park变换做的事情是:把坐标系也跟着转子一起旋转。
想象你站在地面上看一个旋转的矢量——它在你眼中是不断转动的(交流量)。但如果你站在一个和矢量同速旋转的转盘上看它,它就是静止的(直流量)。Park变换就是让你"站到转盘上"。
d轴与转子磁场方向重合,q轴超前d轴90°。d和q坐标系以转子电角速度ω旋转。
3.2 公式推导
设转子电角度为θ(d轴与α轴的夹角),则Park变换为:
id = iα·cosθ + iβ·sinθ
iq = -iα·sinθ + iβ·cosθ
反Park变换(从dq回到αβ):
vα = vd·cosθ - vq·sinθ
vβ = vd·sinθ + vq·cosθ
不同教材和代码库中,Park变换的符号约定可能不同(有的q轴定义为滞后d轴90°,有的是超前)。这会导致iq的符号相反。在移植代码或对比公式时,一定要先确认符号约定。本文采用q轴超前d轴90°的约定(电动机惯例,正iq产生正转矩)。
4. 交互式演示:完整坐标变换
下面这个工具可以让你直观理解整个变换过程。拖动滑块调节三相电流幅值和转子角度,观察αβ矢量和dq分量的实时变化。
观察要点:
- 当电流相位δ=90°时,电流矢量与q轴重合,id=0, iq=最大值——这是纯转矩电流,效率最高
- 当δ=0°时,电流矢量与d轴重合,iq=0——不产生转矩,只产生磁通
- 旋转转子角度θ时,iα和iβ在变化,但id和iq保持不变——这就是Park变换的魔力
5. FOC控制环中的坐标变换
现在把坐标变换放到完整的FOC控制环中看:
测量 ia, ib → Clarke变换 → iα, iβ → Park变换(θ) → id, iq
→ PI控制器(d轴和q轴) → vd, vq → 反Park变换(θ) → vα, vβ → SVPWM → 六路PWM输出
注意几个关键点:
- Clarke和Park变换在电流采样后,把反馈电流变换到dq坐标系
- PI控制器在dq坐标系下工作,控制的是直流量,所以PI参数整定和直流系统一样简单
- 反Park变换在PI控制器后,把控制电压变换回静止坐标系
- SVPWM接收vα和vβ,生成六路PWM(下一篇详细讲)
- 所有变换都需要实时的转子角度θ,来自编码器、霍尔或无感观测器
6. 代码实现(C语言)
坐标变换的代码非常简洁,每个变换只有几行。在FOC中,这些运算每个PWM周期都要执行一次(通常20kHz)。
在Cortex-M0等低性能MCU上,sinf/cosf浮点运算可能较慢。优化方法:①用查表法(256点或512点正弦表)代替sinf/cosf;②用定点数运算(Q15/Q31格式);③利用PWM模块的硬件坐标变换(部分MCU支持)。对于20kHz的FOC,即使是Cortex-M0+,用查表法也能轻松跑满。
7. 常见误区
误区1:Clarke变换需要测三相电流
不需要。由于 ia+ib+ic=0,测两相就能算出第三相。三电阻采样测三相是为了在PWM特殊扇区也能获得有效采样,不是Clarke变换本身需要。
误区2:Park变换的角度用电角度还是机械角度
必须用电角度。电角度 = 机械角度 × 极对数。例如7对极电机,机械转一圈(360°),电角度转7圈(2520°)。用错角度会导致id/iq完全错误,电机不转或剧烈振动。
误区3:坐标变换有误差没关系
关系很大。Clarke变换的系数误差、Park变换的角度误差、电流采样的偏移误差,都会直接导致id/iq不准确,表现为转矩脉动大、效率低、电流波形畸变。FOC调参的很大一部分工作就是校准这些误差。
8. 小结
- Clarke变换把三相交流量变成两相静止交流量(αβ),本质是三维到二维的投影
- Park变换把两相静止交流量变成两相旋转直流量(dq),本质是坐标系跟着转子旋转
- id控制磁通,iq控制转矩;id=0时效率最高
- FOC控制环中:采样→Clarke→Park→PI→反Park→SVPWM,形成闭环
- Park变换必须用电角度,符号约定要统一,代码中注意sin/cos的性能优化
下一篇我们将进入FOC的另一个核心模块——SVPWM空间矢量调制,理解vα和vβ是如何变成六路PWM波形的。