绝对值编码器选型手册.pdf_23位编码器果真是提高伺服精度的一种手段吗?

昨天在「编码器的分辨率和精度是一回事吗」一文中,我们就国内某家伺服产品厂家在其宣传资料有关编码器分辨率与伺服定位精度的表述提出了一些疑问和看法,引发了圈内群众们小小的讨论。其中有留言提到“23 位高分辨率编码器是提高伺服精度的一种手段”。

那么,高分辨率编码器与伺服的定位精度究竟有着怎样的关系呢?23 位高分辨率编码器果真是提高伺服精度的一种手段吗?本期,咱们就来听听老友 @Q 的观点。

以下内容源自
上海精浦机电有限公司 裘奋

公众号“智造商”文章「编码器的分辨率和精度是一回事吗」,提到了国内某家伺服产品厂家在其宣传资料中有关编码器分辨率与伺服定位精度的一段表述(图一),引起了行业内的热烈议论。

图一:选自该伺服电机宣传 PDF 文件资料

文章中,以 23 位单圈编码器的每圈分割度 8388608P/R 不能代表“精度”提出了疑问。

确实,正如文后的留言评论中所说到的:“关于精度和分辨率,做编码器的内行人大多知道,那不是一回事。... 他只是表明提高分辨率是提高‘精度’的一种手段。”

看到这里,我也要凑个热闹了...

23 位高分辨率编码器,果真是提高伺服“精度”的一种手段吗?

1

伺服编码器的作用

伺服电机用编码器,通常用来实现三类功能。

即伺服控制任务中的位置环、速度环、电流环的闭环:

  • 位置环:对编码器精度的要求;

  • 速度环:编码器高分辨率和响应 ,速度计算采样周期越短,越能输出即时速度的反馈,但是必须在极短时间内有足够多的脉冲数采样获得,这就需要高分辨率;

  • 电流环:电机 UVW 相位变化,由编码器提供换相信号 ,绝对值位置;

  • 加速度环(电流调节环):编码器精度和输出高响应度、加速度与电流环对应;

  • 伺服定位位置闭环:适用于全闭环编码器和直驱编码器。

2

全闭环与半闭环

传动机械、误差延时与定位精度

一般来说,在旋转和直线伺服传动系统的控制回路中,使用编码器参与闭环反馈的方式主要有这样几种:

旋转运动:

直线运动:

在半闭环机械结构设计中,因为减速机机械误差相比较太大,因此定位精度往往主要并不是由伺服电机编码器的分辨率或精度决定的。

而从图一资料图片和介绍内容来看,显然这台伺服电机不是直驱电机。

那“定位精度”是由减速机机械误差决定的。或者说,就算是“高精度”,是角秒的单位,而不是“分辨率”,这么微小的角度量,不是被减速机的机械间隙误差吃了,也会被减速机运转起来后的温度提升,哪怕很小一点点,也会因为材料的热涨冷缩,把这个微小的角度“精度”给吃了。那 23 位编码器的“高精度”与伺服定位精度还有什么关系吗?

实际上伺服电机(执行器)的精度与定位控制准不准的关系如上图所示。

在半闭环上的编码器分辨率也好,是“高精度”也罢,中间经过了传动机械减速机和时间延时不确定性,如果没有全闭环编码器的支持,哪来的提高定位精度的一种手段?

那么,为什么日系欧系的伺服电机都在追求高位数分辨率编码器的目的何在?

3

速度环精度

说句坦白话,这家伺服电机宣传资料被批评的有点冤枉。那冤枉在哪里呢?原来是乌龙指,点错了。

高分辨率的编码器,原来是提供速度环的精度,或者加速度环的精度,而非定位精度。

我们从资料上看到,速度环的采样周期时间缩短了,而电流环(对应加速度)的采样周期时间更是大大缩短了(1.6 μs 微秒)。在越短的时间间隔采样,又想获得更多的脉冲采集数,以提高计算精度。

原来,23 位高分辨率的编码器,是为了提高速度环精度的。

但是,且慢高兴。

4

静态分辨率与响应度

目前的很多编码器的高分辨率,是通过细分 - 算法补偿获得。而细分 - 算法补偿又会带出另两个问题:

响应

细分和算法补偿,因算法需要的采集时间间隔、平均算法与计算时间,必然带来了响应度损失,以此获得的分辨率实际上是“静态分辨率”,是位置环静态、速度环采样补偿静态(匀速)的。可这是伺服电机啊,伺服电机有多大比率是用在静态的呢?

电子纹波扰动误差

