磁编码器原理与方案

点击下面图片带您领略全新的嵌入式学习路线 🔥爆款热榜 88万+阅读 1.6万+收藏

前言


送给大学毕业后找不到奋斗方向的你(每周不定时更新)

中国计算机技术职业资格网
上海市工程系列计算机专业中级专业技术职务任职资格评审


在这里插入图片描述
磁编码器为近些年应用越来越广的编码器,其拥有多种测量原理与方案,以下主要论述市场现有的技术方案。

一、磁编码器

磁编码器的动件是磁性物质,其载体可以是铁氧体、钕铁硼、钐钴等磁性材料。
在这里插入图片描述
而在介绍磁编码器用磁铁之前,需要提到的是:磁铁的图案充磁。日常我们见到的磁铁往往是拥有一个N极与S极的,其是使用最基础的充磁方案制作出来的,而在更多复杂的应用中,为了得到更高的性能,磁铁常常拥有更复杂的充磁图形。如下列出一些形态各异的充磁图形,其是由磁粉制作成磁载体后,使用定制图形的充磁夹具对其进行充磁。

如下面各异的图形充磁:

在这里插入图片描述
而对于编码器来说,其为精确反馈位置的装置,所以它的图案一般拥有特殊的数据格式,如下面这几个编码器用的:
在这里插入图片描述

二、多极磁编

下图为128极平面充磁的磁环磁场分布图,与该磁环的充磁原理图:
在这里插入图片描述
在这里插入图片描述
由于其为平面充磁,磁场的主要回路方向为该图垂直方向,所以我们将一线性霍尔芯片放于磁环平面上,当其绕法向中心旋转时,则可以从霍尔中得到以下波形:
在这里插入图片描述
128极,则为64对NS极,会产生64个弦波周期,则在旋转编码器中,其旋转一周只能得到相对的角度变化,这样的磁编码器主要用于增量编码器,无法得到一圈中的绝对位置数据。

在运动的过程中,与传统编码器一样,为了得到运行的方向,则需要产生一个相位差90˚的波形,则只需在上一线性霍尔磁位角90度方向上再放置一颗线性霍尔即可。

三、绝对值磁编

而为了得到绝对角度数据,则需改进编码器原理,主要有以下方法:
单对极磁铁
磁游标细分
磁刻线细分

四、单极对磁编

单对极磁铁,则是拥有一对NS极的磁铁,与上面128极的磁环不同,其产生的磁场只拥有一个周期,当我们使用两个线性霍尔来读取时,两个线性霍尔放置相差90˚,与磁环的磁位角90˚对齐,如下图,其磁场旋转强度变化如下:
在这里插入图片描述
下图为两个霍尔测到的表磁大小:
在这里插入图片描述
而两个霍尔分别得到了一个周期的磁场强度波形,而两个正交的波形则可以使用arctan(y1,y2)来得到其于360˚中的唯一对应值,则在使用过程过,得到某一刻的y1,y2值,通过计算出该值以对应当前磁环所在的角度。

五、磁游标编码器

单对极磁编码器其物理精度有限,当需要更高精度时,则需要进行物理继分,如上面128极磁环那样,但如果只是有128极,是没法得到一圈中的绝对角度的,这时,游标方案则可以在实现更高分辨率的同时实现绝对角度的测量。
在这里插入图片描述
游标方案使用两条磁码道进行测量,每条码道由多个NS极充磁组成,则在每一对NS产生的磁场上,我们可以通过单对极的同样原理得到该对极角度范围内的绝对定位,但是如何定位全局角度定位呢,奥秘就在于内外圈NS极对数的数量。

图中的外圈由32对磁极组成,内圈由31对磁极组成,在每一个径向方向上,其内外圈的磁感应强度差都都是不同的,而正是这个差值,使得了成为定位圆周位置的数据来源。

对于单对极来讲,游标方案拥有更高的物理精度与分辨率。

六、磁刻线编码器

图为磁刻线环的一部分
在这里插入图片描述

