游标编码器为什么一定要互质:数学逻辑解析

首发于公众号「如是有为」 · 查看原文

在编码器行业里,“游标要互质”几乎已经成了一句口头禅。

做磁编码器的人知道,做双磁环时两个极对数最好互质。做电感编码器的人也知道,两组周期数最好互质。做光学双码道的人,讲到最后也常常会落到同一句话上:两个码道最好互质

游标编码器为什么一定要互质:数学逻辑解析

这句话大家都会说,但很多时候也就停在“知道”这一层。再往下追,往往就只剩下一句“这是原理要求”。至于互质到底是什么,为什么一定要互质,互质到底保证了什么,很多人其实并没有真的把这件事在脑子里想明白。

这篇文章就只讲这一件事,而且只用高中生能跟上的知识来讲。我们不区分磁、电感、光学,因为只要你面对的是“两码道游标”,背后的数学其实是同一件事。

先别讲游标,先讲“重复”

先把一切想简单一点。

假设有一条码道,它在一整圈里重复 m 次。
这意味着什么?意味着你转完一圈,它会把同样的图案、同样的信号、同样的周期,重复出现 m 遍。

如果 m=7,那它每转 1/71/7 圈,信号看起来就会重复一次。
如果 m=32,那它每转 1/321/32 圈,信号也会重复一次。

所以,单独一条高周期码道有一个天然问题:它很细,但它不唯一。

它能告诉你,你现在落在某一类位置上。
但它不能告诉你,这个位置到底是整圈里的第几个。

这就像一条圆形走廊上装了很多扇一模一样的门。你站到某一扇门前,可以看得很清楚,但你不知道这是第 1 扇,还是第 9 扇,还是第 17 扇。因为它们本来就是重复的。

游标真正要做的事,就是把这个“重复”拆开。

游标编码器为什么一定要互质:数学逻辑解析

两条码道放在一起,真正想要的不是“更细”,而是“唯一”

现在再加一条码道。

第一条,一圈重复 m 次。
第二条,一圈重复 n 次。

这时候系统看到的,不再是一个读数,而是一对读数。
也就是:第一条码道现在走到哪儿了,第二条码道现在走到哪儿了。

绝对位置真正依赖的,不是哪一条码道单独不重复,而是这一对读数在整整一圈里不重复。

只要一圈里每个机械位置对应的“双读数”都不一样,那绝对位置就成立了。
反过来,只要有两个不同机械位置,对应了同一对读数,那绝对位置就失败了。

所以游标问题的本质,其实很朴素:

两条本来都会重复的码道,放在一起以后,能不能让整圈里的每个位置都拿到一个唯一的“双标签”。

互质,解决的就是这件事。

游标编码器为什么一定要互质:数学逻辑解析

为什么不互质一定不行

假设两条码道一圈分别重复 mm 次和 nn 次,最大公约数为 d=gcd⁡(m,n)>1d=\gcd(m,n)>1。

机械角只要前进 1/d1/d 圈,第一条码道就走了 m/dm/d 个周期,第二条码道走了 n/dn/d 个周期。两者都是整数,所以两条码道同时回到原来的相位。

m1d=md∈Z,n1d=nd∈Z m\frac{1}{d}=\frac{m}{d}\in\mathbb{Z},\qquad n\frac{1}{d}=\frac{n}{d}\in\mathbb{Z}

也就是说,组合读数每隔 1/d1/d 圈重复一次,一圈里有 dd 个位置无法区分。

例如 32 和 30 的最大公约数是 2。机械角前进半圈,两条码道分别走过 16 和 15 个完整周期,组合读数再次相同。

所以不互质的问题,不只是误差大小,而是在一圈里提前重号。

为什么互质就可以

用一个明确定义的例子:两条码道一圈分别重复 32 次和 31 次。

把整圈分成 32×31=99232\times31=992 格。第一条码道每走 31 格重复,第二条每走 32 格重复。两条同时重复时,格数必须同时是 31 和 32 的倍数,最小正值是 992,恰好一整圈。

一般地,若 d=gcd⁡(m,n)d=\gcd(m,n),组合相位的最短重复周期为 1/d1/d 圈。互质时 d=1d=1,所以只有走完整整一圈,才会同时回到原来的双读数。

两条码道各自都会重复,但不会在半路一起重复。这就是一圈内绝对位置能够唯一确定的原因。

互质更深的一层,其实就是“能不能拼出 1”

互质不只是“最大公约数为 1”。它还有一个等价说法:存在整数 a,ba,b,使得

am+bn=1. am+bn=1.

仍用 32 和 31 举例:32−31=132-31=1,所以取 a=1,b=−1a=1,b=-1 就能拼出 1。

对于不相邻的互质数,可以用欧几里得算法逐步相除,再反向代入。例如 7 和 32:

32=4×7+4,7=1×4+3,4=1×3+1. 32=4\times7+4,\qquad 7=1\times4+3,\qquad4=1\times3+1.

反向代入:

1=4−3=4−(7−4)=2×4−7=2(32−4×7)−7=2×32−9×7. 1=4-3=4-(7-4)=2\times4-7 =2(32-4\times7)-7=2\times32-9\times7.

这个 1 不是凭空出现的,而是原来两个周期数的整数线性组合。互质保证这样的整数配比存在。

为什么不互质就永远拼不出 1

若 m,nm,n 有公因数 d>1d>1,那么任意整数线性组合 am+bnam+bn 也一定能被 dd 整除,当然不可能等于 1。

例如 32 和 30 都是偶数,无论取多少个 32 加减多少个 30,结果仍是偶数。

