驱动执行篇之电机编码器:编码器基础与双编码器方案

目录

|1.编码器概述

|2.编码器分类

|2.1.增量式编码器和绝对值编码器

|2.2.光电编码器

|3.双编码器方案

|3.1几种扭矩感知方案

|3.3双编码器安装方式


|1.编码器概述

图片

编码器

         编码器,是将信号(如比特流)或数据进行编制、转换为可用以通讯、传输和存储的信号形式的设备。当驱动器想要控制电机转动,则U、V、W三相电输出带动电机运转起来,要想使电机转到某个位置或角度,我们成这个位置为目标值,则电机转动过程中就需要知道电机此时转动了多少,在什么位置,否则电机只会一味地转下去。在这个过程中,编码器就充当了反馈的角色,通过编码划分转子旋转一圈的不同位置,再跟随转子转动,并实时将当前转子的位置反馈给驱动器,以便驱动器知道当前的位置是否以及达到目标值,一旦达到目标值,则控制U、V、W三相电的输出,使转子停在该位置保持不动,从而实现了任意位置或角度的控制。

        简单来说,编码器的作用就是在电机运行过程中,实时监测电流、转速、转轴的圆周方向相对位置等参数,确定电机本体及被拖动设备状态,进一步地实时控制电机和设备的运行状况,从而实现伺服、调速等许多特定功能。它将旋转部件位置、位移物理量转换成一串数字脉冲信号的旋转式传感器,这些脉冲信号被控制系统采集、处理,发出一系列指令,调整改变设备的运行状态。如果编码器与齿轮条或螺旋丝杠结合在一起,也可用于测量直线运动部件的位置、位移物理量。

|2.编码器分类

图片

        按码盘的刻孔方式划分,可分为增量式和绝对式型,其次,按机械结构划分,可分为旋转编码器和线性编码器,其中旋转编码器的应用最为广泛,也最为常见,用于测量机械设备角度和速度;线性编码器又可分为拉线编码器和支线编码器,多用于测量线性位移。旋转编码器基准光栅是一个刻度均匀的玻璃圆盘(码盘)把角位移转换成电信号,而线性编码器则是玻璃标尺(码尺),把直线位移转换成电信号。

|2.1.增量式编码器和绝对值编码器

        增量式编码器,是将位移转化为周期性的电信号,再把电信号转化为计数脉冲,用计数脉冲的个数来表示位移量。常见的增量式编码器为光电式,是直接利用光电转换原理输出三组方波脉冲A、B和Z相,A、B两组脉冲相位相差90°(或相互延迟1/4周期),根据延迟关系可以区别正反转,而且通过取A相、B相的上升和下降沿可以进行2或4倍频。Z相为单圈脉冲,即每圈发出一个脉冲,用于基准点定位。

图片

增量式角度数字编码器工作原理

        由于增量式编码是通过旋转方式用计数脉冲来表示位移量,在驱动器不断电的情况下,可以通过记录转过的脉冲数的方式,来记录位移的量,但是一旦驱动器断电了,除非电机保持不动,否则其位置无法与驱动器记录的位置的脉冲数相匹配,故一般情况下,驱动器上电后先要估测驱动器的角度和位置,然后等待首圈接收到Z脉冲信号,作为校准,以重新开始计数,这也是增量式编码器在一些场合使用时需要进行回原或开机找零点的原因。

        绝对值编码器,就是对应一圈,每个基准的角度发出一个唯一与该角度对应二进制的数值。在绝对值的编码器码盘上,有许多道光通道刻线,每道刻线以2线、4线、8线、16线等顺序依次排列,这样,在编码器的每一位置,通过读取每道刻线的亮、暗,获取一组以2为底的0到n-1次方二进制编码,且每个编码都是唯一的。我们常说的17位、23位绝对值编码器,就是指编码的n次方。

图片

绝对值编码器的码盘

        与增量式编码器不同,绝对式编码器不是输出脉冲,而是输出数字信号以指示编码器位置,并且每个数字信号都是唯一的,因此即使驱动器电源切除后位置信息也不会丢失,什么时候需要知道位置就什么时候去读取它的位置,重新启动后系统可立即恢复运动。

图片

