关于FOC(field-oriented-control,磁场定向控制)

在学习这部分内容时遇到了巨大阻力:参考教材未提及、PPT语焉不详、缺少合理的可视化帮助理解。教学时数学推导被全部跳过,更导致了困惑。为加深自己理解,写下此文。

实际上,在了解过方波驱动的直流无刷电机基本原理及其优缺点后,引出正弦波驱动的交流伺服电机是自然的:联想此前的旋转磁场即可。下面给出一个来自BLDC 电机控制 - MATLAB & Simulink的美观动图来直观感受一下:

MATLAB 动画:比较 BLDC 电机和 PMSM 电机的运行。动画基于 Simscape Electrical 模型的仿真结果。

接下来的问题是,既然要控制,应该控制哪些量,控制目标是什么?显然,我们希望通过控制三相电流达到控制电机电磁转矩的目的。控制目标是使三相电产生的旋转磁场全部产生力矩(提高能量利用效率)。

控制三相电是困难的事:PID难以控制交流信号(当然可以使用其他控制器,但PID便宜好用);难以确认使力矩最大对应的控制目标。因此,开始考虑进行一定的变换,使问题得到简化。

查看下面这个三相电流的示意图:

img

参考相量表示法,可将三相电流表示为三个相量。显然地,我们可以选择A相轴线为横轴(记作 α\alpha 轴),垂直A相的轴为纵轴(记作β\beta 轴),对B、C相的电流相量做正交分解。这种分解更类似一种归算,因此,要通过某种等价原则来判断是否等价,将各相的原绕组匝数等价为新绕组匝数,这将影响所谓的系数。此处等价的原则可选择:

  • 磁动势幅值相等

  • 磁动势功率相等

为了简单,我们首先把磁动势幅值相等作为等效原则,进行分解后列出如下:

N[iαiβ]=N[1121203232][iAiBiC](1)N'\begin{bmatrix} i_{\alpha} \\ i_{\beta} \end{bmatrix}=N\begin{bmatrix} 1 & -\frac{1}{2} &-\frac{1}{2} \\ 0 & \frac{\sqrt{3}}{2} & - \frac{\sqrt{3}}{2} \end{bmatrix}\begin{bmatrix} i_{A} \\ i_{B} \\ i_{C} \end{bmatrix} \tag{1}

其中iA=Imsinωti_A=I_m\sin \omega t 简单代入,化简即可有:

{iα=NN32Imsinωtiβ=NN32Imsinωt\displaystyle \left\{\begin{matrix} i_{\alpha}=\frac{N}{N'}\frac{3}{2}I_m\sin \omega t\\ i_{\beta}=\frac{N}{N'}\frac{3}{2}I_m\sin \omega t \end{matrix}\right.

要使幅值相等,显然希望NN=23\displaystyle \frac{N}{N'}=\frac{2}{3}。这就是这个系数的来源

下面简单推导功率相等的情况:

N[UαUβ]=N[1121203232][UAUBUC](2)N'\begin{bmatrix} U_{\alpha} \\ U_{\beta} \end{bmatrix}=N\begin{bmatrix} 1 & -\frac{1}{2} &-\frac{1}{2} \\ 0 & \frac{\sqrt{3}}{2} & - \frac{\sqrt{3}}{2} \end{bmatrix}\begin{bmatrix} U_{A} \\ U_{B} \\ U_{C} \end{bmatrix} \tag{2}

iA+iB+iC=0(3)i_A+i_B+i_C=0 \tag{3}

P=[UαUβ][iαiβ]P=[UAUBUC][iAiBiC](4)P'=\begin{bmatrix} U_{\alpha} & U_{\beta} \end{bmatrix} \cdot\begin{bmatrix} i_{\alpha} \\ i_{\beta} \end{bmatrix}\\ P=\begin{bmatrix} U_{A} & U_{B} & U_{C} \end{bmatrix} \cdot\begin{bmatrix} i_{A} \\ i_{B} \\i_{C} \end{bmatrix} \tag{4}

当然希望 P=P\displaystyle P'=P,联立推得:

P=(NN)232P\displaystyle P'= \left(\frac{N}{N'}\right)^2\frac{3}{2}P

显然希望NN=23\displaystyle \frac{N}{N'}=\sqrt\frac{2}{3},这就是这个系数的来源。

等幅值变换后的示意图如下:

等幅值变换

上面的变换就是所谓的Clarke变换,也叫 αβ\alpha-\beta 变换。

完成这一步变换后,已经大大简化了问题,但PID控制器难以控制交流电的问题仍然存在,是否能通过某种方式将其变换为直流电的控制问题呢?

答案是肯定的。既然我们的电相量正以角速度 ω\omega 旋转,只要选择同样以角速度 ω\omega 旋转的正交坐标系,二者便相对静止,能够被正交分解为若干分量。接下来分析这个坐标系的选取。

回顾前文,我们的控制目标之一是使得产生的力矩最大。这样,坐标系的选取就很明显了:沿转子磁场的方向称为直轴(direct,d),垂直于此方向称为交轴(quatrature,q),则此时建立了dq坐标系。要使力矩最大,应该使定子磁场强弱不变的情况下,直轴上的磁场尽可能弱,交轴上的磁场尽可能强。此处应该指出,在同步电机的工作点上,同步转速=转子转速=旋转磁场转速=dq坐标系转速。至于转速尚未同步的阶段,并非本文研究的内容,请参考“无感启动”相关内容。总之,这样选择的dq坐标系是合理的。

dq坐标系

参考线性代数中的旋转矩阵,立刻有:

[idiq]=[cosθsinθsinθcosθ][iαiβ](5)\begin{bmatrix} i_{d} \\ i_{q} \end{bmatrix}=\begin{bmatrix} \cos \theta &\sin \theta \\ - \sin \theta & \cos \theta \end{bmatrix}\begin{bmatrix} i_{\alpha } \\ i_{\beta } \end{bmatrix} \tag{5}

显然,我们的控制目标是:

id=0,iq=iα2+iβ2|i_d|=0,|i_q|=\sqrt{i^2_{\alpha}+i^2_{\beta}}

当然应该指出的是,此处 θ=ωt+θ0\theta=\omega t+\theta_0tt 时刻d 与 α\alpha轴所夹角。

下面给出一张磁场定向控制 - MATLAB & Simulink提供的示意图。注意观察其中变换、逆变换,控制量、误差量的关系。

磁场定向控制的模块图。


关于FOC(field-oriented-control,磁场定向控制)
http://costannt.icu/2025/10/06/关于FOC-field-oriented-control-磁场定向控制 - 副本/
作者
Costannt
发布于
2025年10月6日
许可协议