FOC理论总结
文中引用图片文字可能来自其他博客文章,
一、引言
什么是FOC(Field Oriented Control)?
FOC(Field-Oriented Control,磁场定向控制),也称为矢量控制(Vector Control, VC),是一种高性能电机控制策略,目前被广泛认为是控制无刷直流电机(BLDC)和永磁同步电机(PMSM)的最优方法之一。它通过精确调节电机磁场的大小和方向,实现平稳转矩输出、低噪声、高效率和快速动态响应。
简单来说,FOC是一种“精细化”驱动无刷电机的方法,使得对电机的控制如同“像素级”般精准,突破了传统控制方式在性能和响应速度上的限制。
FOC的关键步骤包括三相电流采样、Clarke 和 Park 变换、电流闭环控制、SVPWM 调制等。典型FOC控制原理如下图:

FOC与传统控制方式的对比
| 控制方式 | 控制原理 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|---|
| 六步控制(方波控制) | 按固定顺序依次导通三相桥臂,实现换相 | 实现简单,成本低 | 转矩脉动大,噪声大,低速性能差 | 无刷直流电机(BLDC)低成本应用 |
| V/f控制(电压频率比) | 维持定子电压与频率的固定比例 | 实现简单,适用于开环系统 | 稳定性差,负载变化时调速精度低 | 感应电机变频器、风机水泵等场合 |
| FOC控制(磁场定向) | 电流解耦控制,实现磁场与转矩独立调节 | 动态性能优,高效率,低噪声 | 实现复杂,对采样与计算要求高 | 高性能伺服、工业自动化、电动车驱动等 |
FOC的优点与应用场景
主要优点:
- 转矩与磁场分离控制:使电机响应更快,控制更精确;
- 良好的低速性能:即使在接近零速时仍可保持稳定运行;
- 低转矩脉动、低噪音:输出更平滑,适合对振动敏感的场合;
- 高效率运行:实现最大转矩电流比(MTPA)控制,提升能效;
- 可拓展性强:支持传感器控制与无传感器估算,灵活适配各种应用。
典型应用场景:
- 工业伺服系统、CNC控制
- 电动汽车驱动系统(EV/HEV)
- 无人机、电动滑板车等便携设备
- 医疗与机器人领域的精密驱动
二、基础理论
2.1 无刷电机(BLDC)基础
无刷直流电动机(BLDC,Brushless DC Motor)是一种没有机械电刷和换向器的电动机,取而代之的是通过电子换向实现电流的切换。BLDC电机利用转子上的永磁体位置来调节定子绕组的电流方向和幅值,从而产生所需的电磁转矩,实现高效、精准的转动控制。其内部结构与永磁同步电机(PMSM,Permanent Magnet Synchronous Motor)非常相似,均采用永磁体转子和多相定子绕组,但两者在驱动和控制策略上有所区别。本文主要聚焦于BLDC的基本工作原理与控制方法,不展开详细比较两者的差异。
三相无刷电机根据转子与定子的位置关系,主要分为外转子(Outer Rotor)和内转子(Inner Rotor)两种结构,区别如下图:

驱动这种三相无刷电机最简单的方式是使用六步换相控制,每次同时控制两个线圈导通,按顺序从1-6变更通电模式,则合成磁通量将顺时针旋转。
通过变更合成磁通量的方向,控制速度,可控制转子的旋转速度。将切换这6种通电模式来控制电机的控制方法称为“六步换相控制(Six-Step Commutation)”,或称“120度通电控制”、“梯形控制(Trapezoidal Control)”,整个流程如下:
图源: https://blog.csdn.net/yck1716/article/details/136143289 (仅个人学习使用)

实际控制时,一般使用6个MOS管来进行驱动,典型电路如下:
图源: https://blog.csdn.net/hcx25909/article/details/137464460(仅个人学习使用)

六步换向存在的问题为:换相时转矩不平滑,导致电机振动和噪音较大;电流波形不是正弦,效率较低;控制精度有限,难以实现高速平滑调速。简单来说,就是运行不够平稳,噪音和效率都一般。
FOC 是目前高端无刷电机控制中最常见的方法之一,它将三相电流变换为转子坐标系中的直轴电流(Id)和交轴电流(Iq),分别控制磁通和转矩。其核心思想是将控制从“电机绕组角度”转化为“磁场方向角度”,实现精准控制。
FOC 控制中通常包括 Clarke 变换、Park 变换、PI 电流环调节器以及SVPWM输出模块,控制流程较为复杂,但能提供极佳的转矩控制精度、低噪音与高效率。
2.2 坐标变换理论
在 BLDC(特别是正弦波驱动与 FOC 控制)中,为了实现对三相电机电流/电压的精确调节,需对三相静态坐标系下的量进行坐标变换,转化到更适合控制算法的参考系中。主要包括 Clarke 变换 和 Park 变换,以及对应的逆变换。

