直流无刷电机 FOC 控制算法原理与 STM32 实现
1. FOC 概述
FOC(Field-Oriented Control),即磁场定向控制,也被称作矢量控制。这是目前无刷直流电机(BLDC)和永磁同步电机(PMSM)高效控制的最优方法之一。FOC 算法的核心在于通过精确控制磁场的大小与方向,使得电机的运动转矩平稳、噪声小、效率高,并具备高速的动态响应能力。
2. 无刷电机基础
2.1 无刷电机介绍
无刷电机(Brushless Motor)相比传统有刷电机,去除了机械换向器和电刷,采用电子换向技术。它由定子和转子组成:定子线圈通电产生旋转磁场,转子上的永磁体跟随该磁场旋转。这种结构消除了摩擦损耗,带来了高效率、高功率密度、宽转速范围和高可靠性等优势。
2.2 BLDC 与 PMSM 的区别
无刷直流电机(BLDC)和永磁同步电机(PMSM)在结构上非常相似,主要区别在于反电动势的波形:
- BLDC:反电动势接近梯形波。
- PMSM:反电动势接近正弦波。

2.3 驱动原理
2.3.1 工作原理
基于安培定则(右手螺旋定则),通电线圈会产生磁场。无刷电机利用定子线圈磁场与转子永磁体磁场的相互作用(异性相吸、同性相斥)来驱动转子旋转。典型的 BLDC 有三根引出线(U、V、W 相),任意两根通电即可导通对应的线圈绕组。
2.3.2 驱动方式对比
传统的六步换相驱动依赖霍尔传感器反馈转子位置,通过三相逆变电路控制上下桥臂导通,电流流向呈方波变化。而 FOC 控制中,三个半桥的 MOS 管采用三三导通模式,驱动信号为正弦波,这使得电机运行更加平滑,噪音更低。
3. FOC 控制算法核心
FOC 算法的整体流程可以概括为:采集三相电流 -> Clarke 变换 -> Park 变换 -> PID 调节 -> 反 Park 变换 -> SVPWM 生成 PWM。以下是关键步骤的详细解析。
3.1 整体流程
- 采集电机三相相电流 $I_a, I_b, I_c$。
- 通过 Clarke 变换得到静止坐标系下的 $I_\alpha, I_\beta$。
- 通过 Park 变换得到旋转坐标系下的 $I_d, I_q$。
- 根据目标值进行 PID 计算,得到电压指令 $U_d, U_q$。
- 通过反 Park 变换得到 $U_\alpha, U_\beta$。
- 输入 SVPWM 模块,计算三路 PWM 占空比。

3.2 Clarke 变换
Clarke 变换将三相静止坐标系($I_a, I_b, I_c$)转换为两相静止直角坐标系($I_\alpha, I_\beta$)。这类似于力的矢量分解,将三相映射到两轴之上。
根据基尔霍夫电流定律 $I_a + I_b + I_c = 0$,我们通常只需采样两相电流即可推算出第三相。等幅值变换下,公式如下:
$$ \begin{bmatrix} I_\alpha \ I_\beta \end{bmatrix} = \begin{bmatrix} 1 & -1/2 & -1/2 \ 0 & \sqrt{3}/2 & -\sqrt{3}/2 \end{bmatrix} \begin{bmatrix} I_a \ I_b \ I_c \end{bmatrix} $$




