最近总有人问我直流无刷电机 ax by cz 怎么划分的是不是按照垂直轴线划分老实说这个热词把我之前也问懵了因为电机控制里很少直接写“ax by cz”常见的写法是 A 相、B 相、C 相轴线也就是绕组轴线方向。问的人多了我发现大家真正的困惑其实有三层这三条轴到底怎么排、该不该用直角坐标去理解、以及为什么一直听到“垂直轴线”的说法。这篇文章我就从这三个层面把它彻底讲清楚。不管你是刚接触 BLDC 的硬件工程师、做 FOC 调试的软件开发者还是经常修电机的维修师傅看完都应该能少走不少弯路。我不会只堆公式而是把坐标变换、绕组实际分布、调试现场判断方法串起来说清楚顺便把“垂直轴线”这个误区的来源也挖出来。1. 直流无刷电机里的“ax by cz”到底指什么1.1 三相绕组的空间分布互差120°而不是90°先直接回答标题里的问题直流无刷电机的 ax by cz我理解成 A 相、B 相、C 相绕组各自的轴线。这三条轴线在定子圆周上的排布既不是相互垂直的 x/y/z也不是随意乱排基本规律是在电角度上互差 120°。为什么是 120°因为无刷电机本质上还是一台同步/永磁电机定子上嵌着三相对称绕组。三相对称电流流过三相对称绕组才能在气隙中合成出一个旋转磁场。所谓“三相对称”电流波形相差 120°绕组轴线自然也要在空间上相差 120°否则电流再怎么对称磁场矢量也合不出标准的圆形旋转磁场。这里很容易犯的直觉错误就是拿三维直角坐标的 x/y/z 去套“ax by cz”。ABC 三相轴是在同一个定子截面圆上的三条方向线本质是二维平面里的三个矢量只是方向角不同不存在第三条轴向第三维延伸的问题。要用生活化类比的话三个人围成一圈每个人伸出一只手指向圆心方向这三只手臂之间应该间隔 120°而不是两个人的手垂直交叉。那为什么有些资料里会出现“三相绕组轴线两两垂直”的说法因为我见过的绝大多数资料都不严谨把空间矢量图里的 d/q 轴和三相轴混在一起画。后面我会专门讲这个误解但你先记住第一条ABC 三条轴彼此电角度差 120°和垂直没有关系。1.2 “垂直轴线”的说法从何而来d/q 轴才是真正垂直的一对“垂直轴线”这个说法在无刷电机控制里确实存在而且非常重要。只不过它指的不是 A/B/C 三相轴而是 d/q 轴——直轴direct axis和交轴quadrature axis。d 轴的方向通常定义为转子磁极的中心线方向q 轴则在电角度上领先 d 轴 90°。所以严格说只有 d 轴和 q 轴才是互相垂直的两条轴线。为什么要构造一对垂直轴因为三相绕组轴线上走的都是交流量电流、电压、磁链都在变化直接用静止坐标系做控制PI 调节器很难稳定地跟踪一个高频正弦目标。如果我们把坐标系绑在转子上让横轴永远对准转子磁极方向d 轴纵轴垂直落后/超前 90°q 轴那么原本旋转的交流量在这个旋转坐标系里就变成了直流量。这时候再去控制电流就像控制直流电机一样简单。于是问题来了有人把“三相绕组轴线 ax/by/cz”和“d/q 垂直轴”混在一起以为 ABC 也是按垂直轴划分的。这就是热词里“是按照垂直轴线划分的么”这句话的真正根源。回答非常明确不是。物理绕组 A/B/C 三相轴按 120° 电角度划分d/q 轴是按 90° 垂直关系划分的数学参考轴两者分属不同坐标系。1.3 电角度和机械角度别拿机械圆上的角度去硬套说到 120°还要提醒一个特别容易踩的坑这里的 120° 是电角度不是机械角度。对于 2 极电机一个电周期正好对应一圈机械 360°所以三相绕组机械上也是互差 120°。但对 4 极电机极对数 p2机械一圈要经历两个电周期120° 电角度只对应 60° 机械角度。极对数越多同样的电角度对应的机械角度越小。很多维修师傅在拆电机时用肉眼在定子端面上找三条互差 120° 的“轴”结果怎么都找不到就是因为没考虑极对数。三相绕组的实际槽分布是按极相组规则来的一个 4 极 24 槽电机里A 相、B 相、C 相绕组的出线位置看起来并不是简简单单三根均布 120° 的线。你拿游标卡尺量机械角度一定会蒙。所以只要一说到相轴线关系先算电角度再换算机械角度这才是正确思路。2. 从三相轴系到两相垂直轴系坐标变换才是核心2.1 为什么非要把 120° 的 ABC 变成 90° 的 αβ 和 dq既然物理上已经有三条互差 120° 的轴了很多初学者会问直接按这三条轴做控制不行吗为什么还要搞 Clark 变换、Park 变换原因很简单三相变量互相耦合而且都是正弦量。你没办法治好 A 相电流B 相、C 相还跟着乱跳。为了把一台交流电机当成直流电机控制得先把三相对称系统降成两相正交系统再转到转子坐标系。经典流程就是Clark 变换abc → αβ把三条互差 120° 的轴投影到两相静止直角坐标系Park 变换αβ → dq把静止直角坐标轴“搬到”转子上得到旋转的 d/q 垂直轴系。后面你看到的所有 FOC/SVPWM 算法都是基于这个级联变换。所以“垂直轴线”不是说电机绕组长了四个头而是控制数学里为了解耦造出来的正交坐标架。2.2 Clark 变换三相互差 120° 怎么投影成两相垂直 90°Clark 变换的目的是把 A、B、C 三相对称量变成 α、β 两个静止正交量。常见等幅值变换公式如下iα ia iβ (ia 2 * ib) / √3或者写成通用形式iα (2/3) * (ia - (1/2)*ib - (1/2)*ic) iβ (2/3) * ((√3/2)*ib - (√3/2)*ic)这两种式子在不同文献里会出现差异在于是否乘了系数矩阵本质都是把 120° 坐标系里的矢量映射到 αβ 直角坐标系。几何上你可以理解成拿一个手电筒从三条轴的方向分别照过去A 轴正好和 α 轴重合B、C 轴就在 α 和 β 方向上产生投影叠加起来就是新的两相信号。在这里你能看到明显的对照输入是三条互差 120° 的轴输出是两条互差 90° 的轴。所以“从 ABC 到 αβ”这个过程本身就是从非垂直系到垂直系的一次映射。但要注意这是数学变换不是改变电机内部绕组的物理夹角。2.3 Park 变换进入转子“垂直轴”的世界Clark 变换之后得到的是静止两相坐标系可电机转子一直在转所以还要做 Park 变换把 αβ 坐标轴转到转子上去。典型的 Park 变换公式id iα * cosθ iβ * sinθ iq -iα * sinθ iβ * cosθ这里的 θ 是转子电角度一般来自编码器、霍尔传感器或者观测器。d 轴对准转子磁极q 轴垂直 d 轴。经过这一步原来的高频交流电流 id、iq 在稳态下就变成平滑的直流分量。你就能用两个 PI 调节器分别控制励磁电流id和转矩电流iq了。在这个坐标系里d/q 两轴才是严格意义上的垂直轴线。很多代码库里所谓的“轴侧”axis其实就是指这个不是指定子上的 ABC。调试 FOC 时如果角度 θ 对得不准id 和 iq 就会相互串扰现象就是电机电流大、噪声大、转矩输出小。3. 实操过程中如何判断“ax by cz”的真实划分3.1 用反电动势波形验证三相相序理论说再多不如示波器看一眼。要判断手里这台直流无刷电机到底哪根线是 A、哪根是 B、哪根是 C最可靠的办法是测反电动势波形。找一台能手动旋转的电机或者用另一台电机拖动它在示波器上用两个通道分别接两根相线比如假设的 A 相和 B 相公共端接第三根线或电机中性点。以 A 相波形作为触发源观察 B 相波形过零点。正常情况下B 相相对 A 相滞后 120° 电角度C 相相对 B 相也滞后 120°。如果你测出来两相之间是 90° 关系那基本可以判断要么是示波器通道接错位置要么是这台电机的绕组内部不是标准三相 120° 分布极少见要么就是你理解的角度基准不对。别急着改电机先把探头校正一下再说。这里分享一个实操小技巧用无刷电机驱动板里的自检模式或者简单用手转动电机在三个霍尔输出端子上量到的三个方波信号彼此之间的相位关系也是 120°或 60° 安装间隔但电气关系 120°/60° 对应不同霍尔扇区。霍尔波形其实就是三相转子位置的“门牌号”对着它接线远比猜 U/V/W 靠谱。3.2 霍尔信号与相轴对应关系无刷电机里普遍装有 3 个霍尔传感器用来感知转子磁极位置。常见的安装方式有 60° 和 120° 两种它们产生的三个霍尔信号在电角度上相差 120° 或 60° 的组合但不管哪种霍尔状态跳变顺序都对应固定的换相表。如果你手里是霍尔电机想判断 “ax by cz” 怎么划分可以从霍尔信号里把三相参考轴“测”出来。方法给电机某相比如 A 相通正向直流电转子会转到与 A 相合成磁场对齐的位置此时记录三个霍尔信号值再换 B 相通电转子转到一个新位置再记录霍尔信号值。三次通电得到的霍尔状态就是 ABC 三相轴对应的霍尔位置区域。很多 FOC 控制器的 “电角度偏移” 就是干这个用的假设编码器零位和 A 相轴夹角未知你通过上述方法确定对齐位置然后把这组霍尔值或编码器角度写进固件让 d 轴和 A 相轴对齐。这一做不好电机即使能转效率和扭矩也都不对。我的经验是在新项目里先花半小时做相序标定比后面调半天参数都管用。3.3 在 FOC 调试软件里设置“轴”参数如果你用 ST Motor Control、SimpleFOC、VESC 或者自己写的 FOC 库里面多半有这几个参数电角度偏移、霍尔角度表、编码器方向、以及 d/q 轴定义方式。不同厂商对坐标轴定义可能不一样有的把 d 轴和 A 相重合有的把 q 轴和 A 相重合甚至有的让你选 “bidirectional”。调试时不要盲目抄网上模板先确认你的库认为“零角度”是哪一种。例如 SimpleFOC 里默认设置 zero_electric_angle 的方式就比较直观你需要用开环模式强行给 AB 通电让转子锁定到一个已知电角度然后记录编码器角度二者相减就是 offset。这个 offset 就是编码器零位与 A 相轴或 d 轴之间的实际夹角。我曾经踩过的坑是照着一个博客用别人的偏移值结果电机带载后电流飙升。后来才明白对方电机极对数是 4我是 2角度换算完全不同。记住极对数不同相同的机械角度对应的电角度差两倍这个参数一定要自己实测。4. 常见误区与排查技巧别再被“ax by cz”绕晕4.1 误区一把 ABC 轴当成直角坐标 x/y/z我知道为什么会有这个误区。很多入门资料画出电机的物理模型时喜欢在一个圆形截面里画三条轴线标上 a、b、c看起来就像三条从圆心出发的长短不一的箭头。再加上“ax by cz”这个写法里有 x、y、z立刻会让程序员想到三维坐标系。于是接线时恨不得把 U/V/W 接到直角坐标的三个方向上认为这样才“标准”。实际的电机定子是一个圆柱体A、B、C 三相绕组在槽内沿着圆周布置物理上绕组之间确实在空间上相差角度但这个角度是 120° 电角度不是 90°。如果你按垂直轴去理解电流矢量合成的角度会全乱电机可能转起来但会带着明显的振动和异响甚至烧驱动。维修现场最典型的错误换了一台无刷电机后照旧把旧电机的 U/V/W 线序接上去发现新电机反转就把任意两相调换。结果电机虽然正转了但霍尔信号和相序不匹配启动时一顿一顿最后又把霍尔线也交叉换了一遍。这不是个例。正确做法是先通过反电动势或霍尔状态确认该电机相序再按控制器定义的 ABC 顺序接线绝不能凭颜色猜。4.2 误区二认为换相过程也是按 90° 一步一换三相无刷电机常见的六步换相梯形波控制每一步换相是 60° 电角度而不是 90°。因为三相桥臂总共有 6 个有效开关状态对应空间上 6 个相邻相差 60° 的基本电压矢量。你把一个电周期 360° 除以 6正好每步 60°。这也是为什么很多入门者拿着“垂直轴 90°”的概念去理解换相表时怎么看都别扭。即便你用 FOC SVPWM六个扇区也是按 60° 划分的扇区边界并不和 ABC 轴线重合而是和 αβ 平面里的电压矢量边界相关。这些扇区划分统统不是 90°。所以只要在无刷电机话题里看到有人用“垂直轴线”来指导换相基本可以判定他的坐标系概念还没理顺。4.3 排查速查表电机转不动先查这些下面这个表是我在调试和维修中反复用到的排查清单你遇到类似症状时可以直接对照症状可能的原因判断/处理办法电机通电后抖动、电流大相序接错或霍尔信号对不上用示波器测反电动势确认 ABC 相位顺序空载能转带载无力d/q 轴反向或电角度偏移不准开环强制对齐重新标定 offset上电启动卡顿用手拨才转霍尔线序错误用霍尔波形对比换相表重新排序电机反转但不抖任意两相互换造成替换相线顺序并检查霍尔逻辑电平某相特别烫另外两相不热驱动桥臂异常或绕组内部对地断电量绕组电阻三相阻值应一致电流波形里低频振荡Park 变换中用错 θ 方向检查转子转向与编码器方向是否匹配这张表不能解决所有问题但能帮你快速确定是不是“轴”搞错了。大多数新人遇到的电机转不动都不是硬件坏了而是坐标系没对齐。4.4 我个人调试时的一个习惯先画图再通电最后分享一个我自己的笨办法。遇到任何关于相轴线划分的疑问我第一件事不是打开示波器而是找张纸画一个圆标出转子位置然后画出三条互差 120° 的 A/B/C 轴再画出两条互差 90° 的 d/q 轴。只要图一画出来90% 的疑惑都会当场解开ABC 永远在圆上等分圆周的三分之一d/q 则是转子上的一对正交射线。两个坐标系画在同一张图里就再也不会把 120° 和 90° 混为一谈。然后我会用反电动势和霍尔波形去验证图上的相序而不是直接通电。通电测试前一定要先确认母线限流否则一次接线错误就可能烧掉驱动板。调试无刷电机理论和实践必须互相印证只看公式很容易钻牛角尖只看波形又很难理解背后的坐标变换。总的来说“ax by cz”到底怎么划分这个问题答案就是三相绕组轴按电角度互差 120° 划分真正垂直的一对轴是控制里的 d/q 轴。以后再看资料时只要分辨清楚“定子三相轴”和“转子垂直轴”这两个坐标系你就不会再被绕晕了。
企业数字化 ERP 产品动态
相关推荐
pybind11 量化金融中的 Python/C++ 混合编程实践 三年前我第一次把回测引擎里那段滚动波动率计算从 pandas 挪到 C,纯粹是被逼的——一张 5000 万行的分钟线,rolling().std()跑一次要四分多钟,参数稍微调一调,一天就过去了。当时的做法是用 Cython 包了一层,能跑&… · 2026/11/4 10:21:43
车机固件升级完整方法论:从身份核对到变砖分级抢救 很多人对车机固件升级的理解,还停留在一个很朴素的层面:找到一个包,塞进U盘,插上去等进度条走完。真正动手过三五次的人会明白, 找包这件事在整条链路里的权重可能只占两成 ,剩下八成全部压在"确认这… · 2026/11/4 10:21:43
谷歌ARTEMIS:基于无障碍服务的AI手机自动化框架实战 1. 为什么我会盯上 ARTEMIS 这个项目 移动端自动化这个领域,说实话已经卷了很多年了。从最早的 Appium、UiAutomator,到后来的 Airtest、SoloPi,再到近两年冒出来的各种基于视觉大模型的自动化方案,工具换了一茬又一茬,… · 2026/11/4 10:21:43
无人机水质监测系统设计与实战经验分享 1. 无人机水质监测的技术革新 最近在环境监测领域出现了一个有趣的现象:越来越多的科研团队开始采用无人机进行水质采样和监测。这种创新方法不仅解决了传统人工采样效率低、危险性高的问题,还能获取更全面的水域数据。作为一名长期从事环境监测的技术人… · 2026/11/4 10:56:32
Playwright自动化测试:跨浏览器Web测试实战指南 1. Playwright 工具概述Playwright 是微软开源的现代化 Web 测试和自动化库,支持 Chromium、WebKit 和 Firefox 三大浏览器引擎。与传统的 Selenium 相比,它具有以下显著优势:原生支持无头模式(headless)和带界面模式(headed)自动等待元素加载… · 2026/11/4 10:56:32
CSES算法题库:面试高频考点与动态规划/图论建模实战指南 简介:CSES Problem Set 是面向C算法学习者与编程竞赛选手的高质量题解资源,覆盖基础算法、动态规划、图论、贪心、数据结构、数论、回溯、位运算及模拟建模等10大核心模块,精准匹配ACM/ICPC、校招笔试及LeetCode进阶训练需求。资源包为ZIP格式… · 2026/11/4 10:56:32
Delphi7嵌入Chrome内核:CEF4Delphi最新版实战指南 简介:本资源是目前最新版CEF4Delphi开源控件集成包,专为Delphi7开发者设计,用于在原生Delphi应用中无缝嵌入Chromium内核浏览器,解决传统WebBrowser组件功能弱、兼容差、无法支持现代前端技术栈的痛点,适用于桌面端混合… · 2026/11/4 10:56:32
CSES题库:算法面试的考点解剖图与破题心法 简介:CSES Problem Set 是面向算法学习者与编程竞赛选手的 C 专项题解资源,覆盖基础算法、动态规划、图论、贪心、数据结构、数论、回溯、位运算及模拟建模等十大核心模块,精准对标 ACM/ICPC、Code Jam 等赛事及大厂技术面试高频考点。资源包… · 2026/11/4 10:56:32
Redis核心数据结构与通用命令实战指南 1. Redis入门:从零掌握通用命令与核心数据结构 作为从业十年的全栈开发者,我见证了Redis从一个小众工具成长为互联网基础设施的全过程。无论你是刚接触Redis的新手,还是想系统梳理知识的开发者,掌握通用命令和五大核心数据结构都是… · 2026/11/4 10:55:31
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38
AI辅助技术栈评估:提升研发决策效率60% 1. 项目背景与核心价值技术决策一直是研发团队面临的重大挑战。随着技术生态的快速演进,技术栈的选择、维护和迭代变得愈发复杂。我们团队在过去两年里,先后经历了三次重大技术栈迁移,每次都需要投入大量人力进行技术评估和风险分析。直到去年… · 2026/11/4 0:00:17
从生成Token到直接决策:Jev如何重塑AI Agent工程实践 1. 从"生成文字"到"拍板决策":Jev 到底在解决什么问题大多数人第一次接触大模型,脑子里建立的模型是"输入问题、输出文字"。你问它今天天气怎么样,它给你一段描述;你让它写个周报,它给你… · 2026/11/4 0:00:17
32G统一内存跑大模型:内存账、TPS实测与端云分流 想在一台 32G 统一内存的小主机上把大模型跑成"日常可用",这件事我前后折腾了小半年。标题里说的这台 Mac mini M6,是我们这次讨论的目标平台,具体到手规格以实物为准;但下面这套推算方法和实测思路,对任何统… · 2026/11/4 0:00:17
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38