编码器,是一种用来测量机械旋转或位移的传感器。它能够测量机械部件在旋转或直线运动时的位移位置或速度等信息,并将其转换成一系列电信号。

编码器分类

按监测原理分类

光电编码器

光电编码器,是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器。这是目前应用最多的传感器,光电编码器是由光源、光码盘和光敏元件组成。

光栅盘是在一定直径的圆板上等分地开通若干个长方形孔。由于光电码盘与电动机同轴,电动机旋转时,光栅盘与电动机同速旋转,经发光二极管等电子元件组成的检测装置检测输出若干脉冲信号,通过计算每秒光电编码器输出脉冲的个数就能反映当前电动机的转速。

此外,为判断旋转方向,码盘还可提供相位相差90°的两路脉冲信号。

霍尔编码器

霍尔编码器是一种通过磁电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器。

霍尔编码器是由霍尔码盘(磁环)和霍尔元件组成。

霍尔码盘是在一定直径的圆板上等分地布置有不同的磁极。霍尔码盘与电动机同轴,电动机旋转时,霍尔元件检测输出若干脉冲信号,为判断转向,一般输出两组存在一定相位差的方波信号。

按输出信号分类

增量式编码器

增量式编码器是将设备运动时的位移信息变成连续的脉冲信号,脉冲个数表示位移量的大
小。其特点如下:

  • 只有当设备运动时才会输出信号。

  • 一般会输出通道A和通道B 两组信号,并且有90° 的相位差(1/4个周期),同时采集这两组信号就可以计算设备的运动速度和方向。

    如下图,通道A和通道B的信号的周期相同,且相位相差1/4个周期,结合两相的信号值:

    • 当B相和A相先是都读到高电平(1 1),再B读到高电平,A读到低电平(1 0),则为顺时针
    • 当B相和A相先是都读到低电平(0 0),再B读到高电平,A读到低电平(1 0),则为逆时针
  • 除通道A、通道B 以外,还会设置一个额外的通道Z 信号,表示编码器特定的参考位置

    如下图,传感器转一圈后Z 轴信号才会输出一个脉冲,在Z轴输出时,可以通过将AB通道的计数清零,实现对码盘绝对位置的计算。

  • 增量式编码器只输出设备的位置变化和运动方向,不会输出设备的绝对位置。

绝对式编码器

绝对式编码器在总体结构上与增量式比较类似,都是由码盘、检测装置和放大整形电路构成,但是具体的码盘结构和输出信号含义不同。

它是将设备运动时的位移信息通过二进制编码的方式(特殊的码盘)变成数字量直接输出。其特点如下:

  • 其码盘利用若干透光和不透光的线槽组成一套二进制编码,这些二进制码与编码器转轴的每一个不同角度是唯一对应的。
  • 绝对式编码器的码盘上有很多圈线槽,被称为码道,每一条(圈)码道内部线槽数量和长度都不同。它们共同组成一套二进制编码,一条(圈)码道对应二进制数的其中一个位(通常是码盘最外侧的码道表示最低位,最内侧的码道表示最高位)。
  • 码道的数量决定了二进制编码的位数,一个绝对式编码器有N 条码道,则它输出二进制数的总个数是2的N次方个。
  • 读取这些二进制码就能知道设备的绝对位置,所以称之为绝对式编码器。
  • 编码方式一般采用自然二进制、格雷码或者BCD 码等。
    • 自然二进制的码盘易于理解,但当码盘的制造工艺有误差时,在两组信号的临界区域,所有码道的值可能不会同时变化,或因为所有传感器检测存在微小的时间差,导致读到错误的值。比如从000跨越到111,理论上应该读到111,但如果从内到外的3条码道没有完全对齐,可能会读到如001或其它异常值。
    • 格雷码(相邻的两个2进制数只有1个位不同)码盘可以避免二进制码盘的数据读取异常,因为格雷码码盘的相邻两个信号组只会有1位的变化,就算制造工艺有误差导致信号读取有偏差,最多也只会产生1个偏差(相邻信号的偏差)。

编码器参数

分辨率

指编码器能够分辨的最小单位。

  • 对于增量式编码器,其分辨率表示为编码器转轴旋转一圈所产生的脉冲数,即脉冲数/转(Pulse Per Revolution 或PPR)

    码盘上透光线槽的数目其实就等于分辨率,也叫多少线,较为常见的有5-6000 线。

  • 对于绝对式编码器,内部码盘所用的位数就是它的分辨率,单位是位(bit),具体还分单圈分辨率和多圈分辨率。

精度

