剖析无刷电机的 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
管,合理的控制这些线圈的通断顺序,就能够驱动转子进行旋转:
注意:由于直流无刷电机不会使用电刷作为换向装置,因此无需定期进行维护,使用寿命也会更加长久。
六步换相法
三相直流无刷电机的定子通常是由
U
、V
、W
三组线圈组成:
- U 相:即线圈
U
通过的电流路径; - V 相:即线圈
V
通过的电流路径; - W 相:即线圈
W
通过的电流路径;
如果当前线圈的通电方向是由 U 相
到
W 相
,那么相应的在线圈 \(U\) 和线圈 \(W\)
上,就会产生如下面箭头所示的两个磁通量:
上述这两个磁通量,可以合成出一个下图当中,绿色箭头所表示的等效磁通量:
按照下图右侧的表格,调整通电线圈的顺序(即左图绿色箭头),就可以合成出相应的磁通量(即左图棕色箭头),从而使得由永磁体制作的转子,被这个合成出来的等效磁通量持续牵引,进而驱动其不间断的进行旋转:
这种方式合成的磁通量只存在六个方向,因而被称作六步换相法(每一次控制两个相,只能旋转
60°
度),但是这种控制方式会导致旋转动作存在抖动,相应的工作噪音也会比较大。
正弦波换相法
为了规避六步换相法带来的缺点,可以通过正弦信号来控制
U
、V
、W
三个相上电流 的 幅值
与
相位
,从而精确的控制合成磁通量的
大小
与 方向
,进而达到流畅平稳旋转的目的:
如果无刷电机的相电压属于正弦信号,那么相应的相电流也属于正弦信号。换而言之,通过控制相电压的幅值与相位,就可以控制相电流的
幅值
与
相位
。简而言之,电压是控制手段,电流是控制目的。
众所周知,通过逆变电路产生占空比变化的脉冲宽度调制(PWM,Pulse
Width Modulation)信号,就可以控制无刷电机当中
线圈的电压方向
乃至于 等效的电流大小
:
注意:PWM 本质上是通过调节占空比来等效调节平均电压,但是由于欧姆定律的存在,实际应用当中也会影响到电流的大小。
基于 PWM 脉冲宽度调制的思想,衍生出了 SPWM 和 SVPWM 这两种无刷电机逆变电路的正弦信号控制方法:
- 正弦脉宽调制(SPWM,Sinusoidal Pulse Width Modulation):通过使用正弦波作为调制波,三角波作为载波来生成 PWM 信号,目标是让逆变电路输出的电压波形尽可能的接近正弦波。
- 空间矢量脉宽调制(SVPWM,Space Vector Pulse Width
Modulation):将三相电压视为一个空间矢量,通过组合八种基本开关状态(
6 个有效矢量 + 2 个零矢量
)来合成目标电压,使得无刷电机获得更为平滑的旋转磁场。
注意:SPWM 控制方式存在母线电压利用率较低的弊端,同时硬件上需要采用具备有高精度定时器,且运算能力较强的 DSP 作为主控芯片,大部分场景下不如 SVPWM 运用广泛。
位置传感器
直流无刷电机的精确控制,通常需要到获取到当前由永磁体制作的转子位置,这项任务通常需要交给专门的位置传感器来完成,常见的位置传感器如下面表格所示:
传感器种类 | 适用性 | 功能描述 |
---|---|---|
霍尔传感器 | 适用于 120° 度三相控制 |
每间隔 60°
度获取一次信号,价格低廉,但是耐热性差。 |
光电编码器 | 适用于正弦波、矢量控制 | 有增量型(从初始位置移动的距离)和绝对型(当前旋转位置的角度)两种,分辨率比较高,但是防尘埃能力差。 |
转角传感器 | 适用于正弦波、矢量控制 | 分辨率比较高,适用于较为恶劣的工况。 |
逆变电路
用于无刷电机控制的逆变电路,通常使用
Q0
、Q1
、Q2
、Q3
、Q4
、Q5
共计六个 MOS 管来进行搭建,其中每两个 MOS 管组合在一起(Q0
与 Q1
、Q2
与 Q3
与
Q4
、Q5
),分别形成上桥臂(即上管
Q1
、Q3
、Q5
)和下桥臂(即下管
Q0
、Q2
、Q4
),并在中间位置引出一条导线连接到无刷电机的线圈,从而构成三个半桥电路,完整的无刷电机驱动电路示意图如下面所示:
综上所述,只需要交替开关各个相所对应的 MOS 管,就可以驱动无刷电机进行转动。因而对于无刷电机的控制,本质上就是对于 MOS 管开关规律的控制。而本文重点讨论的 FOC 控制算法,其本质是通过对无刷电机运动模型进行抽象与简化,进而有规律的控制逆变电路当中的 MOS 管进行通断的过程。
注意:实际生产环境对于 MOS 管开关规律的控制,通常是由具备有浮点处理单元(FPU,Floating Point Unit)的 MCU 微控制器来完成。
FOC 矢量控制概述
FOC 算法的处理过程可以划分为坐标变换、电流控制、逆变换、空间矢量调制(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 变换生成三相电压信号,用于驱动逆变器。
- 空间矢量调制(SVPWM)阶段:
- 将生成的电压信号通过 SVPWM 技术调制为 PWM 信号,控制逆变器开关,从而驱动电机。
实现 FOC 算法,硬件上需要处理如下三个关键技术:
- 高精度电流采样:需要准确测量电机的三相电流。
- 高速处理器:用于实时计算和控制,例如
DSP
或ARM Cortex-M4/M7
。 - 位置/速度传感器:如编码器或旋转变压器,用于获取转子位置信息(对于无传感器 FOC,可以通过算法估算位置)。
剖析无刷电机的 FOC 磁场定向控制算法