前几天在后台收到一个提问:直流无刷电机的 ax by cz 怎么划分的,是按照垂直轴线划分的吗?我一看这个问题的措辞就知道,提问的人多半是把 ax、by、cz 当成了 x、y、z 那种直角坐标轴来理解。这个疑惑在无刷电机初学者的讨论里其实非常典型,值得专门写一篇把它彻底说清楚:无刷电机的三相轴线到底怎么划分、为什么不是垂直划分、真正垂直的轴系又在哪里。全文不绕弯子,直接给结论,再拆原理,最后讲实操和排错。
1. 先说结论:ax、by、cz 不是按垂直轴线划分的
1.1 ax、by、cz 到底是什么
在无刷电机的语境里,ax、by、cz 并不是什么高深符号,它们就是三相绕组轴线的简写:ax 代表 A 相绕组轴线,by 代表 B 相绕组轴线,cz 代表 C 相绕组轴线。很多教材里也写作 phase A axis、phase B axis、phase C axis,或者直接用 a、b、c 轴来表示。搜索引擎里输入“直流无刷电机 ax by cz”出来的内容,十有八九就是问这三相轴在空间里怎么摆。
这个符号之所以容易让人犯迷糊,是因为它长得太像代数里的“ax + by + cz”表达式,也容易让人联想到三维直角坐标里的 x 轴、y 轴、z 轴。但电机里的 ax、by、cz 不是这样的:它是在定子圆周这一平面里画出来的三根轴线,不是三维空间里互相垂直的三个方向。
1.2 划分方式:120°电角度,不是 90°
直流无刷电机的定子三相绕组在空间上是按对称分布的原则放置的,相邻两相绕组轴线之间的夹角是 120° 电角度,不是 90°,也不是其他任意角度。
举个例子:你面对电机端盖看定子内孔,把 A 相绕组轴线定在正上方,那么 B 相绕组轴线就沿圆周方向落后或超前 A 轴 120° 电角度,C 相轴线再继续落后 120° 电角度。三相轴线把圆周三等分,这就叫三相对称绕组。
这里必须区分“电角度”和“机械角度”。对极对数为 1 的电机,120° 电角度正好等于 120° 机械角度,此时定子圆周上 A、B、C 三相轴线的物理夹角就是 120°。但如果是 2 对极电机,电角度 = 机械角度 × 极对数,所以 120° 电角度对应的是 60° 机械角度。这也是为什么看到不同电机定子嵌线时,三相绕组的实际空间位置并不都长得一样,绕线时却都叫“三相对称”。
提示:很多初学者会把电角度和机械角度混在一起算,这是后面看霍尔安装位置、看反电动势波形时最容易翻车的地方。后面我会专门说。
1.3 为什么有人会以为“垂直轴线”划分
会问“是不是按照垂直轴线划分的”,无非是拿直角坐标系来套电机模型。直角坐标里 x、y、z 两两垂直,夹角 90°,那自然的疑问就是:无刷电机里 A、B、C 三轴是不是也这样垂直?
答案很简单:在一个平面里,你无法做出三个彼此都成 90° 的方向。三相绕组要在一个圆周上均布,唯一能做到“三个方向对称”的夹角就是 120°。如果你强行让 A、B、C 三根轴按 90°、90°、180° 分布,那就不是三相对称绕组了,合成磁场会变成椭圆旋转磁场甚至脉振磁场,电机转矩波动、噪声、效率都要出大问题。
真正按 90° 垂直划分的轴系在无刷电机里也存在,但不是 abc 轴系,而是后面要讲的 αβ 静止坐标系和 dq 旋转坐标系。先把 abc 轴的 120° 搞明白,再去看 αβ、dq,整条逻辑线就顺了。
2. 120° 是怎么来的:三相绕组轴线划分的电磁学基础
2.1 绕组轴线的定义
要理解轴线的划分,先得知道“绕组轴线”这四个字到底指什么。每相绕组都是由线圈按一定规律嵌在定子槽里的,当某一相绕组通入电流时,它会在气隙里产生一个磁动势,这个磁动势有方向。我们规定:该相电流为正最大值时,磁动势最强的那条中心线,就是这一相绕组的轴线。
也就是说,A 相绕组轴线不是某根铁芯齿的物理中心线随便画的一条线,而是 A 相线圈通电后产生磁场的方向基准。定子铁芯上三相绕组的空间位置决定了这三根轴线的方向,而三相电流的时间相位又决定了每个瞬间三相磁动势的大小。空间角度和时间相位叠加在一起,就构成了电机旋转磁场的来源。
2.2 旋转磁场的合成逻辑
为什么三相绕组要严格按 120° 均布?这可以从旋转磁场的合成条件来解释。三相电流 ia、ib、ic 在时间上分别相差 120° 电角度,它们分别是:
ia = Im·sin(ωt) ib = Im·sin(ωt - 120°) ic = Im·sin(ωt - 240°)
每个电流在自己的绕组轴线上产生一个脉振磁动势,方向沿着该相轴线,大小随时间正弦变化。三个脉振磁动势叠加,就等于一个在空间里匀速旋转的圆形旋转磁场。这个结论成立的前提,是三相绕组在空间上也必须相差 120° 电角度。空间上的 120° 配时间上的 120°,三个磁动势矢量才能在任何时刻都合成出一个大小恒定、方向匀速旋转的总磁动势。
如果空间角度不是 120°,比如把 B 相轴线放到离 A 相 90° 的位置、C 相放到 180° 的位置,那么三相磁动势合成出来的总矢量大小就会随时间波动,磁场轨迹不是圆而是椭圆。转矩脉动、振动噪声、铜耗增加都会接踵而来。
2.3 一个磨盘的类比
这个道理用生活里推磨盘来类比最直观。让三个人均匀站在圆周上,间隔 120°,每个人沿切向方向用力,只要三个人用力的节奏均匀错开,磨盘就能平稳转动。可如果三个人站得不均匀,两个靠得很近,一个孤零零在另一边,那么合力就会出现忽大忽小、方向偏摆的情况,磨盘转起来一顿一顿的。
三相绕组就是那三个人,定子磁场就是磨盘。三相绕组按 120° 均布,三相电流按 120° 时序变化,磁场才转得圆润平稳。这也是三相对称绕组在电机设计里成为绝对主流的原因。
2.4 反电动势三相相差 120° 是谁决定的
你在实际测试里示波器探三相线,会看到三相反电动势波形彼此相差 120° 电角度。这个相位的来源,一方面是绕组在空间位置上的 120° 均布,另一方面是转子永磁体转过磁场时在每相绕组里感应出电动势,空间角度差直接映射成电动势的时间相位差。
所以,如果你做无感无刷电机控制,靠反电动势过零点判断换相点,本质上就是在利用“三相反电动势相位差 120°”这个事实。如果绕组轴线划分不对称,你看到的三反电动势波形就不是标准的三相对称波形,过零点间隔不均匀,换相逻辑会乱套。这个规律反过来也成立:用示波器看反电动势波形的对称性,就能判断绕组嵌线是否有问题,或者霍尔安装位置是否偏差过大。
3. 真正互相垂直的轴在哪里:αβ 静止坐标系与 dq 旋转坐标系
3.1 两相垂直轴系才是“90°划分”
前面说了 abc 轴系是 120° 划分,那么 90° 的垂直轴系在哪里?在控制模型里。为了把三相互差 120° 的交流量简化成更好控制的量,电机控制领域引入了两相垂直轴系。
第一套是两相静止坐标系,写作 αβ 轴。α 轴通常取与 A 相绕组轴线重合,β 轴逆时针超前 α 轴 90° 电角度。αβ 坐标系固定在定子上,是静止的,所以也叫静止坐标系。
第二套是两相旋转坐标系,写作 dq 轴。d 轴(直轴)固定在转子永磁体磁场方向上,指向转子 N 极方向,q 轴(交轴)超前 d 轴 90° 电角度,随转子一起旋转。因为 dq 坐标系是跟着转子转的,所以叫旋转坐标系。
这两套轴系的共同特点就是两个轴彼此垂直,夹角 90°。你问“是不是按垂直轴线划分的”,如果指的是 αβ 和 dq,答案是是的;如果指的是 abc 三相绕组轴线,那就不是。
3.2 Clarke 变换:从 120° 到 90°
既然物理世界里的三相绕组按 120° 分布,控制算法却想用两相垂直轴系来处理,那就需要一个数学桥梁把 abc 轴上的量换算成 αβ 轴上的量,这就是 Clarke 变换,也叫 3s/2s 变换。
Clarke 变换的等幅值形式是这样的:
iα = (2/3) × (ia - 0.5 × ib - 0.5 × ic) iβ = (2/3) × (0 + (√3/2) × ib - (√3/2) × ic)
公式里的系数 2/3 是为了保持变换前后的电流幅值一致。如果做功率分析,有时用等功率形式,系数变成 √(2/3),并且零轴分量也要参与计算。工程上电机控制芯片的驱动库默认很多用等幅值形式,但你接手别人的工程时一定要先确认用的是哪种系数,否则电流环 PI 参数会差出一截。
3.3 Park 变换:从静止到旋转
Clarke 变换把 abc 变到 αβ,但 αβ 轴还是静止的,交流量在高速运行时仍然是正弦变化的。为了把交流量变成直流量,方便 PI 控制器实现无静差控制,还需要再往前推一步:把 αβ 轴上的量旋转到 dq 轴上,这就是 Park 变换,也叫 2s/2r 变换。
Park 变换的常用形式:
id = iα × cosθ + iβ × sinθ iq = -iα × sinθ + iβ × cosθ
这里的 θ 是转子 d 轴与定子 α 轴(也就是 A 相绕组轴线)之间的电角度。经过 Park 变换之后,永磁同步电机或直流无刷电机在稳态时 id、iq 都是直流量,id 对应励磁分量,iq 对应转矩分量。对表贴式永磁电机做 FOC 时,常用 id = 0 控制,只用 iq 控制转矩。
3.4 为什么控制器偏爱垂直轴系
总结一下就是:功率级和电机本体必须做成三相 120° 对称,因为这样才能产生理想的圆形旋转磁场;而控制级算法喜欢 90° 垂直轴系,因为垂直轴系下的两个分量正交解耦,一个管励磁、一个管转矩,控制上清清楚楚。
如果不用 dq 垂直轴系,而是直接在 abc 轴系里做比例积分调节,问题会很明显:三相电流是交流量,PI 控制器对交流正弦量无法做零稳态误差调节,高速时相位滞后还会导致电流和电压对不上,最终结果是电流畸变、转矩波动。所以几乎所有的无感 FOC、有感 FOC 算法,最终都会回到 dq 轴上去做闭环。
4. 从 abc 到 αβ 再到 dq:坐标变换的实操路径与数学直觉
4.1 硬件信号准备
实际操作无刷电机时,你首先要拿到的就是三相信号。电流采样方面,常见的板子会采样 ia 和 ib 两相电流,第三相用基尔霍夫定律算:ic = -(ia + ib)。这一式子能成立的前提是电机三相绕组没有引出中线,也就是星形接法且三相平衡。绝大多数直流无刷电机就是这么接的。
位置反馈方面,要么是霍尔传感器,要么是编码器。霍尔传感器给出 60° 或 120° 电角度间隔的换相信号,分辨力较低但够做六步换向;编码器则能连续提供高分辨率电角度,是做 FOC 的常用选择。你最终要得到的核心量,就是 d 轴与 A 相轴线的夹角 θ。
4.2 软件变换流程
在代码里做坐标变换,标准流程是这样:
- 读取 ADC 采样值,换算得到 ia、ib,再算出 ic。
- 对 ia、ib、ic 做 Clarke 变换,得到 iα、iβ。
- 读取编码器电角度 θ,对 iα、iβ 做 Park 变换,得到 id、iq。
- 把 id、iq 分别和 id_ref、iq_ref 做差,经过两个 PI 调节器,得到 vd、vq。
- 对 vd、vq 做反 Park 变换,得到 vα、vβ。
- 对 vα、vβ 做反 Clarke 变换,得到三相电压指令 va、vb、vc。
- 用三相电压指令驱动 SVPWM 或 SPWM 输出。
整个链路里,Clarke 和 Park 是最核心的数学步骤。对做 FOC 的新手来说,最容易出问题的地方是第 3 步里的 θ:θ 到底是电角度还是机械角度、正方向是哪个旋转方向,都直接影响变换结果。
4.3 一个数值例子
单纯讲公式容易飘,我拿一组实际电流算一遍。假定某时刻采样得到 ia = 5A,ib = -2A,ic = -3A,转子电角度 θ = 30°。
先做 Clarke 变换:
iα = (2/3) × (5 - 0.5 × (-2) - 0.5 × (-3)) = (2/3) × 7.5 = 5A
iβ = (2/3) × ((√3/2) × (-2) - (√3/2) × (-3)) = (2/3) × ((√3/2) × 1) ≈ 0.577A
再做 Park 变换:
id = 5 × cos30° + 0.577 × sin30° ≈ 5 × 0.866 + 0.577 × 0.5 ≈ 4.619A
iq = -5 × sin30° + 0.577 × cos30° ≈ -5 × 0.5 + 0.577 × 0.866 ≈ -2.0A
注意这里的 id 很大。如果这是在执行 id = 0 的 FOC 控制,且电流是实际闭环状态下的采样值,那大概率是 θ 估计有偏差,导致励磁分量没有解耦干净。你会看到电机仍然能转,但电流有效值比理论值大,效率偏低。这个现象在初学者调试阶段极其常见。
4.4 电角度零点校准
在 FOC 里,θ 的零点必须和 A 相绕组轴线的方向对齐。用编码器时,编码器 Z 相脉冲位置不一定是电角度零点,需要做一次初始角校准。常见的做法是开环给一个固定方向的电流矢量,把转子强行吸到一个已知位置,然后把这个位置记录为编码器零位对应的电角度。
这一步如果做不好,后面所有的坐标变换都是带着固定偏置在算。症状就是:id、iq 在给定转矩时会上下抖动,id 始终拉不到 0,或者电机动起来之后声音大、电流大。很多时候问题不在 PI 参数,而在零点偏了十几度。
4.5 用示波器验证变换结果
调试坐标变换时,我最常用的验证方法很简单:让电机开环匀速转起来,用示波器同时观察编码器电角度输出和三相电流波形,把 iα、iβ 通过 DAC 或调试接口输出出来,正常情况下 iα、iβ 应该是幅值稳定、相位相差 90° 的正弦波。
如果看到 iα、iβ 的幅值不相等,或者相位差不是 90°,先查采样通道是不是把某两相互换了,再查 Clarke 变换的符号和系数,最后查编码器角度方向。这三层逐级排除,比瞎调库里参数要有用得多。
5. 把轴线关系搞错会有什么后果:几个真实问题与排查方法
5.1 典型后果一:电机嗡嗡响、启动失败
把 abc 轴按 90° 理解,或者把霍尔安装角度搞错,最直接的表现就是电机无法正常起动。通电瞬间,合成磁场方向不对,转子磁极被拉向错误的方向,电机在原地反复振动、嗡嗡作响,电流飙高,热保护动作。
这个现象我见过很多次:换了一个电机型号,程序里还是按旧电机的霍尔映射表,三相轴线角度对不上,结果就是“刚通电还转一下,然后就锁死”。这时候先用开环六步换相,手动逐步给六个电压矢量,看转子是不是跟着每一步转动,就能快速判断相序和角度映射是否正确。
5.2 典型后果二:电流波形畸变、id 与 iq 振荡
如果轴线关系错的不算离谱,只是零点偏了或者某相符号反了,电机可能还是能转,但电流波形会很难看。示波器上看相电流不是标准正弦波,而是带有明显毛刺或包络波动;解算出来的 id、iq 不在设定值附近稳定,而是随着转子位置周期振荡。
这时候尤其要警惕的是“能转不等于没问题”。有些项目长期带着这种小偏差运行,铜耗增加、磁钢温度升高,时间长了电机退磁或者驱动板功率管过热烧毁,排查到底才发现是角度零点偏了 10° 或 Clarke 系数从等幅值写成了等功率,这类问题最磨人。
5.3 轴线相关问题的排查流程
我一般按下面的顺序排查,效率最高:
- 检查 A、B、C 三相动力线的顺序和同名端定义。把任意两相对调,磁场旋转方向就会反,整个控制逻辑都会错。
- 检查霍尔传感器布局是 60° 还是 120° 间隔,确认软件里的换向表和霍尔跳变沿映射一致。
- 检查 Clarke、Park 变换矩阵的符号和系数,注意等幅值和等功率两种形式不能混用。
- 检查编码器或霍尔的电角度零点,确认初始角校准是否针对当前电机做过。
- 用手缓慢转动电机,用手感感受转子的位置,同时观察角度反馈是否连续平滑,角度增量方向和电机实际转向是否一致。
这个流程走完,90% 的“轴系混乱”问题都能定位到具体环节。
5.4 一个容易忽略的坑:反电动势相位与霍尔相位不一致
做无感控制时,很多人直接拿传感器检测到的过零点当换相点,但反电动势过零点和最优换相点之间通常有 30° 电角度的滞后,需要软件做超前处理。如果再叠加你手动改过电机端盖方向、换过线序,反电动势相位和霍尔相位就可能对不上,导致切换控制模式时转矩突变。
所以在做有感/无感切换的项目里,我都会建议先固定好 A、B、C 相序和霍尔相序,再统一校准好反电动势相位。每一步都记录在调试笔记里,避免后面反复返工。
6. 几个容易绕晕的“轴”词:一次性分清物理轴、磁轴、坐标轴
6.1 各种“轴”到底指什么
把直流无刷电机相关的“轴”全部列出来,其实并不算少:有转子转轴(机械旋转轴)、绕组轴线、永磁体磁轴、d 轴直轴、q 轴交轴、αβ 坐标轴,甚至还有直角坐标轴的 x、y、z。这些词都带一个“轴”字,含义却完全不同。
机械转轴就是电机中间那根铁棒,它和 abc 轴系的划分没关系;绕组轴线和磁轴定义的是磁场方向;d 轴 q 轴是坐标变换后的数学轴。日常交流时如果不加定语,真的容易鸡同鸭讲。我以前调试一台电机,同事说“这个轴反了”,我第一反应是编码器方向反了,结果他指的是机械轴的旋向反了。
6.2 到哪里确认定义:供应商参数表里的隐藏信息
遇到底层定义不清晰的情况,最稳妥的办法是找电机的参数表逐项确认:极对数、额定转速、额定电流、霍尔角度、编码器线数、反电动势常数。这里特别要说一下极对数和霍尔角度。
霍尔安装角度有 60° 和 120° 两种电气排布,同样的电机不同的霍尔板布局,换向表完全不一样。反电动势常数决定了反电动势幅值,可以用来验证速度估算是否正确。编码器线数决定电角度分辨率,直接影响 FOC 高速性能。
6.3 建议画一张图
给正在学无刷电机控制的朋友一个建议:别急着背公式,先画一张图。在定子圆周上标出 A、B、C 三相绕组轴线,间隔 120° 电角度;然后在旁边画一组 αβ 轴,α 与 A 轴重合,β 垂直;再画一组 dq 轴,d 指向转子磁极,q 垂直。
这张图画出来之后,ab c 轴、αβ 轴、dq 轴之间的关系就全在纸上了。以后再看到 ax by cz、Clarke、Park 这些词,你脑子里会有一幅几何图,而不是一堆矩阵符号。
我自己带项目时也经常让新人做这个小练习:用手转动电机,把转子某一时刻的 d 轴方向画在图上,然后自己推导此刻三相电流应该怎么分布才合理。大部分搞明白这个练习的人,后面再调 FOC 都会顺手很多。电机控制的门槛其实不在公式本身,而在能不能把公式对应到电机里真实的一圈铁芯、一组线圈、一块磁钢上去。