bigallium 发表于 2011-12-28 23:30:02

问一个关于编码器制造精度的问题

是这样,俺们现在手上有个5000线的CMC的编码器,安在冯哈勃3557电机屁股上,驱动个转台转动。
现在要控制转台调速,转台转速要在300度/s到1度/s之间,换算到电机码盘上就相当于 493.33脉冲/毫秒 到 1.644脉冲/毫秒
现在就有个问题,电机我是PID控制,控制频率1kHz,那么该用什么测速方法?

开始想用的是M法,就是数这一毫秒内走过多少脉冲。这个办法缺陷就是精度不高,转速分辨率在最高转速时仅为0.2%,而转台需要0.01度/秒的转速精度。当然也可以延长采样时间,比如算过去10ms内走过多少脉冲,而这样有个缺点就是速度反馈滞后了,容易振荡,调整时间增长,抗时变摩擦转矩干扰的能力也下降了。特别是1度/秒的时候,大概要100ms的采样时间才能达到足够的分辨率,这实在太蛋疼了...

另一个办法就是T法,比如说1度/秒的时候,就测等一个脉冲到来花了了多少个机器周期,300度/秒就测等300个脉冲到来花了多长时间。用STM32捕获比较中断来测可以达到非常高的计时精度,转速精确到实际转速的万分之一没有问题。然而这么高精度的测速是建立在 码盘每条间隙都是理想等间隔分布 和 AB两组光电对管感光阀值完全相同 的基础上。而实际上码盘间隔肯定不会是理想的,光电对管感光阀值肯定也会不同。所以这么测速也有缺陷。

于是我想问问,5000线的码盘,4倍频,每个脉冲间隔的实际转角精度大概能有多少呢? 千分之一能达到么?

先感谢大家能耐心看完这么冗长的问题...

gallop020142 发表于 2011-12-28 23:48:47

楼主是不是多写了一个0啊,500线的编码器吧?这样一个count对应电机的 360/(500*4)°,再乘以减速比

bigallium 发表于 2011-12-28 23:52:32

回复【1楼】gallop020142
-----------------------------------------------------------------------

的确是5000线的码盘,CMC的,二手货,差分信号输出

shihantu2 发表于 2011-12-29 01:41:06

两种都算,然后根据转速给权值。
一般码盘会给一个相位误差值,国产的一般标5%,光学元件是国外的,盘片是国内的。CMC不清楚。

ibmx311 发表于 2011-12-29 05:06:22

40000线以下国内没有技术门槛,10000线的我常用.很好用可以转到6000转,4倍频后4M脉冲/秒很匀很没有鸭梨.
高分辨率的安装是最大问题,要严格同轴,尽量不要用空心的,要用实心的要用大的,要用波纹连轴器......

yuyanlzh 发表于 2011-12-29 07:12:15

4M的脉冲。。。

bigallium 发表于 2011-12-29 12:05:35

回复【3楼】shihantu2
-----------------------------------------------------------------------

回复【4楼】ibmx311
-----------------------------------------------------------------------

啊看来T法测转速果然是会受到编码器本身的限制
我用的就是空心的,而且安上去不太同轴...看来微微有些悲剧啊...
编码器是下面这个,很久以前从淘宝上买的电机上拆下的,下面是店家的图
http://cache.amobbs.com/bbs_upload782111/files_49/ourdev_708656W76SET.jpg
(原文件名:T2xqRZXXJbXXXXXXXX_!!638868407.jpg)

http://cache.amobbs.com/bbs_upload782111/files_49/ourdev_708657GSTYG8.jpg
(原文件名:T24WVZXk4aXXXXXXXX_!!638868407.jpg)

holts 发表于 2011-12-29 12:59:32

这个电机转速可以到多不 ? 钮力如何? 可以用来做雕刻机主轴电机吗 ?

motion_ctrl 发表于 2011-12-29 22:16:54

测量A或B相一个脉冲高低电平的总时间,这个误差通常1%,若高电平或低电平的时间误差大约5-10%,这个速度建议用FPGA或CPLD计数了。

ibmx311 发表于 2011-12-29 22:37:57

回复【6楼】bigallium 10班陈大葱22号
回复【3楼】shihantu2   
-----------------------------------------------------------------------
回复【4楼】ibmx311   
-----------------------------------------------------------------------
啊看来t法测转速果然是会受到编码器本身的限制
我用的就是空心的,而且安上去不太同轴...看来微微有些悲剧啊...
编码器是下面这个,很久以前从淘宝上买的电机上拆下的,下面是店家的图


