FOC(Field-Oriented Control,磁场定向控制)是一种电机控制策略,又称矢量控制,是通过控制变频器输出电压的幅值和频率控制三相直流无刷电机的一种变频驱动控制方法。FOC 的实质是运用坐标变换将三相静止坐标系下的电机相电流转换到相对于转子磁极轴线静止的旋转坐标系上,通过控制旋转坐标系下的矢量大小和方向达到控制电机目的。

无刷电机

直流有刷电机指的是电机工作的时候,线圈和转换器一起旋转,磁钢和碳刷不转,通过电机转动换向器和电刷来完成线圈电流方向的交替变化。而直流无刷电机使用电子换向器取代了机械的电刷和机械的换向器装置,保留了直流电机线性机械性优秀、起动转矩大、调速范围宽、控制电路简单等优点,所以当直流无刷电机一经出现就以很快的速度发展和普及。

无刷直流电机的三相绕组之间一般呈三角形连接或 Y 型连接,其控制电路常采用桥式电路,通过 Y 型连接和桥式电路的组合,可以实现对无刷直流电机的转速和转向进行精确控制,以满足各种应用需求。下图是电机绕组按照 Y 型连接,通过控制不同MOS管的通断组合, 电机线圈电流大小和方向就能够被改变。

当打开Q1管和Q4管时,电流的方向由A相流向B相,再流出到负极。根据右手螺旋定则,在这一过程中,电机的定子A相线圈会产生对内的N级磁场,同时B相线圈会产生对内的S级磁场。由于同性相斥和异性相吸的原理,这将导致定子线圈吸引转子上的磁铁并引起转动。

随后,当打开Q5管和Q4管时,电流的方向发生变化,使得电机的定子C相线圈产生对内的N级磁场,同时B相线圈产生对内的S级磁场。根据右手螺旋定则,转子磁极会发生进一步的旋转。通过交替地开关不同的MOS管,可以实现电机磁极的交替运动,从而驱动电机的转动。

以下为动图展示了内转子无刷电机的旋转过程【来自matlab电机控制视频】

motor_rotate

这就是无刷电机旋转运动的基本原理。通过精确控制MOS管的通断状态,可以实现电机转速和转向的精确控制。这种无刷电机的设计结构和控制方法,使其在诸多应用中得到广泛应用。而MOS管的开关规律是需要用到单片机程序进行控制的,因此这就引出了FOC控制算法,FOC控制是一种通过对电机运动模型进行抽象化和简化的控制方法。它基于电机的数学模型,通过测量电流、转速和位置等参数来计算最优的MOS管开关和通断状态,以实现对电机的精确控制。FOC控制使得各个MOS管的开关和通断过程变得有规律可循,从而确保电机的稳定运行和高效性能。

在满足假设:

  1. 定子绕组为 60°相带整距绕组;
  2. 不考虑锯齿效应和磁路饱和;
  3. 忽略磁滞、涡流、集肤效应和温度对参数的影响;
  4. 三相定子绕组对称,

下无刷直流电机的运动学方程为:

式中, 为负载转矩, 为电动机转动惯量,B为阻尼系数

FOC控制

磁场定向控制(FOC)也叫做矢量控制,它的基本思想是选取电机的某个旋转磁场轴作为设定的同步旋转坐标轴。在无刷直流电机中,可以选择转子磁场、气隙磁场和定子磁场三种旋转磁场轴。一般来说,选择转子磁场作为FOC控制的同步旋转轴。FOC的基本做法是通过坐标变换,将正弦波定子电流分解成与磁场平行的磁场分量电流和与磁场垂直的转矩分量电流,分别称为直轴电流和交轴电流,并对这两种电流进行控制。这种分解让磁通电流分量和转矩电流分量完全解耦,类似于方波驱动控制,从而实现了稳定和高性能的控制。

FOC 控制主要由 Clark 变换、Park 变换、Park 逆变换、PID 控制、SVPWM控制五个模块组成。

FOC 控制系统框图

1、测量电机运行时三相定子电流,可得到 。将三相电流通过Clark 变换至两相电流 ,其是相互正交的时变电流信号。

2、 通过 Park 变换得到旋转坐标系下的电流 。在电机达到稳定状态时, 是常量。此时所使用的转子位置为上一次迭代计算出来的角度值。

3、 的参考值决定了电机转子磁通量, 的参考值决定了电机的转矩输出大小,二者各自的实际值与参考值进行比较得到的误差,作为电流环 PI 控制器的输入。通过 PI 控制计算输出得到 , 即要施加到电机绕组上的电压矢量。

4、电机转子位置估算器计算出新的转子角度和电机转速。新的转子角度可告知 FOC 算法下一个电压矢量在何处。计算出的电机转速将用于电机状态的切换,环路切换,堵转保护等子功能模块的数据支持。

