发一个新帖,谈谈运动控制中编码器定位精度的问题。 点击:16104 | 回复:200



通讯网-原创军团

    
  • 精华:11帖
  • 求助:1帖
  • 帖子:432帖 | 10265回
  • 年度积分:0
  • 历史总积分:24711
  • 注册:2004年7月09日
发表于:2012-12-27 21:49:55
楼主

发一个新帖,谈谈运动控制中编码器定位精度的问题。

   以前帖子里谈了一些,想一想,又到过节了,可以把这个东西作为新题目单独提出来讲一讲。。。如图。。。。运动控制,都需要把给定值与编码器反馈值求差,然后根据误差大小,反过来调整电机,使之到达准确位置。。。

 




刘志斌

  • 精华:5帖
  • 求助:0帖
  • 帖子:348帖 | 35827回
  • 年度积分:0
  • 历史总积分:75384
  • 注册:2006年7月30日
发表于:2012-12-30 13:45:02
61楼
14、其实这是个最最基础的、没有一点文化的人都知道的测量方法,不信,你那一把尺子,量一段长度,你量到最后的那一小段时,才采用最小的度量单位!

通讯网-原创军团

  • 精华:11帖
  • 求助:1帖
  • 帖子:432帖 | 10265回
  • 年度积分:0
  • 历史总积分:24711
  • 注册:2004年7月09日
发表于:2012-12-30 13:45:22
62楼
回复内容:
对:刘志斌关于12,、有人会说,那还需要两个编码器吗?当然不是,所有高解析度编码器都会有低解析度脉冲数输出;13、我们只是在伺服运行的最后1圈的最后几个脉冲,启用高解析度脉冲数输出!内容的回复:


是的。。。。对于定位控制来说,是这样的。就像导弹,初始飞行阶段,是粗调,按照设定曲线运行,误差大一点。问题不大,只是到了末端才细分一下,。对于速度跟踪,不完全是这样。。。

刘志斌

  • 精华:5帖
  • 求助:0帖
  • 帖子:348帖 | 35827回
  • 年度积分:0
  • 历史总积分:75384
  • 注册:2006年7月30日
发表于:2012-12-30 13:49:35
63楼

15、就是这个图的停机前的几个脉冲,才需要高解析度编码器!

刘志斌

  • 精华:5帖
  • 求助:0帖
  • 帖子:348帖 | 35827回
  • 年度积分:0
  • 历史总积分:75384
  • 注册:2006年7月30日
发表于:2012-12-30 13:52:24
64楼
同志们,我们庆贺一下吧!创举就是这么来至不经意的瞬间!!!

刘志斌

  • 精华:5帖
  • 求助:0帖
  • 帖子:348帖 | 35827回
  • 年度积分:0
  • 历史总积分:75384
  • 注册:2006年7月30日
发表于:2012-12-30 16:12:29
65楼

原理就这样,具体编码器计数的方法、做法不说了,觉得全说了不一定好,需要的和我联系!

ShowMotion

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 459回
  • 年度积分:0
  • 历史总积分:1711
  • 注册:2005年5月14日
发表于:2012-12-30 17:45:26
66楼

我感觉原文意思是否是对360度圆周的归一化处理,认为是对脉冲的分配是曲解

我基本同意征的观点

刘志斌

  • 精华:5帖
  • 求助:0帖
  • 帖子:348帖 | 35827回
  • 年度积分:0
  • 历史总积分:75384
  • 注册:2006年7月30日
发表于:2012-12-30 18:07:48
67楼

引用 ShowMotion 的回复内容:我感觉原文意思是否是对360度圆周的归一化处理,认为是对脉冲的分配是曲解我基本同意征的观点


1、ShowMotion 所谓“360度圆周的归一化处理”,是错误的,不存在归一化处理的问题;

2、ShowMotion 所谓“编码器的归一化处理确实提高了系统对编码器的兼容性,国内很多厂家已经实现了楼主的想法。”也是错误的,编码器的兼容性不需要归一化!

