前几天我的电机控制交流群里有人抛了个问题:直流无刷电机里的 ax by cz 到底怎么划分?能不能按“垂直轴线”来理解?这个问题我见过不止一次,因为一看到 a、b、c 加 x、y、z 这种写法,很多人第一反应就是数学里的坐标轴,以为三相绕组的轴线应该像 x/y/z 那样在空间上互相垂直。这个直觉放在交流电机里,恰恰是第一个要纠正的点。
先给结论:直流无刷电机(BLDC)里的 ax、by、cz 不是直角坐标系,而是三相绕组各自的磁场轴线方向。它指的是 A 相绕组通电后建立的磁场方向,也就是 A 相轴线,缩写为 AX;B 相、C 相同理。这三条轴线在空间上不是 90° 分布,而是按120° 电角度对称分布。至于“肉眼”能看到的机械夹角是多少,还要看电机的极对数。这篇文章就把这件事讲透:为什么是 120°、电角度和机械角度怎么换算、实际项目里怎么用示波器和启动逻辑找到这三条轴线,以及我在调试中踩过的几个典型坑。
1. “垂直轴线”为什么是一个经典陷阱
这个问题之所以有迷惑性,是因为字母太像坐标轴了。x、y、z 在数学里就是三个互相垂直的方向,所以看到 ax、by、cz,自然就会想“这三根轴是不是也互相垂直”。但电机里的 a、b、c 不是坐标轴编号,而是相序标识,x、y、z 在这里更像是“轴线”这个名词的尾标,合在一起就是 A-phase axis、B-phase axis、C-phase axis 的缩略写法。
1.1 你问的“垂直轴线”在电机里没有物理意义
直流无刷电机的定子绕组嵌在圆周铁芯槽里,三相绕组是按空间对称性布置的。假设你只看一相,比如 A 相,当它单独通电时,气隙中会建立一个磁场,北极所指的方向就是 A 相轴线。这个方向不是随便定义的,它是由绕组的绕向、槽位置和相带划分共同决定的。B 相单独通电,磁场方向是 B 相轴线,C 相同理。
三根轴线想要产生稳定的旋转磁场,就必须在电角度上彼此相隔 120°。这是三相系统的标准空间角度,和“垂直 90°”没有任何关系。如果把三相绕组硬做成 90° 间隔,那这台电机就不再是标准的三相电机,合成磁场会变成一个椭圆,转矩脉动会非常难看。后面我会专门算给你看。
1.2 A、B、C 三相轴线是怎么“长”在定子上的
绕组的嵌线方式决定了轴线方向。以常见的 12 槽 8 极电机为例,它的机械圆周被分成 12 个槽,电角度按极对数放大。极对数 p = 4,所以一圈机械 360° 对应 1440° 电角度。三相绕组会按照“每极每相槽数”均匀分配,A 相绕组在某个极下占据一个 60° 相带,B 相绕组的对应相带在电角度上比 A 相超前 120°,C 相再比 B 相超前 120°。
所以在定子圆周上,A、B、C 三相绕组并不是“你占一圈的三分之一”这么简单,而是按电角度严格错开。这种设计从源头保证了通入三相对称电流后,气隙中能产生一个幅值基本恒定的旋转磁动势,电机才转得平稳。
2. 120°电角度从哪来:三相电流和三相绕组必须互相配合
很多人记住“三相差 120°”这个数字,但不知道为什么一定得是 120°。我换个角度讲:三相系统里有两层“120°”,一层是电流时间相位,一层是绕组空间相位。这两层必须同时成立,才会出现圆形旋转磁场。
2.1 电流里的120°和时间相位
三相逆变器输出的三路电流,理论上满足:
[ i_A = I_m \sin(\omega t) ] [ i_B = I_m \sin(\omega t - 120^\circ) ] [ i_C = I_m \sin(\omega t + 120^\circ) ]
也就是说,任意时刻三相电流的大小不一样,但它们之间的时间相位永远差 120° 电角度。为什么是这个角度?因为在三相系统中,只有三个相差 120° 的对称分量才能完全抵消零轴分量,让合成电流矢量的幅值恒定。
2.2 绕组空间上的120°决定磁场旋转方向
如果只有电流时间相位差 120°,但三相绕组在空间上是垂直(90°)布置的,会发生什么?我们可以做一个简化推导。假设 A 相绕组轴线在 0°,B 相在 90°,C 相在 180° 或者任意其他角度,不再对称,那么三相信号在空间上合成出来的磁动势矢量不再是一个匀速旋转的圆,而是一个长短轴不等的椭圆磁动势。电机转起来会有明显的二倍频转矩脉动,甚至在某些位置会产生转矩“死区”,启动和低速运行都会出问题。
反过来,如果电流时间相位是 120°,绕组空间相位也是 120°,三相合成就变成了一个幅值恒定、角度匀速递增的旋转矢量。这就是教科书里常说的圆形旋转磁场。
用大白话类比:三个人推一个转盘,如果三个人站在转盘周围相隔 120°,并且步调一致地按顺序发力,转盘就能转得又稳又快。如果三个人挤在相隔 90° 的位置,发力就会忽大忽小,转盘会抖。
2.3 如果真按“垂直轴线”做会怎样
我不想只说“不行”,直接给你看问题在哪。
假设强行把 A、B、C 三相绕组的轴线按 90° 间隔布置,比如 A 在 0°,B 在 90°,C 在 180°,那三相电流的时间相位差依然是 120°。当 t 在某个时刻,A 相电流达到峰值,B、C 相电流约为 -0.866 峰值。三个方向上的磁场分量合成后,矢量角度和幅度都在剧烈变化,等价的“旋转磁场”不是一个正圆,而是变成了一个偏心椭圆。结果就是:
- 转矩波动明显增大,噪音和振动突出。
- 换相点的定义变得混乱,星形连接的中性点不再稳定。
- 逆变器开关频率附近的谐波变大,驱动波形畸变严重。
- 电机根本没办法按额定性能输出,更像一个“做错的同步电机模型”。
所以“按垂直轴线划分”这个思路,可以说从物理根上就不适用。三相交流系统不需要垂直坐标,它的天然坐标就是 120° 对称坐标。
3. 电角度和机械角度:极对数决定你“看得到”的夹角
理解了 120° 是电角度之后,就进入实操里最常出错的环节:机械角度换算。很多人拿到电机,直接拿卡尺或者角度尺量三相引出线之间的物理夹角,然后去对霍尔位置,结果完全对不上。原因就是没有把极对数 p 算进去。
3.1 核心换算公式与实例
电角度和机械角度的关系是:
[ \theta_{electrical} = p \times \theta_{mechanical} ]
其中 p 是极对数,不是极数。8 极电机 p = 4,10 极电机 p = 5。转子转一圈机械 360°,定子某一点经历的电角度是 p × 360°。
三相绕组轴线的间隔是 120° 电角度,所以它们对应的机械角度间隔是:
[ \theta_{mech} = \frac{120^\circ}{p} ]
这个公式很关键。不同极对数下的实际机械夹角如下表:
| 极数 | 极对数 p | A相与B相轴线机械夹角 | B相与C相轴线机械夹角 |
|---|---|---|---|
| 2极 | 1 | 120° | 120° |
| 4极 | 2 | 60° | 60° |
| 6极 | 3 | 40° | 40° |
| 8极 | 4 | 30° | 30° |
| 10极 | 5 | 24° | 24° |
所以,如果你手里是一台 4 极电机(p = 2),A 相轴线和 B 相轴线在机械圆周上只差 60°,而不是 120°。8 极电机更夸张,只有 30° 机械角。很多人在 4 极电机上按 120° 机械角去装霍尔,三路信号自然乱七八糟。
3.2 霍尔传感器实际安装位置的推导
霍尔位置传感器的安装也是同一个逻辑。三相 BLDC 的霍尔传感器通常按 120° 电角度间隔布置(也有一些电机按 60° 电角度间隔布置,原理一样,只是输出状态编码不同)。假设你采用的是 120° 电角度间隔方案,那么霍尔元件在机械圆周上的间距就是:
[ \delta = \frac{120^\circ}{p} ]
4 极电机里,三个霍尔互相之间间隔 60° 机械角;8 极电机里,间隔 30° 机械角。
这三个霍尔输出的方波信号在电角度上互差 120°,组合起来能表示 6 个扇区,对应 BLDC 六步换相里的 6 个电压矢量。每个扇区宽度是 60° 电角度,如果霍尔位置装偏,扇区分界线就会整体偏移,换相时刻提前或者滞后,电机的电流波形就会出现明显的“毛刺”和转矩抖动。
4. 实际项目里怎么“找到”和“对齐”这些轴线
理论说完了,接下来是干货:你在实验室里怎么判断 ax、by、cz 到底在哪,怎么利用它们做无感启动和编码器零点标定。
4.1 用反电动势过零点判断相位顺序
最简单的一种方法:让电机空转,用示波器同时测三相端电压,对比定子中性点电压(如果有中性线引出)或者虚拟中性点。
BLDC 电机在旋转时,每相绕组都会切割磁力线产生反电动势(BEMF)。三相反电动势的波形在电角度上互差 120°。你可以清楚看到过零点的顺序:A 相过零后隔 120° 电角度,B 相过零;再隔 120° 电角度,C 相过零。这个顺序就是相序,也就是三相轴线的空间顺序。
如果你观测到的过零点间隔不是 120° 电角度,比如 A 和 B 之间只有 60°,那说明:要么绕组接反了,要么你对换相逻辑里的“相”定义错了,要么电机内部不是标准的 120° 对称绕组。
实际测量中,我习惯把反电动势波形和某一相驱动电压的 PWM 边沿做对齐,确认哪一相先过零,再反向推断转子的磁极位置。这一步看起来简单,但很多启动问题就是从这里查出来的。
4.2 无感FOC里的A轴对齐操作流程
在无位置传感器 FOC 控制里,启动前必须知道转子的初始角度,否则电流环的 d/q 轴解耦就是错的。ax 在这里就派上了用场。
我常用的对齐流程是这样的:
- 逆变器输出一个固定电压矢量,比如开关状态 100,代表 A 相上桥臂导通,B 相下桥臂导通,C 相下桥臂导通。
- 这个矢量会在空间产生一个固定方向的合成磁动势,对应某个特定的电角度方向。因为电压足够大且持续时间足够长,转子会被“拉”到这个方向,最后停下来。
- 转子停稳后,记录当前编码器的读数,这个位置就是该电压矢量对应的电角度零点。
- 有了这个零点,后续所有电角度运算都能对齐到 A 相轴线上。
这里有个细节:不同开关状态对应的空间矢量方向不是正好落在 A 相轴线上,而是落在某个相轴组合的方向上,所以记录下读数之后就等于建立了一个“软件零点”。以后换相或者 SVPWM 的时候,拿当前编码器角度减去这个零点,再乘上极对数 p,就是当前真实电角度。
这个操作对 BLDC 方波驱动同样适用,很多入门的人在六步换相时直接按霍尔信号换相,霍尔没问题就感觉不到“对齐”的价值。但如果你做无感方波启动,初始位置不明会导致第一次强制换相失败甚至倒转,先用固定矢量拉转子一定是最稳的启动方式。
4.3 一个实操中的测量陷阱
测反电动势对齐轴线的时候,有一个坑特别容易踩:示波器探头直接夹在电机相线端测到的电压,不是纯反电动势,而是“母线电压经过逆变器续流后的叠加电压”。如果电机是 Y 形接法且中性点没有引出来,你很难直接看到一相的纯 BEMF。
我建议用差分探头测两相之间的线电压反电动势,或者用虚拟中性点法:用三个等值电阻分别接三相端线,公共端当作中性点参考,再用示波器测相电压减参考电压。这样得到的波形就是相对干净的 BEMF 波形,过零点更准确。
别小看这一步,虚拟中性点里三个电阻的精度如果不一致,比如 100kΩ 里有一个偏差 5%,过零点就会平移好几度电角度,做换相延迟 30° 的时候错误会被放大。
5. 三个易踩坑点:从电角度混淆到霍尔装偏
最后分享几个我在实际驱动项目里遇到的典型案例,每一个都跟 ax、by、cz 的划分有关。
5.1 把机械角度当成电角度
最常见的坑出现在 4 极或更多极的电机上。有人按 120°机械角去布置霍尔,出来的三路信号相位差变成 240°,换相扇区完全错乱。现象就是电机能转,但电流特别大,声音很难听,转速越高越抖。
排查思路很简单:先把电机的极对数写在纸上,然后算出 120°/p 的机械角,再对照霍尔的实际安装孔位。如果孔位是厂家给定的,还要确认厂家说的 120° 是电角度还是机械角度。我见过好几次数据手册里写的角度其实是机械角,软件里却当成电角度去处理,导致低速换相点整体偏移 30° 电角度。
5.2 霍尔安装偏差导致的启动抖动
霍尔装偏是另一个低频难题。很多时候位置偏差只有二三度机械角,看起来不多,但乘上极对数 p(比如 4),电角度偏差就变成了十几度。十几度的换相误差足够让方波驱动在换相瞬间产生电流尖峰,引起转矩跌落。
如果结构上没法保证机械精度,我一般会在软件里加一个“角度补偿”参数。做法是:让电机稳定旋转,测量三路霍尔信号的实际过零时刻与理论过零时刻的偏差,然后反推安装偏移角,把该补偿量加到换相逻辑里。这个方法不能本质上替代机械精度,但能让样机从“抖得厉害”变成“勉强能跑”,后续再调整工装。
5.3 我的长期习惯:先画图再接线
这么多年调试下来,我养成一个习惯:拿到任何一台新的无刷电机,先不急着上电,而是把定子绕组展开图、极对数、三相引出线的顺序、霍尔传感器候选位置全部画出来。
画出之后你会发现,ax、by、cz 三条轴线的方向一目了然,再对照换相真值表,基本能做到不会错接相序。遇到故障时我也会回到这张图上来排查,而不是靠“试一试换一下线”的碰运气方式。
最后分享一个小技巧:调试无感 FOC 时,我会在启动对齐流程里加一段很短的电压矢量,比如 100 持续 200ms,然后立刻记录编码器值、三相反电动势过零顺序,以及霍尔信号状态。把这三个信息放到同一张坐标轴上画出来,如果它们已经满足 120° 电角度的相对关系,说明这台电机的相序和轴线定义是自洽的。只要有一次对不上,问题大概率出在相线接反或者霍尔线序上。这个检查我几乎每次都会做,因为它可以省掉后面一大堆毫无头绪的调试时间。