磁刻线则是使用了相比游标更精密的方案,其将磁铁充磁为很多条细线,而细线的宽度均不同,以NS代表产生的磁场磁化方向代表0、1,该编码是一种头尾相连的编码方式,一定宽度内可以得到不同的编码,其需要大量而密集的霍尔对磁线进行读取,得到当前的编码器的粗绝对位置,如上面的游标中粗分为32份一样,再根据区域内的磁场总失量来得到更为精细的物理角度。

七、磁编码器优点

磁编码器为非接触式的测量,其可以达到很多其它编码器不能达到的效果。如高抗震能力、耐污浊、装配要求低、高转速等,甚至可以做到完全防水、以及酸碱溶液里正常工作。

磁编码器现已在更多领域,如交通装备、水下环境、无人机、生物医疗等对环境、体积有要求的场所,磁编码器最小可以做到小于10mm的直径,且能达到其它编码器这个尺寸远不能及的分辨率。

八、磁编码器选择

根据您的应用场景和要求来选择适合您的磁编码器方案:
当需要绝对定位高精度(16bit以上)时,您可选择磁游标或磁刻线方案
需要绝对定位且于恶劣、复杂的工况下,选用单对极方案
需要增量且精度极高时,选用多对极方案
需要增量于普通工况时,选用单对极方案

