3. 换相逻辑基础:BLDC与PMSM的换相原理

聊到电机控制,换相是个绕不开的话题。说白了,换相就是让电机绕组按照正确的顺序通电,产生旋转磁场,拉着转子转起来。BLDC和PMSM虽然结构上很像,但换相逻辑上还是有些门道的。我最早做项目时,就因为在换相时序上搞混了,电机嗡嗡响就是不转,后来才发现是霍尔信号接反了。

3.1 六步换相与FOC的区别

这两种方法,可以说是电机控制里的两个流派。一个简单粗暴,一个精细复杂。

对比项 六步换相(方波控制) FOC(矢量控制)
控制原理 每60°电角度切换一次导通相 连续控制电流矢量,实现正弦波
电流波形 方波/梯形波 正弦波
转矩脉动 较大,低速时明显 小,运行平滑
噪声 有换相噪声 安静
效率 中低转速尚可 全转速范围较高
实现复杂度 低,适合入门 高,需要数学运算
位置传感器需求 霍尔传感器即可 需要高精度编码器

核心区别一句话:六步换相是“开关式”控制,FOC是“连续式”控制。六步换相只关心转子在哪个扇区,FOC关心转子在扇区里的精确位置。

我个人习惯,在低成本、对噪声不敏感的应用(比如风机、水泵)里用六步换相。但在伺服、机器人关节这些场合,必须上FOC。你想想看,一个六步换相的电机,低速时那个顿挫感,用在机械臂上肯定不行。

3.2 六步换相详解

六步换相,也叫梯形波控制。它的逻辑其实挺直观的:

  1. 检测转子位置:通过霍尔传感器或反电动势检测,知道转子当前在哪个扇区。
  2. 确定导通相:根据转子位置,决定哪两相通电,哪一相悬空。
  3. 切换:每60°电角度切换一次,一个电周期完成6次切换。

举个例子,三相BLDC电机,霍尔信号是120°安装的。那么霍尔信号组合(HA, HB, HC)与导通相的关系是这样的:

霍尔信号 (HA, HB, HC) 转子扇区 导通相(正极→负极)
101 0°~60° A+ → B-
100 60°~120° A+ → C-
110 120°~180° B+ → C-
010 180°~240° B+ → A-
011 240°~300° C+ → A-
001 300°~360° C+ → B-

注意:这个表格是基于霍尔信号上升沿对齐的。实际项目中,霍尔安装角度可能有偏差,需要做零位校准。我曾经因为霍尔板装偏了5°,电机高速时直接过流保护,查了两天才找到原因。

六步换相的代码实现,其实就是一个查表过程:

// 六步换相查表示例
const uint8_t commutation_table[6][3] = {
    {1, 0, 0},  // A+ B- C悬空
    {1, 0, 1},  // A+ C- B悬空
    {0, 0, 1},  // B+ C- A悬空
    {0, 1, 1},  // B+ A- C悬空
    {0, 1, 0},  // C+ A- B悬空
    {1, 1, 0}   // C+ B- A悬空
};

void six_step_commutation(uint8_t hall_state) {
    // hall_state 是霍尔信号组合值 (0~7)
    // 注意:hall_state 不会出现 000 和 111
    uint8_t index = hall_state_to_index(hall_state);
    set_mosfets(commutation_table[index]);
}

3.3 FOC换相原理

FOC就不一样了。它不搞“开关式”切换,而是连续地控制电流矢量。核心思想是:

  • Clark变换:把三相电流(Ia, Ib, Ic)变换到两相静止坐标系(Iα, Iβ)。
  • Park变换:把Iα, Iβ变换到旋转坐标系(Id, Iq)。
  • PI控制:控制Id=0,Iq为目标转矩电流。
  • 逆Park变换:把Vd, Vq变回Vα, Vβ。
  • SVPWM:根据Vα, Vβ生成PWM占空比。

这里的关键是,Park变换需要知道转子的精确电角度θ。这个θ就是编码器或者观测器提供的。没有精确的θ,FOC就玩不转。

我的经验:FOC的初始角度对齐非常重要。如果编码器零位和电机反电动势零位对不上,电机启动时会抖动甚至反转。我一般会在电机出厂前做一次零位标定,把编码器零位偏移量存到EEPROM里。

3.4 霍尔传感器与编码器的配合

在实际项目中,霍尔传感器和编码器经常配合使用。霍尔传感器提供绝对位置(虽然精度只有60°),编码器提供高精度相对位置。两者结合,可以实现:

  • 启动时:用霍尔传感器确定转子初始位置,避免启动反转。
  • 运行时:用编码器做高精度位置反馈,实现FOC。
  • 故障时:如果编码器信号丢失,可以降级到霍尔传感器做六步换相,保证系统不失控。

我做过一个项目,编码器线缆被机械臂反复弯折后断了一根线。幸好有霍尔传感器做备份,电机虽然噪声大了点,但至少还能继续工作,没有造成安全事故。

3.5 换相逻辑知识体系

下面这张图,把本章的核心逻辑串起来了:

换相逻辑知识体系 换相逻辑知识体系 换相方式 六步换相(方波) FOC(矢量控制) 霍尔传感器 / 反电动势 60° 扇区查表换相 编码器 / 观测器 Clark/Park/SVPWM 霍尔提供绝对位置(60°精度) 编码器提供高精度相对位置

3.6 霍尔与编码器的配合策略

在实际工程中,霍尔和编码器的配合,我总结了一套策略:

  1. 上电初始化:读取霍尔信号,确定转子所在的60°扇区。
  2. 编码器归零:以当前霍尔扇区的中间位置作为编码器的初始角度。
  3. 运行中校正:每次霍尔信号跳变时,用霍尔位置校正编码器的累积误差。
  4. 故障降级:编码器故障时,切换到纯霍尔六步换相模式。

避坑指南:霍尔信号和编码器信号的电气接口电平可能不匹配。我曾经遇到过霍尔输出是5V,编码器是3.3V,直接连在一起把编码器烧了。一定要加电平转换或者用开漏输出加外部上拉。