绝对值编码器(左)与增量式编码器(右)码盘对比

        绝对值编码器,可以分为单圈绝对值编码器和多圈绝对值编码器。单圈绝对值编码器,是指以转动中测量光电码盘各道刻线,以获取唯一的编码,当转动超过360度时,编码又回到原点,这样就不符合绝对编码唯一的原则,这样的编码只能用于旋转范围360度以内的测量。

       多圈绝对值编码器,是指运用钟表齿轮机械的原理,当中心码盘旋转时,通过齿轮传动另一组码盘(或多组齿轮,多组码盘),在单圈编码的基础上再增加圈数的编码,以扩大编码器的测量范围,它同样是由机械位置确定编码,每个位置编码唯一不重复,而无需记忆。多圈编码器另一个优点是由于测量范围大,实际使用往往富余较多,这样在安装时不用费劲找零点, 将某一中间位置作为起始点就可以了,从而大大简化了安装调试的难度

|2.2.光电编码器

        按照编码器的工作原理划分,可分为光电式、磁电式和触点电刷式,其中以光电式和磁电式较为常见。

        就精度和分辨率而言,光电编码器通常具有更高的精度和分辨率。它们使用光学原理测量转动角度,因此能够提供更准确的位置反馈。相比之下,磁电编码器的精度和分辨率可能较低。这是因为磁电编码器依赖于磁场感应原理,受到磁场稳定性和磁传感器的影响。

        从环境适应性上看,光电编码器对光线和灰尘的敏感度较高,因此在恶劣的环境条件下可能受到影响。例如,光线强烈的工业环境或有大量灰尘和颗粒物的场所。相比之下,磁电编码器对光线和灰尘不敏感,能够在更恶劣的环境条件下工作。

        在抗干扰能力上,磁电编码器在抗干扰方面具有优势。由于其使用磁场感应原理,磁电编码器对于电磁干扰和震动较为抗性。这使得它们在需要高稳定性和可靠性的应用中更适用,例如工业机械和车辆控制。

        就成本来说,光电编码器通常比磁电编码器更昂贵。这是因为光电编码器使用了复杂的光学元件和高精度的制造工艺。相比之下,磁电编码器使用较简单的磁传感器和磁体,成本较低。

        这里简要介绍一下光电式编码器.

        光电编码器主要是由光栅盘(分度码盘)和光电检测装置(接收器)组成。光栅盘是在一定直径的圆板上等分地开通若干个长方形孔。由于光栅盘与电机同轴,电机旋转时,光栅盘与电机同速旋转,发光二极管垂直照射光栅盘,把光栅盘图像投射到由光敏元件构成的光电检测装置(接收器)上,光电检测装置能够将光信号转化为电气信号,使得光栅盘转动所产生的光变化经转换后以相应的脉冲信号的变化输出(码盘随电机同步转动,光源不动)

图片



光电编码器

|3.双编码器方案

|3.1几种扭矩感知方案

        足式机器人的力控是非常重要的一个环节,目前做力控的方案大致有三种:扭矩传感器方案(波士顿动力、GHOST为代表)、SEA方案(ANYmal)和电流环方案(宇树、云深处)。这几种方案如下:

  • 电流:通过电机线圈的电流估算外力,方便但精度低

  • 双编码器:加装高分辨率编码器以测量输出端位置变化计算扭矩,费用低,精度高

  • 扭矩传感器:在输出端加装扭矩传感器测量,费用高,算法难度高

  • 应变片:在谐波柔轮上装贴多组应变片以测量扭矩,结构极其复杂,标定难度高

        由于波士顿动力使用了大减速比的减速器,所以用电流环来做力控效果会很差,因此引入扭矩传感器来做闭环力控在性能上会有比较大的提升。

         UR机械臂在每个关节里都是采用单圈绝对值编码器多圈增量式编码器混合工作的方式。关于此双编码器的用途,UR官方没有说明,网上推测的用途包含两个:

a.绝对值型的用来找零点,增量式用来做控制增量式传感器作为电机速度环和位置环的关键传感器。绝对式传感器用于机械臂姿态控制,即机械臂绝对姿态反馈。

b.通过两个编码器的误差值可间接获取关节输出力矩,也即把双编码器当做关节力矩传感器来用。

|3.2双编码器特点

        双编码器方案中,一般使用的谐波减速比为几十至100左右的大速比。

        静态时:当输出侧受到外部扭矩,输出侧编码器2会测量到微小变化,而在大的减速比下,此时电机侧编码器1还未发现变化。通过比照则可得到人手在机械臂上的微小用力,从而反馈给驱动器,若用户打开了拖动示教则开始调节电机跟随受力,或没有,则转动电机补偿外部受力以保持输出位置恒定

        动态时:在得到电机侧编码器1的数据后,可根据计算得到输出轴的理论位置,然后与输出侧编码器2的数据进行对比,得到外部受力大小,从而交付驱动器进行后续控制。

        其优点在于动态时,相比电流、扭矩传感器、应变片等都是基于时间维度的变化量测量扭矩变化,双编码器则完全使用了基于空间维度的参照进行测量。由于机械臂一般臂展长,动态时重心、动量在不停变化,即前者测得的数据一直都是在波动变化的,而要在基于时间的波动变化曲线上找出曲线上的增减量来判断外力的大小,其精度远不比使用空间上比较得到的值更为精确。

