剖析无刷电机的 FOC 磁场定向控制算法

磁场定向控制(FOC,Field-Oriented Control)是一种用于无刷电机(BLDC)、永磁同步电机(PMSM)的矢量控制算法,其核心思想是将电机定子的电流分解为两个正交的分量:用于产生 磁场励磁分量 d 轴和用于产生 转矩转矩分量 q 轴。通过对电机的 转矩磁场 进行独立的控制,从而达到快速响应和精确控制的目的,并且降低运行时的噪音和振动。整个算法处理过程可以大致划分为坐标变换电流控制逆变换SVPWM 空间矢量调制 四个阶段。

坐标变换阶段:将三相定子电流(\(I_a, I_b, I_c\))通过 Clarke 变换转换为两相静止坐标系(\(I_\alpha, I_\beta\)),再通过 Park 变换将静止坐标系转换为旋转坐标系(\(I_d, I_q\)),其中 \(I_d\) 控制磁场,\(I_q\) 控制转矩。电流控制阶段:通过 PI 控制器 调节 \(I_d\)\(I_q\),使其跟踪参考值。\(I_d\) 的参考值通常设置为零(永磁同步电机)或根据需要进行调节(无刷电机),而 \(I_q\) 的参考值由转矩需求决定。逆变换阶段:将旋转坐标系下的电压(\(V_d, V_q\))通过逆 Park 变换转换回静止坐标系(\(V_\alpha, V_\beta\)),再通过逆 Clarke 变换生成三相电压信号,用于驱动逆变器。空间矢量调制阶段:将生成的电压信号调制为 PWM 信号,控制逆变器开关驱动电机。

直流有刷电机

直流有刷电机(BDC,Brushed DC Motor)是在一个由永磁体(作为定子)构成的磁场当中,放置三组通电的线圈(作为转子)。通过顶端由电刷构成的换向器交替控制三组线圈的通断,从而周而复始的驱动电机不断旋转。例如下图的直流有刷电机,通过换向器切换线圈当中通过的电流方向,然后借助永磁体产生的磁场,使其始终保持向右进行旋转:

注意:直流无刷电机经常会使用廉价的碳刷作为换向器,在电机运转过程当中会产生磨损,需要定期进行更换,会增加后期使用的维护成本。

直流无刷电机

直流无刷电机(BLDC,Brushless DC Motor)顾名思义,就是不使用电刷进行换向。其在结构上与有刷电机正好相反(使用永磁体作为转子,而每间隔 120° 度放置的线圈作为定子),此时通过外部的 MCU 微控制器和 MOS 管,合理的控制这些线圈的通断顺序,就能够驱动转子进行旋转:

注意:由于直流无刷电机不会使用电刷作为换向装置,因此无需定期进行维护,使用寿命也会更加长久。

六步换相法

三相直流无刷电机定子通常是由 UVW 三组线圈组成:

  1. U 相:即线圈 U 通过的电流路径;
  2. V 相:即线圈 V 通过的电流路径;
  3. W 相:即线圈 W 通过的电流路径;

如果当前线圈的通电方向是由 U 相W 相,那么相应的在线圈 \(U\)线圈 \(W\) 上,就会产生如下面箭头所示的两个磁通量

上述这两个磁通量,可以合成出一个下图当中,绿色箭头所表示的等效磁通量

按照下图右侧的表格,调整通电线圈的顺序(即左图绿色箭头),就可以合成出相应的磁通量(即左图棕色箭头),从而使得由永磁体制作的转子,被这个合成出来的等效磁通量持续牵引,进而驱动其不间断的进行旋转:

这种方式合成的磁通量只存在六个方向,因而被称作六步换相法(每一次控制两个相,只能旋转 60° 度),但是这种控制方式会导致旋转动作存在抖动,相应的工作噪音也会比较大。

正弦波换相法

为了规避六步换相法带来的缺点,可以通过正弦信号来控制 UVW 三个相上电流幅值相位,从而精确的控制合成磁通量大小方向,进而达到流畅平稳旋转的目的:

如果无刷电机的相电压属于正弦信号,那么相应的相电流也属于正弦信号。换而言之,通过控制相电压的幅值与相位,就可以控制相电流的 幅值相位。简而言之,电压是控制手段,电流是控制目的

众所周知,通过逆变电路产生占空比变化的脉冲宽度调制(PWM,Pulse Width Modulation)信号,就可以控制无刷电机当中 线圈的电压方向 乃至于 等效的电流大小

注意:PWM 本质上是通过调节占空比来等效调节平均电压,但是由于欧姆定律的存在,实际应用当中也会影响到电流的大小。

