
最近有个搜索词在电机控制圈里挺有意思直流无刷电机 ax by cz 怎么划分的是不是按照垂直轴线划分我盯着 ax by cz 看了好一会儿才反应过来这不就是英文 axis A、axis B、axis C 被切词拼到一起了么。放到直流无刷电机的语境里它问的是 a 相轴、b 相轴、c 相轴怎么划分以及它们是不是像空间直角坐标那样互相垂直。先给结论不是垂直轴。三相绕组轴线在空间上互差 120° 电角度真正互相垂直的是后面坐标变换出来的 αβ 轴和 dq 轴。这个问题看着基础却卡住了不少人尤其是一上来就学 FOC 的坐标变换图一多很容易把三相轴跟旋转坐标系搞混。这篇文章就用直流无刷电机为对象把轴系划分、120° 的原因、垂直轴说法的来源以及怎么用示波器、霍尔信号和电感表实测验证完整过一遍。适合刚要入门 BLDC/PMSM 的硬件工程师也适合正被为什么启动抖动、零速大电流折磨的控制调参人员。1. 先搞清楚 ax by cz 到底指什么三相磁轴和三坐标轴不是一回事1.1 ax by cz 是怎么跑到搜索框里去的如果你在英文资料或视频里看到 axis A、axis B、axis C 这种写法搜索引擎按空格切词后很容易变成一串短得像乱码的东西。ax by cz 就是这样来的它只是 a 轴、b 轴、c 轴不是数学里的未知数 x、y、z也不是空间坐标系的 X 轴、Y 轴、Z 轴。a、b、c 三个字母对应的是电机三相绕组的相名而 axis 是磁轴的意思。这个澄清不是抠字眼。因为不少刚接触电机控制的人会直接把 ax by cz 理解成三个互相垂直的直角坐标轴然后后面的问题就全跑偏了。直流无刷电机的三相轴是不是垂直轴这个问法本质就是把磁场轴当成了空间坐标轴。所以先立一个定义下面说的 a 轴、b 轴、c 轴是三相绕组各自磁动势的中心方向是在电机横截面这个二维平面里的三个方向。1.2 磁轴不是实轴一根等效方向线电机定子里没有一根叫轴的铁棒。你拆开一个直流无刷电机看到的是定子齿槽、绕在上面的线圈、转子磁钢和霍尔板。线圈通电后各槽导体里的电流会在气隙中共同产生磁动势这个磁动势合成以后会有一个主要方向这个方向就被定义成该相绕组的轴线。可以这样理解每个齿槽里的铜线像一群朝不同方向用力的人单看每一个槽方向是散乱的整相绕组串联起来通电时所有槽内导体的力合到一起会有一个合力方向。那个合力方向就是相轴。理想模型里把 a 轴取为水平向右那么 b 轴在电角度 -120° 方向c 轴在电角度 120° 方向。三个轴都在同一个圆平面内而不是从同一点伸向三个维度的空间直线。1.3 直接回答三相轴为什么不是垂直轴回到原始问题直流无刷电机的 abc 三相轴是按垂直轴线划分的吗不是。三相轴两两相差 120° 电角度不是 90°。90° 垂直关系出现在之后的 αβ 静止坐标系和 dq 旋转坐标系里那是坐标变换之后的产物不是电机绕组本体的属性。垂直轴线这个误解多半来自控制框图的画法。很多文章和教程喜欢把 abc 坐标、αβ 坐标、dq 坐标三套坐标系叠在一张图里a 轴画水平向右α 轴又通常和 a 轴重合看起来好像从一开始就是正交坐标系。加上 dq 轴确实互相垂直新手很容易把三套坐标系混成一个误以为 a、b、c 三相轴也是垂直的。这个误解最好在学习初期就纠正否则后面看 Clark 变换、SVPWM 扇区、编码器零位对齐全都对不上。1.4 在实物上快速感受三相轴位置想验证三相轴的位置最直接的是拿一个常见无刷电机自己试。以 9 槽 6 极外转子电机为例极对数 p 3120° 电角度换算成机械角度就是 120°/3 40°。也就是说三组绕组在定子圆周上的实际空间位置相差约 40° 机械角。换成 12 槽 4 极电机p 2空间上就是 60° 机械角。手感验证方法很朴素给任意两相通一个低压直流电比如 12V 电源串一个 10Ω 限流电阻通电一两秒。转子会被电磁力吸到某一个位置换另外两相通电转子又会吸到另一个位置。每换一对相线转子位置就跳过一个 120° 电角度对应的机械角。注意通电时间别太长绕组会发热这个实验还能顺便确认相序是否正确属于玩电机的基础科目。2. 为什么三相轴必须差 120°绕组空间排布与旋转磁场的配合2.1 电角度和机械角度先算清这笔账理解三相轴 120°必须先分清电角度和机械角度。转子每转一圈磁场变化了 p 个电周期p 是极对数。四极电机 p 2转子转一圈机械 360°磁场已经跑了两圈电角度。因此三相绕组轴线画在模型图里是 120° 电角度落到真实机械角要除以极对数。以 12 槽 4 极永磁电机为例12 个槽均布圆周每槽机械角 30°极对数 2所以相邻槽之间电角度差 60°。三相绕组按 A、B、C 顺序在圆周上排布每个相带占 60° 电角度三相合起来刚好覆盖 360° 电角度。120° 电角度间隔对应机械角 60°正好隔一个槽位。这也是绕组设计里60° 相带说法的来源。2.2 三相对称电流加三相对称空间轴才能得到恒幅旋转磁动势接下来回答为什么偏偏是 120°。交流电机能连续平稳旋转前提是气隙里出现一个幅值恒定、方向匀速旋转的磁动势。要做到这一点时间相位和空间位置必须配合。假设三相电流在时间上互差 120°ia Im × cos(ωt) ib Im × cos(ωt - 120°) ic Im × cos(ωt 120°)三相绕组空间轴也相差 120°。把每相磁动势沿自己的轴画出再合成结果是一个幅值恒为 1.5 倍单相最大磁动势、相位随时间匀速旋转的矢量。关键就在这里电流时间差 120°空间轴差 120°两个 120° 匹配合成磁动势才是一条干净的正圆轨迹。如果把三相空间轴改成 90° 间隔电流仍然差 120°合成磁动势的幅值会周期性波动低速时转矩脉动明显噪音也大。打个比方三个人轮流推转盘出力的时间点各差三分之一拍站的位置也在圆盘周围各差 120°这样任何瞬间都有人以合适的方向推盘盘子转得又稳又匀若三个人站成 90° 夹角节奏又按 120° 算某些时刻三个人几乎在互相别劲转盘就会一顿一顿。2.3 负互感120° 轴系的电气证据120° 轴系不只在几何上成立还直接体现在电气参数里。理想三相对称电机中任意两相轴线夹角 120°那么两相之间互感约为自感乘以 cos120°也就是 -0.5 倍自感符号是负的。星形接法电机里测 A-B 两相间的线电感绕组是串联关系线电感 L_AB 约等于 La Lb - 2M代入 M -0.5L得到 L_AB ≈ 3L。也就是说线电感接近单相自感的三倍。若三相轴真是互相垂直互感约等于 0线电感只会是两倍自感。实测直流无刷电机线电感通常明显大于两倍相电感常见在 2.5 到 3 倍之间这就是 120° 轴系留下的电气签名。读到这里你应该已经建立概念了三相轴不是一个坐标轴方向而是三个互相成 120° 电角度的磁轴。那垂直轴到底从哪冒出来的下一章讲坐标变换。3. 垂直轴说法的真正来源αβ 坐标系与 dq 旋转坐标系3.1 为什么要坐标变换三相轴在平面内并不独立三相轴虽然有三个方向但星形连接下 ia ib ic 0三相电流里真正独立的只有两个变量。既然只有两个自由度就可以在同一个平面里找两个正交基把三相物理量投影过去这就是 Clark 变换。标准做法是让 α 轴与 a 轴重合β 轴逆时针超前 α 轴 90°。按等幅值方式投影公式是iα (2/3) × (ia - 0.5×ib - 0.5×ic) iβ (2/3) × (0.866×ib - 0.866×ic)三相电流平衡时iα 恰好等于 iaiβ 是 b、c 两相电流的差值。引入 2/3 系数是为了让变换前后电流幅值不变等功率版本则用 √(2/3)。所以要注意α 和 β 是互相垂直的但这个垂直是变换结果的垂直不是三相绕组的原始关系。看资料里的叠加图a 轴水平向右b 轴在左下c 轴在左上夹角 120°这是一定要记住的正确画法。3.2 Park 变换再转一次dq 轴跟着转子旋转Clark 变换把三相变成了两相但 αβ 轴固定在定子上稳态运行时 iα、iβ 依然是交流。于是再做一次 Park 变换把整个坐标系以转子电角速度旋转坐标轴取自转子磁链方向。d 轴对齐转子 N 极轴线q 轴与 d 轴相差 90°id iα × cosθ iβ × sinθ iq -iα × sinθ iβ × cosθθ 是转子电角度。这让稳态时的 id 和 iq 变成直流量id 控制磁链分量iq 控制转矩分量电机在控制层面等效成一台直流电机。d 轴和 q 轴的正交性保证了磁链控制和转矩控制互不干扰就像把力分解成水平和垂直两个方向垂直的那个力才专门出力矩。到现在你应该能看懂垂直轴在哪里了它出现在坐标变换后的 αβ 和 dq而不是电机本体三相轴。3.3 用一个小脚本证明120° 轴系合成圆90° 轴系在抖动为了把为什么三相轴不能垂直讲透我写了个简单脚本把同样的三相电流分别投影到 120° 间隔的三相轴和 90° 间隔的错误轴系上比较合成磁动势矢量幅值的稳定性。import numpy as np theta np.linspace(0, 2*np.pi, 400, endpointFalse) # 三相对称电流时间上互差120° ia np.cos(theta) ib np.cos(theta - 2*np.pi/3) ic np.cos(theta 2*np.pi/3) # 空间轴按120°分布a0°, b120°, c240° x120 np.cos(0)*ia np.cos(2*np.pi/3)*ib np.cos(4*np.pi/3)*ic y120 np.sin(0)*ia np.sin(2*np.pi/3)*ib np.sin(4*np.pi/3)*ic # 空间轴按错误的90°分布a0°, b90°, c180° x90 np.cos(0)*ia np.cos(np.pi/2)*ib np.cos(np.pi)*ic y90 np.sin(0)*ia np.sin(np.pi/2)*ib np.sin(np.pi)*ic r120 np.sqrt(x120**2 y120**2) r90 np.sqrt(x90**2 y90**2) print(120度轴系: 合成矢量幅值最大/最小 , r120.max()/r120.min()) print(90度轴系: 合成矢量幅值最大/最小 , r90.max()/r90.min())跑完的结果很直观120° 轴系 max/min 等于 1.0合成磁动势是正圆90° 轴系 max/min 约为 1.29说明合成矢量的幅值在周期脉动。轴系一旦被误解成垂直算出来的空间矢量方向和扇区全是歪的。电机本体如果真要按 90° 正交轴绕线那就必须配四相绕组加四相逆变器跟常见三相驱动完全是两套东西。4. 实测三板斧用反电动势、霍尔信号和相电感验证 120° 轴系4.1 第一斧看线反电动势的过零点直流无刷电机的三根引出线直接接示波器用手或者小电钻带着转子旋转就能看到反电动势波形。接成线电压时A-B、B-C、C-A 三组线反电动势的过零点相差 120° 电角度。如果是四极电机示波器上相位差仍然是 120° 电角度只是对应的机械角要除以极对数。操作上比较稳的方式是示波器两个通道分别接 A-B 和 B-C触发通道选 A-B匀速转动转子。观察两个波形的零点前一个过零到后一个过零之间正好是一个 120° 电角度间隔。如果看到的是 90°基本可以断定接线错误或者你在拿两台不同电机的线混着测。反电动势波形是转子磁场与定子绕组空间关系最直接的投影它不会说谎。4.2 第二斧看霍尔信号之间的空间间隔无刷电机内部通常有三个霍尔标准安装是沿圆周按 120° 电角度间隔布放也有少数电机按 60° 间隔装。无论哪种三个霍尔感应到的都是转子磁极位置一个电周期内三路信号是等分分布的绝不出现两两垂直的 90° 关系。用示波器同时抓三路霍尔方波可以加上拉电阻一路电周期内你会看到状态码按 001、011、010、110、100、101 循环每次翻转间隔 60° 电角度。这正是六步换向表的基础每个状态代表一个扇区换向逻辑按这个状态组合给三相桥通电。如果霍尔安装时随手摆成相互垂直三路方波的跳变沿根本不会均匀分布换向必然错乱。霍尔的位置本质上是顺着 120° 三相轴对转子位置做的采样而不是垂直轴的采样。4.3 第三斧用 LCR 表测相间电感没有示波器的场合电感表也能判断轴系。断开驱动电路用 LCR 表在 A-B、B-C、C-A 之间分别测线电感。星形接法的理想情况下120° 轴系带来的负互感会让线电感接近三倍相电感如果错误假设垂直轴互感约等于 0线电感只会是两倍相电感。我实测过一款 2204 航模电机单相绕组电感约 36 μH任意两相间线电感约 90 μH比例在 2.5 倍左右。没到 3 倍是因为磁路有饱和、漏感和制造偏差但明显大于 2 倍这个特征非常稳定。顺手你还能检查三相是否对称三个线电感读数差在 5% 以内算健康某相明显偏大要考虑匝间短路。测量时保持转子位置不动因为磁路饱和程度和转子角度都会影响读数测量频率选 1kHz 附近比较有参考价值。4.4 附加实验交换相序转向立刻反转三相轴空间顺序是 A-B-C 正序。任意对调两根相线合成旋转磁场方向就反过来电机反转。开环六步换向里这个现象最明显FOC 里如果相序错电机根本没法稳定跟踪目标轻则啸叫重则过流烧驱动。我调试新板子的习惯是装好电机和驱动后先不上大电流。手动转动电机开一路最简单的开环电流环或者六步换向确认霍尔状态和反电动势过零能对上之后才切 FOC。这一步能把绝大多数接线问题挡在烧硬件之前。5. 工程里最常见的三类轴系误判以及对应的排查思路5.1 资料图把三相轴画成垂直轴的陷阱很多论文和博客为了排版美观会把 a、b、c 三相轴画成互相垂直或者把控制框图中的 abc 端口画成彼此无关的三根斜线这最容易带偏新手。识别方法很简单凡是画三相轴a 轴水平向右b 轴指向左下方c 轴指向左上方三者互成 120°。反过来画成 90° 的三相轴图基本都是偷懒的示意读图时要在脑子里把它修正回 120°。5.2 编码器零位没和 A 相轴对齐FOC 里最隐蔽的问题是编码器零位和 A 相轴没对齐。dq 坐标系的 d 轴要对准转子磁链方向而转子磁链的绝对位置是相对某一相轴定义的。如果初始角度偏差一点整个 id/iq 分解都会偏表现是电机低速抖、给定大电流不出力甚至堵转。排查步骤很固定先给电机一个固定电压矢量比如只开通 A 相上管和 B、C 相下管让转子锁在某个位置再用示波器或上位机读编码器角度把这个角度记成偏移量。这个偏移量本质上就是转子磁轴相对 A 相轴的空间夹角补偿进 Park 变换的 θ 里就行。每换一台电机、每换一个编码器都要重做这个对齐操作不然你会被零速定位不准折磨一整天。5.3 先跑开环六步再上 FOC顺序不要反我见过不少新手从 FOC 的代码学起遇到问题就在变换矩阵里翻来覆去找 bug最后发现是电机自身相序或霍尔装错了。我的建议是别直接跳进矢量控制先用霍尔加六步换向把电机转起来拿示波器看霍尔信号的 60° 跳变看电流换向台阶理解每个扇区里哪个桥臂在导通。之后再上无感或 FOC。六步换向把 120° 三相轴的扇区关系展示得明明白白FOC 只是在同一套轴系上叠加了连续的角度插值和电流闭环。6. 一点个人习惯先认出 120°再谈控制我现在拿到一台从没见过的电机第一件事不是接驱动器而是做三件事用万用表量相间电感用示波器看线反电动势再用手转一圈录霍尔的跳变沿。这三样数据看完极对数、三相轴关系、霍尔安装方式基本就清楚了剩下的调参才是纯软件活。轴系问题不是理论考试它是写在铜线、磁钢、霍尔传感器和示波器波形里的物理事实。与其背 Clark 和 Park 的矩阵不如先建立三相轴互差 120°、垂直轴属于变换后坐标的画面感。等你什么时候看到 90° 的三相轴画法就觉得难受看到反电动势三个过零间距 120° 就觉得踏实直流无刷电机的轴系划分这关就算真正过了。