刘志斌

  • 精华:5帖
  • 求助:0帖
  • 帖子:348帖 | 35827回
  • 年度积分:0
  • 历史总积分:75384
  • 注册:2006年7月30日
发表于:2012-12-30 18:09:43
68楼
3、“65536”只是一种选择!

通讯网-原创军团

  • 精华:11帖
  • 求助:1帖
  • 帖子:432帖 | 10265回
  • 年度积分:0
  • 历史总积分:24711
  • 注册:2004年7月09日
发表于:2012-12-30 19:07:29
69楼
引用 刘志斌 的回复内容: 引用 ShowMotion 的回复内容:我感觉原文意思是否是对360度圆周的归一化处理,认为是对脉冲的分配是曲解我基本同意征的观点1、ShowMotion 所谓“360度圆周的归一化处理”,是错误的,不存在归一化处理的问题;2、ShowMotion 所谓“编码器的归一化处理确实提高了系统对编码器的兼容性,国内很多厂家已经实现了楼主的想法。”也是错误的,编码器的兼容性不需要归一化!


这不是我的想法,而是我在工作中看到的一家产品,我觉得这种定义方式很好,可以涵盖所有的绝对式和增量式光电,和电磁感应式,以及sincos所有的类型编码器,且分辨率,精度等问题也足够。。我估计别的厂家也是如此处理,我觉得这个应该是个标准。也确实征同学举了同样的例子,其实没什么好争的,观点是一致的,呵呵,只是一些小的失误,大方向没有错,呵呵。。这种设计,编码器设计和控制系统设计可以分开,只要编码器分辨率足够,控制系统的精度也就提高。。。。这是很实用的方法。。。

 

通讯网-原创军团

  • 精华:11帖
  • 求助:1帖
  • 帖子:432帖 | 10265回
  • 年度积分:0
  • 历史总积分:24711
  • 注册:2004年7月09日
发表于:2012-12-30 19:22:42
70楼

征同学说的,跟我说的是一个意思,,,只是稍微有些小问题。。。咱们用9位的编码器。。转一圈分成九份。。。就不四倍频了。。。这样好处理些。。。

咱也别65536了。。咱就两位  FFH。。。。256,分成九分,咱四舍五入,并且变成十六进制。。256/9=28.444  取整 28   16进制1CH, 

        第二256*2/9= 56.88  取整  57    16进制  39H 

  依此类推:分别是: 55H,72H,8EH,ABH,C7H,E4H

 

1CH, 39H, 55H, 72H, 8EH, ABH, C7H, E4H, 00H        实际9,一个字节  FH  就可以涵盖,  所以,跟多位的类似,前一byte位(或者前4bit),叫做粗位,后一byte(或者后4bit)叫做精位。。。吧。。

   实际间隔肯定是有误差,第一间隔 39H-1CH=1DH,第二间隔:55H-39H=1CH,

依此类推:1DH,1CH,1DH,1CH,1DH,1CH,1CH.....    


   间隔并不完全相等。。4个1DH,5个1CH。。但总数加起来必须是100H....


当然,如果选用16位编码器,那么就是 10H,20H,30H,40H,50H,....F0H,00H..粗位有值,精位全是零。。

 这样解释对吧??征同学??呵呵。。这样就回答了你累计误差的问题了吧?。。位数再多,也是如此。。。呵呵。

ShowMotion

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 459回
  • 年度积分:0
  • 历史总积分:1711
  • 注册:2005年5月14日
发表于:2012-12-30 19:44:45
71楼

归一化涉及:编码器精度,极对数,零位偏移,电零空间扇区,电机惯量,阻感电气常数,额定电流,额定转速,压感系数,。。。来了电机就能自动标定,形成归一化参数,国内主流厂商已经实现了这个功能,包括编码器精度的归一化。

  • 精华:2帖
  • 求助:0帖
  • 帖子:10帖 | 2393回
  • 年度积分:1
  • 历史总积分:5804
  • 注册:2006年1月06日
发表于:2012-12-30 19:45:23
72楼