|3.3双编码器安装方式

        双编码器安装方式:一个在电机侧,一个在输出侧,即经减速器输出后的一侧。

        电机侧编码器:主要用于电机的电流环与速度环为电机控制提供位置与速度反馈,需求响应快,精度高。其反馈的数据用于电机的PID、FOC控制,是电机转动性能的一个重要数据输入。其精度的选择,一定要与减速后输出侧的精度与应用相匹配。

        输出侧编码器:直接测量输出侧位置的变化,需要采用绝对值编码器,进行电机零位的预估,输出端绝对位置的记录,便于回零。需求精度与重复定位精度高。其用于直接测量输出侧位置的变化,通过上述算法对比电机侧编码器数据测量得到扭矩,其分辨率在算法中需匹配要测量的扭矩范围。

图片

双编码器安装位置

参考:

[1]协作机器人 双编码器执行器案例 - 知乎 (zhihu.com)

[2]协作机器人的双编码器使用探讨-中国传动网 (chuandong.com)

[3]足式机器人方案整理1----波士顿动力 - 知乎 (zhihu.com)

[4]几种不同电机编码器的介绍_电机_编码器_中国工控网 (gongkong.com)

[5]伺服电机编码器用磁电和光电哪个好-★威海艾迪科电子★ (adkiot.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/825088.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ECA-Net:深度卷积神经网络中的高效通道注意力机制【原理讲解及代码!!!】

ECA-Net:深度卷积神经网络中的高效通道注意力机制 在深度学习领域,特别是在深度卷积神经网络(DCNN)中,注意力机制已经成为提升模型性能的关键技术之一。其中,ECA模块(Efficient Channel Attent…

C# 中优雅的动态序列化接口返回数据

在C#中,与Web服务的交互经常涉及到数据的序列化和反序列化。当我们与不同的API接口交互时,返回的数据结构和类型可能会有所不同。为了处理这种多样性,我们需要一种方法来动态地序列化接口返回的数据。 本文将介绍如何使用C#中的Json.NET&…

前端项目的导入和启动

安装依赖 前端安装依赖只需要在控制台执行“npm i”即可。Tips:当我们执行的时候,有时候会很慢。可以考虑使用yarn或者pnpm。然而使用yarn或者pnpm有时候有一些莫名其妙的问题。所以还是得使用npm, 这个时候可以通过更换镜像源为淘宝镜像源。…

【C++】容器:vector的接口介绍大全

vector的接口介绍大全 一、vector的接口介绍二、常用接口的使用1. 定义vector2. vector赋值操作3. 迭代器4. 容量操作resizereserve 5. 访问元素[] front back at 6. 修改容器assignpush_back pop_backinserteraseclear 7. 容器的其他操作swap vector 是 C 标准模板库&#xff…

B2134 质数的和与积

题目描述: 两个质数的和是 S,它们的积最大是多少? 代码: package lanqiao;import java.math.BigInteger; import java.util.*;public class Main {public static int[] prime new int[10000];public static void main(String[] args) {Scanner sc n…

淘宝商家号码采集软件教程步骤

淘宝商家号码采集工具的原理可以通过以下几个步骤来解释: 搜索关键词:工具首先通过用户输入的关键词,在淘宝平台上进行搜索。关键词可以是商品类别、商家名称等。 解析网页:工具通过网络请求获取淘宝搜索结果页面的源码&#xff…

vue3+ts实现表格单元格编辑功能

使用 el-table-plus 中的 el-switch 组件来控制表格的可编辑状态,并且使用 el-table-plus 组件显示表格。通过 :edit-table 属性来控制表格是否可编辑,而 :edit-config 属性用来配置编辑时的样式和允许编辑的列。当 switch 组件的状态发生改变时&#xf…

Python 学习笔记(十)—— 文件

目录 一、文件基本概念 二、文件打开和关闭 2.1 打开文件 open() 方法 2.2 File 对象的属性 2.3 关闭文件 close() 方法 三、文件操作 3.1 写入操作方法 3.1.1 write() 方法 3.3.2 writelines() 方法 3.2 读取操作方法 3.2.1 read() 方法 3.2.2 readline() 方法 3…

Docker Mysql 5.7搭建主从复制 CentOS7

文章目录 一、 环境介绍:二、 搭建步骤:1、容器启动2、master配置3、slave配置4、主从配置1、master配置2、slave配置 一、 环境介绍: 系统: CentOS7 mysql:5.7 docker:25.0.0.0 二、 搭建步骤&#xff1…

flex上下固定中间占固定高度(中间左右菜单)且内容自动滚动

效果图 布局&#xff1a; <view class"pop_tSet"><view class"pop_Con"><view class"box_bb"><view class"bb_title">{{titleObj[popType]}}</view></view><view class"box_bb_bot"…

程序安装 - 笔记

1 程序IOServer,依赖自己开发libs7.so.如何安装程序 要安装依赖于自己开发的 libs7.so 的程序 IOServer,你需要执行以下步骤: 编译 IOServer 程序:确保 IOServer 程序的源代码处于可用状态,并且已经编译成可执行文件。这可能需要执行诸如 make 或者其他编译命令,具体取决…

The Sandbox 推出全新后室模板!

我们非常高兴地向你介绍游戏制作器的另一个新成员&#xff1a; 后室模板&#xff01; 步入神秘而不自然的空旷空间&#xff0c;感觉有些......不对劲。准备好探索、创造和拥抱引人入胜的后室世界吧。 什么是后室&#xff08;Backroom&#xff09;游戏&#xff1f; 早在 2019 年…

ChatGPT之道:巧用写作技巧

ChatGPT无限次数:点击直达 ChatGPT之道&#xff1a;巧用写作技巧 在当今快节奏的社会中&#xff0c;写作是一项非常重要的技能&#xff0c;不仅可以帮助我们有效表达思想&#xff0c;还可以提升个人能力和吸引力。而借助人工智能技术&#xff0c;如OpenAI推出的ChatGPT&#x…

获取公募基金持仓【数据分析系列博文】

摘要 从指定网址获取公募基金持仓数据&#xff0c;快速解析并存储数据。 &#xff08;该博文针对自由学习者获取数据&#xff1b;而在投顾、基金、证券等公司&#xff0c;通常有Wind、聚源、通联等厂商采购的数据&#xff09; 1. 导入必要的库&#xff1a; pandas 用于数据处理…

本地存储、自定义事件、全局事件总线

Vue 1.1 浏览器的本地存储 存储内容大小一般支持5MB左右&#xff08;不同浏览器可能还不一样&#xff09; 浏览器通过 Window.sessionStorage 和 Window.localStorage 属性来实现本地存储机制 相关API: &#xff08;1&#xff09;xxxxStorage.setItem(key, value); 该方法接受一…

Java中类装载的执行过程

类装载的执行过程 类从加载到虚拟机中开始&#xff0c;直到卸载为止&#xff0c;它的整个生命周期包括了&#xff1a;加载、验证、准备、解析、初始化、使用和卸载这7个阶段。其中&#xff0c;验证、准备和解析这三个部分统称为连接&#xff08;linking&#xff09;。 1.加载 …

第一天学C++(C++入门)

一、HelloWorld &#xff08;第一个C入门程序&#xff09; 1.1代码 #include<iostream> using namespace std; // 1.单行注释// 2. 多行注释 /* main 是一个程序的入口 每个程序都必须有这么一个函数 有且仅有一个 */ int main() {// 第九行代码的含义就是在屏幕中输出…

果园系统养殖游戏喂养偷菜种植浇水养成小程序

装扮 通过购买装扮场景切换不同的农场风格 土地升级 通过特定的材料对土地和房屋进行升级 日志 记录道具的使用数量及金币农作物的收入情况 幸运转盘 可用金币进行抽奖 宝箱开启 获得宝箱后可以通过金币开启 每日签到 每日签到获得奖励 系统公告 可以第一时间知道游戏的更新和…

【安全】查杀linux挖矿病毒 kswapd0

中毒现象 高cpu占用&#xff0c;使用top命令查看cpu使用率长时间50%以上&#xff0c;cpu占用异常的进程八成就是挖矿病毒进程 此病毒隐藏了自己&#xff0c;top命令无法查看到挖矿病毒进程&#xff0c;可通过sysdig命令找到隐藏进程 安装sysdig curl -s https://s3.amazonaw…

2024年软件开发行业的薪资水平在下滑的原因?

下降的原因主要包括&#xff1a; 科技行业竞争加剧&#xff1a;随着科技行业竞争的加剧&#xff0c;企业为了压缩成本&#xff0c;开始降低程序员的薪资水平。 人才供应过剩&#xff1a;在计算机成为热门学科的同时&#xff0c;社会上出现了对IT业泡沫和虚假繁荣的质疑。大量…