首先明确一点,精度与分辨率是两个不同的概念。

精度是指编码器每个读数与转轴实际位置间的最大误差,通常用角度、角分或角秒来表示。

例如有些绝对式编码器参数表里会写±20′′,这个就表示编码器输出的读数与转轴实际位置之间存在正负20 角秒的误差。

精度由码盘刻线加工精度、转轴同心度、材料的温度特性、电路的响应时间等各方面因素共同决定。

最大响应频率

指编码器每秒输出的脉冲数,单位是Hz。计算公式为:

最大响应频率= 分辨率* 轴转速/60

例如某电机的编码器的分辨率为100(即光电码盘一圈有100条栅格),轴转速为120转每分钟(即每秒转2圈),则响应频率为100*120/60=200Hz,即该转速下,编码器每秒输出200个脉冲(电机带动编码器转了2圈嘛)。

信号输出形式

  • 对于增量式编码器,每个通道的信号独立输出,输出电路形式通常有集电极开路输出、推挽输出、差分输出等。

  • 对于绝对式编码器,由于是直接输出几十位的二进制数,为了确保传输速率和信号质量,一般采用串行输出或总线型输出,例如同步串行接口(SSI)、RS485、CANopen 或EtherCAT 等,也有一部分是并行输出,输出电路形式与增量式编码器相同。

码盘测速原理

编码器倍频

编码器倍频是什么意思呢,比如某光栅编码器一圈有N个栅格,理论上电机带动编码器转一圈,只能输出N个信号,通过倍频技术,可以实现转一圈,却能输出N*n个信号,这里的n为倍频数。

增量式编码器输出的脉冲波形一般为占空比50% 的方波,通道A 和B 相位差为90°。

  • 如果只使用通道A计数,并且只捕获通道A的上升沿,则一圈的计数值=码盘的栅格数,即为1倍频(没有倍频)
  • 如果只使用通道A计数,并且捕获了通道A的上升沿和下降沿,则编码器转一圈的计数值翻倍,实现2倍频
  • 如果既使用通道A计数,又使用通道B计数,且都捕获了上升沿和下降沿,则实现了4倍频

假设某个增量式编码器它的分辨率是600PPR,能分辨的最小角度是0.6°,对它进行4 倍频之后就相当于把分辨率提高到了600*4=2400PPR,此时编码器能够分辨的最小角度为0.15°。

M法测速

又叫做频率测量法。该方法是在一个固定的时间内(以秒为单位),统计这段时间的编码器脉冲数,计算速度值。M法适合测量高速

假设:

  • 编码器单圈总脉冲数为C(常数)

  • 统计时间为T0T_0T0​ (固定值,单位秒)

  • 该时间内统计到的编码器脉冲数为M0M_0M0​(测量值)

则:转速n(圈/秒)的计算公式为:

如何理解这个公式:

M0M_0M0​/C 即统计时间内有多少个编码器脉冲,再除以统计时间T0T_0T0​ ,即1s(单位时间)内转了多少圈

例如:统计时间T0T_0T0​ 为3s,在3s内测得的脉冲数M0M_0M0​为60,而编码器的单圈脉冲数C为20,则转速n=60/(20*3)=1圈每秒

由于C 是常数,所以转速n 跟M0M_0M0​成正比。这就使得:

  • 在高速时,测量时M0M_0M0​变大,可以获得较好的测量精度和平稳性
  • 但在低速时(低到每个T0T_0T0​ 内只有少数几个脉冲),此时算出的速度误差就会比较大,并且很不稳定。

如下图,方波为编码器某一通道输出的脉冲。

当转速较高时,每个统计时间T0T_0T0​ 内的计数值较大,可以得到较准确的转速测量值。

当转速较低时,每个统计时间T0T_0T0​ 内的计数值较小,由于统计时间的起始位置与编码器脉冲的上升沿不一定对应,当统计时间的起始位置不同时,会有一个脉冲的误差(只统计上升沿时,最多会有1个脉冲误差,统计上升沿和下降沿时,最多会有2个脉冲的误差)。

通过倍频提高单位时间测得的脉冲数可以改善M 法在低速测量的准确性(比如原本捕获到的脉冲M0M_0M0​ 只有4 个,经过4 倍频后,相同电机状态M0M_0M0​变成了16 个),但也不能从根本上改变低速时的测量问题。

T法测速

又叫做周期测量法。这种方法是建立一个已知频率的高频脉冲并对其计数。T法适合测量低速