引用 通讯网-原创军团 的回复内容:引用 征 的回复内容: 引用 通讯网-原创军团 的回复内容:回复内容:对:征关于 引用 通讯网-原创军团 的回复内容:回复内容:对:征关于 回复内容:(省略)              内容的回复: 你看,还是你看错了。。。你看你的图,signal pe(内容省略) 内容的回复:我这里错了。。。。我原来说31,30,29。。。说n=29是错的。。。我是按16进制。。。应该是31----20。。。应该n=20。。你的是二进制表示的。。 FFF0H--0000H    = 1111 1111 1111 0000B--0000 0000 0000 0000B蓝色1位置是n  31,30,29,28    27,26,25,24   23,22,21,20呵呵.....n= 20? 看看那个图,继续研究吧! 看明白了,你的图里面,4096已经算是细分了,1024是粗位,后面,21,20算细分位。在你的里面把21位以后算细分了。CT中所有的4096都算粗位。说法不同。。。但结果是一样。。无所谓了。。使用起来是一样的。。


呵呵,你还是没看懂!

“1024是粗位,后面,21,20算细分位。在你的里面把21位以后算细分了”

 

要看懂的话就应该知道在1024线的光电编码器下,n=2

只要是AB互差90度的光电编码器就只能4倍频,即n =2, 与光电编码器有多少线没有一点关系!

32位的计数器值是由光电编码器的AB信号经硬件四倍频后的输出脉冲 输入到计数器中自动累加得到的, 与编码器原始信号的数值没有直接的联系!

 

还是费点功夫简单讲解一下, 以光电编码器为例:

1) 左侧的 1 2 图

    表示的1 signal period , 表示的是光电编码器的一线输出的AB信号。光电编码器有多少线, 其旋转一周就输出多少个这样的脉冲。这个信号是随着电机转动连续输出的,在一个时刻看AB波形,你不知道电机转在哪个位置上, 只有AB信号的电平情况。

2)multiplication by hardware

    图中的x2n, 实际上是错的, 应该是x 2^n, 这属于手册的编写错误

    表示的是硬件对AB信号进行倍频, 即细分。对光电编码器就是4倍频, 即n = 2。

    光电编码器的AB一个周期即1 signal period 经硬件4倍频后得到4个脉冲,四倍频就是对AB脉冲进行边沿检测。

3)中间的1 2

    表示1 signal period 四倍频后得到的信号

4)Free-running position counter

    表示的是位置计数器

    这个位置计数器是由硬件来实现的, 由硬件根据3)中的脉冲序列来进行加减计数的。

 

    计数方向即 加计数或减计数是由 AB信号的先后顺序决定的。不清楚的可以去百度搜搜, 就清楚了

 

5) P0410.1

        是配置参数, 是否需要对计数器进行取负, 载调试时根据需要选择是否启用。

6) 最右侧32位的计数值部分

        4)中的计数器对4倍频后的脉冲计数,一个脉冲一个脉冲进行记录,

    Fine resolution 部分: 对4倍频的光电编码器而言,这个位域占用两位

    

    实际的计数过程如下:

        电机转动时,1)中的信号高低高低的连续变化, 经2)硬件4倍频后, 得到一系列的边沿检测后输出(即硬件4倍频)的脉冲信号3),这些脉冲由4)的计数器自动从最低位加减计数。最后得到一个计数值。

    如果对这个计数值分析, 低2位表示细分的信号, 2~31位表示的编码器的原始信号。

    

    但请注意一点, 2~31的数值是由计数器对倍频的信号自动累加得来的,这一部分表示电机转过的线数。

 

    对1024线编码器, 计数范围最大为 2^30/1024 = 1048576 圈,如果电机以3000rpm转动, 保证电机转动1048576/3000 = 349.52533333333333333333333333333 分钟, 即大于这么长的时间后计数器翻转, 自动从0开始计数

    在位置控制时, 需要的是这个32位计数器的整体数值,不会区分那一部分。

        

    以上是对我提供的图的简要分析, 或者是一个我说明!

 

    可能跟CT的不太一样,但是最终都是对倍频的信号计数,所以有些说法在我理解来或者看来是实在不靠谱了!

 

    既然本帖已经“授精”, 所以我要对我提供的数据、图形等做一个简要的说明, 尽量提供一种准确、可靠、负责的说法给每个看帖子的人, 不管懂还是不懂!

 

    实际上,对我来说,解释这些基本的东西我感觉很累,我也觉得没有必要!

    但出于慎重考虑,我还是尽量去做了!

 

    这是我对这个帖子的最后回帖!

    不存在非要争论出谁对谁错的想法, 只求尽量正确、符合事实!

    各位包涵!

 

 

 

