ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

直流无刷电机ax by cz三相轴线与dq垂直轴到底怎么划分?

直流无刷电机ax by cz三相轴线与dq垂直轴到底怎么划分?

有人问我:直流无刷电机里的 ax、by、cz 到底是怎么划分的,是不是按照垂直轴线划分的?我第一反应是,这个问题值得认真写一篇文章。因为“ax by cz”这几个字母在无刷电机语境里最常出现的一层含义,就是三相轴线:A相轴线、B相轴线、C相轴线。但三相轴线是绕着圆周按 120° 电角度均分的,你说它“垂直”,三相在同一个平面里怎么垂直?只有两条轴才可能互相垂直。真正和“垂直”沾边的是另一套坐标系,也就是 dq 旋转坐标系里的 q 轴,它和 d 轴相差 90°,常被叫作交轴、转矩轴。把三相轴线和 dq 坐标系的“垂直轴”搅在一起,新手不懵才怪。

这篇文章我会把这个事情彻底捋清楚:ax by cz 是什么、三相轴线怎么划分、垂直轴线的说法从哪来、以及实测中该怎么确定相轴线。不管你是刚接触 BLDC 电机调试,还是已经写过几版 FOC 代码想回头补基础,看完应该都能建立一套清晰的轴系概念。

1. 先把“ax by cz”这组代号钉死在桌面上

1.1 从三相绕组到三条电枢轴线

无刷直流电机的定子上有三相绕组,工程上习惯命名为 A 相、B 相、C 相。每一相绕组通电时,都会在气隙里产生一个磁动势(MMF),这个磁动势的方向就是这一相的“轴线”方向。换句话讲,这一相电流产生的磁场“朝哪个方向推”,那个方向就是该相的轴线。在电机图纸和笔记里,A 相轴线常被简写成 ax,B 相轴线是 by,C 相轴线是 cz。严格写法应该是 A-axis、B-axis、C-axis,简写后就成了你看到的 ax、by、cz。

这里有个容易忽略的点:轴线的方向是“空间方向”,不是电流方向。A 相绕组在定子齿上的位置决定了 A 相轴线朝向哪,B 相、C 相同理。三条轴线之所以会被单独拿出来讲,是因为电机控制本质上就是要让三相交变电流合成一个确定的旋转磁场,而这个合成磁场的指向,就是拿三相轴线当基准坐标算出来的。

1.2 三相轴线在空间里怎么摆:120° 不是 90°

这是回答“是不是按垂直轴线划分”的关键。理想三相电机里,A、B、C 三相轴线在空间上相差 120° 电角度,彼此均匀分布。为什么是 120°?因为三相电流在时间上也相差 120°,只有把空间上的 120° 和时间上的 120° 配起来,三相绕组产生的磁动势才能合成一个大小恒定、匀速旋转的磁场。

你可以把三条轴线想象成三个箭头,均匀地钉在同一个圆盘上,三个箭头之间各夹 120°。对于一对极(2 极)电机,120° 电角度直接就等于 120° 机械角度;对于 4 极、6 极电机,你还要再换算,后面我会专门讲。但无论怎么换算,三条轴线在空间上是“等分圆周”的关系,而不是“互相垂直”的关系。

那“垂直轴线”到底是谁?在平面图形里,只有两条直线才能做到垂直。三相已经是三条,所以 ax、by、cz 不可能按照互相垂直来划分。凡是按 90° 关系摆的两条轴,一定属于另一套坐标系,比如静止坐标系的 αβ 轴,或者旋转坐标系的 dq 轴。这个区分一定要刻在脑子里,后面所有问题都是从这里展开的。

2. “垂直轴线”的说法从哪来:两套坐标系的纠葛

2.1 abc 三相静止坐标系

无刷电机控制里的轴系,第一层就是 abc 三相静止坐标系。它的三个轴就是 ax、by、cz,固定在定子上,不随转子转。你拿示波器去测电机相线上的电流和反电动势,看到的都是 abc 坐标系里的物理量。比如理想反电动势波形是三条相差 120° 的正弦波,电流波形同理。