码器可以使用RF或红外发射器传输多达16个TTL数字输入的状态。启用后,所包含的调制器将自动生成38kHz的红外线载波。 包含一个PIC微控制器,电路非常灵活。您可以决定哪些发射机输入将触发传输。您可以使用LATCH输入控制接收机输出被锁存或暂时。曼彻斯特码的发射机输出非常适合最便宜的ASK无线电模块或红外线控制. 如果在程PIC单片机时遇到麻烦,您可以考虑使用基于Holtek HT-12D,HT-12E和Motorola MC145026,MC145027,MC145028码器/解码器的其他电路。 2 ^ 12码器序号名称类型描述 1T0CKITTL输入连接到VDD 2VDD功率连接电源 3NC未连接 4VSS功率连接到地面 5NC未连接 6TXOUTTTL输出传输输出。LOW时不传输 直接连接到RF模块用于RF应用的DATA输入引脚 直接连接到IR LED或通过用于红外应用的晶体管** 7-modTTL输入调制 - 上电上拉为高电平禁止,拉低电平以启用38kHz载波 8-TETTL输入低电平有效使能 - 拉低电平传输 9-测试TTL输入低电平有效使能 - 在上电时拉低电平以产生固定的测试图案 10AD0TTL输入地址或数据,可选活动低电平触发* 11AD1TTL输入地址或数据,可选活动低电平触发* 12AD2TTL输入地址或数据,可选活动低电平触发* 13AD3TTL输入地址或数据,可选活动低电平触发* 14AD4TTL输入地址或数据,可选活动低电平触发* 15AD5TTL输入地址或数据,可选活动低电平触发* 16AD6TTL输入地址或数据,可选活动低电平触发* 17AD7TTL输入地址或数据,可选活动低电平触发* 18AD8TTL输入地址或数据,可选活动低电平触发* 19AD9TTL输入地址或数据,可选活动低电平触发* 20AD10TTL输入地址或数据,可选活动低电平触发* 21AD11TTL输入地址或数据,可选活动低电平触发* 22AD12TTL输入地址或数据,可选活动低电平触发* 23AD13TTL输入地址或数据,可选活动低电平触发* 24AD14TTL输入地址或数据,可选活动低电平触发* 25AD15TTL输入地址或数据,可选活动低电平触发* 26OSC2XTAL输出振荡晶体输出 27OSC1XTAL输入振荡器晶振输入 28-MCLRST输入复位输入,连接到VDD *源代码中设置了触发功能。拉低时的任何触发输入将作为-TE输入,使传输地址位仅在解码器端确定 **如果直接连接,则最大电流源/下降限制为25 mA 码器代码见附件。 2 ^ 12解码器序号名称类型描述 1T0CKITTL输入连接到VDD 2VDD功率连接电源 3NC未连接 4VSS功率连接到地面 5NC未连接 6RXINTTL输入接收输入 其极性必须码器输出匹配 直接连接到RF模块用于RF应用的数据输出引脚直接 连接到红外接收器IC(例如TSOP1738)输出引脚用于红外应用 7-INVTTL输入低电平有效低电平反相AD0-AD15输出 8-LATCHTTL输入低电平有效低电平锁定AD0-AD15上的最后接收数据 拉高电平将AD0-AD15复位为无接收时的默认状态 9VTTTL输出有效传输指示灯 - 当 没有接收时有效数据包被接收为低电平时为高电平 10AD0TTL输入/输出*地址输入或数据输出* 11AD1TTL输入/输出*地址输入或数据输出* 12AD2TTL输入/输出*地址输入或数据输出* 13AD3TTL输入/输出*地址输入或数据输出* 14AD4TTL输入/输出*地址输入或数据输出* 15AD5TTL输入/输出*地址输入或数据输出* 16AD6TTL输入/输出*地址输入或数据输出* 17AD7TTL输入/输出*地址输入或数据输出* 18AD8TTL输入/输出*地址输入或数据输出* 19AD9TTL输入/输出*地址输入或数据输出* 20AD10TTL输入/输出*地址输入或数据输出* 21AD11TTL输入/输出*地址输入或数据输出* 22AD12TTL输入/输出*地址输入或数据输出* 23AD13TTL输入/输出*地址输入或数据输出* 24AD14TTL输入/输出*地址输入或数据输出* 25AD15TTL输入/输出*地址输入或数据输出* 26OSC2XTAL输出振荡晶体输出 27OSC1XTAL输入振荡器晶振输入 28-MCLRST输入复位输入,连接到VDD *地址位在软件中进行设置,并在程MCU后修复。其他是数据位类型是TTL输入,当设置为地址位时,TTL输出设置为数据位。 解码器代码见附件。 软件所有的器件都使用新的基于FLASH的微控制器,这意味着它们可以重新程多次。您可以尝试使用源代码设置来满足您的需求。代码必须在M
### 增量式磁编码器的工作原理 增量式磁编码器是一种基于场变化来测量位置或速度的传感器设备。其核心组件通常包括一个径向化的铁以及用于检测横向场强度变化的霍尔元件[^1]。当目标物体旋转时,铁随之转动,而霍尔元件会感知到由于极交替引起的场强度的变化,并将其转换为电信号。 这些信号通常是正弦波或者方波形式,通过后续电路处理可以得到A相和B相信号,两者的相位差一般为90度。通过对这两个信号进行分析,能够判断出旋转方向并计算转过的角度或距离。此外,为了提供每圈起始点的信息,在某些设计中还会增加Z通道脉冲作为参考标记。 ### 增量式磁编码器的应用场景 增量式磁编码器因其结构简单、成本较低且具备良好的抗污能力,在工业自动化领域得到了广泛应用。相比光电码器而言,它更适合于可能存在灰尘、油渍或其他污染物干扰的工作环境,因为固体颗粒不会显著影响场特性[^2]。 以下是几个典型应用场景: - **机器人技术**:在关节部位安装磁编码器可以帮助精确控制机械臂的位置运动轨迹; - **数控机床**:实现刀具移动路径监控以提高加工精度; - **电梯系统**:监测轿厢升降高度从而保障乘客安全平稳乘坐体验; - **风力发电机组件跟踪**:实时反馈叶片桨距角调整情况以便优化能量产出效率; ```python import numpy as np def simulate_magnetic_encoder(rotation_angle_degrees, resolution_ppr=1024): """ Simulate the output of an incremental magnetic encoder. Parameters: rotation_angle_degrees (float): The total angle rotated by the shaft in degrees. resolution_ppr (int): Pulses Per Revolution - number of pulses per full revolution. Returns: tuple: A phase and B phase signals represented as lists containing pulse states over time. """ angles_radians = np.linspace(0, 2 * np.pi * (rotation_angle_degrees / 360), int(resolution_ppr*(rotation_angle_degrees/360))) a_phase_signal = [(np.sin(angle) >= 0).astype(int) for angle in angles_radians] b_phase_signal = [(np.cos(angle) >= 0).astype(int) for angle in angles_radians] return a_phase_signal, b_phase_signal a_signal, b_signal = simulate_magnetic_encoder(720) print(f"A Phase Signal Sample:{a_signal[:10]}") print(f"B Phase Signal Sample:{b_signal[:10]}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

【云轩】

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值