通讯网-原创军团

  • 精华:11帖
  • 求助:1帖
  • 帖子:432帖 | 10265回
  • 年度积分:0
  • 历史总积分:24711
  • 注册:2004年7月09日
发表于:2012-12-30 19:55:54
73楼
我上面写了。。以9位编码器为例。。。。是这么回事吧??、呵呵。。。其实我们的意思是一样的。。。呵呵。。。没必要讨论了。。。。呵呵

通讯网-原创军团

  • 精华:11帖
  • 求助:1帖
  • 帖子:432帖 | 10265回
  • 年度积分:0
  • 历史总积分:24711
  • 注册:2004年7月09日
发表于:2012-12-30 20:34:54
74楼

征同学说的,跟我说的是一个意思,,,只是稍微有些小问题。。。咱们用9位的编码器。。转一圈分成九份。。。就不四倍频了。。。这样好处理些。。。

咱也别65536了。。咱就两位  FFH。。。。256,分成九分,咱四舍五入,并且变成十六进制。。256/9=28.444  取整 28   16进制1CH, 

        第二256*2/9= 56.88  取整  57    16进制  39H 

  依此类推:分别是: 55H,72H,8EH,ABH,C7H,E4H

 

1CH, 39H, 55H, 72H, 8EH, ABH, C7H, E4H, 00H        实际9,一个字节  FH  就可以涵盖,  所以,跟多位的类似,前一byte位(或者前4bit),叫做粗位,后一byte(或者后4bit)叫做精位。。。吧。。

   实际间隔肯定是有误差,第一间隔 39H-1CH=1DH,第二间隔:55H-39H=1CH,

依此类推:1DH,1CH,1DH,1CH,1DH,1CH,1CH.....    


   间隔并不完全相等。。4个1DH,5个1CH。。但总数加起来必须是100H....


当然,如果选用16位编码器,那么就是 10H,20H,30H,40H,50H,....F0H,00H..粗位有值,精位全是零。。

 这样解释对吧??征同学??呵呵。。这样就回答了你累计误差的问题了吧?。。位数再多,也是如此。。。呵呵。这有什么好争的呢???呵呵。。

例如,过一个脉冲,应该跳到28.44444444444444,但实际就跳到28.。。就是这样,尾数忽略了。。。再一个脉冲应该跳到56.888888888,但实际跳到57.。。。。。。比实际位置稍过些。。。。。就是如此了。。

luedong

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 607回
  • 年度积分:0
  • 历史总积分:1203
  • 注册:2011年5月26日
发表于:2012-12-30 20:58:12
75楼

