2、换相原理:为什么电机需要换相?霍尔传感器换相原理、无传感器换相(反电动势法)简介

好,咱们进入正题。这一节要聊的是换相——说白了,就是怎么让电机乖乖转起来。

很多刚入行的朋友问我:“电机不就是通电就转吗?为什么还要搞什么换相?”嗯,这个问题问得好。如果你拿一个直流有刷电机,确实通电就转。但咱们做运动控制的,绝大多数场合用的是无刷直流电机(BLDC)或永磁同步电机(PMSM)。这两种电机,转子是永磁体,定子是线圈。想让转子连续转,就得让定子磁场跟着转——这就是换相的本质。

2.1 为什么电机需要换相?

想象一下这个场景:你用手推一个旋转门,推一下,门转一点。如果你一直推同一个点,门转到某个角度就卡住了。你得换一个角度继续推,门才能继续转。

电机换相也是这个道理。定子线圈通电产生磁场,吸引转子磁铁。转子转到位后,你得切断当前线圈的电流,给下一组线圈通电,让磁场“追”着转子跑。

核心逻辑:换相的本质是让定子磁场始终领先转子磁场一个角度,从而产生持续的电磁转矩。

如果不换相会怎样?我见过一个新手调试时把换相逻辑写错了,结果电机“嗡嗡”响,转子卡在一个位置剧烈抖动,温度飙升。不到两分钟,MOS管冒烟了。这就是典型的“缺相”或“错相”故障。

所以,换相不是可选项,是必选项。没有换相,BLDC 就是个振动器,不是电机。

2.2 霍尔传感器换相原理

霍尔传感器换相,是目前最简单、最可靠的换相方式。我个人习惯在样机阶段先用霍尔方案,等逻辑调通了再考虑无传感器方案。

霍尔传感器的工作原理很简单:它检测磁场极性。当转子磁铁的 N 极或 S 极经过霍尔元件时,输出高电平或低电平。

典型的 BLDC 电机内部会安装 3 个霍尔传感器,间隔 60° 或 120° 电角度。这 3 个霍尔信号组合起来,就能判断转子当前在哪个扇区。

霍尔换相的基本步骤

  1. 读取霍尔状态:3 个霍尔信号组成 3 位二进制数,共 6 种有效状态(另外 2 种是非法状态)。
  2. 查表确定通电相序:每种状态对应一组 MOSFET 开关组合。
  3. 执行换相:切换 PWM 输出到对应的定子绕组。
  4. 等待下一次霍尔跳变:转子转到下一个位置,触发新一轮换相。

这里我贴一个我常用的霍尔换相表,6 步换相法:

霍尔状态 (H3 H2 H1) 转子扇区 A 相 B 相 C 相
101 0° ~ 60° H L Z
100 60° ~ 120° H Z L
110 120° ~ 180° Z H L
010 180° ~ 240° L H Z
011 240° ~ 300° L Z H
001 300° ~ 360° Z L H

表中 H 表示上桥导通,L 表示下桥导通,Z 表示高阻(悬空)。你想想看,6 个状态循环一遍,电机就转了一圈(电气角度)。

我的经验:霍尔信号在安装时会有机械偏差。我曾经遇到过霍尔板装偏了 10°,结果电机在低速时抖动严重。解决办法是在代码里加一个霍尔偏移校准值,用示波器看霍尔跳变沿和反电动势过零点,把偏差补偿掉。

2.3 无传感器换相(反电动势法)简介

霍尔传感器虽然好用,但也有短板。比如在高温、高湿、强振动的环境下,霍尔元件容易失效。而且霍尔传感器会增加电机成本和体积。这时候,无传感器换相就派上用场了。

无传感器换相的核心思路是:不装传感器,直接检测电机绕组上的反电动势(Back EMF)来判断转子位置。

反电动势是什么?说白了,转子在定子线圈里转动时,线圈会切割磁感线,产生一个反向电压。这个电压的大小和转子速度成正比,方向与外加电压相反。

在 BLDC 的 6 步换相中,每一相都有“悬空”的阶段。在悬空相上,你测到的电压就是反电动势。反电动势过零点,正好对应转子经过某个特定位置。

反电动势法换相流程

  • 启动阶段:电机静止时没有反电动势,无法检测位置。所以先用“预定位”或“开环强拖”把电机转到一定转速。
  • 切换阶段:转速达到约 200~500 RPM 后,反电动势信号足够强,切换到反电动势检测模式。
  • 正常运行:检测悬空相的反电动势过零点,延迟 30° 电角度后执行换相。

这里有个关键点:反电动势过零点并不是换相点。过零点对应转子 N/S 极交界处,而换相点要滞后 30° 电角度。这个 30° 延迟,我习惯用定时器或软件计数器来实现。

注意:反电动势法在低速时几乎不可用。转速越低,反电动势越弱,信噪比越差。我曾经在 50 RPM 以下尝试过反电动势检测,结果位置估算误差大到电机直接反转。所以,如果你的应用需要频繁启停或低速重载,老老实实用霍尔传感器吧。

2.4 霍尔换相 vs 无传感器换相

我把两种方案的对比整理成了一张表,方便你选型时参考:

对比项 霍尔传感器换相 无传感器换相(反电动势法)
成本 高(传感器 + 线束) 低(无需额外硬件)
低速性能 优秀,零速也能定位 差,低速无法检测
高速性能 良好,但受限于霍尔响应频率 优秀,反电动势信号随转速增强
环境适应性 差(高温、振动易失效) 好(无敏感元件)
启动方式 直接换相,无需特殊处理 需要预定位或开环强拖
调试难度 低,查表即可 高,需要滤波、比较器、软件锁相环

我个人习惯是:产品原型阶段用霍尔,量产时根据成本和环境要求决定是否切到无传感器。如果环境恶劣但成本敏感,那就硬着头皮调反电动势算法。

2.5 换相逻辑的核心流程图

下面这张图是我自己画的一个换相逻辑总览,涵盖了霍尔法和反电动势法的共同框架。你看一眼就能明白整个换相过程是怎么串起来的。

换相逻辑核心流程 电机上电 / 启动 是否有霍尔传感器? 是 读取霍尔状态 → 查换相表 执行 PWM 输出 → 换相 否 预定位 / 开环强拖启动 检测反电动势过零点 延迟 30° 后执行换相 两种路径最终都回到“等待下一次位置更新 → 循环换相”

这张图把霍尔法和反电动势法放在同一个框架里对比。你从上往下看,启动后先判断有没有霍尔传感器,然后走不同的分支,最终都回到循环换相。嗯,这里要注意:反电动势法的启动阶段是最大的坑,我见过很多工程师在“预定位”这一步翻车。

2.6 避坑指南

最后,我把自己踩过的几个坑列出来,你遇到了能少走弯路:

  • 霍尔信号毛刺:电机高速运转时,霍尔信号会有振铃。我习惯在 GPIO 输入前加一个 RC 低通滤波,时间常数 1~10 μs 左右。
  • 反电动势比较器阈值:不要用固定阈值。反电动势幅值随转速变化,固定阈值在低速和高速都会误判。我用的是“浮动中点”法,实时采样三相电压中点作为参考。
  • 换相延迟时间:反电动势过零点到换相点的 30° 延迟,不要用固定延时。转速变化时,固定延时会导致换相角度偏移。我习惯用定时器捕获两次过零点的时间间隔,动态计算 30° 对应的延时。
  • 启动失败重试:无传感器启动时,如果开环强拖没成功,不要无限重试。我设了一个超时计数器,3 次启动失败就报错停机,防止电机过热。