看到"直流无刷电机ax by cz怎么划分的,是按照垂直轴线划分的么"这个问题时,我就知道提问者大概率刚接触到电机控制里最基础、却又最容易绕晕的一套概念。ax、by、cz这三个缩写很多资料里直接作为A相轴线(A-axis)、B相轴线(B-axis)、C相轴线(C-axis)来用,本质上就是三相定子绕组各自在空间上的方向基准线。今天就用实际工程视角把这套东西彻底讲清楚,顺便把霍尔安装、编码器零位对齐、FOC坐标变换这些跟轴线划分强相关的实操内容一并串起来。
1. 先破题:ax、by、cz到底在说什么
1.1 绕组轴线到底是什么
你拆开一台直流无刷电机(BLDC)或永磁同步电机(PMSM),定子铁芯槽里嵌着三相绕组,通常标注为U、V、W,也有人习惯叫A、B、C。当你给某一相绕组单独通电时,这一相在气隙里会产生一个磁动势,合成磁动势的方向就是这个绕组的轴线方向。打个比方,假设现在只有A相通电,电流形成的等效磁场就像有一根看不见的磁棒横在定子内腔,这根"磁棒"的中心轴线就是A相轴线,也就是ax。
在电机设计图纸和矢量控制原理图里,轴线的习惯画法是从圆心指向圆周某个方向。三相绕组在定子圆周上对称布置,所以ax、by、cz这三个方向在空间上也是对称分布的。这里的x/y/z并没有额外的数学含义,就是"axis"这个单词的缩写标记。很多初学者看到ax、by、cz会以为是什么特殊坐标系,其实它们只是三相绕组各自的空间基准线。
搞清楚这个基础概念后,后面所有关于换向、坐标变换、角度对齐的内容才聊得下去。
1.2 关键回答:三相轴线不是垂直关系
直接回答那个热词里的疑问:ax、by、cz这三条轴线不是按照垂直(90度)轴线划分的。三相互差角度是120度电角度,不是90度。90度在哪里出现?在dq坐标系或者αβ坐标系里。两相垂直绕组系统才用90度,三相绕组体系必须用120度,这是由三相交流电本身的相位关系决定的。
为什么必须是120度?因为三相电流之间的相位差就是120度。要让三相对称电流在电机气隙里合成一个幅值恒定、匀速旋转的圆形旋转磁场,空间上的轴线夹角必须和电流时间相位差完全对应。三相电流可以写成:
- iA = Im · cos(θ)
- iB = Im · cos(θ - 120°)
- iC = Im · cos(θ + 120°)
每个电流在各自轴线上产生对应方向的磁动势分量,三个分量矢量叠加后,合成磁动势的幅值恒定不变,角度随时间连续变化,于是就在气隙里"转"了起来。这个原理也告诉我们:如果把三相绕组按90度空间间隔去放,通上三相对称电流后合成的磁场会是一个椭圆甚至脉振磁场,转矩脉动会大到你根本没法用。这不是"能不能凑合"的问题,而是物理定律直接把这条路堵死了。
2. 从物理结构到数学表达:轴线的几种等价视角
2.1 轴线静止,磁场旋转
刚开始接触电机控制的人最容易绕晕的点,不是轴线本身,而是"轴线明明是固定的,电机怎么转起来的"。实际上ax、by、cz三条轴线在定子空间里是固定的,从来不会移动,运动的是合成磁动势矢量。
方波驱动时,逆变器按六个换向状态依次让两相绕组通电,合成磁动势从A相轴线方向跳变到另一个方向,每个状态步进60度电角度,于是磁场像一个跳着舞的指针一样一圈圈转。正弦波驱动(FOC)时,三相电流连续变化,合成磁动势矢量就不再是跳变,而是圆滑地匀速旋转。转子的磁极始终试图跟随这个旋转磁场,于是电机就转起来了。
理解这层关系后,你会发现所谓"换相"本质上是改变合成磁动势的指向,而合成磁动势的每一个指向,都对应三相电流在一组特定轴线上投影的组合。轴线的空间位置决定了电流怎么分配才能得到想要的磁场方向。
2.2 电角度和机械角度,这里最容易算错
"ax、by、cz互差120度"这个说法严格来说是不完整的。完整表述是:三相绕组轴线在电角度上互差120度。如果是,电角度和机械角度之间差一个极对数p:
θ_e = p · θ_m
当一台电机只有一对极(p=1)时,机械角度120度就等于电角度120度,这时候你拿量角器在端盖上去量三相轴线的几何夹角,确实就是120度。但工程现场大量电机是4极、6极、8极甚至更多极的,事情就不一样了。
举个例子:一台8极电机,极对数p=4。电角度120度对应的机械角度是30度。也就是说,三相绕组的轴线在定子圆周上的实际几何间隔只有30度,而不是120度。如果你拿一个机械120度的角度概念去找霍尔安装孔或者绕组起始位置,基本就是瞎抓。
这个坑在工程里特别常见。我见过不止一次,有人拿着两对极电机的绕组展开图,用机械120度去标三相轴线的几何位置,结果怎么调试换向都不对。记住:绕组嵌线时决定三相轴线几何位置的,是电角度120度除以极对数p,再折算到定子圆周上。
2.3 怎么在实物里找到ax的方向
理论说完了,回到现实。你面前摆着一台直流无刷电机,端子引出A、B、C三根线,怎么确定ax的空间方向到底指向哪里?我常用的方法有三个:
第一种,叫反电动势法。把电机三相线悬空,用手或工装转动转子,示波器同时观察三相反电动势波形。三相波形在时间上互差120度,它们分别对应三相绕组在各自轴线上的感应电动势。找到某一相反电动势的过零点或峰值点,再和转子位置传感器反馈对照,就能反推出该相轴线的实际位置。这是最普适、最不需要拆电机的方法。
第二种,叫直流定位法。A相接可调直流电源正极,B相接负极,C悬空,电流限制在额定值10%到20%,转子会被强制拉到某个固定位置然后锁死。这个位置就是合成磁动势和转子磁极对齐的位置。当你知道了此时转子的机械角度以及电源极性,就能推出A相轴线的方向。这个方法也是后面做编码器零位对齐的核心操作。
第三种,用LCR表测电感。电感随转子位置变化,可以扫角度找趋势,但受磁路饱和影响,精度不如前两种,而且操作繁琐,工程上用得少。
3. 实操核心:换向与矢量控制中的轴线应用
3.1 六步换向里,轴线的角色是什么
无感方波驱动和带霍尔的方波驱动都依赖六步换向。六个开关状态对应六个通电组合,每次换向时合成磁动势在三条轴线的合成方向上步进60度。标准换向顺序一般写成:
| 换向状态 | 导通相 | 电流流入端 | 电流流出端 | 合成磁动势方向 |
|---|---|---|---|---|
| 状态1 | AB | A | B | 偏向A轴与反B轴之间 |
| 状态2 | AC | A | C | 偏向A轴与C轴之间 |
| 状态3 | BC | B | C | 偏向B轴与反C轴之间 |
| 状态4 | BA | B | A | 偏向反A轴与B轴之间 |
| 状态5 | CA | C | A | 偏向反A轴与C轴之间 |
| 状态6 | CB | C | B | 偏向反B轴与C轴之间 |
六个状态循环一次,合成磁动势旋转360度电角度,转子跟着转过一对极。霍尔传感器的作用,就是告诉你当前转子磁极相对于三条轴线的位置,控制器据此决定该发哪个换向状态。
霍尔信号和轴线之间有明确的相位关系:霍尔信号的跳变沿应当对应某一相反电动势的过零点或与之有固定角度偏差。调试时我用示波器同时测霍尔输出和反电动势,基本一眼就能看出霍尔安装是否跟轴线对得上。
3.2 FOC坐标变换里,ax是坐标系的原点基准
FOC(磁场定向控制)比六步换向复杂,但底层仍然是围绕三相轴线展开。矢量控制的第一步,是把三相静止坐标系里的电流iA、iB、iC转换到两相静止坐标系αβ上,这时α轴通常就定义在与A相轴线重合的方向上,也就是ax方向。这个选择不是随便定的,是为了让数学表达和物理结构对得非常自然。
Clark变换公式是:
- iα = iA - (1/2)·iB - (1/2)·iC
- iβ = (√3/2)·(iB - iC)
然后做Park变换,把αβ量变换到随转子旋转的dq坐标系:
- id = iα·cosθ_e + iβ·sinθ_e
- iq = -iα·sinθ_e + iβ·cosθ_e
这里的θ_e意味深长,它是转子磁场方向相对于A相轴线的电角度。如果在软件里把编码器零位定义在和A相轴线对齐的位置上,那么θ_e直接等于编码器读数乘以极对数。你会发现,编码器零位校准说得再花哨,本质就一件事:让"转子电气位置零点"和"ax轴线方向"重合。
3.3 编码器零位与A相轴线对齐的完整流程
这个操作我强烈建议每个做FOC或者带编码器BLDC控制的人都亲手走一遍,流程如下:
第一步,断电,确认驱动器处于可安全输出状态。把电源模块的电流限制设到电机额定电流的10%到20%,电压给到额定电压,防止转子锁定时电流过大烧绕组。
第二步,A相绕组接直流电源正极,B相接负极,C相悬空。此时定子合成磁动势指向A轴和反B轴的中间区域,转子会被拉到一个明确位置并稳定锁住。
第三步,转子锁稳后,记录当前编码器读数θ_align。此时转子磁极方向和A相轴线的几何关系是确定的,你把θ_align设为软件里的电气零度即可,或者通过修改变换参数中的角度偏移量来校正。
第四步,为了排除机械回程差和磁路剩磁影响,可以反过来B接正、A接负,加载同样的直流电流,转子会停在对称位置,再记录一次读数。两次读数换算到同一电气位置后取平均,能得到更稳的零点。
第五步,如果编码器本身带寻零信号,可以尝试调整编码器机械安装位置,让Z信号出现在对齐位置附近,这样每次上电后找零会方便很多。我实际测试下来,多数场合一次定位就够准,但电流一定要稳定,不要让转子停在临界点附近来回晃动。
这个流程的准确性直接决定FOC转矩控制的平顺性。零位偏差个几度,低速可能只是效率低一点,但负载一大就会出现电流偏大、转矩波动、甚至飞车报警。
3.4 电角度偏置的自整定技巧
即使是按上面流程做了对齐,实际闭环跑起来我还会做一次电角度偏置自整定。原因是编码器刻线零点、霍尔跳变沿的一致性、机械装配公差都会引入几度到十几度的角度偏差,这些偏差在低速工况下不明显,到了高速时会让Id和Iq解耦不彻底,导致电流环带宽上不去。
自整定我常用两种方式。一种是反电动势过零相位比较法:让电机空载匀速旋转,测量实际反电动势过零点,和软件估算的转子电气角度位置做差,得到固定角度补偿量。另一种是"转矩-电流夹角扫描法":给电机施加固定大小、不同角度的电流矢量,观察输出转矩在哪一个角度达到最大值,记录这个角度作为补偿偏置。第二种方法更准确,但需要在台架上进行,适合批量量产校准。
4. 常见问题与排查技巧实录
4.1 霍尔位置和轴线对不上会有什么症状
你如果发现接好线以后电机启动时偶发反转、低速抖动、堵转电流比额定值还大、或者高速空载电流居高不下,首先要怀疑的就是霍尔信号和三相轴线之间的相位关系不对。
排查方法很直接:手动或通过工装缓慢转动电机转子,示波器同时测三个霍尔信号和A相反电动势。正常状态下,某个霍尔信号的跳变边沿应该落在对应相反电动势过零点附近,偏差不超过几度到十几度。如果跳变沿明显超前或滞后很大角度,就可以确认是霍尔安装位置偏差,而不是软件配置问题。
这种情况下我的处理习惯是:先看波形,记录偏差方向和大小,再决定是调整霍尔机械位置还是软件补偿。能调机械位置尽量调,软件补偿只能覆盖固定偏差,补偿不了霍尔信号本身抖动或占空比不对称的问题。
4.2 120度安装和60度安装的霍尔,怎么快速区分
霍尔传感器的安装方式主要分为120度和60度两种,它们的信号特征有明显差异。120度安装的三个霍尔,任意时刻只有一个信号在跳变边界附近切换,三个信号的高低电平组合依次变化,不会同时出现两个跳变。60度安装时,同一时刻可能有两个甚至三个霍尔信号同时跳变,换向逻辑表和前者也不同。
区分方法有两个。一个看波形:让转子缓慢匀速转一圈,观察示波器上的跳变沿,同一时刻只有一个跳变的是120度安装,有同时跳变的是60度安装。另一个看换向逻辑:60度安装的三相霍尔信号在转一圈内各产生两次跳变,组合状态是六个,但跳变规律和120度不同。如果你在软件里按120度逻辑去解析60度安装的霍尔信号,会得到一个混乱的状态机,现象就是电机猛抖一下然后卡住。
快速判断小技巧:把电机三相线悬空,给霍尔传感器供5V电,手动缓慢拨动转子,看三个霍尔输出的二进制状态码。120度安装在旋转过程中状态码变化是"每次只变一位",60度安装会出现"一次变两位",肉眼就能分辨。
4.3 极对数不同,轴线的机械间隔差多少
我整理了一个常见极对数下三相轴线机械间隔的速查表,调机的时候贴在工位边上很有用:
| 极数 | 极对数p | 三相轴线机械间隔 |
|---|---|---|
| 2极 | 1 | 120度 |
| 4极 | 2 | 60度 |
| 6极 | 3 | 40度 |
| 8极 | 4 | 30度 |
| 10极 | 5 | 24度 |
| 12极 | 6 | 20度 |
这里说的间隔是相邻两条相轴线在定子圆周上的几何夹角。实际绕组因为要考虑槽数整数关系,不一定刚好落在这些角度上,会按最近的槽距取整,但电气角度上一定保证120度的对称关系。
遇到多极电机调试,我总会先确认铭牌上的极数,再计算机械角度。宁可多在纸上画一遍,也不要凭借"之前那台电机就是这样"的经验直接套。
4.4 调试工具清单和排查速查表
做轴线相关的调试,我常用的工具清单如下:双通道以上数字示波器(最好四通道)、带限流功能的可调直流电源、可手摇或电驱动转子转动的工装、配套软件的上位机或串口终端、一张打印出来的霍尔换向真值表。
再给一张排查速查表,对应常见现象和处理方向:
| 现象 | 可能原因 | 检查/处理方法 |
|---|---|---|
| 启动方向不定 | 霍尔相位错乱、反电动势检测极性反 | 检查霍尔状态和换向表对应关系 |
| 低速抖动剧烈 | 霍尔跳变沿和轴线对齐偏差大 | 示波器对比反电动势过零点和霍尔沿 |
| 空载电流明显偏大 | 编码器零位偏移、电角度补偿错误 | 重新执行编码器对齐和自整定 |
| 高速力矩上不去 | Park变换角度滞后 | 检查角度滤波延迟、补偿转速相关滞后 |
| 堵转电流异常高 | 换向状态提前/滞后太多 | 查看六步换向表与霍尔真值表的一致性 |
4.5 一些调试时容易忽略的细节
最后补充几个我用代价换来的经验。
第一,直流定位法给电机通电锁转子时,时间尽可能控制在两三秒以内,电流限制宁小勿大。有一次我做8极电机对齐时电流给定太高,转子锁定的瞬间产生很大冲击力,把联轴器直接扭断了。从那以后我在任何定位测试前都会确认夹具刚性足够。
第二,霍尔调试优先级。如果霍尔安装位置和轴线差的不是固定角度,而是不同位置偏差不一致,那说明传感器本身装配不良或者触发磁铁安装偏心,用软件补偿是补不了的。这种问题趁早退回机械装配层面解决,别在代码里硬扛。
第三,编码器零位对齐做完之后,最好再用"电动机拖动法"验证一遍:让电机以很低速度开环某个方向旋转,在软件里记录实际编码器角度和施加电流角度之间的残差。残差如果稳定在一个固定小角度,说明零位校准成功;如果残差随转速变化,就要去查角度采样延迟或者滤波器相位滞后了。
5. 轴线的理解会直接影响你的调试效率
说实话,"ax by cz到底怎么划分"这个问题看起来很小,但它牵一发动全身。你只有把三条轴线的空间关系、电角度与机械角度的换算、轴线与霍尔/编码器之间的相位关系彻底理清楚,后面的六步换向、FOC、零位校准、角度补偿才有一个稳固的地基。
我个人经验是:拿到一台不熟悉的直流无刷电机,第一件事不是写控制代码,而是断电用示波器看反电动势、转动转子看传感器波形,把ax、by、cz的方向在纸上画出来,标好角度,再开始调算法。这套流程看着繁琐,但能帮你跳过调试过程中一大半的"莫名其妙"。
如果你现在正卡在"电机转起来不对""霍尔装好了但换向逻辑总错""编码器零位到底怎么定义"这些问题上,建议回到这一篇,把轴线部分逐行逐段重新过一遍,再动手去改你的换向表或者坐标变换偏置。很多问题不是软件的问题,是脑子里那条120度轴线没画对。