(原文件名:t2xqrzxxjbxxxxxxxx_!!638868407.jpg)
<center><a class=tt16 onclick="fn......
-----------------------------------------------------------------------

嗯,这种编码器我也试过,淘宝上有二手的,AB相相位不匀,不好用.
超过200k脉冲/秒必须用fpga才可以来得及,因为有低转速的情况所以要有软件滤波.
另外,编码器输出的阻抗要匹配,我是先经过匹配再经过lvc4245转到3.3V的系统里,这一级必不可少.

目前国产编码器的精度已经不成问题,最大的问题是抗干扰能力,我用过一种国产的,电机没动自己就发脉冲,当时都要崩溃了.
另外,编码器的电缆十分关键,屏蔽层不好的话,电磁环境不好的场合很不好很易被干扰,所以还要加一条金属软管才行.

如果钱不是问题,日本的编码器确实比国产的稳定多了.

如果把编码器装载电机尾部,必须要良好磁屏蔽,不然也会有问题.
总之高精度的编码器要折腾几次,要想不折腾,尽量用进口的,没有多花钱的不是.

bigallium 发表于 2011-12-30 00:10:12

搜到一篇产品手册...看来不容乐观啊:

增量编码器的精度
实心轴编码器有三种定义精度的形式,每一种都是以脉宽的a%来表示,
脉宽由一个周期内的信号的通和断组成。
分割误差(信号位置误差)定义:任意一相的脉冲边缘和准确几何位置
之间的偏差,标准值是最大 12%。
波形比:描述了一个脉宽内,波形的通断比例的偏移,每个编码器都给
出了标准精度值最大 ±7%
相位差:描述了两个相位边缘之间的精度,每个编码器都给出了标准精
度值,最大是脉宽的 7.5%

bigallium 发表于 2011-12-30 00:33:07

to 9楼:
噢?编码器也需要阻抗匹配?该怎么做呢?对地加个电阻就可以了么?
现在用的这个曾经装上步进电机跑到四千转,用逻辑分析仪记录AB相输出,感觉挺均匀没丢脉冲

ibmx311 发表于 2011-12-30 08:46:49

回复【11楼】bigallium 10班陈大葱22号
to 9楼:
噢?编码器也需要阻抗匹配?该怎么做呢?对地加个电阻就可以了么?
现在用的这个曾经装上步进电机跑到四千转,用逻辑分析仪记录ab相输出,感觉挺均匀没丢脉冲
-----------------------------------------------------------------------

至少要串上400-1000欧电阻

qbasic 发表于 2011-12-31 07:11:20

回复【4楼】ibmx311
40000线以下国内没有技术门槛,10000线的我常用.很好用可以转到6000转,4倍频后4m脉冲/秒很匀很没有鸭梨.
高分辨率的安装是最大问题,要严格同轴,尽量不要用空心的,要用实心的要用大的,要用波纹连轴器......
-----------------------------------------------------------------------

ibmx311请留个联系方式,有问题请教!

ibmx311 发表于 2011-12-31 09:26:28

回复【13楼】qbasic
-----------------------------------------------------------------------

你好,已回复到您新浪博客

bulejeans 发表于 2011-12-31 09:58:05

看了还不是很明确lz的问题是什么,是编码器信号采集处理还是电机驱动?这么高的线数,用cpld做比较合适,在AB信号沿同时判断AB信号的高低;另外无论什么电机连上编码器都是有抖动的,范围几个到几十脉冲,看驱动性能了,这个要根据应用来适当处理

bigallium 发表于 2012-1-1 01:44:13

回复【12楼】ibmx311
-----------------------------------------------------------------------

啊了解,谢谢!!

millwood0 发表于 2012-1-1 04:27:12

"然而这么高精度的测速是建立在 码盘每条间隙都是理想等间隔分布 和 AB两组光电对管感光阀值完全相同 的基础上。"

use exponential smoothing.

say that your cycle time is T (in ticks, covering a given number of pulses)

Tavg(t) = alpha * Tavg(t-1) + (1-alpha)*T;

pick alpha to determine the memory of the smoothing.
页: [1]
查看完整版本: 问一个关于编码器制造精度的问题