gcd⁡(m,n)=1⟺∃a,b∈Z,  am+bn=1. \gcd(m,n)=1\quad\Longleftrightarrow\quad \exists a,b\in\mathbb{Z},\;am+bn=1.

这就是互质背后的数学骨架。

游标编码器为什么一定要互质:数学逻辑解析

这和游标到底是什么关系

现在就能把前面的几层全部连起来了。

两条码道,一条一圈重复 mm 次,一条一圈重复 nn 次。
互质保证的是:这两条码道放在一起以后,一圈里不会提前重号,所以绝对位置唯一。

而更深一层,am+bn=1am+bn=1 又告诉你:这两个周期数经过合适的整数配比,真的能够拼出最基本的“一个单位”。

这句话放到游标里,意思非常直白:

这两条本来都在高速重复的码道,并不是只能各说各话。只要它们互质,它们就有能力通过合适的配比,把最小单位还原出来。

所以互质这件事,不只是“避免提前重复”,它还说明这两个周期数在数学上是“可解开的”。

这就是为什么行业里总在说互质。只是过去很多时候,大家只记住了结论,没有把这件事想成一个完整的画面。

为什么相邻周期数特别顺手,而不相邻的互质数也能用

讲到这里,再顺手把另一个常见混淆拆开。

很多人把“互质”和“差值等于 1”混成一回事。其实不是。

互质解决的是:能不能整圈唯一。
差值等于 1 解决的是:最简单的差分是不是刚好就是机械角本身。

比如 32 和 31,它们互质,而且只差 1。
所以它不但整圈唯一,而且最简单的差分关系也特别漂亮。工程实现、算法表达、直觉理解,都很顺手。

但 32 和 7 也互质,所以同样能做整圈唯一定位。只是它们相差 25,不能只用两路相位直接相减来还原机械角。

所以这里一定要分清楚:

互质,决定能不能唯一。差值小,决定好不好用、简不简单。

先有前者,系统才成立。
后者是成立之后,再去讨论优雅程度和实现成本。

用5与3,看看丢掉一路信息会发生什么

把机械角按一圈归一为1,记作θ。设两路理想码道一圈分别重复5次和3次,先假定方向、零点和有效采样时刻都已对齐。

两路读数分别是:

p5=wrap⁡(5θ),p3=wrap⁡(3θ). p_5=\operatorname{wrap}(5\theta),\qquad p_3=\operatorname{wrap}(3\theta).

这里wrap表示按一圈取模。为方便读表,结果放在0到1之间,不含1。

机械位置第一条读数p₅第二条读数p₃相位差wrap(p₅−p₃)
0圈000
1/4圈1/43/41/2
1/2圈1/21/20
3/4圈3/41/41/2

看最后一列:0圈与半圈得到相同差值,四分之一圈与四分之三圈也相同。只保存相位差,就分不清这些位置。

原因直接写在式子里:

D=wrap⁡(p5−p3)=wrap⁡(2θ). D=\operatorname{wrap}(p_5-p_3) =\operatorname{wrap}(2\theta).

它一圈重复两次。5与3互质这个事实,没有改变差值只剩“两倍角”的结果。

但看中间两列,0圈对应(0,0),半圈对应(1/2,1/2),两对读数不同。只要两路信息都还保留,原来那两个位置就能分开。

联合解算怎样把机械角找回来

因为2×3−5=1,所以在这个理想模型里可以构造:

θ=wrap⁡(2p3−p5). \theta=\operatorname{wrap}(2p_3-p_5).

例如机械角为1/4圈时,两路读数是1/4和3/4。代入后得到2×3/4−1/4=5/4圈,再取模回到1/4圈。半圈时,同样恢复出半圈。

这一步使用了两路信息和合适的整数权重,已经超出了“直接相减”。一般情况下,互质保证存在这样的整数权重;能直接用一减一恢复机械角,则要求两周期数相差1。

也可以从重复周期证明。若两个位置相差Δθ,且两路相位都相同,那么5Δθ与3Δθ都必须是整数。将它们按2×3−5组合,Δθ也必须是整数。所以在一圈以内,没有另一个不同位置能给出完全相同的两路读数。

数学唯一之后,还要过误差这一关

上述表格和公式是无噪声、同轴整数周期的数学示例,不是某款产品的测试结果。

若两路含相位误差ε₅和ε₃,局部解算误差会带入2ε₃−ε₅。实际设计还要处理噪声、周期边界、零点、方向与时间对齐。数学上能唯一恢复,不等于当前误差条件下不会误判。

机械齿轮传动、额外绝对码道和多级融合,需要先写出各路相位对同一机械角的关系,再判断保留了哪些信息。不能把这里两个同轴周期数的结论直接套过去。

最后把这件事压成一句最值得记住的话

游标里所谓“互质”,本质上不是一条行业规定,而是两条本来都会重复的码道,在整整一圈里不能提前重号。

互质保证两路理想相位联合起来能够区分整圈;相差1,则让直接作差成为联合解算的一种简便形式。

所以“游标一定要互质”这句话,说到底不是经验,也不是习惯,而是绝对位置系统能不能站住的地基。

你要是把这一层想明白了,再回头看磁游标、电感游标、光学双码道,很多以前只是“记住了”的规则,就会第一次真正变成你自己的理解。

修订于2026年10月16日:补充5与3的相位表、联合恢复及误差边界。表格与公式为数学推导。

应作如是观
公众号「如是有为」二维码

关注公众号「如是有为」

微信扫一扫,新文章先在公众号发出。