1. FOC基础回顾:FOC原理、Clark变换、Park变换、SVPWM核心思想

各位同学好,我是你们的老朋友。今天咱们正式开始《FOC速度环与位置环调优实战》的第一讲。

说实话,FOC(磁场定向控制)这东西,刚接触时确实有点绕。我当年第一次看FOC的框图,满脑子都是问号——这α、β、d、q到底在干嘛?别急,今天我就用最接地气的方式,把这几个核心概念给你讲透。

1.1 FOC到底在干什么?

FOC,说白了就是让电机转得又稳又省电。它的核心思想很简单:把三相交流电机的控制,变成像直流电机一样简单

你想想看,直流电机多好控制啊——给电压就转,电压越高转得越快。但三相交流电机呢?三根线,电流还一直在变,怎么控?

FOC的思路就是:先通过坐标变换,把三相静止的坐标系,变成两相旋转的坐标系。这样一来,原本随时间变化的交流量,就变成了直流量。控制直流量的PID,咱们可太熟了。

核心思想总结:

  • 三相交流 → 两相静止(Clark变换)
  • 两相静止 → 两相旋转(Park变换)
  • 在旋转坐标系下,用PID控制直流量
  • 再通过逆变换,还原成三相电压(SVPWM)

嗯,这里要注意:FOC不是万能的。我在项目中遇到过低速大扭矩的场合,FOC确实比六步换相强太多。但如果你只是做个风扇,六步换相就够用了,别杀鸡用牛刀。

1.2 Clark变换:从三相到两相

Clark变换,就是把三相静止坐标系(A、B、C)变成两相静止坐标系(α、β)。

为什么要这么干?因为三相之间差了120度,计算起来太麻烦。变成两相后,α轴和β轴垂直,数学上好处理得多。

公式其实很简单:

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

等等,你是不是觉得少了点什么?没错,这里假设了三相平衡(Ia + Ib + Ic = 0)。如果三相不平衡,那就得用完整的变换矩阵了。

我的经验:实际项目中,电流采样往往有偏差。我建议你在做Clark变换前,先做一次电流校准。否则变换后的α、β分量会带直流偏置,后面Park变换出来的d、q轴电流也会抖。

1.3 Park变换:从静止到旋转

Clark变换完了,我们有了Iα和Iβ。但这两个量还是随时间变化的(电机在转嘛)。

Park变换就是来解决这个问题的。它把α、β坐标系旋转起来,旋转速度和电机同步。这样,原本旋转的矢量,在新的坐标系下就静止了。

公式:

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

这里的θ,就是转子位置角。所以你看,FOC必须要有位置传感器(或者无传感器算法),否则Park变换没法做。

我个人习惯把Id叫做「励磁电流」,Iq叫做「转矩电流」。为什么?因为Id产生磁场,Iq产生力矩。控制电机,说白了就是控制Iq。

避坑指南:我曾经在调试时发现Iq给上去,电机就是不动。查了半天,原来是Park变换的角度搞反了。记住:Park变换的角度,是转子磁极的位置,不是编码器的原始值。两者之间可能有偏移,需要做角度校准。

1.4 SVPWM核心思想

SVPWM,全称是空间矢量脉宽调制。它的目标很简单:用开关管的通断,合成出我们想要的电压矢量

传统的SPWM(正弦脉宽调制)是分别调制三相,但SVPWM更聪明——它把三相看作一个整体,直接合成旋转的电压矢量。

SVPWM的核心步骤:

  1. 判断目标电压矢量在哪个扇区
  2. 计算相邻两个基本矢量的作用时间
  3. 计算零矢量的作用时间
  4. 生成PWM波形

这里我画了一张图,帮你理解SVPWM的扇区划分和矢量合成逻辑:

SVPWM扇区划分与矢量合成示意图 扇区I 扇区II 扇区III 扇区IV 扇区V 扇区VI V1(100) V2(110) V3(010) V4(011) V5(001) V6(101) Vref T1/Ts T2/Ts 基本矢量 目标矢量Vref 作用时间分解

你看这张图,六边形被分成了6个扇区。每个扇区由两个基本矢量围成。我们要合成的目标矢量Vref,就由这两个基本矢量按时间比例合成。

比如Vref在扇区I,那就用V1和V2来合成。T1是V1的作用时间,T2是V2的作用时间,剩下的时间用零矢量(V0或V7)填充。

SVPWM相比SPWM的优势:

  • 直流母线电压利用率更高(可提升约15%)
  • 谐波含量更低
  • 更适合数字化实现

1.5 三者之间的关系

Clark变换、Park变换、SVPWM,这三者构成了FOC的完整链路:

步骤 输入 输出 作用
Clark变换 Ia, Ib, Ic Iα, Iβ 三相→两相静止
Park变换 Iα, Iβ, θ Id, Iq 两相静止→两相旋转
PID控制 Id_ref, Iq_ref Vd, Vq 在旋转坐标系下控制
逆Park变换 Vd, Vq, θ Vα, Vβ 两相旋转→两相静止
SVPWM Vα, Vβ PWM占空比 合成电压矢量

说白了,整个FOC就是:采样电流 → 变换到旋转坐标系 → PID控制 → 变换回静止坐标系 → 生成PWM。每一步都有它的物理意义,缺一不可。

我的建议:刚开始学FOC时,别急着调参数。先把Clark、Park、SVPWM这三个变换的代码写对,然后用仿真验证。我当年就是直接在板子上调,结果电流波形乱七八糟,后来才发现是Park变换的角度符号搞反了。先在仿真里跑一遍,能省很多时间。

好了,FOC的基础就回顾到这里。这些内容虽然基础,但非常重要。后面的速度环和位置环调优,全都建立在这些变换之上。如果你对Clark、Park、SVPWM还有疑问,建议多看几遍,或者动手写写代码。实践出真知嘛。


专注资料整理