磁编码器已经算出 360°,为什么还不知道轴在哪?
转载自公众号「沙洲的产品笔记」 · 查看原文
电气角走完 360°,只代表一组周期信号完成了一圈相位。轴是否也完成一整圈,要看磁结构一转产生几个周期,以及系统有没有识别“第几个周期”。
有两个画面可以同时成立:屏幕上的角度从 0°平滑跑到 359°,没有跳点;可你把轴再转一点,读数又从 0°开始了。更麻烦的是,轴还远没转完一圈。
这不是 atan2 算错了。它算得可能完全正确——只是算的是电气角,你却把它当成了机械角。

360°不一定是一整圈
● ● ●
三个“角度”,别装进同一个抽屉
机械角 θm 描述轴或被测件相对机械基准的位置。电气角 θe 描述 Sin/Cos 信号在当前周期里的相位。至于最后显示给控制器的绝对位置,还可能要把周期编号、安装零点和方向约定一起算进去。
我习惯把它们拆成三层:
- 机械角
:轴实际上转到了哪里;
- 电气角
:两路周期信号现在走到哪个相位;
- 绝对机械位置
:当前周期相位 + 周期编号 + 零点与方向映射。
它们有关系,但不是同义词。

机械角、电气角与绝对位置
● ● ●
p=1 很省心,p=4 就会重复四次
在映射已知的理想模型里,可以写成:
θe = p × θm + θ0(按 360°回绕)
这里的 p,是这套磁结构和感知方式在一圈机械转动中产生的信号周期数;θ0 是安装形成的初始相位。
p=1 时,轴转一圈,电气角也正好走一圈。很多轴端单对极磁体的直观体验接近这一情况。p=4 时,轴只转 90°,电气角已经完成 360°;机械一圈会看到四次几乎相同的 Sin/Cos 状态。
Infineon 的 TLE5012B 资料用 3 极对和 5 极对示意电气角与机械角的对应关系;早期转子位置应用说明也明确写到,一极对时一个电气周期对应一圈机械转动,两极对时则在半圈内完成一个电气周期。注意,这是特定映射的例子,不是说所有磁编码器都直接读取电机转子的极对数。

一个周期与四个周期
我在评审图纸时会追问一句:这里的 p,到底是电机极对数、编码磁环极对数,还是传感器最终输出的周期数?三个数字可能相同,也可能不是。名称相似最容易坑人。
● ● ●
Sin/Cos 知道“周期内哪儿”,不知道“第几个周期”
理想两路信号可写成:
Ssin = A × sin(θe)
Scos = A × cos(θe)
再通过四象限反正切得到:
θe = atan2(Ssin, Scos)
两路信号共同确定一个周期内的象限和连续相位。可当下一段磁极带来完全相同的波形时,atan2 看到的输入也相同。它没有证据判断这是第 1 段还是第 4 段。
这像一只只有分针、没有时针的钟。你能看出“过了 20 分”,却不知道是 1:20、7:20 还是 11:20。比喻不严谨,但足够好用。

周期内相位与周期编号
● ● ●
分得更细,不等于位置变得唯一
把一个 Sin/Cos 周期插值成 1024 份,周期内的位置当然更细。若机械一圈有 64 个相同周期,系统仍要回答:当前是第几段?
分辨率回答“能切多细”,绝对性回答“位置是否唯一”。 两者不是同一道题。
不同产品会用不同办法补上周期编号:持续计数、上电回零、额外参考标记、多轨编码或其他系统状态。Renishaw 的 ASTRiA 是一个清楚的多轨例子:多组 Sin/Cos 信号的比例用于识别外层增量轨的具体分段,再与细分结果组合成绝对位置。它说明的是一种架构思路,并非所有磁编码器的标准答案。
反过来,也有一转一个周期的产品。RLS Orbis BRD14 的资料明确说明,其传感器几何布置每机械转产生一个 Sin/Cos 周期;同一产品的 UVW 换相信号又可配置不同极对数。一个设备里就可能同时存在不同“电角度”语境。

插值与绝对性
更多磁极也不是免费午餐。TI 的增量磁编码器设计资料指出,极对数增加可以提高每转状态数,但极距变小会压缩磁化深度和可用磁场余量,并让机械与传感容差更紧。别只看到“每圈脉冲更多”。
● ● ●
联调时,我只核对四件事
到了样机台架,我不会先争论算法名字,而是把四个定义写在同一页:
- 01一圈到底有几个有效信号周期?
用实测波形数,不靠文件名猜。
02零点在哪里?
机械零点、电气零点和软件零点是否已经对齐?
03方向怎么定义?
轴的顺时针、磁场旋转方向、通道极性和 atan2 参数顺序是否一致?
04谁提供周期编号?
是磁结构天然唯一、增量计数、多轨识别,还是上电后必须回零?

四项联调检查
说实话,这四问挺朴素。可不少“角度跳变”“位置重复”“换相错位”,最后都不是芯片坏了,而是团队里每个人说的“角度”并不是同一个东西。
● ● ●
写在最后
电气角没有错,它只是没承诺那么多。
它告诉你周期信号走到了哪里;机械角要再结合周期数、安装基准和方向;绝对位置还要解决跨周期唯一性。下一次看到 0°–360° 的输出,先别急着把它叫“一整圈”。问一句:这是谁的 360°?

关注公众号「如是有为」
微信扫一扫,新文章先在公众号发出。