2、换相原理:直流无刷电机换相逻辑、六步换相法、FOC换相与编码器关系
聊换相之前,我先问大家一个问题:直流无刷电机为什么叫「无刷」?
说白了,就是把传统直流电机里的机械电刷和换向器给拿掉了。拿掉之后谁来干换相的活儿?——控制器。所以无刷电机的核心问题就变成了:什么时候该给哪一相通电?这就是换相逻辑要回答的事。
2.1 换相的本质:让磁场始终「推」着转子跑
我习惯把无刷电机理解成一个「追着磁场跑」的系统。定子线圈通电产生磁场,转子永磁体被这个磁场推着转。但转子一旦转到位,如果定子磁场不跟着变,转子就会被「吸住」不动了。所以必须不断切换通电相,让定子磁场始终领先转子一个角度。
这个切换动作,就是换相。
核心要点:换相的本质是让定子磁场矢量始终超前转子磁场矢量一个电角度,从而产生持续的电磁转矩。
我在项目里见过不少新手,上来就调PID,结果电机嗡嗡响就是不转。查到最后,往往是换相时序搞反了——磁场在「拉」转子而不是「推」转子,能不抖吗?
2.2 六步换相法:最经典的方波驱动
六步换相法,也叫120°导通法,是直流无刷电机最基础的驱动方式。你想想看,三相全桥有6个MOS管,每次导通2个(上桥1个+下桥1个),6个开关状态走一圈,就是一个完整的电周期。
具体哪6步?我直接给个表,大家对照着看:
| 步序 | 导通的MOS管 | A相 | B相 | C相 | 电流方向 |
|---|---|---|---|---|---|
| 1 | Q1 (AH) + Q4 (BL) | +V | GND | 悬空 | A→B |
| 2 | Q1 (AH) + Q6 (CL) | +V | 悬空 | GND | A→C |
| 3 | Q3 (BH) + Q6 (CL) | 悬空 | +V | GND | B→C |
| 4 | Q3 (BH) + Q2 (AL) | GND | +V | 悬空 | B→A |
| 5 | Q5 (CH) + Q2 (AL) | GND | 悬空 | +V | C→A |
| 6 | Q5 (CH) + Q4 (BL) | 悬空 | GND | +V | C→B |
这6步走完,转子转了一个电角度周期。对于一对极的电机,就是机械上转了一圈。多对极的话,电周期要重复极对数次。
我的经验:六步换相法虽然简单,但有个明显的缺点——转矩脉动大。因为每次换相时电流是突变的,电机在换相瞬间会「咯噔」一下。我在做低速直驱项目时,六步换相根本没法用,噪声太大。后来换了FOC才解决。
2.3 FOC换相:让磁场「平滑」地转
FOC(磁场定向控制)和六步换相最大的区别是什么?六步换相是「跳着走」,FOC是「滑着走」。
六步换相每次只给两相通电,磁场方向是离散的6个位置。FOC则通过SVPWM(空间矢量脉宽调制),让三相同时通电,合成一个任意方向的定子磁场矢量。这个矢量可以连续旋转,而不是跳变。
我画了一张对比图,大家一看就明白:
2.4 编码器在换相中的角色
不管是六步换相还是FOC,你都得知道转子当前在什么位置。否则你怎么知道该给哪相通电?
编码器就是干这个的——告诉控制器「转子现在转到哪了」。
具体来说,编码器在换相中承担三个任务:
- 初始位置检测:电机启动前,先读编码器,确定转子初始角度。六步换相只需要知道转子在哪个60°扇区,FOC则需要精确到1°以内。
- 换相触发:六步换相中,每当转子转过60°电角度,就触发一次换相。这个触发信号可以来自霍尔传感器,也可以来自编码器的位置变化。
- 角度反馈(FOC专用):FOC需要实时知道转子的电角度,用于Park变换和逆Park变换。编码器的精度直接决定了FOC的控制质量。
我曾经踩过的坑:有一次做FOC调试,电机转起来总是有高频啸叫。查了两天,最后发现是编码器的Z信号(零位信号)和电机的电角度零点没对齐。编码器认为的0°和实际反电动势的0°差了30°电角度,导致电流环一直在「拧着劲」工作。从那以后,我每次上电都会做一次编码器零位校准。
2.5 三种换相方式对编码器的要求
我整理了一个对比表,方便大家选型时参考:
| 换相方式 | 所需传感器 | 编码器精度要求 | 换相点数量 | 转矩脉动 |
|---|---|---|---|---|
| 六步换相(霍尔) | 3个霍尔传感器 | 无(仅需扇区信息) | 6个/电周期 | 大 |
| 六步换相(编码器) | 增量式编码器 | 低(100~500线) | 6个/电周期 | 大 |
| FOC(有感) | 绝对值/增量式编码器 | 高(1000线以上) | 连续(无级) | 小 |
| FOC(无感) | 无(反电动势观测) | 无硬件传感器 | 连续(估算) | 中(低速差) |
你想想看,如果编码器精度不够,或者安装有偏差,FOC的电流环就会「看到」一个错误的角度,然后给出错误的电压矢量。这就是换相错误最常见的根源之一。
2.6 换相错误是怎么发生的?
基于上面的原理,我把换相错误归纳为三类:
- 时序错误:换相顺序搞反了。比如六步换相本该走1→2→3→4→5→6,结果走了1→6→5→4→3→2。电机反转或者卡死。
- 角度偏差:编码器安装有机械偏差,或者零位没校准。FOC中角度偏差超过10°电角度,转矩就会明显下降,超过30°基本没法用。
- 扇区误判:六步换相中,霍尔信号或编码器计数出错,导致在错误的扇区换相。电机表现为「一顿一顿」或者异响。
我的诊断习惯:遇到换相问题,我第一步不是看代码,而是用手转动电机轴,同时用示波器看编码器的A/B/Z波形。波形不对,后面全是白搭。硬件信号没问题,再查软件里的换相表。