换相原理:直流无刷电机(BLDC)的六步换相法、霍尔传感器与编码器的换相逻辑对比
做电机控制这些年,我见过不少新手在换相这块栽跟头。说白了,换相就是让电机转起来的核心秘密。你给绕组通电的顺序不对,电机要么抖,要么根本不动。今天咱们就把这个事儿彻底聊透。
六步换相法:BLDC 的经典舞步
BLDC 电机为什么叫「无刷」?因为它没有机械电刷。那怎么换相呢?靠电子开关——MOSFET 或 IGBT 搭成的三相全桥。六步换相,就是每转一圈,开关状态切换六次,每次只给两相绕组通电,第三相悬空。
我习惯把六步换相想象成「推拉游戏」:
- 第一步:A 相进电流(拉),B 相出电流(推),C 相闲着。
- 第二步:A 相进,C 相出,B 相闲着。
- 第三步:B 相进,C 相出,A 相闲着。
- ……以此类推,六步走完,转子转一圈。
你想想看,每次换相,定子磁场就跳一步,转子被磁力拽着跟着转。这就是六步换相的本质——定子磁场步进式旋转。
关键点:六步换相每步只转 60° 电角度。电机转一圈是 360° 电角度,所以正好六步。但机械角度要看电机极对数,4 对极的电机,电角度转一圈,机械角度只转 90°。
霍尔传感器换相逻辑
霍尔传感器是 BLDC 最常用的位置检测方案。三个霍尔元件相隔 120° 电角度安装,转子磁钢扫过时输出高低电平。三个霍尔信号组合起来,就是 6 种状态——正好对应六步换相的 6 个扇区。
我在项目中遇到过一个问题:霍尔安装角度稍微偏一点,换相点就全乱了。后来我学乖了,每次装霍尔都用定位工装,确保三个霍尔严格 120° 电角度分布。
霍尔换相的逻辑其实很简单:
- 读霍尔信号(H1, H2, H3),得到一个 3 位二进制数。
- 查表,找到这个状态对应的换相步骤。
- 更新三相全桥的开关状态。
- 等下一次霍尔信号变化,重复。
霍尔换相表长什么样?我贴一个典型的 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 | 伺服、机器人、高性能驱动 |
说白了,霍尔是「够用就好」的方案,编码器是「精益求精」的方案。选哪个,看你的项目对精度和成本的要求。
换相逻辑的底层对比
从控制逻辑的角度看,霍尔和编码器的换相流程其实很像,只是信息来源不同。我画了一张图,把两种方案的换相逻辑放在一起对比:
从图上你能看出来,两种方案的最终目标一样——让转子转起来。但霍尔是「被动等信号」,编码器是「主动算角度」。这个区别在高速时特别明显:霍尔换相点固定,没法提前;编码器可以算好提前角,让换相发生在最佳时刻。
避坑指南
我曾经在一个风机项目里吃过亏。当时用霍尔换相,电机空载跑得好好的,一带负载就抖。查了两天,发现是霍尔信号线跟功率线走得太近,干扰导致换相错乱。后来把信号线屏蔽、加磁环、软件去抖,问题才解决。
还有一次,编码器换相时电机反转。我检查了半天,发现是编码器 A/B 相接反了。嗯,这种低级错误,犯过一次就记住了。
给你几个实用建议:
- 霍尔方案:信号线用双绞屏蔽线,远离功率线。霍尔供电加 0.1μF 去耦电容。
- 编码器方案:上电后先做一次电角度校准,确认零位对齐。差分信号要接终端电阻。
- 通用建议:换相逻辑里加超时保护。如果长时间没检测到换相信号,立刻停机,防止烧 MOSFET。
换相原理这块,说白了就是「知道转子在哪,然后给正确的相通电」。霍尔和编码器只是获取位置信息的手段不同。理解了这一点,后面学电角度校准就轻松多了。