拿到一个问题往往比拿到一个结论更有价值。前几天有人问我:“直流无刷电机里的 ax by cz 是怎么划分的?是按垂直轴线划分的么?”我当时愣了一下,因为这个标识在电机图纸、控制器原理图、甚至 FOC 源码注释里都太常见了,但真要展开讲清楚,会发现它背后牵着三相绕组布局、极对数换算、坐标变换、霍尔安装位置一整套东西。今天就借着这个疑问,把 ax by cz 从头到尾捋一遍。
先说结论放在前面:ax、by、cz 不是直角坐标系里的 x/y/z 轴,而是三相绕组的轴线编号,它们不是垂直关系,而是在空间圆周上互差 120 度电角度来划分的。至于为什么不是 90 度、为什么叫“x/y/z”、多极电机里角度怎么算、控制算法里又是怎么用的,下面逐个拆。
1. 拆开标识:ax、by、cz 到底代表什么
1.1 a、b、c 的源头:三相绕组命名
直流无刷电机(BLDC)和永磁同步电机(PMSM)的定子里,最核心的东西就是三相绕组。这三相分别叫 A 相、B 相、C 相,对应的绕组中心线所在位置就称为 A 相轴、B 相轴、C 相轴。在电气图纸和仿真软件里,这三根轴经常缩写为 a 轴、b 轴、c 轴。
也就是说,ax 的意思是“a 轴”(a-axis),by 是“b 轴”(b-axis),cz 是“c 轴”(c-axis)。很多人看到小写 x、y、z 会本能地想到三位直角坐标,这是最普遍的一个误解。x、y、z 在这里更像是一个“列举占位符”,用来把三根轴分别标成 ax、by、cz,方便在公式里逐项代入,并没有指向任何空间方向。
1.2 大写 X/Y/Z 和小写 ax/by/cz 要区分
这里必须提醒一下,实际电机端子上可能出现下面几种标记,含义完全不同:
| 标记 | 常见含义 | 说明 |
|---|---|---|
| A、B、C | 三相绕组的首端 | 接控制器三相驱动线 |
| X、Y、Z | 三相绕组末端(星形接法公共点引出) | 有时不引出,内部直接并到一起 |
| ax、by、cz | 三相绕组的空间轴线标识 | 用于磁场分析、坐标变换 |
| U、V、W | 很多厂家习惯用 U/V/W 替代 A/B/C | 本质还是三相绕组 |
我见过有人拿着万用表去量“X 端”和“Y 端”,以为这是某种特殊绕组抽头,结果发现就是普通的绕组末端。所以拿到一台电机时,先确认厂家图纸里的标注体系,再动手测,不然很容易在相序判断上绕圈子。
2. 三根轴在空间里到底怎么摆:120 度电角度的来龙去脉
2.1 为什么不能是垂直的 90 度
这个问题问得很直接:“是按照垂直轴线划分的么?”如果三根轴互差 90 度,分布在一个圆周上时,第四根轴会和第一根轴重合。对三相系统来说,这会导致一个致命问题——三相电流产生的合成磁场无法形成一个平滑旋转的圆形磁场,三相之间在时间上的 120 度相位差和空间上的 120 度分布就对不上了。
三相正弦电流在时间上本身就互差 120 度:
- A 相电流:I_a = I_m × sin(ωt)
- B 相电流:I_b = I_m × sin(ωt - 120°)
- C 相电流:I_c = I_m × sin(ωt + 120°)
要让这三相电流共同生成一个恒幅旋转磁场,最自然的方式就是让它们在空间上也互差 120 度。这样,三相绕组各自产生的脉振磁动势叠加后,合成磁动势的幅值恒定、方向随时间匀速旋转。如果把轴线摆成 90 度,时间相位和空间相位就错位了,合成磁场会变成一个椭圆甚至严重畸变,电机的转矩波动和噪声都会急剧恶化。
2.2 电角度与机械角度:极对数这个关键桥梁
这里有一个电机入门必踩的坑:上面说的 120 度,指的是电角度,不是机械角度。电角度和机械角度之间的关系是:
θ_e = p × θ_m
其中:
- θ_e 是电角度
- θ_m 是机械角度
- p 是极对数
所以三相轴线互差 120 度电角度时,对应的机械角度要除以极对数:
θ_m = 120° / p
举三个实际例子:
| 电机极数 | 极对数 p | 三轴互差机械角度 |
|---|---|---|
| 2 极 | 1 | 120° |
| 4 极 | 2 | 60° |
| 8 极 | 4 | 30° |
看到这个表就应该明白,“ax by cz 怎么划分”这个问题,答案跟电机极数直接挂钩。2 极电机可以在空间上直观看到三根轴互差 120 度;4 极电机在机械圆周上其实有六根有效轴位置(两组 a-b-c 各差 60 度);8 极电机则更多。你拿着卡尺去量相邻两个同相绕组的机械夹角,永远等于 360°/p 的一半规律,但量相邻 A、B 轴的夹角,就等于 120° / p。
2.3 24 槽 4 极电机现场演示
为了更直观,我们拿最常见的 4 极 24 槽电机来走一遍。定子有 24 个槽,极对数为 2,极数为 4。整个圆周 360 度机械角对应 720 度电角度(因为 p = 2,电角度 = 2 × 机械角度)。
24 槽分给三相,每相占 8 槽。由于是双层绕组,每相绕组会分散在多个槽中,但每相绕组的合成磁动势中心线就是这一相的轴线。对 4 极电机来说,机械圆周上相邻 A 相轴和 B 相轴之间的机械夹角是:
360° / (p × 3) = 360° / 6 = 60°
也就是说,沿电机定子圆周走一圈,你会看到 A 轴、B 轴、C 轴、A 轴、B 轴、C 轴这样循环出现两次,每相邻两轴之间相差 60 度机械角。这就是“ax by cz 划分方式”在不同极数下的真面目。
3. 顺着电机内部结构看一遍:绕组怎么“走”出轴线
3.1 绕组嵌线决定了轴线位置
定子绕组不是随随便便绕一圈就能形成轴线的。每个线圈都有有效边,电流在有效边里流动方向不同,产生的磁场方向就不同。一组线圈按特定节距嵌进定子槽后,磁动势的合成方向就是该相轴线的方向。
以最简单的 2 极 6 槽电机为例:A 相绕组嵌在两个相距 180 度机械角的槽里,电流从一端流入、另一端流出,产生的磁动势轴线就在这两个槽连线的中垂线方向。B 相绕组的两个有效边相对 A 相整体旋转了 120 度机械角,B 相轴就指向另一个方向。C 相继续旋转 120 度。
这里可以给一个现场鉴别的小技巧:如果你手里有电机定子但没图纸,用万用表找出三相绕组后,通入直流电,再用一个小磁针(或者手机指南针)靠近定子内圆,磁针指向的方向就是通电相的轴线方向。依次给 A、B、C 相通电,你会发现磁针指的方向依次旋转了 120°(2 极电机)或 60°(4 极电机)。这个实验非常直观,也适合新手理解轴线概念。
3.2 霍尔传感器与轴线的对应
直流无刷电机通常内置三个霍尔传感器,用来检测转子位置。很多人不知道的是,三个霍尔传感器在空间上的安装位置,也遵循 120 度电角度的规律。每个霍尔元件检测的是转子磁极经过时的磁场方向翻转,因此霍尔信号之间的相位关系,本质上就是三相绕组轴线关系的映射。
实际维修时我经常这样操作:用示波器同时测三个霍尔信号,然后手动缓慢转动电机轴。正常情况下,三个方波信号依次错开 120 度(电角度),波形顺序就代表了霍尔元件的安装顺序。如果三个信号之间的间隔不是 120 度电角度,而是 60 度、180 度这种,那基本可以判断霍尔安装位置有问题,或者霍尔元件型号不对。
这里要专门说一个容易踩的坑:换相时霍尔信号和三相绕组的对应顺序是可以整体轮换的。三种接法都能让电机正常转,只是旋转方向不同。A 相霍尔信号对应 AX 绕组,B 相霍尔对应 BY 绕组,C 相霍尔对应 CZ 绕组,这个对应关系如果错位,电机就会不转或抖动。如果电机的六步换相表在控制器里是固定的,那就只能通过调换霍尔和绕组的接线来解决。
3.3 用万用表找相序的实测步骤
很多 DIY 玩家拿到的电机上没有标明 A/B/C,只有三根颜色线,这时候怎么确定 ax by cz?有两个办法。
办法一:测反电动势法。把电机三相线分别接示波器通道,手动快速转动电机轴,三路波形就是三相反电动势。由于绕组空间轴线互差 120 度电角度,三路波形的过零点也依次相差 120 度电角度。标记哪根线对应波形超前,就可以把三根线命为 A、B、C。
办法二:转动方向法。用一个已知正常工作的无刷驱动器,把三根线随机接到驱动器的三相输出上,如果电机正转,说明相序恰好是驱动器所期望的;如果反转,就交换任意两根线。反转后电机性能不会变,只是方向反了,这是最粗暴也最常用的方法,适合没有示波器的场景。
其实这里还藏着一个非常实用的原理:无刷电机能正常运转的前提,是驱动器的换相顺序必须和电机三相绕组的空间顺序匹配。如果驱动器的换相顺序是从 A 到 B 到 C,而电机绕组空间顺序是 A 到 C 到 B,那电机必然堵转或剧烈抖动。
4. 从空间轴线到控制算法:ax by cz 是怎么进入 FOC 的
4.1 三相静止坐标系的建立
搞电机控制的工程师都熟悉 Clarke 变换和 Park 变换,但这两个变换最底层的物理依据,就是前面讲的三相轴线互差 120 度电角度。在算法里,ax、by、cz 这三根轴构成了一个三相静止坐标系,通常记作 abc 坐标系。三相电流 i_a、i_b、i_c 分别就是 A 相绕组、B 相绕组、C 相绕组里流过的电流。
因为三根轴互差 120 度,所以三相电流并不是独立的,它们满足基尔霍夫电流定律:
i_a + i_b + i_c = 0
这个约束关系让三相系统在数学上可以降维到两相系统。Clarke 变换干的就是这件事。
4.2 Clarke 变换和 Park 变换里的角度依赖
Clarke 变换把 abc 三相静止坐标变成 αβ 两相静止坐标,标准公式是:
i_α = 2/3 × (i_a - i_b/2 - i_c/2) i_β = 2/3 × (√3/2 × i_b - √3/2 × i_c)
这个式子里为什么会出现 √3/2?因为三根轴线互差 120 度,它们在 αβ 平面上的投影比例就是三角函数关系。也就是说,公式里的系数 2/3 和 √3/2 直接由轴线的空间角度决定。如果你把轴线夹角改成 90 度,那这个变换系数就得全部改写。
Park 变换则把 αβ 静止坐标变成 dq 旋转坐标,需要实时获取转子角度 θ:
i_d = i_α × cosθ + i_β × sinθ i_q = -i_α × sinθ + i_β × cosθ
这里的 θ 就是转子磁极轴线相对 A 相轴线(ax)的电角度。注意,角度编码器或霍尔传感器给出的数值,必须换算成电角度后直接喂进这个公式。如果你把极对数 p 算错了,比如 4 极电机按 2 极去算角度,dq 轴就会错位,电流环的输出会乱套,具体表现就是电机扭矩小、电流大、发热严重。
4.3 为什么 FOC 源码里经常出现 Ax_By_Cz 注释
看过一些开源电机控制代码的朋友可能有印象,在电流采样、换相表定义的地方,经常有类似注释:
// Phase A -> B -> C uint8_t step_table[6] = {0b100001, 0b000001, ...};或者是变量命名里带 ax、by、cz:
float Ia = read_current(AX); float Ib = read_current(BY); float Ic = read_current(CZ);这个命名习惯其实是从 Matlab/Simulink 仿真模型和学术论文里沿袭下来的。Simulink 里三相电压源、绕组模块的默认标注就是“A”“B”“C”或“a”“b”“c”,对应的物理端口在文档里写成 ax、by、cz。写代码的人为了方便对照算法文档,就沿用这个命名。
所以你要是看代码看到 Ax_By_Cz,心里就应该自动映射成“三相绕组轴线方向上的电流/电压分量”。它不是坐标系,而是一个信号命名的习惯。
5. 常见问题与排查避坑指南
5.1 问题一:为什么实测反电动势波形相差 120°,而不是 90°
这是“垂直轴线”误区的直接延伸。你拿示波器量一台 2 极无刷电机的三相反电动势,三路波形过零点相互错开 120 度电角度。如果你把三路波形画在同一个坐标图上,看起来就像三相交错的正弦波,但它们的相位差是 120 度,不是 90 度。
有些朋友会拿三相市电的 120 度相位差来对比,这其实是一回事:三相系统的时间相位差 120 度,对应到电机里就是因为三套绕组在空间上物理错开了 120 度电角度。这里的时间相位和空间相位是一一对应的,没有矛盾。
5.2 问题二:六步换相里,六个开关状态对应哪几个位置
六步换相(梯形波控制)下,六个功率管开关状态分别对应转子磁极在不同位置时,定子磁场方向要“指向”某个方向。这个方向本质上是 ax、by、cz 三根轴线和它们反向延长线的六等分方向。也就是说,定子磁动势的六个离散方向,就是三根相轴及其反方向,每两个方向之间相差 60 度电角度。
注意,这里 60 度电角度来自 120 度轴距的一半,等于 360 度除以 6。这个排列非常整齐,六步换相表本质上就是在这个六等分基础上查表换向。理解了轴线划分,你就理解了为什么六步换相表总是六组而不是四组、八组。
5.3 问题三:电机线和霍尔线颜色对不上怎么办
这是实际维修中最容易头大的一个问题。不同厂家用的线颜色标准不同,有的用黄绿蓝,有的用红黑白,甚至有的一律同色。我的处理思路是:
第一步,先区分功率线和霍尔线。霍尔线一般有 5 根(3 信号 + 电源 + 地),功率线是 3 根粗线,这个不难分。
第二步,给霍尔传感器接上 5V 电源,用示波器或逻辑分析仪量三个霍尔输出,手动转电机,记录霍尔信号顺序。
第三步,用驱动器开环输出一个小占空比,分别尝试功率线的不同接法。如果电机能平稳转动且电流较小,说明功率线相序正确;如果抖动、啸叫、过流,就交换任意两根线再试。
我现在遇到颜色混乱的电机,就直接放弃依赖颜色,全套用示波器和驱动器调试,十几分钟就能确定正确接法。
5.4 问题四:极对数多的时候,怎么找轴线
8 极、10 极以上的电机,轴线在物理上已经很密集了,肉眼分辨 ax、by、cz 很困难。这时候千万别对着端盖数槽,那是体力活。正确做法是:
- 用万用表欧姆挡测出三组绕组,任意标记为 A、B、C。
- 给 A 相通一个低压直流电(比如 5V 经过限流电阻),观察电机轴能否定位,用角度传感器读出当前转子位置。
- 换 B 相通电,转子会转到另一个位置,对比 A 相和 B 相之间的转子电角度差。因为转子会转到与定子磁场一致的位置,两次通电的位置差就是这两相轴线的电角度差,理论上就是 120 度电角度。
这个方法不需要示波器,也不需要拆电机,只需要一个直流电源和一个角度传感器(编码器或角度霍尔板)。我调试伺服电机时经常用这个办法来确定初始电角度偏置,比盲目试快很多。
5.5 问题五:ax、by、cz 和 αβ、dq 坐标系的关系搞混
这是进阶用户比较容易混淆的点。ax/by/cz 是三相静止坐标系的轴线,αβ 是两相静止坐标系的轴线,dq 是两相旋转坐标系的轴线。这三者之间是可以通过变换互相转换的,但不是同一个东西。
- ax/by/cz → αβ:Clarke 变换
- αβ → dq:Park 变换
- ax/by/cz → dq:Clarke + Park 级联
记住一个简单的类比:ax/by/cz 就像站在电机旁边看三个固定方向的风扇叶片,dq 就像坐在转子上一块转着看,αβ 则是站在定子上但没有三相那么多轴线的简化视角。搞混这三者,会让你的调试直接进入地狱模式。
一点个人的调试体会
我从第一次拆无刷电机到真正把 FOC 调稳,中间走了不少弯路。回头看,最值钱的经验就是:拿到电机先别急着上电,先用万用表和示波器把三相绕组的轴线和霍尔位置认清楚。ax by cz 看起来是个命名问题,实际上是一切的起点——绕组怎么嵌、霍尔怎么装、算法怎么变换、换相表怎么查,全都建立在“三轴互差 120 度电角度”这个物理前提之上。
有一点想特别提醒入门的朋友:网上很多资料把“120 度”写得很随意,初学者拿着这个概念去量机械角度时经常对不上。极对数一插进来,机械角度就变了。把电角度和机械角度的换算公式写在纸上、贴在示波器旁边,你会发现后面所有调试都顺了。
最后分享一个小技巧:如果你手里有一台好用的电机,把它当基准。新电机到手后,用它的反电动势波形和霍尔波形去和基准电机对比,波形间隔是不是 120 度、过零点顺序对不对,一眼就能看出来。这种“波形对比法”比任何资料都直观,也是我这些年判断电机相序最依赖的方法。