1. FOC 控制基础:从直流电机到交流电机的控制思维转变

做电机控制这么多年,我见过不少新手一上来就啃 FOC 公式,结果越看越懵。其实,FOC 没那么玄乎。说白了,它就是把交流电机“伪装”成直流电机来控制。你想想看,直流电机多好控啊——调电压就是调转速,调电流就是调转矩,简单粗暴。但交流电机呢?磁场在转,电流在变,你直接给它一个电压,它转不转得起来都两说。

所以,FOC 的核心就一句话:把交流电机的控制问题,转化成直流电机的控制问题。怎么转?靠的就是 Park 变换和 Clark 变换。这两个变换,就是 FOC 的“翻译官”。

核心思维转变: 从“控制三相交流量” → 变成“控制两个直流量”。你不再需要盯着 Ia、Ib、Ic 三个正弦波发愁,只需要盯住 Id 和 Iq 两个直流量,像调直流电机一样调它们就行。

1.1 直流电机为什么好控?

先聊聊直流电机。我刚开始做项目时,用的就是直流有刷电机。它的结构很简单:定子是永磁体,转子上绕线圈,通过换向器把电流“切”到合适的位置。你给电枢加电压,电流就产生力矩,转子就转起来了。

直流电机的控制模型,其实就是一个线性方程:

T = Kt * Ia

转矩 T 和电枢电流 Ia 成正比,Kt 是转矩常数。想调转矩?直接调电流就行。想调转速?调电压就行。控制量和被控量之间,是干干净净的线性关系。

但交流电机呢?它的磁场是旋转的,电流是交变的,转矩和电流之间还夹着一个“功率因数”和“磁链角度”。你直接给三相绕组通正弦波电流,产生的力矩是脉动的,不是恒定的。这就麻烦了——你没法像直流电机那样,用一个简单的 PID 就搞定。

我的经验: 早期做直流电机驱动时,我习惯用电流环 + 速度环两层 PID,调参特别顺手。后来转到交流电机,发现同样的 PID 结构根本压不住转矩脉动。那时候我才意识到——不是 PID 不行,是控制对象没“对齐”。

1.2 交流电机的控制难点

交流电机(比如永磁同步电机 PMSM)的数学模型,比直流电机复杂得多。它的电压方程和转矩方程里,包含转子位置 θ 和电感 Ld、Lq 这些参数。你直接控制三相电压 Ua、Ub、Uc,它们产生的电流 Ia、Ib、Ic 是正弦波,但转矩却是这些正弦波和转子磁场相互作用的结果。

举个例子:

Te = (3/2) * P * [ λf * Iq + (Ld - Lq) * Id * Iq ]

你看,转矩 Te 不仅和 Iq 有关,还和 Id 有关,而且 Id 和 Iq 是耦合在一起的。你调 Ua,会影响 Ia,但 Ia 里既有 Id 的成分又有 Iq 的成分——这就是耦合。耦合意味着你没法独立控制转矩和磁链。

所以,交流电机控制的核心难点就是:如何解耦。

1.3 FOC 的核心思想:解耦 + 等效

FOC 的思路很巧妙。它不直接去控制三相交流量,而是先通过坐标变换,把三相静止坐标系(abc)下的正弦量,变成两相旋转坐标系(dq)下的直流量。

这个变换分两步:

  1. Clark 变换: 把三相静止 abc 坐标系,变换到两相静止 αβ 坐标系。
  2. Park 变换: 把两相静止 αβ 坐标系,变换到两相旋转 dq 坐标系。

变换之后,原来随时间变化的正弦电流 Ia、Ib、Ic,变成了两个不随时间变化的直流量 Id 和 Iq。其中:

  • Id(直轴电流): 控制磁链(磁场强弱)。
  • Iq(交轴电流): 控制转矩(出力大小)。

你看,这不就和直流电机一样了吗?Id 相当于直流电机的励磁电流,Iq 相当于电枢电流。你调 Iq 就是调转矩,调 Id 就是调磁链,互不干扰——解耦完成。

FOC 的本质: 通过坐标变换,把交流电机这个“多变量、强耦合、非线性”的系统,等效成一个“双变量、解耦、线性”的系统。然后你就可以用直流电机的控制方法(比如 PI 调节器)去控制它了。

1.4 Park/Clark 变换的物理意义

很多教材把 Park 和 Clark 变换写成矩阵形式,然后让你背公式。我不喜欢这么教。你想想看,这两个变换到底在干什么?

