背景:
最近解决了一些离轴编码器的问题,包括有双离轴编码器估测角度与干扰工况下的角度估测,工况大致如此,用于支撑中空走线电机的设计;其中XY用于估测中空走线的磁环角度,而L侧则是输出轴反传回来的角度观测

其中在运行中,XY编码器因为离轴装配会输出非线性角度值
L编码器会受到磁环A的磁场干扰,产生输出波动
所有的原始数据如下图,几乎是完全无法使用的

磁编码器系统建模与非线性补偿算法
一、XY编码器的偏移建模:核心思想
传统的XY编码器工作原理基于Lissajous图形,通过正弦/余弦信号的正交关系解算角度。然而,在磁场交互存在的情况下,观测角度 θ o b s \theta_{obs} θobs 与实际角度 θ r e a l \theta_{real} θreal 之间满足以下关系:
sin θ o b s cos θ o b s = k y sin θ r e a l k x cos θ r e a l \frac{\sin\theta_{obs}}{\cos\theta_{obs}} = \frac{k_y \sin\theta_{real}}{k_x \cos\theta_{real}} cosθobssinθobs=kxcosθrealkysinθreal
其中 k x k_x kx 与 k y k_y ky 反映了磁场在X轴和Y轴方向上的非对称衰减特性。
这一公式描述了各向异性磁场衰减下的角度偏移规律------当编码器周围存在额外磁源时,两个正交方向上的磁场强度不再相等,导致解算出的观测角度沿特定方向发生系统性畸变。
二、磁环A与XY编码器的交互模型
2.1 基础交互方程
当磁环A接近XY编码器时,其交互效应可以用以下简洁形式表述:
tan θ A = k sin θ X cos θ X = sin θ Y k cos θ Y \tan\theta_A = \frac{k \sin\theta_X}{\cos\theta_X} = \frac{\sin\theta_Y}{k \cos\theta_Y} tanθA=cosθXksinθX=kcosθYsinθY
该方程揭示了一个双对称关系:从X通道解算的角度关系是通过系数 k k k 压缩的正切比值,而从Y通道解算的角度关系则表现为 k k k 的倒数形式。这种双通道互反结构是磁场非对称性在编码器中的核心表现。
2.2 k值的物理意义
参数 k k k 是一个小于1的常数 ,它表征了偏移方向上的磁场衰减程度。具体而言:
k = tan θ X tan θ A = tan ( θ X − A + θ A ) tan θ A k = \frac{\tan\theta_X}{\tan\theta_A} = \frac{\tan(\theta_{X-A} + \theta_A)}{\tan\theta_A} k=tanθAtanθX=tanθAtan(θX−A+θA)
实机对应 :该 k k k 值与MA732数据手册中定义的BCT(Bias Compensation Term)寄存器值 相对应。在MA732的校准流程中,通过搜索BCT寄存器的最优配置,可以找到使速度曲线标准差最小化的参数组合,从而获得最优的 k k k 估计。
值得注意的是,BCT校准算法利用了函数中的极大值点进行参数估算,但实际应用中任意采集点均可作为计算依据。
三、拟合合并算法
3.1 主算法:atan2合并形式
在实际合并运算中,采用四象限反正切函数进行基准计算:
atan2 ( k sin θ X + sin θ Y , cos θ X + k cos θ Y ) \text{atan2} \left( k\sin\theta_X + \sin\theta_Y, \ \cos\theta_X + k\cos\theta_Y \right) atan2(ksinθX+sinθY, cosθX+kcosθY)
该表达式是前述基础方程的衍生形式,通过 k k k 系数实现了两个通道信号的非对称权重叠加,从而修正磁场非对称性引入的角度偏置。
3.2 几何均值近似公式
为了简化高维非线性参数的在线计算任务,还可以采用以下近似形式:
tan θ A = tan θ X ⋅ tan θ Y \tan\theta_A = \sqrt{\tan\theta_X \cdot \tan\theta_Y} tanθA=tanθX⋅tanθY
其等价于四象限优化表示:
atan2 ( sin θ X sin θ Y , cos θ X cos θ Y ) \text{atan2} \left( \sqrt{\sin\theta_X \sin\theta_Y}, \ \sqrt{\cos\theta_X \cos\theta_Y} \right) atan2(sinθXsinθY , cosθXcosθY )