abc 坐标系的优点是直观,缺点也明显:三相量之间存在耦合,而且都是交流量,控制起来不方便。你不能像控制直流电机那样直接给定一个电流值,因为三相电流在不停地交变,时刻在变。所以工程上才想让坐标系“动起来”,把交流量变成直流量,这就必须有后面的坐标变换。

2.2 αβ 两相静止轴系:这里的轴才是真正垂直的

把三相 abc 坐标系变换到两相静止坐标系,就是 Clarke 变换(也称 Clark 变换、3/2 变换)。变换之后得到 α 轴和 β 轴,这两条轴相差 90°,是真正的“垂直轴”。α 轴通常和 A 相轴线对齐,β 轴逆时针超前 α 轴 90°。

很多教材画矢量图时,会在一个直角坐标系里画出 α 轴横着、β 轴竖着,这就是“垂直轴”视觉印象的来源之一。但请注意,αβ 坐标系仍然是静止的,里面的 α 分量和 β 分量依然是交流量,只是从三个变两个,计算简化了,并没有解决“控制量在变化”的根本问题。

2.3 dq 旋转轴系:直轴与交轴的真正含义

接下来就是最容易和“垂直轴线”混淆的 dq 旋转坐标系。Park 变换(也写作派克变换、2s/2r 变换)把静止的 αβ 坐标系搬到旋转的 dq 坐标系里。d 轴(直轴、Direct axis)始终和转子磁极的磁场方向对齐,q 轴(交轴、Quadrature axis)逆时针超前 d 轴 90°。因为 d 轴追着转子磁场跑,q 轴也就跟着转子一起转,所以称旋转坐标系。

在 dq 坐标系下,d 轴电流 id 负责建立磁场,q 轴电流 iq 才真正产生转矩,所以 q 轴常被叫转矩轴、交轴,也经常被叫作“垂直轴”。因为从转子的视角看,q 轴确实是和 d 轴垂直的一条轴,相差正好 90°。很多人看到“垂直轴线”四个字,大概率是在 dq 坐标系的资料里看到的,而不是在讲三相轴线 ax by cz 的资料里。如果你把两个坐标系里的“轴”拿到一起比较,当然会对不上号。

2.4 电角度和机械角度:多极电机里的轴要重新算

上面一直强调“电角度”,因为电机极对数直接决定电角度和机械角度的换算。设极对数为 p(也就是磁极对数,4 极电机 p=2,6 极电机 p=3),那么:

θe = p × θm

电角度是机械角度的 p 倍。所以同样是一对极电机,120° 电角度就是 120° 机械角度;4 极电机里,120° 电角度只有 60° 机械角度。这意味着:三相轴线 ax、by、cz 在定子上物理上相隔多少度,取决于电机极数,而不是固定的 120° 机械角。真正恒定的是电角度,恒为 120°。

这一点在装霍尔传感器时特别重要。霍尔安装位置的间距是按电角度设计的,常见的霍尔布局有 60° 电角度和 120° 电角度两种,对应到机械角度,都要先用极对数换算。你如果拿着同一套霍尔安装模板去装 2 极和 4 极电机,位置必须重新算,否则霍尔时序和相序对不上,电机一启动就是抖。

3. 现场实操:把 ax by cz 真正“划分”出来并且能用

3.1 先定相:霍尔传感器输出的三位二进制码

理论讲完,回到工程。很多人问“怎么划分 ax by cz”,实际上是想知道:电机线束那么多,哪根是 A,哪根是 B,哪根是 C?霍尔线又是哪三个?对于带霍尔的 BLDC,霍尔传感器会输出三路高低电平,组合起来是一个三位二进制数。电机转子转到不同位置,霍尔输出就对应不同的状态码。

