第 1 篇:开篇——为什么选择 FOC,为什么选择 GD32

1. FOC vs 方波驱动:为什么要学 FOC

无刷直流电机(BLDC)的驱动方式主要有两种:

方波驱动(六步换相法)

方波驱动的工作方式:
每个电周期分 6 个区间,每次只给两相通电,第三相悬空
电流波形为方波,转矩脉动大

优点:代码简单,MCU 要求低
缺点:噪音大、效率低、低速抖动明显

方波驱动的问题在于:电流和反电动势波形不匹配。BLDC 电机的反电动势是正弦波,但方波驱动的电流是阶跃的,导致转矩脉动——这就是电机"滋滋"响的根源。尤其在低速时,每个换相瞬间都有明显的抖动。

FOC(磁场定向控制)

FOC 的核心思想:
将三相电流通过数学变换,映射到旋转的 dq 坐标系
d 轴控制励磁,q 轴控制转矩——像控制直流电机一样简单

优点:转矩平滑、噪音低、效率高、全速段可控
缺点:需要 MCU 有足够的算力做坐标变换

FOC 的本质是模拟直流电机的控制方式。直流电机天然解耦:励磁电流和转矩电流是独立的。FOC 通过 Clarke → Park 变换,把交流电机的控制也变成解耦的——这就是它叫"矢量控制"的原因。

什么时候必须上 FOC?

  • 需要低噪音的场景(家用电器、医疗器械)
  • 需要精确转矩控制的场景(机械臂、云台)
  • 需要宽调速范围的场景(电动工具、无人机)

2. 为什么选 GD32

我相信很多读者和我一样,以前主要用 STM32。为什么这个专栏要转向 GD32?

现实原因

  • STM32 涨价、缺货已经是常态,尤其 F3/G4 系列用于电机控制的型号
  • 国产替代是不可逆趋势,越早掌握越好
  • 很多公司已经在批量切换 GD32,市场需求旺盛

技术原因

特性 STM32F103 GD32E103 优势
主频 72 MHz 120 MHz GD32 更快
Flash 64-512 KB 64-512 KB 持平
高级定时器 2 个 2 个 持平
12 位 ADC 2 MSPS 2.6 MSPS GD32 更快
价格 较贵且波动 稳定且便宜 GD32 有优势

GD32E103 的 120MHz 主频做 FOC 绰绰有余,电流环可以轻松跑到 20kHz 以上。

移植难度

GD32 和 STM32 同出一源(都是 ARM Cortex-M 内核),外设寄存器高度相似但不完全一样。本专栏会详细讲解从 STM32 到 GD32 的移植要点,让你一次学会两个平台。


3. 本专栏的硬件平台

我设计了一款配套的驱动板,专栏读者可以直接打样使用:

核心配置:

  • 主控:GD32E103C8T6(也兼容 GD32F303)
  • 驱动:6 个 N-MOSFET 组成三相全桥
  • 栅极驱动:FD6288(3 路半桥驱动 IC)
  • 电流采样:三电阻方案,运放放大
  • 位置反馈:支持增量编码器 + 霍尔传感器
  • 供电:12-24V DC,最大功率 ~100W

配套工程:

  • 开发环境:Keil MDK-ARM V5
  • 固件库:GD32 标准固件库
  • 调试工具:J-Link / DAP-Link
  • 上位机:Python 脚本(串口通信,实时调参+波形显示)

原理图、PCB 源文件、BOM 清单均随专栏提供。


4. 学习路线图

┌─────────────────────────────────────────────────────────┐
│                    专栏学习路径                           │
├───────────┬───────────┬───────────┬──────────────────────┤
│ 基础理论  │ 核心驱动   │ 闭环控制   │ 进阶优化             │
│ (1-3篇)   │ (4-6篇)   │ (7-11篇)  │ (12-18篇)            │
├───────────┼───────────┼───────────┼──────────────────────┤
│ BLDC 原理 │ SVPWM     │ 速度环     │ 无感滑模观测器        │
│ 坐标变换  │ 电流采样   │ 位置环     │ 弱磁控制              │
│ dq 模型   │ 电流环 PI │ 启动策略   │ MTPA                  │
│           │           │ PI 调参   │ 参数辨识              │
│           │           │           │ 故障保护              │
└───────────┴───────────┴───────────┴──────────────────────┘

每篇文章的结构:

  1. 理论基础(讲清楚为什么)
  2. 代码实现(完整的、可运行的代码)
  3. 实测验证(波形图、实验数据)
  4. 常见坑与调试技巧

5. 开篇小结

本专栏不是那种"复制粘贴就能跑"的快餐教程。我会把 FOC 的每个环节掰开揉碎讲清楚,让你真正理解每一行代码在做什么,为什么这么写

学完这个专栏,你将具备:

  • 独立开发小功率 FOC 驱动器的能力
  • 电流环/速度环/位置环的独立调参能力
  • 国产 MCU 替代 STM32 的实战经验
  • 一套可直接用于产品的 FOC 固件

下一篇:我们将从 BLDC 电机的基本结构讲起,理解反电动势、dq 坐标系和电机数学模型。这些是 FOC 的理论基石,一定要打好基础。


下一篇:BLDC 电机基础——从结构到数学模型

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