三个相A、B、C的电流随时间变换的曲线,如上图所示,他们之间存在120°的相位差。只要能够控制这个相位差为120°的sin状波形,就能够实现针对电机的控制。
Clarke变换(abc → αβ)
Clarke 变换的目标是将三相电流(或电压)从 abc 静态三相坐标系转换为 αβ 平面上的两个正交分量(2轴静态坐标系)。该坐标系是固定的,与电机转子无关。(实际上就是降维解耦的过程,把难以辨明和控制的三相相位差120°电机波形降维为两维矢量。)

其最终数学表达如下:
往往最终论文或者资料上克拉克变换的体现形式都不是上面这样子,而是会加上一个系数,如2/3 (等幅值变换系数),或者
何为等幅值变换?用α相电流输入1A电流的特例来举例,当电流输入时候,根据基尔霍夫电流定律(电路中任一个节点上,在任意时刻,流入节点的电流之和等于流出节点的电流之和,如下图),有:

设定ia为-1,则根据上面的式子,有ib和ic为1/2,列成矩阵形式后,如下所示:
将这个ia-c的参数带入到我们上面的无系数变换公式中,得到输出:
这就看出问题了,显然,尽管矢量a与α轴重合,但是由于b,c相电流投影的存在,导致在a相输入1A电流,反应在α轴上的电流并不是等赋值的1A,而是-3/2 。
因此,为了让式子等辐值,即使得a相1A时,反应在α轴上的电流也是1A,我们就得乘上系数2/3 ,针对上面的投影式乘上2/3后,式子变换为:
这就是克拉克变换的等幅值表现形式。
基于等赋值变换,我们就能够得到α、β相位与ia,ib,ic的关系:
并且由于基尔霍夫电流定律的存在,我们并不需要知道所有三相电流,我们只需要知道两相电流就能够求解得到另外一相的电流,反映在硬件上,我们就可以省去一路的电流传感器!节省成本。
Park变换(αβ → dq)
由克拉克变换,实际上我们已经成功对电机的正弦驱动三相曲线进行降维度,使之变成了一个两轴坐标问题,并且得到其转换关系。但是只有它是不够的,我们还需要将这个理论和旋转电机对应起来,也就是建立电机旋转时的数学模型。
我们需要知道能够使得电机旋转的Iα和Iβ电流输入规律,如果我们可以知道这个能够使得电机旋转的Iα和Iβ电流输入规律,我们就可以通过克拉克逆变换,把这个旋转情况下的Iα和Iβ逆变换为ia,ib,ic三相电流波形,从而就实现了用把ia,ib,ic降维后的Iα和Iβ实现对电机的控制,那么问题就没有原来我们想的直接控制ia,ib,ic来控制电机旋转来得复杂了。
帕克变换就是能够帮助我们求得各种旋转情况下的Iα和Iβ。
首先我们有一个固定在电机定子上的Iα-Iβ坐标系:

同时我们另外新建了一个坐标系,我们称之为Iq-Id坐标系,这个坐标系是可以随电机转子转动的!它与电机转子固联!!如下图所示:

dq坐标系相对与定子来说是旋转的坐标系,转速的角速度和转子旋转的角速度相同,所以,相当于转子来说,dq坐标系就是静止的坐标系;而和id和iq则是恒定不变的两个值,具体如下图所示;
d轴方向与转子磁链方向重合,又叫直轴;q轴方向与转子磁链方向垂直,又叫交轴;d轴和q轴如下图所示;

两个坐标放到一起有:

这里的角度θ,就被称为电角度,Park变换的本质是静止坐标系Iα-Iβ乘以一个旋转矩阵,从而得到dq坐标系,在知道电角度的前提下我们很容易完成映射:
因此,在知道电角度的前提下,我们就可以用iq和id坐标系上的定值来描述电机的旋转!这正是我们一直渴望的电机旋转数学模型!
逆Clarke、逆Park变换
Clarke逆变换:
Park逆变换
2.3 总结
在实际的FOC应用中,电角度是实时有编码器求出的,因此是已知的。Iq和Id可以合成一个矢量,加上电角度(旋转)的存在,因此可以看成一个旋转的矢量。在通过Iq和Id和电角度求得Iα和Iβ后,我们就可以通过克拉克逆变换求得ia,ib,ic的波形,这正是FOC的基本过程!
通常在简单的FOC应用中,我们只需要控制Iq的电流大小,而把Id设置为0。此时,Iq的大小间接就决定了定子三相电流的大小,进而决定了定子产生磁场的强度。进一步我们可以说,它决定了电机产生的力矩大小!

总的来说,整体流程如下:

所谓FOC的过程,其实就是输入需求的电机力矩,最后得到对应的真实世界电机输出力矩的过程,如上图所示。而其中最核心的数学过程,就是帕克逆变换和克拉克逆变换,而这两个变换的数学公式上图中框图上面的公式所示,其中帕克变换可以对用户输入的Iq进行变换,根据电角度算出Iα和Iβ,接着,通过克拉克逆变换,三相电流ia,ib,ic能够被求出,最后这三个ia,ib,ic 能够用作控制指令输入到电机控制器硬件中进行电机的控制。