Clark 变换:从“三个”到“两个”

三相绕组在空间上相差 120 度,它们产生的磁场可以合成一个旋转磁动势。但三个量太冗余了——实际上,两个正交的绕组(α 和 β)就能产生同样的旋转磁场。

Clark 变换就是干这个的:把 Ia、Ib、Ic 三个电流,投影到 α 和 β 两个正交轴上。公式很简单:

Iα = Ia
Iβ = (Ia + 2*Ib) / √3

(这里假设三相平衡,Ic = -Ia - Ib)

变换之后,Iα 和 Iβ 还是正弦波,只是从三个变成了两个。它们仍然随时间变化,没法直接用 PI 调。

Park 变换:从“静止”到“旋转”

Park 变换才是真正的“魔法”。它把 αβ 坐标系下的正弦波,投影到一个和转子同步旋转的 dq 坐标系上。

怎么投影?用转子位置角 θ。公式:

Id = Iα * cos(θ) + Iβ * sin(θ)
Iq = -Iα * sin(θ) + Iβ * cos(θ)

你想想看,如果 Iα 和 Iβ 是正弦波,而 θ 也在同步旋转,那么投影到 dq 轴上的 Id 和 Iq 就是直流量。为什么?因为坐标系和磁场一起转,相对静止了。

我的理解: Park 变换就像你坐在旋转木马上看旁边的马——虽然大家都在转,但相对位置不变,看起来就是静止的。FOC 就是让控制器“坐”在转子上看电流,看到的自然是直流量。

1.5 变换的逆过程:从控制量回到实际电压

控制环路算出来的是 Ud 和 Uq(直流量),但电机需要的是 Ua、Ub、Uc(交流量)。所以还得变回去:

  1. 逆 Park 变换: Ud、Uq → Uα、Uβ
  2. 逆 Clark 变换: Uα、Uβ → Ua、Ub、Uc

最后用 SVPWM(空间矢量脉宽调制)把 Ua、Ub、Uc 变成六路 PWM 波,驱动逆变器,给电机供电。

整个 FOC 的流程,我用一张图总结一下:

FOC 核心流程:从三相电流到 dq 控制再到 PWM 输出 FOC 核心流程:从三相电流到 dq 控制再到 PWM 输出 Ia, Ib, Ic Clark 变换 Iα, Iβ Park 变换 Id, Iq PI 控制器 Ud, Uq 逆 Park Uα, Uβ 逆 Clark SVPWM 逆变器 PMSM 电机 电流采样反馈 说明: Clark 变换:abc → αβ(三变二) Park 变换:αβ → dq(静变动) 逆变换则反向,最终输出 PWM

1.6 实际调试中的注意事项

理论讲完了,聊点实际的。我在调试 FOC 电流环时,遇到过几个坑:

我曾经踩过的坑:

  • 转子位置角 θ 不准: Park 变换依赖 θ,如果角度有偏差,Id 和 Iq 会耦合。我遇到过编码器安装偏心导致角度误差 5 度,结果 Iq 调上去后 Id 也跟着跳,电流环怎么调都稳不住。后来用角度补偿才解决。
  • Clark 变换的系数: 等幅值变换和等功率变换的系数不同。我习惯用等幅值变换(系数 2/3),因为 PI 输出直接对应相电压幅值,好理解。但如果你用等功率变换,PI 参数要重新标定。
  • 采样同步: 电流采样必须在 PWM 载波周期内同步触发,否则采到的电流不是真实值。我早期用定时器中断随便采,结果 Id/Iq 波形全是毛刺,折腾了两天才发现是采样点没对齐。

我的建议: 刚开始调 FOC 时,先开环跑一下,确认 Clark/Park 变换的方向和角度对不对。你可以给电机一个固定的 Ud 和 Uq,看它能不能平稳转起来。如果转起来电流波形是正弦的,说明变换没问题。然后再闭环调 PI。

1.7 本章小结

FOC 的核心,就是通过坐标变换把交流电机“伪装”成直流电机。Clark 变换把三相变两相,Park 变换把静止变旋转。变换之后,你只需要控制 Id 和 Iq 两个直流量,就能独立控制磁链和转矩。

这个思维转变很重要——你不再是“调三相电压”,而是“调 dq 轴电流”。后面讲电流环带宽调试时,所有的 PI 参数、带宽计算、相位裕度,都是基于这个 dq 坐标系展开的。

嗯,先把基础打牢,后面才不慌。