细分会带来大约 1% 的电子纹波扰动误差(相当于 7 位),过高的细分看似提高了编码器分辨率,可以带来速度环的精度,但是在细分 7 位以后,因为电子纹波扰动与信号误差难以分离,又如何算法补偿呢?过高的细分后面的低位数早已失去了意义。

我尚不清楚这份资料里的 23 位编码器,其细分前原始的周期数是多少?

海德汉公司提供的几种位置检测器件的主要性能比较

周期性误差对控制性能的影响

信号误差会非常明显地降低驱动系统的速度稳定性以及带来噪音。速度控制器会根据误差曲线计算加速度,以此计算电流来增加或减低驱动系统的速度。当需要更精确的电流环控制(刚性),就需要加快电流环采样周期频率,因此有资料中的高响应 625KHz,1.6 μs 微秒采样时间间隔!而在这么短的时间内,编码器的响应与精度的影响度,已经高于编码器分辨率的影响度。滞后的反馈与角度错误的反馈,将引起电流环调节的波动,产生电流无功损耗 - 发烫。电机发烫后带来材料热胀冷缩系数的热胀,再次对机械精度产生副作用。一边是要求加速度环的高响应度,一边是要为了编码器的高分辨率而运用电子与算法手段,牺牲了响应度。

因此,23 位伺服编码器果真是提高伺服精度的一种手段吗?

最后,关于拿单圈绝对值编码器通过可以记忆 65536 圈,就不再是“绝对值编码器”了,仅仅是“多圈编码器” ,一种投机取巧的宣传手段罢了,我已批评过多次了。


元芳,你怎么看?

部分图片来自海德汉 HEIDENHAIN 编码器资料。

以上内容纯属作者本人观点,如有雷同,纯属巧合。

任何疑问,欢迎随时通过本公众号与我们联系。

进入公众号菜单,了解更多「伺服那点事儿」。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是一个小的8位灰色码头旋转位置传感器,提供128个独特的位置。它使用单个编码器轨道进行管理,其中8个触点间隔均匀。该“数字旋钮”编码器可用于控制您的arduino项目,它也可以用于寿命有限的运动控制系统。附件内容分享的代码是针对Arduino UNO R3开发的。它应该在任何Arduino上工作。该代码目前支持MCP23008,PCF8574和PCF8574A I2C扩展器。 128位高分辨率绝对编码器实物展示: 使用以下地址择这些 0x00 - 0x07 MCP23008地址0x20-0x27。(这与较早的库修订版向后兼容) 0x20 - 0x27 PCF8574 0x38 - 0x3F PCF8574A 请注意,MCP23008和PCF8574芯片使用相同的i2c地址范围。许多LCD背包也使用这些芯片之一。在同一总线上混合所有这些时要小心,以避免重复地址。为了进一步混淆事物,原始I2C地址具有作为读/写信号的最低位,因此一些文档(如某些PCF8574数据表)将参考0x40和0x70,0x20和0x38向左移位一位。 安装 封闭的示例草图ACE128test通过任意一个和I2C背包驱动2x16显示,或直接从Arduino驱动,具体取决于您是否注释了LCD_I2C宏。 公共方法 用法 请参见ACE128测试示例。 包括您需要的所有编码器映射(见下文),以匹配ACE单元的引脚序列。 使用ACE128构造函数声明所有ACE128对象。它需要I2C地址和指向编码器映射的指针。可的第三个整数可以取一个正整数来显示在eeprom中存储零信息的位置。允许三个字节。 从setup()调用每个ACE128对象的begin方法。这将使用eeprom设置或回退将当前位置设置为零。 pos()和upos()方法返回相对于逻辑零位置的位置,而不是由机械任意位置的编码器返回的零位置。当它滚动时,转动被存储以供mpos使用并保存在eeprom中 每循环一次(),调用pos(),upos()或mpos()并将值存储在一个变量中。访问i2c总线需要一些周期,所以每次要引用它时都不要调用pos()。 有三个设置功能 setZero() - 将当前位置设置为零(不更新多圈) setZero(int) - 将零点设置为给定的0-127数字 setMpos(int) - 将当前位置设置为此多圈值 编码器地图 该库带有各种编码器映射,可以在ACE和IO扩展器之间实现引脚的不同接线。这些由包含的make_encodermap示例草图生成。生成自定义编码器图: 编辑make_encodermap草图 更改pinOrder数组以匹配您的接线 更改pinString以匹配您的接线 将草图加载到Arduino 将串行监视器输出复制到ACE128文件夹中的新.h文件。 12345678用于“逆时针上升”接线,与数据表编号相匹配,建议进行面包板测试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值