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)下的直流量。
这个变换分两步:
- Clark 变换: 把三相静止 abc 坐标系,变换到两相静止 αβ 坐标系。
- 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(交流量)。所以还得变回去:
- 逆 Park 变换: Ud、Uq → Uα、Uβ
- 逆 Clark 变换: Uα、Uβ → Ua、Ub、Uc
最后用 SVPWM(空间矢量脉宽调制)把 Ua、Ub、Uc 变成六路 PWM 波,驱动逆变器,给电机供电。
整个 FOC 的流程,我用一张图总结一下:
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 坐标系展开的。
嗯,先把基础打牢,后面才不慌。