引用 通讯网-原创军团 的回复内容:征同学说的,跟我说的是一个意思,,,只是稍微有些小问题。。。咱们用9位的编码器。。转一圈分成九份。。。就不四倍频了。。。这样好处理些。。。咱也别65536了。。咱就两位  FFH。。。。256,分成九分,咱四舍五入,并且变成十六进制。。256/9=28.444  取整 28   16进制1CH,         第二256*2/9= 56.88  取整  57    16进制  39H   依此类推:分别是: 55H,72H,8EH,ABH,C7H,E4H 1CH, 39H, 55H, 72H, 8EH, ABH, C7H, E4H, 00H        实际9,一个字节  FH  就可以涵盖,  所以,跟多位的类似,前一byte位(或者前4bit),叫做粗位,后一byte位(或者后4bit)叫做精位。。。吧。。   实际间隔肯定是有误差,第一间隔 39H-1CH=1DH,第二间隔:55H-39H=1CH,依此类推:1DH,1CH,1DH,1CH,1DH,1CH,1CH.....       间隔并不完全相等。。4个1DH,5个1CH。。但总数加起来必须是100H....当然,如果选用16位编码器,那么就是 10H,20H,30H,40H,50H,....F0H,00H..粗位有值,精位全是零。。 这样解释对吧??征同学??呵呵。。这样就回答了你累计误差的问题了吧?。。位数再多,也是如此。。。呵呵。这有什么好争的呢???呵呵。。例如,过一个脉冲,应该跳到28.44444444444444,但实际就跳到28.。。就是这样,尾数忽略了。。。再一个脉冲应该跳到56.888888888,但实际跳到57.。。。。。。比实际位置稍过些。。。。。就是如此了。。



编码器好不容易把刻线给你做的那么准确, 这样处理会不会丧失精度?

我记得笨鸟先飞有个帖子讲这个精度的, 请笨鸟先飞来看看!!

少林寺--无魂

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 51回
  • 年度积分:0
  • 历史总积分:357
  • 注册:2012年8月09日
发表于:2012-12-30 21:02:16
76楼
引用 zhxl198808——工控人生 的回复内容:支持,占楼学习!!!!!!!!



刘志斌

  • 精华:5帖
  • 求助:0帖
  • 帖子:348帖 | 35827回
  • 年度积分:0
  • 历史总积分:75384
  • 注册:2006年7月30日
发表于:2012-12-30 21:08:52
77楼

引用 征 的回复内容:

……

6) 最右侧32位的计数值部分        

4)中的计数器对4倍频后的脉冲计数,一个脉冲一个脉冲进行记录,    Fine resolution 部分: 对4倍频的光电编码器而言,这个位域占用两位 ……


1、发言前,先对征的负责态度表示敬意;

2、但是有不同意见还是要说的,这也是敬意;

3、“Fine resolution 部分: 对4倍频的光电编码器而言,这个位域占用两位”,两位的说法错误,应该是多位 n-1、n-2、n-3、…、0;

4、到底是几位,与实际控制过程有关系;

通讯网-原创军团

  • 精华:11帖
  • 求助:1帖
  • 帖子:432帖 | 10265回
  • 年度积分:0
  • 历史总积分:24711
  • 注册:2004年7月09日
发表于:2012-12-30 21:13:06
78楼
回复内容:
对:luedong关于 引用 (省略)。。编码器好不容易把刻线给你做的那么准确, 这样处理会不会丧失精度?我记得笨鸟先飞有个帖子讲这个精度的, 请笨鸟先飞来看看!! 内容的回复:

我只是打个比方,位数少,误差就大些。。。位数多,精度就足够了。

刘志斌

  • 精华:5帖
  • 求助:0帖
  • 帖子:348帖 | 35827回
  • 年度积分:0
  • 历史总积分:75384
  • 注册:2006年7月30日
发表于:2012-12-30 21:39:00
79楼

我想说一个与你们分歧相关的问题:

1、周1024线的编码器,可以得到1024×4=4096个脉冲;

2、当然它也可以输出,1024个脉冲;

3、可以认为输出1024个脉冲为粗位控制,输出4096个脉冲为细位控制;

4、可以这样说,1024个脉冲的每一个脉冲对应着4096个脉冲中的4个脉冲,如图

刘志斌

  • 精华:5帖
  • 求助:0帖
  • 帖子:348帖 | 35827回
  • 年度积分:0
  • 历史总积分:75384
  • 注册:2006年7月30日
发表于:2012-12-30 21:46:57
80楼

5、如果我用4096来进行粗控,就把4096中的与1024对应的脉冲,放入粗控的位置上,粗控时这些脉冲输出被计数;

那么细控时其它脉冲都输出;

6、这样就出现了所谓的脉冲分配的说法!

7、不过通讯网的语言叙述有点词不达意,让人费解了!


热门招聘
相关主题

官方公众号

智造工程师