5、利用新的电机角度, 经过 Park 逆变换逆变到两相静止坐标系上。该计算将产生下一个正交电压值 。再采用SVPWM 算法判定其合成的电压矢量位于哪个扇区,计算出三相各桥臂开关管的导通时间。最后经过三相逆变器驱动模块输出电机所需的三相电压。

坐标变换

无刷直流电机的方程比较复杂,为了方便处理,一般采用坐标变换理论对其进行相应的处理。处理的方式基本上就是,利用坐标变化将电机转子变量和定子变量变换到一个旋转的坐标系当中,该坐标系就是实现 FOC 算法必须选取的磁场定向轴,它的旋转速度为

克拉克变换(Clark):

Clark变换是将三相定子坐标系变换到两相静止坐标系中的过程:

CLARKE 变换

在三相定子坐标系中,电机三相电流相位差 120°,即如图所示:

克拉克变换(Clark)

显然,针对α-β坐标系中的α轴

针对α-β坐标系中的β轴

写成矩阵的形式:

克拉克等幅值变换形式 :

根据基尔霍夫电流定律:

根据上图,

要使 ,需乘系数 :

整理可得克拉克变换的等幅值形式:

其中 ,进一步的 为:

根据基尔霍夫电流定律:

最终得到:

克拉克逆变换:

最终得到:

帕克变换(Park):

Park 变换是将两相静止坐标系变换到 转子侧的旋转坐标系。将 进行坐标 Park 变换得到直流量 控制电机的磁通, 控制电机的转矩。

PRAK 变换

旋转数学模型 的变换规律:

park

对于映射到d轴上的α,β分量:

对于映射到q轴上的α,β分量:

写成矩阵形式:

帕克逆变换:

写成电压形式:

PI 控制器

PID(Proportion Integration Differentiation, 比例积分微分)控制律的表达式下式。这里, 为比例系数, 为积分项时间常数, 为微分项时间常数, 为PI的输出, 为输入量与参考值的误差。

SVPWM 技术

SVPWM(Space Vector Pulse Width Modulation) 算法已广泛应用于交流变频调速系统中,该算法以电机为研究对象,主要研究如何控制定子绕组的电压使电机获得圆形恒定磁场。与其他控制方法相比,SVPWM 控制三相逆变器具有直流母线电压利用率高、在调节输出电压基波大小的同时降低输出电压谐波、并且可以降低逆变器状态转换过程中的开关动作频率。采用SVPWM 矢量控制可以快速控制电机输出转矩和转速,使其具有更好的动态性能。

要实现一个恒定大小的旋转磁场,我们可以先获得一个恒定大小的旋转电压矢量。通过使用相位互差120度的三个矢量,我们可以合成一个大小不变的旋转电压矢量。实际上,电机的三个绕组本身就是相互相位差120度的,因此,通过按正弦变化的方式控制电压,我们可以得到这个合成电压矢量,从而实现恒定大小的旋转磁场。

图片来自【T.Davies 2002】

BLDC动画

对于三个电压空间矢量,可以表示为下式的形式。这里 分别为三个电压空间矢量,它们的相位相互之间差 120 度, 为相电压的有效值,f为电源工作频率。

则可以得到合成电压矢量

这里为了使合成的空间矢量在静止的三相坐标轴上的投影和分矢量相等,取K 值为 2/3,即等幅值变换:

总的电压 是一个旋转向量,其幅值始终保持为 ,旋转角速度为 ​ 。空间电压矢量的轨迹是圆形, 对于SVPWM控制来说,就是尽可能的让电压空间矢量的实际轨迹接近于这个圆。

逆变器结构中一个有六个管子,这六个管子均有两种工作状态,即导通和截止。现在假设上桥臂导通时,开关状态为 1,相反,下桥臂导通时,开关状态为 0。考虑到每个桥臂上的两个管子的导通状态相反,三相桥式电压型逆变器有 8 种工作状态,用矢量表示这 8 种空间状态。即:六个非零矢量 和两个零矢量 。8个状态的MOS开关状态如下:

逆变器开关状态

将八个电压矢量画到电压空间矢量图中,六个非零矢量放在坐标轴线上,两个零矢量放在坐标轴的中心处,并且基本矢量的幅值均为直流测电压的 2/3 倍:

image-20230913163907039

电压空间矢量图是一种图形表示方法,用于合成和控制三相电压。根据该图,我们可以知道非零电压矢量之间的夹角为60度,它们平均分布在整个平面上,将平面分为六个扇区。

对于任意一个扇区,我们可以利用该扇区边界上的两个非零矢量和相应的零矢量,按照一定的关系合成该扇区内的任何矢量。通过这种方法,我们可以合成任意矢量。