一个典型的霍尔状态序列可能是:101 → 100 → 110 → 010 → 011 → 001,然后循环。具体哪一串取决于霍尔安装方式和命名约定,不同厂家不同型号会有差异,但一定是 6 个有效状态,剩下的 000 和 111 在正常转动中不会出现。霍尔状态码的意义在于:它告诉控制器“转子现在处于哪个扇区”,而每个扇区对应一组最优的导通方向,也就是换向表。

3.2 六步换向表和轴线对照

BLDC 的经典控制方式是六步换向(Six-Step Commutation),六个状态对应六种导通组合。举例来说,如果霍尔状态 101 表示转子磁场指向某个扇区,此时最优导通为 A 相正、B 相负,电流从 A 相绕组进入,从 B 相绕组流出,产生的合成磁动势正好落在需要的位置推动转子。六个状态各自对应一组“某相进、某相出”,完整转一圈即为六步换向。

换向表长什么样?常见形式如下(不同命名约定下状态排序可能不同,但原理一致):

霍尔状态导通组合电流路径合成磁场方向
101A+ B-A相进,B相出指向AB轴线之间
100A+ C-A相进,C相出指向AC轴线之间
110B+ C-B相进,C相出指向BC轴线之间
010B+ A-B相进,A相出指向BA轴线之间
011C+ A-C相进,A相出指向CA轴线之间
001C+ B-C相进,B相出指向CB轴线之间

你看,这张表里的每一行,本质上是把三相轴线 ax、by、cz 拿来组合:谁承担正向电流、谁承担负向电流、谁空闲。所谓“划分 ax by cz”,在控制层的表现就是在霍尔状态和相线导通组合之间建立一一映射。映射对了,电机转得顺;映射错一个,电机就抖、堵转甚至反着转。

3.3 用示波器反电动势定相序的完整流程

如果没有电机图纸,只有一捆线,怎么确定哪根线是 A 相、哪根是 B 相、哪根是 C 相?我最常用的办法是用外部驱动把电机转子转起来,量反电动势。具体流程如下。

首先,把电机三相线找出来,电机的三根相线通常比较粗,它们之间是导通的,用万用表蜂鸣挡能测出来,三根线两两之间阻值相同,这是相线的特征。然后找一个能带动电机的外力源,比如另一台同轴电机、电钻或者干脆用手拧。把示波器三个通道接在选定的三根线上,以电机中性点(如果是 Y 接法,三个绕组共同接点)为参考,或者用差分方式测量线电压也可以。接着匀速转动电机,观察示波器上的波形。正常情况下会看到三条反电动势波形,两两相差 120° 电角度。这一步的要点是:波形相位最靠前的,定义为 A 相;滞后 A 相 120° 的那一路定义为 B 相;再滞后 120° 的那一路定义为 C 相。这样“划分”出来的相序才是符合电机控制软件惯例的顺序。

还要注意一个细节:反电动势波形看的是过零点和相位关系,不看幅值。不同相的反电动势幅值理论上一致,实际会略有差异,别被幅值差异干扰。把三个通道的相位关系记下来,我个人的习惯是直接拍一张示波器截图存档,后续写换向表全靠这张图,比自己凭记忆靠谱得多。

3.4 没有示波器的土办法:灯泡法和万用表法

很多入门玩家手里没有示波器,也能定相序。土办法之一是灯泡法:把三相线各串一个小灯泡(或者 LED 加限流电阻),把星形中性点接出来,然后转动电机。当某一相通正电动势时,对应灯泡会亮;因为三相电动势相位不同,三个灯泡会“依次”亮灭。虽然看不出相位差具体是多少度,但你能看出亮灭顺序,这个顺序就决定了换向表里霍尔状态和相线的对应关系。再配合霍尔传感器的状态码,一样能把 Ax/By/Cz 的对应关系试出来。

土办法之二是万用表交流电压法:电机转起来后,用万用表交流电压挡依次测量相线两两之间的电压。三相之间,线电压幅值都是一样的,这个方法主要用来确认三根线确实是一组相线,而不是把霍尔线误当成了相线。霍尔线工作电压很低,交流电压值明显不同,很容易区分。先把相线组和霍尔线组分开,再谈相序划分,这是最容易被忽略的第一步。

