换相原理:直流无刷电机(BLDC)的六步换相法、霍尔传感器与编码器的换相逻辑对比

做电机控制这些年,我见过不少新手在换相这块栽跟头。说白了,换相就是让电机转起来的核心秘密。你给绕组通电的顺序不对,电机要么抖,要么根本不动。今天咱们就把这个事儿彻底聊透。

六步换相法:BLDC 的经典舞步

BLDC 电机为什么叫「无刷」?因为它没有机械电刷。那怎么换相呢?靠电子开关——MOSFET 或 IGBT 搭成的三相全桥。六步换相,就是每转一圈,开关状态切换六次,每次只给两相绕组通电,第三相悬空。

我习惯把六步换相想象成「推拉游戏」:

  • 第一步:A 相进电流(拉),B 相出电流(推),C 相闲着。
  • 第二步:A 相进,C 相出,B 相闲着。
  • 第三步:B 相进,C 相出,A 相闲着。
  • ……以此类推,六步走完,转子转一圈。

你想想看,每次换相,定子磁场就跳一步,转子被磁力拽着跟着转。这就是六步换相的本质——定子磁场步进式旋转。

关键点:六步换相每步只转 60° 电角度。电机转一圈是 360° 电角度,所以正好六步。但机械角度要看电机极对数,4 对极的电机,电角度转一圈,机械角度只转 90°。

霍尔传感器换相逻辑

霍尔传感器是 BLDC 最常用的位置检测方案。三个霍尔元件相隔 120° 电角度安装,转子磁钢扫过时输出高低电平。三个霍尔信号组合起来,就是 6 种状态——正好对应六步换相的 6 个扇区。

我在项目中遇到过一个问题:霍尔安装角度稍微偏一点,换相点就全乱了。后来我学乖了,每次装霍尔都用定位工装,确保三个霍尔严格 120° 电角度分布。

霍尔换相的逻辑其实很简单:

  1. 读霍尔信号(H1, H2, H3),得到一个 3 位二进制数。
  2. 查表,找到这个状态对应的换相步骤。
  3. 更新三相全桥的开关状态。
  4. 等下一次霍尔信号变化,重复。

霍尔换相表长什么样?我贴一个典型的 120° 霍尔换相表:

霍尔状态 (H3 H2 H1) 当前扇区 导通相 (A B C) 电流方向
101 1 A+ B- A→B
100 2 A+ C- A→C
110 3 B+ C- B→C
010 4 B+ A- B→A
011 5 C+ A- C→A
001 6 C+ B- C→B

我的经验:霍尔信号在换相边沿附近会有抖动,尤其是低速时。我一般会在软件里加 10-50μs 的去抖滤波,不然换相会乱跳。

编码器换相逻辑

编码器比霍尔精细得多。霍尔只能告诉你「你在哪个 60° 扇区」,编码器能告诉你「你现在精确在哪个角度」。所以编码器换相的逻辑不太一样——它不需要等扇区边界,而是根据当前角度直接算换相点。

编码器换相的核心思路:

  • 编码器输出绝对角度(或增量角度 + 初始校准)。
  • 把 360° 电角度分成 6 个扇区,每个扇区 60°。
  • 根据当前角度查扇区,决定导通哪两相。
  • 角度每跨过一个扇区边界,就换一次相。

举个例子,假设编码器当前电角度是 35°,落在扇区 1(0°-60°),那就导通 A+ B-。当角度走到 62°,进入扇区 2,立刻换到 A+ C-。

编码器换相的好处很明显——换相点可以精确控制,不像霍尔那样受安装误差影响。我做过一个项目,霍尔换相在高速时效率掉得厉害,换成编码器后,效率直接提了 5%。

注意:编码器换相依赖初始电角度校准。如果编码器零位和电机反电动势零位没对齐,换相点全偏。这个问题我后面会专门讲怎么校准。

霍尔 vs 编码器:换相逻辑对比

这两种方案各有各的脾气。我整理了一个对比表,方便你快速把握:

对比项 霍尔传感器 编码器
位置分辨率 60° 电角度(6 个扇区) 取决于线数,可达 0.1° 甚至更高
换相触发方式 霍尔信号边沿触发 角度跨扇区边界触发
安装精度要求 高(120° 电角度严格对齐) 中等(需初始校准)
低速性能 信号抖动,需滤波 稳定,无抖动
高速性能 受限于霍尔响应时间 好,可精确提前换相
成本 低 高
典型应用 风扇、泵、低成本 BLDC 伺服、机器人、高性能驱动

说白了,霍尔是「够用就好」的方案,编码器是「精益求精」的方案。选哪个,看你的项目对精度和成本的要求。

换相逻辑的底层对比

从控制逻辑的角度看,霍尔和编码器的换相流程其实很像,只是信息来源不同。我画了一张图,把两种方案的换相逻辑放在一起对比:

霍尔 vs 编码器换相逻辑对比 霍尔传感器 读取 H1 H2 H3 电平 查霍尔换相表 → 扇区 更新三相全桥开关 编码器 读取当前电角度 θ θ ÷ 60° → 扇区编号 更新三相全桥开关 电机转子旋转 位置反馈 霍尔:边沿触发换相 换相点固定不可调 编码器:角度触发换相 可提前/延迟换相角

从图上你能看出来,两种方案的最终目标一样——让转子转起来。但霍尔是「被动等信号」,编码器是「主动算角度」。这个区别在高速时特别明显:霍尔换相点固定,没法提前;编码器可以算好提前角,让换相发生在最佳时刻。

避坑指南

我曾经在一个风机项目里吃过亏。当时用霍尔换相,电机空载跑得好好的,一带负载就抖。查了两天,发现是霍尔信号线跟功率线走得太近,干扰导致换相错乱。后来把信号线屏蔽、加磁环、软件去抖,问题才解决。

还有一次,编码器换相时电机反转。我检查了半天,发现是编码器 A/B 相接反了。嗯,这种低级错误,犯过一次就记住了。

给你几个实用建议:

  • 霍尔方案:信号线用双绞屏蔽线,远离功率线。霍尔供电加 0.1μF 去耦电容。
  • 编码器方案:上电后先做一次电角度校准,确认零位对齐。差分信号要接终端电阻。
  • 通用建议:换相逻辑里加超时保护。如果长时间没检测到换相信号,立刻停机,防止烧 MOSFET。

换相原理这块,说白了就是「知道转子在哪,然后给正确的相通电」。霍尔和编码器只是获取位置信息的手段不同。理解了这一点,后面学电角度校准就轻松多了。