关于FOC(field-oriented-control,磁场定向控制)
在学习这部分内容时遇到了巨大阻力:参考教材未提及、PPT语焉不详、缺少合理的可视化帮助理解。教学时数学推导被全部跳过,更导致了困惑。为加深自己理解,写下此文。
实际上,在了解过方波驱动的直流无刷电机基本原理及其优缺点后,引出正弦波驱动的交流伺服电机是自然的:联想此前的旋转磁场即可。下面给出一个来自BLDC 电机控制 - MATLAB & Simulink的美观动图来直观感受一下:

接下来的问题是,既然要控制,应该控制哪些量,控制目标是什么?显然,我们希望通过控制三相电流达到控制电机电磁转矩的目的。控制目标是使三相电产生的旋转磁场全部产生力矩(提高能量利用效率)。
控制三相电是困难的事:PID难以控制交流信号(当然可以使用其他控制器,但PID便宜好用);难以确认使力矩最大对应的控制目标。因此,开始考虑进行一定的变换,使问题得到简化。
查看下面这个三相电流的示意图:

参考相量表示法,可将三相电流表示为三个相量。显然地,我们可以选择A相轴线为横轴(记作 α 轴),垂直A相的轴为纵轴(记作β 轴),对B、C相的电流相量做正交分解。这种分解更类似一种归算,因此,要通过某种等价原则来判断是否等价,将各相的原绕组匝数等价为新绕组匝数,这将影响所谓的系数。此处等价的原则可选择:
- 磁动势幅值相等
- 磁动势功率相等
为了简单,我们首先把磁动势幅值相等作为等效原则,进行分解后列出如下: $$ 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 ω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. $$ 要使幅值相等,显然希望$\displaystyle \frac{N}{N'}=\frac{2}{3}$。这就是这个系数的来源
下面简单推导功率相等的情况: $$ 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
$$ 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'= \left(\frac{N}{N'}\right)^2\frac{3}{2}P $$ 显然希望$\displaystyle \frac{N}{N'}=\sqrt\frac{2}{3}$,这就是这个系数的来源。
等幅值变换后的示意图如下:

上面的变换就是所谓的Clarke变换,也叫 α − β 变换。
完成这一步变换后,已经大大简化了问题,但PID控制器难以控制交流电的问题仍然存在,是否能通过某种方式将其变换为直流电的控制问题呢?
答案是肯定的。既然我们的电相量正以角速度 ω 旋转,只要选择同样以角速度 ω 旋转的正交坐标系,二者便相对静止,能够被正交分解为若干分量。接下来分析这个坐标系的选取。
回顾前文,我们的控制目标之一是使得产生的力矩最大。这样,坐标系的选取就很明显了:沿转子磁场的方向称为直轴(direct,d),垂直于此方向称为交轴(quatrature,q),则此时建立了dq坐标系。要使力矩最大,应该使定子磁场强弱不变的情况下,直轴上的磁场尽可能弱,交轴上的磁场尽可能强。此处应该指出,在同步电机的工作点上,同步转速=转子转速=旋转磁场转速=dq坐标系转速。至于转速尚未同步的阶段,并非本文研究的内容,请参考“无感启动”相关内容。总之,这样选择的dq坐标系是合理的。

参考线性代数中的旋转矩阵,立刻有: $$ \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} $$ 显然,我们的控制目标是: $$ |i_d|=0,|i_q|=\sqrt{i^2_{\alpha}+i^2_{\beta}} $$ 当然应该指出的是,此处 θ = ωt + θ0 是 t 时刻d 与 α轴所夹角。
下面给出一张磁场定向控制 - MATLAB & Simulink提供的示意图。注意观察其中变换、逆变换,控制量、误差量的关系。