4. 常见问题与排查速查

4.1 症状对照表:电机为什么不乖

实际调试中,十次有八次是相序或者霍尔映射问题。我把遇到过的典型症状整理成一张速查表,给现场调试省时间:

症状最可能的原因排查方向
电机堵转、启动像卡住霍尔换向表映射错误重新核对霍尔状态与导通组合
电机能转但抖动明显相线定义和霍尔相位不匹配用示波器或灯泡法重定相序
电机顺利但反转相序接反/霍尔方向反对调任意两相相线并同步调整换向表
启动后异响、电流很大某相导通方向错误检查导通组合是否在扇区内
转动时速度波动霍尔中间切换沿异常检查霍尔供电、上拉电阻、接线接触

这些问题的根源几乎都指向同一个点:你定义的 A 相轴线和霍尔传感器安装的物理位置之间,没有建立起正确的空间关系。理论轴系说得再漂亮,现场装错一根线,什么都白搭。

4.2 相序接反的连锁反应

很多人以为“接反相序大不了反转,交换两根线就行”,在普通三相异步电机里确实如此,但在带霍尔的 BLDC 里,事情没那么简单。霍尔传感器是固定在定子上的,它的输出码对应的是转子位置;如果你把任意两相相线对调,转子的旋转方向会变,此时霍尔状态和换向表的对应关系也会全部乱掉。就算你换对了相线让电机反转成功,霍尔映射也必须同步更新,否则电机在反转方向上还是抖。

实操中有个经验:不要靠“交换相线试试”来碰运气。先想清楚你希望电机是顺时针还是逆时针,再根据反电动势定好的相序和霍尔状态重新生成换向表。换向表在代码里通常是一个数组,里面的霍尔状态顺序可以整体逆序或者重排,改代码比改线束更可控。线束是物理的,改一次就得重新标记,而代码里的表随便改,所以我的习惯是:设计阶段就把相序命名统一,所有调试都围绕这个命名走。

4.3 霍尔和轴线的映射为什么不能拍脑袋

每个电机的霍尔安装位置都可能不一样,哪怕是同一个电机厂出的同型号,批次之间也存在机械偏差。所以霍尔状态码和 ax by cz 轴线的对应关系,必须以实测为准,不能只看电机说明书就开始写代码。有条件的用专用的电机测试台架,没条件的就像我前面说的,用示波器反电动势法先把相序定出来,再手动转转子,一档一档记录霍尔状态码。每一档对应一个转子扇区,然后你就能精确写出换向表了。

还有一个容易踩的坑:霍尔传感器输出是开漏输出,使用时要接上拉电阻,通常 1kΩ 到 10kΩ 都可以,但上拉电阻别太大,否则信号上升沿变慢,高速换向时容易出现误判。霍尔状态码在高速下如果抖动,多半不是逻辑问题,而是时序问题,用示波器看霍尔输出波形就能确认。

5. 我的一点实操心得

这套轴系概念,我前后绕了不少弯路才彻底拎清。总结成一个记忆方法,非常管用:看到 ax、by、cz 就想“等分圆”,三条轴线在电角度上各差 120°,跟垂直没关系;看到 d 轴、q 轴,才去想“垂直”和 90°,因为 q 轴本质上就是 d 轴的垂直轴、交轴。两套坐标系各有各的用途,abc 系用来理解物理世界,dq 系用来做 FOC 控制,别混着用。

最后分享一个我在现场常用的小习惯:每次拿到一台新的带霍尔 BLDC,第一步永远是拍照。拍电机铭牌、拍相线颜色、拍示波器反电动势波形、拍霍尔状态码表。这些照片全部归档到自己项目文件夹里,下次换控制板、换驱动的调试时间能缩短一大半。电机调试不是靠脑子记,是靠留痕。资料齐全了,哪怕隔半年再回来改代码,你也能在两分钟内找回当时的现场状态。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进