一、FOC概述与数学基础
大家好,我是你们的老朋友。今天咱们开始聊FOC,也就是磁场定向控制。
说实话,我第一次接触FOC是在做一款伺服驱动器的时候。当时看着电机转得挺顺,但一加载就抖得跟筛子似的。后来才明白,核心问题就出在对磁场方向的理解上。嗯,这节课咱们就把这个基础打牢。
1.1 FOC的基本原理
FOC说白了,就是把交流电机当成直流电机来控制。你想想看,直流电机多好控制啊——调电压就调速,调电流就调转矩。但交流电机不行,它的磁场是旋转的,电流和磁场之间有个夹角,这个夹角一变,转矩就跟着变。
FOC的核心思路就是:实时跟踪转子磁场的位置,然后让定子电流始终垂直于这个磁场。这样一来,交流电机就能像直流电机一样,实现转矩和磁通的独立控制。
关键点:FOC不是一种硬件方案,而是一种控制策略。它通过数学变换,把三相交流量变成两相直流量,再用经典的PI控制器去调节。
我在项目中遇到过一个问题:有人觉得FOC只适用于永磁同步电机(PMSM)。其实不是的,异步电机、甚至直流无刷电机(BLDC)都能用FOC,只是数学模型略有不同。
1.2 坐标变换
坐标变换是FOC的数学基础。说白了,就是把三相坐标系下的物理量,映射到两相旋转坐标系下。这里有两个核心变换:Clark变换和Park变换。
1.2.1 Clark变换(3相→2相静止)
Clark变换把三相电流(ia、ib、ic)变换到两相静止坐标系(α、β)上。公式很简单:
iα = ia
iβ = (ia + 2*ib) / √3
注意,这里假设三相电流是平衡的,即ia + ib + ic = 0。如果不平衡,需要加一个零序分量。嗯,实际项目中三相电流很少完全平衡,所以我会在代码里加一个补偿项。
我的习惯:在嵌入式实现时,Clark变换我一般用定点数计算,避免浮点运算带来的性能开销。比如把√3近似为1.732,然后左移15位做Q15格式运算。
1.2.2 Park变换(2相静止→2相旋转)
Park变换把αβ坐标系下的量,变换到dq旋转坐标系下。d轴对准转子磁场方向,q轴超前d轴90度。
id = iα * cosθ + iβ * sinθ
iq = -iα * sinθ + iβ * cosθ
这里的θ是转子电角度。我刚开始做的时候,总搞不清θ从哪里来。后来明白了:θ必须来自位置传感器(编码器、霍尔)或者无位置观测器。没有准确的θ,FOC就是空中楼阁。
避坑指南:我曾经在项目里直接用霍尔传感器的60度分辨率做Park变换,结果转矩脉动大得离谱。后来加了插值算法,把角度分辨率提高到0.1度,问题才解决。记住,Park变换对角度精度要求很高。
1.3 SVPWM调制策略
SVPWM(空间矢量脉宽调制)是FOC的“执行层”。它负责把dq坐标系下的电压指令,转换成三相逆变器的开关信号。
为什么用SVPWM而不是传统的SPWM?因为SVPWM的电压利用率更高,能达到直流母线电压的0.577倍,而SPWM只有0.5倍。说白了,同样的母线电压,SVPWM能让电机跑得更快。
SVPWM的核心是判断参考电压矢量落在哪个扇区,然后计算相邻两个基本矢量的作用时间。这里有个经典公式:
T1 = √3 * Ts * (Vα * sin(π/3 - θ) - Vβ * cos(π/3 - θ)) / Vdc
T2 = √3 * Ts * (-Vα * sin(θ) + Vβ * cos(θ)) / Vdc
其中Ts是开关周期,Vdc是母线电压。嗯,实际代码里我会先查表得到sin和cos值,避免实时计算三角函数。
经验之谈:SVPWM的载波频率选择很关键。频率太高,开关损耗大;频率太低,电流纹波大。我一般选10kHz-20kHz,具体看MOS管的开关速度和散热条件。
1.4 电机数学模型
要理解FOC,必须懂电机的数学模型。这里以永磁同步电机(PMSM)为例。
在dq坐标系下,PMSM的电压方程是:
Vd = Rs * id + Ld * did/dt - ω * Lq * iq
Vq = Rs * iq + Lq * diq/dt + ω * (Ld * id + ψf)
其中:
- Rs:定子电阻
- Ld、Lq:d轴和q轴电感
- ω:电角速度
- ψf:永磁体磁链
转矩方程更直观:
Te = 1.5 * p * (ψf * iq + (Ld - Lq) * id * iq)
你看,转矩由两部分组成:永磁转矩(ψf * iq)和磁阻转矩((Ld-Lq) * id * iq)。对于表贴式PMSM(Ld≈Lq),磁阻转矩几乎为零,所以只控制iq就行。但对于内嵌式PMSM(Ld < Lq),可以利用磁阻转矩来提高效率——这就是MTPA(最大转矩电流比)控制的基础。
我的建议:刚开始学FOC,先别碰内嵌式电机。从表贴式PMSM入手,只控制iq,id给0,这样调试起来简单很多。等把PI参数调顺了,再考虑MTPA、弱磁这些高级玩法。
知识体系总览
下面这张图是我自己画的,把FOC的核心知识串起来了。你仔细看看,每个模块之间是怎么关联的。
你看,整个FOC系统就是个闭环:从物理量采样,到坐标变换,到PI控制,再到SVPWM输出,最后回到电机。其中角度θ贯穿始终,是连接所有模块的纽带。
好了,这一章的内容就到这里。记住,FOC的数学基础虽然看起来复杂,但核心就是三个变换加一个模型。把这些搞懂了,后面的代码实现就是水到渠成的事。