基于 PWM 脉冲宽度调制的思想,衍生出了 SPWMSVPWM 这两种无刷电机逆变电路的正弦信号控制方法:

  1. 正弦脉宽调制(SPWM,Sinusoidal Pulse Width Modulation):通过使用正弦波作为调制波三角波作为载波来生成 PWM 信号,目标是让逆变电路输出的电压波形尽可能的接近正弦波。
  2. 空间矢量脉宽调制(SVPWM,Space Vector Pulse Width Modulation):将三相电压视为一个空间矢量,通过组合八种基本开关状态6 个有效矢量 + 2 个零矢量)来合成目标电压,使得无刷电机获得更为平滑的旋转磁场。

注意SPWM 控制方式存在母线电压利用率较低的弊端,同时硬件上需要采用具备有高精度定时器,且运算能力较强的 DSP 作为主控芯片,大部分场景下不如 SVPWM 运用广泛。

位置传感器

直流无刷电机的精确控制,通常需要到获取到当前由永磁体制作的转子位置,这项任务通常需要交给专门的位置传感器来完成,常见的位置传感器如下面表格所示:

传感器种类 适用性 功能描述
霍尔传感器 适用于 120° 度三相控制 每间隔 60° 度获取一次信号,价格低廉,但是耐热性差。
光电编码器 适用于正弦波、矢量控制 有增量型(从初始位置移动的距离)和绝对型(当前旋转位置的角度)两种,分辨率比较高,但是防尘埃能力差。
转角传感器 适用于正弦波、矢量控制 分辨率比较高,适用于较为恶劣的工况。

逆变电路

用于无刷电机控制的逆变电路,通常使用 Q0Q1Q2Q3Q4Q5 共计六个 MOS 管来进行搭建,其中每两个 MOS 管组合在一起(Q0Q1Q2Q3Q4Q5),分别形成上桥臂(即上管 Q1Q3Q5)和下桥臂(即下管 Q0Q2Q4),并在中间位置引出一条导线连接到无刷电机的线圈,从而构成三个半桥电路,完整的无刷电机驱动电路示意图如下面所示:

综上所述,只需要交替开关各个所对应的 MOS 管,就可以驱动无刷电机进行转动。因而对于无刷电机的控制,本质上就是对于 MOS 管开关规律的控制。而本文重点讨论的 FOC 控制算法,其本质是通过对无刷电机运动模型进行抽象与简化,进而有规律的控制逆变电路当中的 MOS 管进行通断的过程

注意:实际生产环境对于 MOS 管开关规律的控制,通常是由具备有浮点处理单元(FPU,Floating Point Unit)的 MCU 微控制器来完成。

FOC 矢量控制概述

FOC 算法的处理过程可以划分为坐标变换电流控制逆变换空间矢量调制(SVPWM)四个阶段:

  1. 坐标变换阶段
    • 将三相定子电流(\(I_a, I_b, I_c\))通过 Clarke 变换转换为两相静止坐标系(\(I_\alpha, I_\beta\))。
    • 再通过 Park 变换将静止坐标系转换为旋转坐标系(\(I_d, I_q\)),其中 \(I_d\) 控制磁场,\(I_q\) 控制转矩。
  2. 电流控制阶段
    • 通过 PI 控制器调节 \(I_d\)\(I_q\),使其跟踪参考值。
    • \(I_d\) 的参考值通常设置为零(对于永磁同步电机)或根据需要进行调节(对于感应电机)。
    • \(I_q\) 的参考值由转矩需求决定。
  3. 逆变换阶段
    • 将旋转坐标系下的电压(\(V_d, V_q\))通过逆 Park 变换转换回静止坐标系(\(V_\alpha, V_\beta\))。
    • 再通过逆 Clarke 变换生成三相电压信号,用于驱动逆变器。
  4. 空间矢量调制(SVPWM)阶段
    • 将生成的电压信号通过 SVPWM 技术调制为 PWM 信号,控制逆变器开关,从而驱动电机。

实现 FOC 算法,硬件上需要处理如下三个关键技术:

  • 高精度电流采样:需要准确测量电机的三相电流。
  • 高速处理器:用于实时计算和控制,例如 DSPARM Cortex-M4/M7
  • 位置/速度传感器:如编码器或旋转变压器,用于获取转子位置信息(对于无传感器 FOC,可以通过算法估算位置)。

剖析无刷电机的 FOC 磁场定向控制算法

http://www.uinio.com/Embedded/FOC/

作者

Hank

发布于

2025-04-15

更新于

2025-04-16

许可协议