无刷电机ax/by/cz绕组轴线的空间划分:120°电角度而非垂直
如果你最近在搜无刷电机绕组资料,八成会碰到这个热词问题:“直流无刷电机ax by cz怎么划分的?是按照垂直轴线划分的么?”我第一次看到ax这个代号时也愣了几秒——它又像相号又像坐标轴,还跟x轴字母撞脸,很容易让人往“垂直坐标轴”上想。等我把电机学教材翻了几遍才反应过来,ax其实是一个线圈的完整代号:a是首端,x是尾端,这根线圈产生的磁轴方向就叫ax轴线。这个知识点看似基础,却直接影响你对无刷电机换相、FOC矢量控制、SVPWM扇区判断这些“进阶内容”的理解。所以这篇干脆把ax/by/cz的来源、空间划分规则和工程验证方法一次讲清楚,顺便解决掉“按垂直轴线划分”这个误解。
1. “ax/by/cz”到底表示什么:绕组符号、线圈首末端与轴线的定义
1.1 为什么是一组字母,而不是一根线
很多资料一上来就画三个圆圈,分别标着ax、by、cz,看起来像三根坐标轴。实际上,电机绕组里的一相不是一根导线,而是绕在定子铁芯槽里的多个线圈。每个线圈都有两个出线端:一端叫首端,一端叫尾端。电机学为了描述这一相线圈的完整方位,会用两个字母来标记它的两个有效边,比如A相线圈的两个有效边分别记作a和x,于是A相线圈在空间中的磁轴方向就用“ax轴线”来指代。B相、C相同理,叫by和cz。这里x、y、z不是坐标轴字母,只是线圈末端编号。三相所有线圈末端(x/y/z)通常短接成一个中性点,首端(a/b/c)引出三根相线接驱动板。
很多人会问:为什么不能直接用A、B、C来表示?因为在电机绕组图里,A是一相的总称,而不是某一个线圈边的位置。你真正把线圈嵌进定子槽时,必须明确指出这一相线圈的哪半边在几号槽、哪半边在几号槽。比如4极24槽电机里,A相某个线圈的a边可能嵌在1号槽,x边嵌在7号槽,中间跨过的距离叫线圈节距。用a和x把两个有效边分清楚,图纸上才不会乱。所以ax不是一个“点”,也不是一根“线”,它描述的是一个线圈元件在定子内圆上的具体空间占位。
1.2 轴线指的是磁场方向,不是随便画的几何虚线
当电流从a端流入、x端流出时,这个线圈会在气隙中产生一个磁动势矢量,方向由右手定则决定。把磁动势矢量的方向从线圈中心画出来,就是ax轴线的方向。以后做矢量合成时,A相电流产生的磁动势就沿着ax方向,B相沿by方向,C相沿cz方向。这一点是整个分析的地基:只要你把“某一相电流产生的磁动势作用方向”和对应的轴线符号挂钩,后面看旋转磁场合成、看FOC坐标变换,全部会顺畅很多。
我用一个不严谨但很好记的类比:通电线圈在远处看就像一块条形磁铁,也有N极和S极,它的轴线就是N到S的方向。把A相线圈通电,它在气隙里“相当于”一块磁铁;把B相、C相也都通电,三块虚拟磁铁的磁轴在空间上互差120°电角度,合起来形成一个旋转的合成磁场。绕线方向反过来,磁轴就反转过180°,换相逻辑也会跟着乱。这也是为什么电机相线不能随便调换顺序。
1.3 代号的作用:把“电气相”变成“空间矢量”
三相电在电气上相差120°是人人都知道的常识,但电机里的三相绕组不只是“电气差120°”,它们在定子圆周上的空间位置也必须互差120°电角度。如果A相、B相、C相在图上只是三个抽象直线条,你没法判断合成磁动势的方向。有了ax/by/cz这种带空间指向的代号,三相对称绕组才算真正“对称”起来。
更深一层,电机控制算法里的很多概念都依附于空间矢量。FOC之所以要做Clarke变换和Park变换,本质上就是因为三相电流各沿一条空间轴线作用,三者的合成结果才是气隙磁场矢量。不理解“相”对应着“空间某根轴线”,你就很难理解为什么三个电流波形明明是正弦,合起来却是一个大小恒定的旋转矢量。可以说,ax/by/cz就是连接“电气符号世界”和“空间磁场世界”的翻译器。
2. 答案很明确:三相绕组轴线不是垂直划分,而是互差120度电角度
2.1 热搜问题的直接回答
先把结论拍出来:不是按垂直轴线划分的。三相绕组轴线在空间上两两互差120°电角度,不是90°。垂直是90°,那只适用于两相正交绕组,比如两相电机,或者控制算法里虚构出来的αβ坐标系。三相系统有三根轴线,如果按90°来摆,第三根轴线就会和其中一根重合或不对称,磁场在这个方向上会变得很怪。
下面这个表格能帮你看清两类轴系的区别:
| 对比项 | 三相静止轴系(abc) | 两相正交轴系(αβ) |
|---|---|---|
| 坐标轴数量 | 3个 | 2个 |
| 轴间夹角 | 120°电角度 | 90°电角度 |
| 是否物理存在 | 是,定子绕组按此分布 | 否,是数学上虚构的坐标系 |
| 主要用途 | 描述绕组磁动势方向、反电动势相位 | 简化控制算法、便于坐标变换 |
注意“电角度”这三个字。三相轴系的120°是电角度,不是单纯的机械角度。因为无刷电机有极对数,机械圆周和电角度之间还有一个换算系数。这一点直接导致很多人拆开电机看定子槽时,觉得绕组位置“不是120°啊,怎么乱七八糟的”——其实它们平铺在机械圆周上,每相占的机械角度是120°除以极对数。
2.2 电角度与机械角度:同一个120°,在不同极数下位置不同
电角度θe与机械角度θm的关系是:θe = p × θm,p是极对数。4极电机p=2,6极电机p=3,8极电机p=4。三相绕组轴线在电角度上互差120°,对应的机械角度就随极对数变化。下表直接给出结果:
| 极对数p | 电机极数 | 三相绕组轴线之间的机械角度 |
|---|---|---|
| 1 | 2极 | 120° |
| 2 | 4极 | 60° |
| 3 | 6极 | 40° |
| 4 | 8极 | 30° |
拿4极电机举例,A相轴线可以放在机械0°,B相轴线放在机械60°,C相轴线放在机械120°。你在电机实物上看到三个轴线好像挤在一侧,其实在电角度坐标里它们就是均匀的0°、120°、240°。这也能解释为什么有人会问出“是不是按垂直轴线划分”这种问题:当极对数变大,机械角度被压缩,肉眼看上去确实有点像某两根轴线近似垂直,但那是视觉错觉,不是设计原则。
2.3 为什么必须是120°,从安培力的几何逻辑看
无刷电机能转,本质上是定子绕组电流产生旋转磁场,带着转子永磁体一起转。要得到圆形旋转磁场,三相绕组磁动势矢量必须两两互差120°。你可以想象成三根绳子拉一个圆盘,三根绳子拉力方向相差120°,任何时候合力大小恒定,方向连续旋转;如果三根绳子方向只差90°,再加一根,合力大小会在圆周上忽大忽小,圆盘转起来就会一顿一顿。
三相系统之所以用120°,是因为这是用最少的导线数生成圆形旋转磁场的最优几何解。两根线只能做成正交的两相系统,而且需要额外的移相电容;三相系统天然自带120°电气角,接线简单,磁场质量又好。电机设计里绕组分布方式可以千变万化,但三相轴线之间的120°电角度关系是永远不变的前提。
3. “垂直轴线”的想法从哪里来:两相正交坐标系与Clarke/Park变换的常见混淆
3.1 控制算法里确实存在“垂直轴线”
很多人在无刷电机FOC教程里会看到一张经典的坐标系图:三相对称的abc轴互差120°,旁边两相正交的αβ轴互差90°,然后又来了一个旋转的dq轴。这张图信息量很大,新手很容易把abc轴和αβ轴混着看,误以为无刷电机的三相绕组就是按垂直关系划分的。
其实αβ轴不在电机里,它是控制算法才需要的数学坐标系。通常约定α轴与A相绕组轴线ax重合,β轴逆时针超前(或滞后,取决于约定)90°电角度。这样做的目的很简单:三相电流互相耦合,直接计算不方便,先投影到一个两相正交坐标系里,让两个变量的计算解耦。如果你只盯着FOC的坐标系图看,很容易得出“ax/by/cz就是垂直轴(一个沿α、一个沿β、一个也许沿d)”的错误印象。实际上abc和αβ是两套完全不同的轴系,前者描述物理绕组,后者描述数学投影。
3.2 Clarke变换:正是为了把三相120°轴系“翻译”成垂直轴系
Clarke变换干的事情,就是把三相电流ia、ib、ic从互差120°的abc轴系投影到互差90°的αβ轴系。等幅值版本的公式是:
iα = (2/3) × (ia − 0.5×ib − 0.5×ic)
iβ = (2/3) × ((√3/2)×ib − (√3/2)×ic)
看着复杂,本质就是几何投影:把A相电流全部落在α轴上,把B相、C相电流按它们与α轴的120°夹角投影一部分到α轴,另一部分投影到β轴。系数2/3是为了保证变换前后电流矢量模值不变(等幅值变换)。如果三相本来就是垂直关系,根本不需要做投影——直接取两相电流当α和β就行。正因为三相轴系是120°,才必须有这一步。
这里可以给个直观例子:三相电流为ia=1A、ib=−0.5A、ic=−0.5A(典型的平衡状态),套公式算出来iα=1A、iβ=0A。这个结果说明合成磁动势正好沿α轴,也就是沿A相轴线ax方向。如果换一组三相电流,比如ia=0.5A、ib=0.5A、ic=−1A,算出来iα=0.75A、iβ≈−0.433A,合成磁动势方向就在第四象限。你看,三相电流的分配比例,完全是由三根120°轴线决定的。
3.3 abc轴是“物理事实”,αβ和dq轴是“分析视角”
必须把这两类轴系彻底分开:abc是电机里真实存在的东西,它的轴线方向由定子槽和绕组绕向决定,你拿万用表、示波器能测到与此相关的反电动势相位;αβ和dq是人为定义的数学坐标系,你拆开电机根本找不到对应的“α轴”或“q轴”。
这个区分的实际意义很大。电机控制里d轴通常和转子磁极方向对齐,q轴逆时针超前90°,它们随转子角度连续变化,是旋转坐标系。很多调试问题都出在把dq物理化,以为d轴就是某根真实的电机轴线,结果换相角度换算来换算去,总差一个固定角度。记住:电机本体只提供abc绕组轴线和转子位置传感器,dq轴完全活在算法里。
4. 从图纸到实物:用极对数、绕组连接和示波器验证120度关系
4.1 绕组连接与绕向:星形、三角形和“接反”的后果
无刷直流电机和永磁同步电机的定子绕组,最常见的是星形连接:三个尾端x、y、z短接成中性点,三个首端a、b、c引出接逆变器。星形连接没有三次谐波环流,控制也简单。三角连接在部分有刷直流电机或感应电机里常见,但无刷电机里很少用,因为三角形内部会产生谐波环流,增加损耗。
绕组绕向是另一个容易被忽略的细节。同一个槽里如果绕向反了,该相磁轴会反转180°,等效于ABC相序发生错乱。这时哪怕驱动板的换相逻辑正确,电机也可能反转、抖动或电流很大。工程上判断绕向有没有错,有一个特别简单的办法:把三个相线分别接两节干电池的正负极,给某一相通一个很小的直流电,观察转子朝哪边转。然后把另一相接电池,转子应该按“120°电角度”的规律偏转一个角度。如果转子乱转或者反向,说明绕向或相序有问题。
4.2 用示波器测反电动势,亲眼看120°相位差
理论讲再多,不如实测一次。验证三相绕组轴线是否真的互差120°电角度,最直接的手段就是观测三相反电动势波形。步骤如下:
- 用一台原动机拖着电机旋转,转速尽量恒定。如果手头没有原动机,可以用另一台无刷电机作对拖,或者干脆用手摇,但转速不稳会测量不准。
- 示波器三通道同时接A、B、C三根相线,探头地线接中性点。如果电机没有引出中性点,就直接测三根线之间的线电压,相位关系一样。
- 观察三相反电动势的过零点。在稳定速度下,相邻两相反电动势过零点的时间间隔,换算成电角度应当正好是120°。
换算公式要记牢:电频率f = (p × n) / 60,p是极对数,n是转速(rpm),周期T=1/f。比如4极电机拖到1000rpm,电频率=2×1000/60≈33.33Hz,周期30ms,相邻过零点间隔应该是30ms/3=10ms,对应120°电角度。如果量出来是15ms(180°)或7.5ms(90°),要么是相序测量点选错,要么是绕组空间相位真的不对称。
我实测过不少电机,反电动势波形多多少少会有谐波畸变,过零点的位置也会受齿槽效应影响偏移一两度,这是正常的。BLDC的梯形波反电动势,每个过零点同样是按120°分布,这就是很多驱动板用反电动势过零点检测做无感换相的理论基础。
4.3 霍尔传感器安装位置,本质上也在“对齐轴线”
无刷电机内部的三个霍尔元件,在空间上也互差120°电角度(有的电机设计成互差60°对称),它们输出的三路方波,分别对应三相绕组轴线的位置关系。霍尔信号不是随便布几个点就行,它必须与定子绕组轴线严格对齐,否则换相表就是错的。
调试时我习惯同时抓霍尔信号和反电动势波形:把电机拖起来后,三路霍尔方波的跳变沿,应当落在对应相反电动势过零点的附近。如果发现霍尔沿和过零点差了十几度,电机带载就会明显偏弱、发热。霍尔安装位置是出厂定死的,驱动器能做的是在软件里做角度偏置校准;有些驱动器专门有“霍尔对齐”功能,原理就是低速开环强制定位,让转子停在已知轴线方向,再记录霍尔角度作为零位。这一步做好,后面FOC调参才有一个可靠的“锚点”。
5. 轴线划分对无刷电机FOC控制的实际意义:从三相机电结构到SVPWM扇区
5.1 合成磁动势矢量:三相电流为什么要用正弦波
回到最核心的物理图景:三相绕组各自沿ax、by、cz轴线产生磁动势,合成磁动势矢量F = Fa×e^(j0°) + Fb×e^(j120°) + Fc×e^(j240°)。如果三相电流按正弦规律分配,并且相位互差120°,那么合成磁动势矢量的幅值恒定,方向连续旋转。这就是FOC想要实现的“定子磁场定向”的基础。
很多人初学FOC时困惑:电流环的给定值为什么是三条正弦波,而不是三个恒定值?原因就是三相绕组轴线不在同一个方向上。要让合成磁动势指向某个角度,每一相电流必须按它在那个角度上的投影比例来分配。你可以把三相绕组理解成三个方向不同的“推力器”,合成推力方向由三个推力器的出力比例决定,而正弦波正是让合成推力大小恒定、方向匀速旋转的最优出力方式。
5.2 FOC坐标变换:从ax/by/cz到αβ,再到旋转dq
FOC里有两次关键变换,第一步是Clarke,第二步是Park,每一步都在利用“轴线”概念:
- Clarke变换:把三相静止轴系abc投影到两相静止垂直轴系αβ,α轴与A相轴线ax重合,β轴垂直。
- Park变换:根据转子角度θ,把αβ坐标系整个旋转到dq坐标系,d轴对齐转子磁极方向,q轴正交。
写成Python伪代码,大概是这样:
import math def clarke(ia, ib, ic): i_alpha = (2/3) * (ia - 0.5*ib - 0.5*ic) i_beta = (2/3) * ((math.sqrt(3)/2)*ib - (math.sqrt(3)/2)*ic) return i_alpha, i_beta def park(i_alpha, i_beta, theta): i_d = i_alpha * math.cos(theta) + i_beta * math.sin(theta) i_q = -i_alpha * math.sin(theta) + i_beta * math.cos(theta) return i_d, i_q注意这里的θ是转子d轴与A相绕组轴线ax之间的夹角。如果编码器或霍尔零位没有对齐这个角度,Park变换后的d轴和q轴就没有真正解耦,控制效果会大打折扣。角度零位对齐,是FOC工程调试里最容易被轻视、影响却最大的问题之一。
5.3 SVPWM扇区判断:为什么是每60°一个扇区
SVPWM直接在三相逆变器的开关状态上下功夫。六个非零电压矢量U1到U6,方向正好是三相绕组轴线组合出来的六种投影;相邻基本电压矢量之间相差60°电角度。判断电压矢量落在哪个扇区,本质是在αβ坐标里看角度θ = atan2(uβ, uα),然后按60°分片。
可以这样理解:如果当前希望合成磁动势指向30°方向,那就说明这个电压矢量落在第1扇区附近,SVPWM会在这一个周期内用相邻两个基本电压矢量按时间比例分配。这种调制方式能比SPWM把直流母线电压利用率提高约15%,原因是它不再把三相电压分开调制,而是直接利用三相轴线的几何对称性做矢量合成。
初学者容易忽略的一点是:SVPWM里那个“空间电压矢量”的定义,同样建立在三相绕组轴线互差120°的基础上。如果你认为三相轴是垂直的,那么六个基本矢量的60°间隔就变成90°间隔,整个扇区表都会对不上。所以轴线问题不是纸上谈兵,它直接决定SVPWM查表时扇区编号是否正确。
5.4 工程调试中最常见的三个“轴线相关”的坑
坑一:相序接反。电机反转、电流环发散,往往是A/B/C三根相线顺序不对,导致Clarke变换后β轴方向反了。排查方法很简单:任意对调两根相线,如果电机正常了,那就是相序问题。驱动器参数里如果支持“相序自动辨识”,也可以优先跑一次。
坑二:编码器零位角度偏差。转子磁极d轴和A相绕组轴线ax没有对齐,角度θ全程偏一个固定值,结果转矩明显偏小、电流有效值偏大。排查方法:给d轴一个小的恒定电流,强制转子定位到零位方向,然后记录编码器角度作为零点;或者跑反电动势过零点自学习,让程序自动找到A相轴线对应的角度。
坑三:跳步Clarke变换。有些刚接触FOC的人想当然认为iα就等于A相电流,iβ就等于B相电流,省掉Clarke变换直接做Park,结果电机在带载时剧烈抖动。这就是典型的“垂直坐标轴思维”在作怪。三相电流是120°分布的,投影到垂直坐标系必须经过Clarke变换,这一步省不得。
这些坑我基本都踩过,尤其是零位角度偏差,排查起来很隐蔽,因为它不报故障,只是效率低、声音闷。后来形成固定习惯:新拿到一套电机和驱动板,第一件事不是调PID,而是开环定位、测反电动势、确认相序和角度零位,把“ax轴线”这个基准立住。
最后分享一个实际操作中的小习惯:调无刷电机时,我一定先做静态“点动”测试——给某一相绕组正方向通电,让转子转到确定的轴线位置,再用示波器把这个位置和编码器零位、霍尔沿的对应关系记录清楚。只要这一步确认了,后面FOC调参基本就不会出现那种莫名其妙的反转和抖动。从ax这个看似不起眼的符号开始,把绕组轴线的空间关系理清楚,收益会贯穿整个电机控制的学习和调试过程。