而三相电压在空间中合成的总电压的旋转轨迹是一个圆。具体的做法是,在电压空间矢量图中,以某一矢量为起始位置(例如 ),选定一个小角度作为增量,将目标电压矢量均匀地旋转。每增加一次增量,目标电压矢量就可以通过所在扇区的两个非零矢量和零矢量来合成得到。当目标电压矢量再次回到起始位置时,我们就得到一个接近于圆的轨迹,从而实现了 SVPWM(空间矢量脉宽调制)控制的思路。

以图中的扇区 I 为例,此时电压空间矢量 旋转到该区域,则 可以由该区域相邻两个非零矢量和零矢量的组合得到。依据平衡等效原理可以得到:

其中: 分别是相邻非零矢量 和零矢量 的作用时间。依据上式,则可以得到非零矢量 各自的作用时间:

实现 SVPWM 调制需要先确定此时参考电压所处的扇区位置,然后才能根据平衡等效原理确定相邻电压矢量以及零矢量的作用时间。

扇区的确定:

为了简化求解过程,用 分别表示参考电压在 轴上的分量,定义三个变量 ,它们之间满足如下关系:

引进三个决策变量 ABC,通过分析可以得出:

,则 A=1,否则A=0;

, 则 B=1,否则B=0;

, 则 C=1,否则C=0;

令N=4C+2B+A,则可以得到如表所示的 N与扇区的关系。因此,对于任意一个给定的空间电压矢量,通过该表就可以确定其所处的扇区。

N 3 1 5 4 6 2
扇区 I II III IV V VI
合成矢量作用时间:

以扇区 I 为例,空间电压矢量在 坐标上的合成方式如下图所示

电压矢量合成示意图

可得到:

对时间变量进行求解,得到:

即为每个扇区内,合成电压所需要的作用时间,当需要合成的电压矢量位于不同的扇区时都存在相同的运算方式。

因此,令:

得到 各个扇区的作用时间:

N 1 2 3 4 5
Z Y -Z -X X
Y -X X Z -Y
扇区矢量切换点:

在 SVPWM 调制过程中,需要特别考虑零矢量的选取原则。由于在一个调制周期中,我们需要通过不断地切换开关来等效输出 SVPWM 波形,所以需要尽可能地减少开关次数来降低开关功耗。通过分析可得,如果把零矢量 分布到一个周期的两边和中间,则此时将会达到最好的开关切换状态。例如,非零矢量 (100)、 (010)以及 (001)与零矢量 (000)的切换只要改变一相的开关状态,而 (110)、 (011)以及 (101)与零矢量 (111)也只相差其中一相的开关状态。因此,通常采用这样的开关切换方式来实现 SVPWM的调制。

image-20230913212449024

image-20230913212356678

例如,当合成矢量位于第Ⅰ扇区时,采用表中的开关切换顺序可以得到一个调制周期中的三相波形,如上图所示。到了下一个调制周期后,合成矢量的角度增加一份,利用式 33 和 34 可以算出新的矢量作用时间,得到新的三相 PWM 波形。随着电压矢量的旋转角度逐步增加,合成矢量将会依次通过各个扇区。所以,SVPWM会在每个载波周期进行一次计算。

因此,要实现 SVPWM 波形的调制,首先要判断出当前矢量所处的扇区,然后根据该扇区的两个非零矢量和零矢量的关系,通过 SVPWM 算法得出各个矢量的作用时间,接着就能够确定出该扇区的开关切换时间,从而生成调制的三相 SVPWM 波形。当合成矢量在空间转过一圈后,同时也就生成了一个周期的正弦电压波形。

下面动态展示工作流程(图中是以三角波为例,正弦波与之类似)

图片

本图来源于:【Space Vector PWM Intro—Switchcraft】

参考

  • [1]杜思航. 基于FOC算法的永磁同步电机控制器设计[D].西安电子科技大学,2022.DOI:10.27389/d.cnki.gxadu.2022.002565.
  • [2]张海阔. 基于FOC的永磁同步电机控制器设计与验证[D].东南大学,2022.DOI:10.27014/d.cnki.gdnau.2022.002510.
  • [3]李世豪. 基于SVPWM的三相电流型多电平整流器的控制与设计[D].东南大学,2021.DOI:10.27014/d.cnki.gdnau.2021.000733.
  • [4]何建霖. 基于FOC的多旋翼无人机动力系统的研究与设计[D].成都信息工程大学,2018.
  • [5]周娟. 无刷直流电机磁场定向控制(FOC)算法的研究[D].华中科技大学,2017.
  • [6]蔡刚. 基于FOC的四旋翼无人机电机驱动系统设计与实现[D].长安大学,2016.
  • [7]【SVPWM调制策略要点讲解】:https://mp.weixin.qq.com/s/mf6C-fOvoK-DFA1rGDcxqg
  • [8]【手把手教写FOC算法】https://www.bilibili.com/video/BV1x84y1V76u