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°电机波形降维为两维矢量。)
其最终数学表达如下:
$$ \begin{bmatrix}I_\alpha\I_\beta\end{bmatrix}=\begin{bmatrix}1&-\frac{1}{2}&-\frac{1}{2}\0&\frac{\sqrt3}{2}&-\frac{\sqrt3}{2}\end{bmatrix}\begin{bmatrix}i_a\i_b\i_c\end{bmatrix} $$
往往最终论文或者资料上克拉克变换的体现形式都不是上面这样子,而是会加上一个系数,如2/3 (等幅值变换系数),或者$\sqrt{\frac{2}{3}}$(等功率变换系数)。下面是等幅值变换形式: $$ \begin{bmatrix}I_\alpha\I_\beta\end{bmatrix}=\frac{2}{3}\begin{bmatrix}1&-\frac{1}{2}&-\frac{1}{2}\0&\frac{\sqrt3}{2}&-\frac{\sqrt3}{2}\end{bmatrix}\begin{bmatrix}i_a\i_b\i_c\end{bmatrix} $$
何为等幅值变换?用α相电流输入1A电流的特例来举例,当电流输入时候,根据基尔霍夫电流定律(电路中任一个节点上,在任意时刻,流入节点的电流之和等于流出节点的电流之和,如下图),有:
$$ \mathrm{i_a+i_b+i_c=0} $$
设定ia为-1,则根据上面的式子,有ib和ic为1/2,列成矩阵形式后,如下所示: $$ \begin{bmatrix}\mathrm{i_a}\\mathrm{i_b}\\mathrm{i_c}\end{bmatrix}=\begin{bmatrix}-1\\frac{1}{2}\\frac{1}{2}\end{bmatrix} $$
将这个ia-c的参数带入到我们上面的无系数变换公式中,得到输出:
$$
\begin{aligned} \begin{bmatrix} I_\alpha \ I_\beta \end{bmatrix} &= \begin{bmatrix} 1 & -\frac{1}{2} & -\frac{1}{2} \ 0 & \frac{\sqrt{3}}{2} & -\frac{\sqrt{3}}{2} \end{bmatrix} \begin{bmatrix} -1 \ \frac{1}{2} \ \frac{1}{2} \end{bmatrix} \ &= \begin{bmatrix} -1 + \left(-\frac{1}{2}\right) \cdot \frac{1}{2} + \left(-\frac{1}{2}\right) \cdot \frac{1}{2} \ 0 + \frac{\sqrt{3}}{2} \cdot \frac{1}{2} + \left(-\frac{\sqrt{3}}{2}\right) \cdot \frac{1}{2} \end{bmatrix} \ &= \begin{bmatrix} -1 - \frac{1}{4} - \frac{1}{4} \ \frac{\sqrt{3}}{4} - \frac{\sqrt{3}}{4} \end
\begin{bmatrix} -\frac{3}{2} \ 0 \end{bmatrix} \end
$$ 这就看出问题了,显然,尽管矢量a与α轴重合,但是由于b,c相电流投影的存在,导致在a相输入1A电流,反应在α轴上的电流并不是等赋值的1A,而是-3/2 。
因此,为了让式子等辐值,即使得a相1A时,反应在α轴上的电流也是1A,我们就得乘上系数2/3 ,针对上面的投影式乘上2/3后,式子变换为: $$[\begin{array}{c}\mathrm{I}\alpha\\mathrm{I}\beta\end{array}]=\frac{2}{3}[\begin{array}{ccc}1&-\frac{1}{2}&-\frac{1}{2}\0&\frac{\sqrt{3}}{2}&-\frac{\sqrt{3}}{2}\end{array}][\begin{array}{c}-1\\frac{1}{2}\\frac{1}{2}\end{array}]=\frac{2}{3}[\begin{array}{c}-\frac{3}{2}\0\end{array}]=[\begin{array}{c}-1\0\end{array}]$$ 这就是克拉克变换的等幅值表现形式。
基于等赋值变换,我们就能够得到α、β相位与ia,ib,ic的关系:
$$
\begin{aligned} I_\alpha &= i_a \ I_\beta &= \frac{1}{\sqrt{3}} (2i_b + i_a) \end
$$
并且由于基尔霍夫电流定律的存在,我们并不需要知道所有三相电流,我们只需要知道两相电流就能够求解得到另外一相的电流,反映在硬件上,我们就可以省去一路的电流传感器!节省成本。
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坐标系,在知道电角度的前提下我们很容易完成映射:
$$[\begin{array}{c}\mathrm{i}\alpha\\mathrm{i}\beta\end{array}]=[\begin{array}{cc}\cos\theta&\sin\theta\-\sin\theta&\cos\theta\end{array}]^{-1}[\begin{array}{c}\mathrm{i}\mathrm{d}\\mathrm{i}\mathrm{q}\end{array}]$$ 因此,在知道电角度的前提下,我们就可以用iq和id坐标系上的定值来描述电机的旋转!这正是我们一直渴望的电机旋转数学模型!
逆Clarke、逆Park变换
Clarke逆变换:
$$\begin{aligned}&\mathrm{i_a}=\mathrm{I}{\alpha}\&\mathrm{ib}=\frac{\sqrt{3}\mathrm{I\beta-I_\alpha}}{2}\&\mathrm{ic}=\frac{-\mathrm{I}{\alpha}-\sqrt{3}\mathrm{I}{\beta}}{2}\end{aligned}$$ Park逆变换 $$ \begin{aligned} i_\alpha &= i_d \cos\theta - i_q \sin\theta \ i_\beta &= i_q \cos\theta + i_d \sin\theta \end{aligned} $$
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 能够用作控制指令输入到电机控制器硬件中进行电机的控制。
三、FOC控制结构
3.1 电流环控制(内环) PI控制器设计
decoupling 解耦控制(前馈补偿)
3.2 速度环控制(外环) 速度PI控制器
负载扰动响应与调节
3.3 转子位置/速度检测 编码器(增量式、绝对式)
霍尔传感器
无传感器估算方法(滑模观测器、反电动势法、卡尔曼滤波等)
四、实际实现要点
4.1 PWM与SVPWM 正弦PWM简介
SVPWM工作原理与优势
SVPWM实现步骤
4.2 ADC采样与同步 电流采样时机
中值采样、双通道采样技术
采样延时与补偿
4.3 PI参数整定 手动整定法(Ziegler–Nichols等)
自动整定方法
PI抗饱和、积分限幅设计
4.4 系统延时与补偿 控制周期影响
延时对稳定性的影响
前馈控制和预测控制策略
五、无传感器FOC(Sensorless FOC)
基本原理
常用位置估算方法
起动难点与解决方案
低速控制挑战
六、调试与典型问题排查
波形观察(I_d, I_q, 电压, SVPWM信号等)
常见问题(抖动、震荡、过流等)及应对策略
控制器带宽与实际响应关系
七、实际应用案例
电动工具
无人机电机控制
电动汽车驱动
工业伺服系统