3. BLDC与PMSM对比

好,咱们进入第三章。前两章我们把BLDC的硬件骨架搭起来了,也聊了聊怎么选MOS管。这一章,咱们聊聊BLDC的“魂”——换相逻辑。

说白了,BLDC电机不会自己转,你得告诉它什么时候该给哪一相通电。这个“告诉”的过程,就是换相。我见过不少新手,硬件焊得漂漂亮亮,一上电电机嗡嗡响就是不转,十有八九是换相时序搞错了。

3.1 六步换向法——BLDC的“呼吸节拍”

六步换向法,也叫120°导通法。名字听着玄乎,其实道理很简单。

BLDC电机有三相绕组:U、V、W。每一相,要么接正极(V+),要么接负极(GND),要么悬空(Hi-Z)。三个状态,三相组合,一共6种有效状态。这就是“六步”的由来。

我习惯把六步换向想象成“推磨”。你站在磨盘边上,推一下,磨盘转60°;再推一下,又转60°。推六下,刚好一圈。六步换向就是这个道理——每换一次相,磁场旋转60°,六步凑够360°。

核心要点:六步换向的本质,就是让定子磁场始终领先转子磁场60°~120°电角度,产生最大的切向拉力。

具体哪六步?咱们用表格说话。假设电机正转,霍尔信号按U→V→W顺序变化:

步序 导通相 悬空相 电流方向 霍尔码(HU/HV/HW)
1 U+ → V- W U→V 101
2 U+ → W- V U→W 100
3 V+ → W- U V→W 110
4 V+ → U- W V→U 010
5 W+ → U- V W→U 011
6 W+ → V- U W→V 001

你看,每一行里,只有两相通电,一相悬空。这就是“两两导通”模式。悬空的那一相,我们用来检测反电动势——后面会细说。

我的经验:刚开始调六步换向时,别急着上高速。用手慢慢转动转子,同时用示波器抓霍尔信号和相电压波形。对照上表,一步对一步地验证。我曾经因为霍尔线序接反,折腾了整整一个下午。

3.2 反电动势与换相逻辑——无感控制的“眼睛”

霍尔传感器好用,但贵、娇气、还占地方。很多场合——比如高速吸尘器、无人机——根本装不了霍尔。怎么办?用反电动势(BEMF)。

反电动势是什么?说白了,就是转子转动时,定子绕组里感应出来的电压。你想想看,转子是永磁体,它在转,定子线圈相当于在切割磁力线,自然会产生电压。这个电压和转速成正比,和电流方向相反——所以叫“反”电动势。

反电动势的波形长什么样?理想情况下,BLDC的反电动势是梯形波。平顶部分宽度120°电角度,正好对应六步换向里“悬空相”的那60°窗口。

嗯,这里要注意:我们不是在通电相上检测反电动势,而是在悬空相上检测。因为通电相上有PWM斩波,噪声太大,没法用。

避坑指南:我曾经在反电动势检测电路上栽过跟头。分压电阻选太大,信号衰减到ADC都采不到;选太小,功耗又高。后来总结了个经验:分压后的BEMF信号峰值,最好在1.5V~2.5V之间(3.3V系统),留足余量给比较器或ADC。

反电动势换相的逻辑,核心就是“过零检测”。

当悬空相的BEMF电压从正变负(或从负变正)穿过中点电压时,就是过零点。过零点之后,再等30°电角度,就是最佳换相点。

为什么是30°?因为梯形波的平顶是120°,过零点在平顶的中间,也就是60°位置。从过零点到换相点,刚好30°。

用代码实现过零检测,大致是这样:

// 伪代码:反电动势过零检测
// 假设中点电压为 Vmid = Vbus/2

uint8_t detect_zero_cross(uint16_t bemf_adc, uint16_t vmid_adc) {
    static uint8_t last_state = 0;
    uint8_t current_state = (bemf_adc > vmid_adc) ? 1 : 0;
    
    // 检测上升沿或下降沿
    if (current_state != last_state) {
        last_state = current_state;
        return 1;  // 检测到过零点
    }
    last_state = current_state;
    return 0;
}

这段代码看着简单,实际用起来坑不少。ADC采样时机、滤波、中点电压漂移……每个点都能让你调一整天。

3.3 霍尔传感器原理——有感的“捷径”

如果你不想在反电动势上死磕,霍尔传感器就是你的好朋友。它简单、可靠、启动零难度。

霍尔传感器的工作原理,说白了就是“磁感应开关”。霍尔元件放在定子上,转子上的磁极扫过时,霍尔输出高低电平。三个霍尔,间隔120°电角度安装,就能输出三路方波信号。

这三路方波,组合起来就是6种状态——正好对应六步换向的6个扇区。

我画了一张图,帮你理解霍尔信号和换相的关系:

霍尔传感器与六步换相逻辑图 转子 N/S极 HU HV HW 定子绕组(三相) 霍尔信号时序: HU HV HW 说明 • 霍尔间隔120°电角度 • 6种状态对应6个扇区 • 换相点 = 霍尔边沿 • 每60°电角度换相一次

从图上你能看到,三个霍尔信号互相错开120°。任意时刻,三个信号组合起来就是一个3位二进制数。这个数,直接告诉MCU:“转子现在在哪个扇区”。MCU查一下换相表,就知道该开哪两个MOS管。

霍尔传感器的接线,我建议你注意两点:

  • 上拉电阻:霍尔输出是开漏的,必须接上拉电阻到MCU的IO电压。我一般用4.7kΩ,不高不低。
  • 滤波电容:霍尔信号边沿可能有毛刺,加一个100pF~1nF的电容到地,能省很多调试时间。

我的习惯:霍尔信号进来后,先不进换相逻辑,而是先做一次“边沿捕获”。用MCU的输入捕获功能,记录每次霍尔跳变的时间戳。这样不仅能换相,还能顺便算转速——一举两得。

3.4 有感和无感,怎么选?

这个问题,几乎每个学员都会问。我的回答很直接:看应用。

对比项 有感(霍尔) 无感(BEMF)
启动性能 零速即可换相,启动平稳 需要开环强拖,低速易失败
低速性能 优秀,霍尔信号清晰 差,BEMF信号太弱
高速性能 受霍尔响应速度限制 优秀,无传感器延迟
成本 高(霍尔元件+线束) 低(只需电阻分压)
可靠性 霍尔怕高温、怕振动 好,无额外器件
调试难度 低,时序固定 高,滤波参数需反复调

我个人习惯是:产品原型阶段用霍尔,先把功能跑通,把控制逻辑调稳。等产品要量产了,再评估能不能换成无感方案。这样风险最小,进度最快。

当然,有些应用没得选。比如冰箱压缩机,工作在高温高压环境,霍尔根本活不长,只能上无感。再比如航模电调,要轻要小要便宜,也是无感的天下。