假设:

  • 编码器单圈总脉冲数为C(常数)

  • 高频脉冲的频率为F0F_0F0​ (固定值,单位Hz)

  • 捕获到编码器相邻两个脉冲的间隔时间为TET_ETE​ ,其间的计数值为M1M_1M1​ (测量值)

则:转速n 的计算公式为:

如何理解这个公式:

1/TET_ETE​ 即1s内有多少个编码器脉冲,再除以一圈的脉冲数C,即1s内转了多少圈

F0F_0F0​/M1M_1M1​ 即1s内的高频脉冲数除以两编码器脉冲间的高频脉冲数,也即1s内有多少个编码器脉冲,再除以一圈的脉冲数C,即1s内转了多少圈

例如:高频脉冲的周期是1ms,即频率F0F_0F0​ 为1000Hz,在编码器的两个脉冲之间,产生的高频脉冲数M1M_1M1​为50个(即两个编码器脉冲的间隔TET_ETE​ 为0.05s),编码器一圈的脉冲数C为20,则转速n=1000/(50∗20)=1n=1000/(50*20)=1n=1000/(50∗20)=1圈每秒。

由于C 和F0F_0F0​ 是常数,所以转速n 跟M1M_1M1​成反比。这就使得:

  • 在高速时,编码器脉冲间隔时间TET_ETE​ 很小,使得测量周期内的高频脉冲计数值M1M_1M1​也变得很少,导致测量误差变大
  • 在低转速时,TET_ETE​ 足够大,测量周期内的M1M_1M1​也足够多,所以T 法和M 法刚好相反,更适合测量低速。

如下图,黑色方波为编码器某一通道输出的脉冲,黄色方波为高频测量脉冲。

当转速较低时,高频测量脉冲数M1M_1M1​较大,可以得到较准确的转速测量值。

当转速较高时,编码器两脉冲间的时间间隔变短,导致高频测量脉冲数M1M_1M1​较小,由于高频脉冲的上升沿位置与编码器脉冲的上升沿不一定对应,当两波的上升沿位置不同时,会有一个脉冲的误差

M/T法测速

这种方法综合了M 法和T 法各自的优势,既测量编码器脉冲数又测量一定时间内的高频脉冲数

在一个相对固定的时间内,假设:

  • 编码器脉冲数产生 M0M_0M0​个 (测量值)

  • 计数一个已知频率为F0F_0F0​ (固定值,单位Hz)的高频脉冲,计数值为M1M_1M1​ (测量值),计算速度值

  • 码器单圈总脉冲数为C(常数)

则转速n 的计算公式为:

例如:在一个相对固定的时间内,编码器脉冲数 M0M_0M0​为3个;高频脉冲的周期是1ms,即频率F0F_0F0​ 为1000Hz,产生的高频脉冲数M1M_1M1​为150个;编码器一圈的脉冲数C为20,则转速n=1000∗3/(150∗20)=1n=1000*3/(150*20)=1n=1000∗3/(150∗20)=1圈每秒。

由于M/T 法公式中的F0F_0F0​ 和C 是常数,所以转速n 就只受M0M_0M0​ 和M1M_1M1​ 的影响。

  • 高速时,M0M_0M0​ 增大,M1M_1M1​ 减小,相当于M 法
  • 低速时,M1M_1M1​ 增大,M0M_0M0​ 减小,相当于T 法。

冲数 M0M_0M0​为3个;高频脉冲的周期是1ms,即频率F0F_0F0​ 为1000Hz,产生的高频脉冲数M1M_1M1​为150个;编码器一圈的脉冲数C为20,则转速n=1000∗3/(150∗20)=1n=1000*3/(150*20)=1n=1000∗3/(150∗20)=1圈每秒。

由于M/T 法公式中的F0F_0F0​ 和C 是常数,所以转速n 就只受M0M_0M0​ 和M1M_1M1​ 的影响。

  • 高速时,M0M_0M0​ 增大,M1M_1M1​ 减小,相当于M 法
  • 低速时,M1M_1M1​ 增大,M0M_0M0​ 减小,相当于T 法。