四、L编码器系统的干扰建模
4.1 问题的来源
L编码器在读取磁环B的角度信号时,会同时接收到来自磁环A的磁场泄露,从而在角度解算过程中引入减速比 N − 1 N-1 N−1 次的谐波分量。在机器人关节或多自由度系统中,当两个编码器机械上接近且各自磁环间距不足以有效隔离时,这种串扰效应尤为明显。
4.2 基本输出方程
L编码器的实际输出可建模为:
sin θ L cos θ L = K B sin θ B + K A y sin θ A K B cos θ B + K A x cos θ A = sin θ B + k y sin θ A cos θ B + k x cos θ A \frac{\sin\theta_L}{\cos\theta_L} = \frac{K_B \sin\theta_B + K_{Ay} \sin\theta_A}{K_B \cos\theta_B + K_{Ax} \cos\theta_A} = \frac{\sin\theta_B + k_y \sin\theta_A}{\cos\theta_B + k_x \cos\theta_A} cosθLsinθL=KBcosθB+KAxcosθAKBsinθB+KAysinθA=cosθB+kxcosθAsinθB+kysinθA
其中 k x = K A x K B , k y = K A y K B k_x = \frac{K_{Ax}}{K_B}, \ k_y = \frac{K_{Ay}}{K_B} kx=KBKAx, ky=KBKAy 是两个通道上串扰效应的归一化系数。磁环A分布于两个正交轴向上的投影不同,导致 k x k_x kx 与 k y k_y ky 往往不相等,这正是系统建模的复杂性所在。
4.3 角度关系转换
将上述输出方程与几何减速关系结合:
θ A + 2 n π N − ϕ = θ B \frac{\theta_A + 2n\pi}{N} - \phi = \theta_B NθA+2nπ−ϕ=θB
可推导出误差方程:
sin ( θ B − θ L ) = k x cos θ A sin θ L − k y sin θ A cos θ L \sin(\theta_B - \theta_L) = k_x \cos\theta_A \sin\theta_L - k_y \sin\theta_A \cos\theta_L sin(θB−θL)=kxcosθAsinθL−kysinθAcosθL
该方程提供了 \\theta_L 与 \\theta_B 之间的偏移误差显式表达。
五、参数拟合与解耦计算
5.1 线性化拟合公式
为了求解 k x k_x kx 与 k y k_y ky 参数,将误差方程重新组织为线性化形式:
k x cos θ A sin θ L − k y sin θ A cos θ L − sin ( θ A + 2 n π N − θ L − ϕ ) = 0 k_x \cos\theta_A \sin\theta_L - k_y \sin\theta_A \cos\theta_L - \sin\left( \frac{\theta_A + 2n\pi}{N} - \theta_L - \phi \right) = 0 kxcosθAsinθL−kysinθAcosθL−sin(NθA+2nπ−θL−ϕ)=0
在实际操作中,可以通过采集多个时间点的 ( θ A , θ L ) (\theta_A, \theta_L) (θA,θL) 数据对,将上式视为以 k x k_x kx k y k_y ky p h i phi phi为未知数的线性回归问题,最小二乘拟合可较为稳定地解耦两个串扰系数。
5.2 角度校正公式
一旦 k x k_x kx 与 k y k_y ky 求解完毕,即可对测量角度 θ L \theta_L θL 进行后处理补偿:
θ B = θ L + arcsin ( k x cos θ A sin θ L − k y sin θ A cos θ L ) \theta_B = \theta_L + \arcsin \left( k_x \cos\theta_A \sin\theta_L - k_y \sin\theta_A \cos\theta_L \right) θB=θL+arcsin(kxcosθAsinθL−kysinθAcosθL)
值得关注的是,补偿项中包含两个 k k k 参数的 异步分量 : k x k_x kx 伴随 cos θ A \cos\theta_A cosθA 项出现, k y k_y ky 伴随 sin θ A \sin\theta_A sinθA 项出现,这意味着当实际运动中的 θ A \theta_A θA 跨越一个完整周期时, k x k_x kx 和 k y k_y ky 对最终角度的扰动会以正余弦调制的形式交替出现。通过上述公式即可重构获得校正后的 θ B \theta_B θB 真实角度。
