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个扇区。
我画了一张图,帮你理解霍尔信号和换相的关系:
从图上你能看到,三个霍尔信号互相错开120°。任意时刻,三个信号组合起来就是一个3位二进制数。这个数,直接告诉MCU:“转子现在在哪个扇区”。MCU查一下换相表,就知道该开哪两个MOS管。
霍尔传感器的接线,我建议你注意两点:
- 上拉电阻:霍尔输出是开漏的,必须接上拉电阻到MCU的IO电压。我一般用4.7kΩ,不高不低。
- 滤波电容:霍尔信号边沿可能有毛刺,加一个100pF~1nF的电容到地,能省很多调试时间。
我的习惯:霍尔信号进来后,先不进换相逻辑,而是先做一次“边沿捕获”。用MCU的输入捕获功能,记录每次霍尔跳变的时间戳。这样不仅能换相,还能顺便算转速——一举两得。
3.4 有感和无感,怎么选?
这个问题,几乎每个学员都会问。我的回答很直接:看应用。
| 对比项 | 有感(霍尔) | 无感(BEMF) |
|---|---|---|
| 启动性能 | 零速即可换相,启动平稳 | 需要开环强拖,低速易失败 |
| 低速性能 | 优秀,霍尔信号清晰 | 差,BEMF信号太弱 |
| 高速性能 | 受霍尔响应速度限制 | 优秀,无传感器延迟 |
| 成本 | 高(霍尔元件+线束) | 低(只需电阻分压) |
| 可靠性 | 霍尔怕高温、怕振动 | 好,无额外器件 |
| 调试难度 | 低,时序固定 | 高,滤波参数需反复调 |
我个人习惯是:产品原型阶段用霍尔,先把功能跑通,把控制逻辑调稳。等产品要量产了,再评估能不能换成无感方案。这样风险最小,进度最快。
当然,有些应用没得选。比如冰箱压缩机,工作在高温高压环境,霍尔根本活不长,只能上无感。再比如航模电调,要轻要小要便宜,也是无感的天下。