编码器计数原理与电机测速原理——多图解析相关推荐

  1. STM32 CubeMax 编码器电机测速 原理与实现

    编码器电机测速 部分参考:https://blog.csdn.net/lzzzzzzm/article/details/119416134 其他参考部分见图片水印 1. 编码器种类及原理 常见的编码器 ...

  2. 07 TIM编码器和AB相电机测速

    AB相编码器 编码器分为光学和磁极. 编码器的性能指标单位:分辨率(转一圈输出多少个信号值) 精度390线的编码器:A相390个方波,B相390个方波.相位相差90°,实现4倍频,所以实现390*4= ...

  3. STM32应用(九)编码器及其测速原理、L298N电机驱动控制编码器电机

    文章目录 1.L298N电机驱动 1.1 产品参数 1.2 实物图和接线 2.编码器 2.1 编码器简介 2.2 常用编码器分类 2.3 霍尔编码器实物图接线!!!! 2.4 编码器倍频原理 3.控制 ...

  4. stm32编码器电机测速(hal库)

    记录一下今天参考别人的代码实现了四个电机的测速. 编码器被广泛应用于电机测速,实现电机闭环控制.所以不论是自己做小车还是后续参加各种比赛,必须要学会编码器测速. 一.参数 编码电机其实就是一个带有编码 ...

  5. 平衡小车—编码器使用教程与测速原理

    文章目录 1.编码器概述 2.编码器原理 3.编码器接线说明 4.编码器软件四倍频技术 5.单片机如何采集编码器数据 6.获取方式 来自平衡小车之家,与大家一起学习编码器使用与测速原理. 1.编码器概 ...

  6. 编码器测速原理与实现

    目录: 一.测速原理 二.CubeMX配置编码器模式 三.利用外部中断采集脉冲 一.测速原理 通常情况下编码器旋转一周会输出固定的脉冲数,即编码器的分辨率,通过测量固定时间T内编码器输出的脉冲数即可求 ...

  7. linux直流电机测试,带霍尔传感器编码器的直流减速电机测速原理讲解(附源码)...

    查看: 14294|回复: 83 带霍尔传感器编码器的直流减速电机测速原理讲解(附源码) 高级会员, 积分 891, 距离下一级还需 109 积分 积分金钱891 注册时间2019-4-22 在线时间 ...

  8. 【STM32】使用HAL库进行电机测速,原理、代码、滤波

    参考资料: https://blog.csdn.net/lzzzzzzm/article/details/119416134 野火STM32电机开发教程 1. 编码器种类及原理 常见的编码器有两种,分 ...

  9. 电机控制中的传感器与测速原理

    一.传感器与测速原理 在做电机控制中速度检测的是否准确是直接影响系统的控制精度的,目前测速有两种1:模拟测速(这里不做说明)2:数字测速----霍尔位置传感器和旋转编码器.这是大的分类.而霍尔传感器的 ...

  10. 智能小车运行及测速原理

    光电码盘测速原理 如何求解小车速度参数(大小与方向)? 测量速度方向的方法 根据A.B两相脉冲的超前滞后关系确定电机旋转方向: 假定A相超前于B相时,为电机正方向:则当A相滞后于B相,当前电机为反向旋 ...

最新文章

  1. ios 状态蓝颜色控制
  2. 网络中常见的互通与不通—Vecloud微云
  3. 使用ArcGIS JS API加载WMTS图层的两种方式
  4. 蓝桥杯第六届国赛JAVA真题----奇怪的数列
  5. Spark的分布式存储系统BlockManager全解析
  6. 如何高级地对抗恶意程序的糖衣炮弹?
  7. MyBatis返回结果不稳定
  8. Maven的安装和环境变量配置
  9. 简练网软考知识点整理-易混概念项目绩效评估与团队绩效评价
  10. 遥感影像人口数据、气象数据、社会统计数据、GDP空间分布数据
  11. google黑客常用搜索语句
  12. python 拉丁超立方抽样
  13. 【Vue工程】001-Vite 创建 Vue-TypeScript 项目
  14. 虚拟机与宿主机之间的网络共享问题
  15. 行为管理(锐捷睿易篇)
  16. C语言 共享内存实现进程间通信
  17. 【Rochester】MongoDB的基本语法和使用
  18. 伊朗加油站遭网络攻击致瘫痪、Babuk勒索软件源代码泄露|10月28日全球网络安全热点
  19. 在网页中打开pdf、word、excel文件
  20. Linux Weblogic 10.3.6安装和漏洞补丁过程

热门文章

  1. 何钦铭c语言程序设计第三版课本,C语言程序设计(第3版)
  2. Struts框架可以支持以下哪种程序开发语言?(选择1项)
  3. 通俗易懂讲PIC单片机:从一窍不通到入门进步
  4. 软件项目管理案例教程笔记
  5. windows 花式装系统
  6. linux内核源码各个目录
  7. vasp544编译安装
  8. 网络编程核心概念与模式
  9. Android摄影App,这20款摄影APP,让你的照片飞上天!
  10. 股票历史数据下载-A股所有股票的历史数据下载