从伺服工作的基本原理来解析编码器信号处理的过程 点击:7635 | 回复:248



刘志斌

    
  • 精华:5帖
  • 求助:0帖
  • 帖子:348帖 | 35827回
  • 年度积分:0
  • 历史总积分:75384
  • 注册:2006年7月30日
发表于:2013-01-01 10:43:52
楼主

 

 

 

 

 

、上面的是征提供的欧系某款驱动器的编码器信号处理框图;

 

、我从伺服工作的基本原理来解析编码器信号处理的过程:

 

引用 东山脚下-骑士军团 的回复内容:这就是典型的闭环控制系统的基本原理


1、这就是典型的闭环控制系统的基本原理 ;

2、通常我们说编码器的刻线数,是指一条刻线的刻线数,例如说,这个编码器的刻线数是1024;

3、那我们会马上意识到,这个编码器的解析度最大就是1024×4=4096;

4、我们还会知道,这个编码器周反馈脉冲数有三种可以由用户选用1024、2048、4096;

5、这个图中有两个计数器,一个是编码器反馈脉冲的计数器,也是伺服当前实际位置的计数器,即图中Free-running position counter,他的读数就是伺服当前的实际位置;

6、另一个计数器就是最右边的N0.of signal period,这个计数器就是指令脉冲计数器,用户输入的指令脉冲数就储存在这个计数器中,伺服运行中,它的读数就是距离目标控制位置或者简单说距离终点的指令脉冲数;

7、这两个计数器的读数是互补的,就是说他们的读数的和,等于伺服运行全程的指令脉冲数;

8、这个典型的闭环控制系统中,还有一个非常重要的乘法器multiplication by hardware ;

9、乘数x 2^n,,它的倒数I/2^n就是我们平时说的电子齿轮比;

10、它是联系两个计数器的纽带,就是人民币与美元的换算率;

11、编码器周反馈脉冲数×2^n=周指令脉冲数

      电子齿轮比=1/2^n=编码器周反馈脉冲数/周指令脉冲数

12、伺服的一个控制过程,就是当前位置反馈脉冲计数器的读数,由零到终点位置的读数;

13、伺服的一个控制过程,就是目标位置指令脉冲计数器的读数,由起点指令脉冲数到终点位置的零读数;

14、关于 Fine resolution 高分辨率高解析度脉冲数,它是1个n位数,等于n-1、n-2、…、0;

15、这个n位数的脉冲数等于指令脉冲数÷2^n的余数,例如

1)周指令脉冲数65536;

2)编码器周脉冲数=4096;

3)2^n=16,即 周指令脉冲数65536=编码器周脉冲数4096×2^n

4)指令脉冲数=65536λ

5)Fine resolution脉冲数=65536λ÷16的余数,是1~15个,n=4;

14、关于 Fine resolution 高分辨率高解析度脉冲数,它是1个n位数,等于n-1、n-2、…、0;

15、这个n位数的脉冲数等于指令脉冲数÷2^n的余数,例如

1)周指令脉冲数65536;

2)编码器周脉冲数=1024;

3)2^n=64,即 周指令脉冲数65536=编码器周脉冲数1024×64

4)指令脉冲数=65536λ

5)Fine resolution脉冲数=65536λ÷64的余数,是1~63个,n=6;

16、征说“Fine resolution 部分: 对4倍频的光电编码器而言,这个位域占用两位”,是不懂装懂,压根就不知道是怎么回事!

17、征说“2~31的数值是由计数器对倍频的信号自动累加得来的,这一部分表示电机转过的线数。对1024线编码器, 计数范围最大为  2^30/1024 = 1048576 圈”;

18、这个计算用1024就是错误的,应该用4096×16=65536,去除2~31的数值,即

     2^30/65536 = …… 圈;

19、就这个伺服位置闭环图,征从前到后,犯了多少错?表现出对控制原理完全不懂,表现出数量关系不清楚,征得表述就是胡说八道!

 

 

、同时转征对该图的解析如下:

 

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

1 左侧的 1 2

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

2multiplication by hardware

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

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

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

3)中间的1 2

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

4Free-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位计数器的整体数值,不会区分那一部分。

        

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

 

 




刘志斌

  • 精华:5帖
  • 求助:0帖
  • 帖子:348帖 | 35827回
  • 年度积分:0
  • 历史总积分:75384
  • 注册:2006年7月30日
发表于:2013-01-07 11:35:16
201楼

 

 

刘志斌

  • 精华:5帖
  • 求助:0帖
  • 帖子:348帖 | 35827回
  • 年度积分:0
  • 历史总积分:75384
  • 注册:2006年7月30日
发表于:2013-01-07 11:36:25
202楼

点击查看原图

1、只要能心平气和的说话,就好多了,别让人看笑话;

2、你看看下面的图和方程式,那个对?那个错?

3、方波上沿:

1)用上图的式子得

    5 = - 0+5

2)用下面的式子得

    5 = 0+5

4、方波上沿结束,持续5V:

1)用上图的式子得

    5 = -(-5)+0

2)用下面的式子得

    5 = 5 + 0

5、方波下沿:

1)用上图的式子得

    0= - (-5)+ (-5)

       -5 = -5

2)用下面的式子得

    0 = 5 + (-5)

       -5 = -5

 

 

1、这两个图都没有错,这两个回路方程也没有错;

2、在上边的这个图中,电容电压Uc始终是负的,在下边这个这个图中电容的电压Uc始终是正的;

3、两个图的回路电压方程式也不同,各是各的回路电压方程式;

4、例如,你如果用下边的图的回路方程式,去计算上边图的参数,结果就会出现

方波下沿:

1)用上图的式子得

    0= - (-5)+ (-5)

       -5 = -5

2)用下面的式子得

    0 = -5 + (-5)

     0 = -2Um

这就是wyb2866255---王者之师犯的错误!

 

5、用上边图,画的电压曲线图如下

 

6、用下边图,画的电压曲线图如下

 

点击查看原图

 

7、因为在微分电路时,从电压输出端Uo看进去,电阻的电压是正(非下降沿)的,电容的电压是负的,所以下面的曲线图体现的是微分电路的特征;

 

8、因为在积分电路时,从电压输出端Uo看进去,电阻的电压是负(非下降沿)的,电容的电压是正的,所以下面的曲线图体现的是积分电路的特征;

zdm2008

  • 精华:3帖
  • 求助:11帖
  • 帖子:108帖 | 1584回
  • 年度积分:1
  • 历史总积分:12293
  • 注册:2011年12月09日
发表于:2013-01-07 14:06:03
203楼
都是高手,我得好好学习学习,这方面知识不全面。

weijujituan

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 3回
  • 年度积分:0
  • 历史总积分:33
  • 注册:2010年6月07日
发表于:2013-01-08 09:50:28
204楼
刘老师 理论基础很扎实 理解透彻 诲人不倦 小弟钦佩 但也要向 征 表示感谢 感谢你们无私地奉献 。本人也是搞工控的 因时间关系 我只看了前二页 32位计数器 为何最低两位无效 是因为 是因为32位的一个具体数要除以4才是它的电机具体位置 就是右移两位,即把最低的两位扔掉剩下的高30位就代表了它的具体位置。B相脉冲 是码盘上的刻线产生的 在做刻线的时候就把90°做出来了 关于此刘老师分析的很透彻

刘志斌

  • 精华:5帖
  • 求助:0帖
  • 帖子:348帖 | 35827回
  • 年度积分:0
  • 历史总积分:75384
  • 注册:2006年7月30日
发表于:2013-01-08 11:19:53
205楼

引用 ShowMotion 的回复内容:

……这个图表示,在正交编码输入方向不变的情况下,32位计数器会从0计数到2^32-1,溢出后继续从0开始计数。这个锯齿波就是形象描述计数值连续变化的过程。


1、先这样认为吧;

2、那后边的指令脉冲计数器,NO.of signal periods怎么办?

3、当前位置计数器,读数已经几个2^32-1,溢出,后边的计数器也跟着溢出吗?


4、我想,在一个位移控制过程,位置读数与时间的关系能是这样锯齿波吗?

5、等高度可以理解,等间隔等时间可以吗?

6、当前位置计数器,一般的表示方法是一个梯形波,这是你知道的!

7、既然计数器的符号,采用了波形变换的标识,输入波形有输出波形也应该有;

8、计数器计数溢出,从零开始计数是个常识,也可以说明,没有见过用这种方式表示的;

9、如果认为纵坐标是计数器的读数,那么0、2^32-1应该在纵标轴上标出,而不是写在现在这个位置上;

10、所以把它看成计数器输出波形,2^32-1是输出最大脉冲数,还是正确的,就是说有一万个理由说它是输出波形,而没有一个成立的理由说它是计数器输出读数的波形!

11、说这么多,就是要告诉大家,我的看法是经过思考的,不是随意的!

刘志斌

  • 精华:5帖
  • 求助:0帖
  • 帖子:348帖 | 35827回
  • 年度积分:0
  • 历史总积分:75384
  • 注册:2006年7月30日
发表于:2013-01-08 15:22:37
206楼

1、multiplication by hardware 是个硬件构成的乘法器;

2、2n是乘数因子,表示偶数倍;

3、它与波数2^n是两回事,就是说不是1个n;

4、2^n表示波数用2进制计数,计数器Free-running position counter中的32位bits,表示32位2进制计数器;

5、输出波数最高位可计数到2^(32-1)位;

 

点击查看原图
6、下面这个图中p0418、p0419的乘法器也都是×2n,不能都错了吧!

 

点击查看原图

 

7、我在此贴本贴或者相关帖中,有关乘法器multiplication by hardware 的描述中,把×2n当做×2^n是错误的,请大家注意更正回来,就是说图上的×2n是对的!

8、在这个问题上,我跟着征的解释走,一块儿犯了错,向大家道歉!

 
 
 

王者之师—广州@阿君

  • [版主]
  • 精华:25帖
  • 求助:18帖
  • 帖子:503帖 | 6997回
  • 年度积分:0
  • 历史总积分:66772
  • 注册:2010年6月26日
发表于:2013-01-08 15:24:13
207楼
纵观老刘大作。。。技术之学习之。。。

刘志斌

  • 精华:5帖
  • 求助:0帖
  • 帖子:348帖 | 35827回
  • 年度积分:0
  • 历史总积分:75384
  • 注册:2006年7月30日
发表于:2013-01-08 17:49:28
208楼

关于数进制的表示法;

1)二进制数的表示法,2^n,n=0、1、2、……、31,31+1=32位;

2)十进制数的表示法,10^n,n=0、1、2、……、11,11+1=12位,千亿位;

3)十六进制数的表示法,16^n,n=0、1、2、……、

jiangluxiang

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 33回
  • 年度积分:0
  • 历史总积分:312
  • 注册:2010年11月21日
发表于:2013-01-10 20:18:49
209楼

学习中...........

刘志斌

  • 精华:5帖
  • 求助:0帖
  • 帖子:348帖 | 35827回
  • 年度积分:0
  • 历史总积分:75384
  • 注册:2006年7月30日
发表于:2013-01-11 10:27:01
210楼

 

 

 

刘志斌

  • 精华:5帖
  • 求助:0帖
  • 帖子:348帖 | 35827回
  • 年度积分:0
  • 历史总积分:75384
  • 注册:2006年7月30日
发表于:2013-01-11 10:28:29
211楼

1、楼上是4刻线,A、B两路彼此相差90的方波产生的微分脉冲;

2、我们看到微分脉冲的波形与图中编码器反馈脉冲计数器输出的波形一致;

刘志斌

  • 精华:5帖
  • 求助:0帖
  • 帖子:348帖 | 35827回
  • 年度积分:0
  • 历史总积分:75384
  • 注册:2006年7月30日
发表于:2013-01-11 10:29:59
212楼

我的理解是,它就是计数器的输出脉冲波形,2^32-1表示,这样的脉冲读数最高位2^32-1

刘志斌

  • 精华:5帖
  • 求助:0帖
  • 帖子:348帖 | 35827回
  • 年度积分:0
  • 历史总积分:75384
  • 注册:2006年7月30日
发表于:2013-01-11 10:30:35
213楼

引用 ShowMotion 的回复内容:

……这个图表示,在正交编码输入方向不变的情况下,32位计数器会从0计数到2^32-1,溢出后继续从0开始计数。这个锯齿波就是形象描述计数值连续变化的过程。


1、先这样认为吧;

2、那后边的指令脉冲计数器,NO.of signal periods怎么办?

3、当前位置计数器,读数已经几个2^32-1,溢出,后边的计数器也跟着溢出吗?


4、我想,在一个位移控制过程,位置读数与时间的关系能是这样锯齿波吗?

5、等高度可以理解,等间隔等时间可以吗?

6、当前位置计数器,一般的表示方法是一个梯形波,这是你知道的!

7、既然计数器的符号,采用了波形变换的标识,输入波形有输出波形也应该有;

8、计数器计数溢出,从零开始计数是个常识,也可以说明,没有见过用这种方式表示的;

9、如果认为纵坐标是计数器的读数,那么0、2^32-1应该在纵标轴上标出,而不是写在现在这个位置上;

10、所以把它看成计数器输出波形,2^32-1是输出最大脉冲数,还是正确的,就是说有一万个理由说它是输出波形,而没有一个成立的理由说它是计数器输出读数的波形!

11、说这么多,就是要告诉大家,我的看法是经过思考的,不是随意的!

 

刘志斌

  • 精华:5帖
  • 求助:0帖
  • 帖子:348帖 | 35827回
  • 年度积分:0
  • 历史总积分:75384
  • 注册:2006年7月30日
发表于:2013-01-11 10:33:01
214楼

引用 ShowMotion 的回复内容:

……这个图表示,在正交编码输入方向不变的情况下,32位计数器会从0计数到2^32-1,溢出后继续从0开始计数。这个锯齿波就是形象描述计数值连续变化的过程。


1、在一个位移控制过程中,编码器反馈脉冲计数器,是否允许“溢出”?

2、我的回答是,不允许“溢出”,“溢出”就意味着这个伺服位移控制过程失败;

3、那么一个控制过程需要较大位移是怎么办?

4、所以爲了适应一个控制过程较大位移的需要,必须有足够的计数器的计数数位,例如用32位计数器;

5、可是32为计数器,对于解析度65536的编码器,也显得很不够,例如一个3000rpm的电机,只允许运行22分钟就已经溢出

     4294967295÷65536=65536转

                 65536÷3000=22分钟

6、那怎么办?计数器的计数位总是有限的,不能无限增多;

7、其实一个伺服位移控制过程,需要对解析度65536的编码器的每一个脉冲计数吗?

8、我们测量2001毫米的长度,没有人去数毫米的刻线数,只是在数完米的刻线数后再数毫米的刻线

9、所以伺服控制过程一样,计数器不用去数解析度65536的脉冲,只数圈数,只有在最后1圈的最后几个解析度65536的脉冲计数,和我们测量长度的过程一样,先数米刻线,最后才数毫米刻线

10、说表示“32位计数器会从0计数到2^32-1,溢出后继续从0开始计数”,是对伺服控制过程最无知的说法!!!

刘志斌

  • 精华:5帖
  • 求助:0帖
  • 帖子:348帖 | 35827回
  • 年度积分:0
  • 历史总积分:75384
  • 注册:2006年7月30日
发表于:2013-01-11 10:50:57
215楼

点击查看原图

 

 

刘志斌

  • 精华:5帖
  • 求助:0帖
  • 帖子:348帖 | 35827回
  • 年度积分:0
  • 历史总积分:75384
  • 注册:2006年7月30日
发表于:2013-01-11 10:52:28
216楼

11、楼上这个图中,给定、反馈位置计数器,计数的方法显示如下

 

 

 

刘志斌

  • 精华:5帖
  • 求助:0帖
  • 帖子:348帖 | 35827回
  • 年度积分:0
  • 历史总积分:75384
  • 注册:2006年7月30日
发表于:2013-01-11 19:38:13
217楼

引用 五代重歼 的回复内容:

既然叫做Free-running position counter,他压根就不需要输出脉冲.计数器要的只是计数值原产品手册上有个注解<5>,写的<5> Generating the two‘s complement.还不够清楚吗?


1、“既然叫做Free-running position counter,他压根就不需要输出脉冲.计数器要的只是计数值”,说这样的话,足以证明你原来狗屁不懂,还立帖骂人?

2、这个计数器就是对编码器反馈脉冲的计数,它的读数就是转子(或者工件的)当前的位置;

3、在计数的同时,它还要把编码器的方波脉冲转换成锯齿计数脉冲,输出给指令脉冲计数器NO.of signal periods,进行减计数,如果它不输出脉冲,怎么进行减计数

 

4、而位移指令脉冲NO.of signal periods计数器的读数是,伺服电机运行前用户输入的指令脉冲数,即目标位置的位移;

   5、当伺服完成一个控制过程结束时NO.of signal periods计数器的指令脉冲数读数变为零,Free-running position counter当前位置计数器的读数变成等于NO.of signal periods用户设定的指令脉冲数,说明电机已经完成指令的位移,到达指令目标位置

   6、就是说NO.of signal periods的读数减少数=Free-running position counter的读数增加数,它们是两个互补的数码,Generating the two‘s complement!生成两个互补的数码;

7、“<5>,写的<5> Generating the two‘s complement.还不够清楚吗?”,说的什么?说的是两计数器的读数码是互补的!说明与压根就没有关系!

刘志斌

  • 精华:5帖
  • 求助:0帖
  • 帖子:348帖 | 35827回
  • 年度积分:0
  • 历史总积分:75384
  • 注册:2006年7月30日
发表于:2013-01-11 19:44:45
218楼

1、“<5>,写的<5> Generating the two‘s complement”,生成两个互补的数码,用我们的话说,就是减计数!

2、算术减法运算,减数与差相加等于被减数,即减数与差互补!

3、运动结束时,NO.of signal periods - Free-running position counter=0;

 

刘志斌

  • 精华:5帖
  • 求助:0帖
  • 帖子:348帖 | 35827回
  • 年度积分:0
  • 历史总积分:75384
  • 注册:2006年7月30日
发表于:2013-01-11 21:23:03
219楼

 

 

1、这里说的互补,指的是编码器反馈脉冲计数器的读数增加多少,指令脉冲计数器的读数减少多少;

2、通过编码器反馈脉冲计数器计数的同时,又输出反馈脉冲到指令脉冲计数器的计数端减计数实现的互补!

刘志斌

  • 精华:5帖
  • 求助:0帖
  • 帖子:348帖 | 35827回
  • 年度积分:0
  • 历史总积分:75384
  • 注册:2006年7月30日
发表于:2013-01-12 09:41:44
220楼

 

把互补的关系再说说

1、一个是编码器反馈脉冲计数器;

2、另一个是指令脉冲计数器;

3、在起点,零位置:

1)指令脉冲计数器的读数是用户输入的目标位移指令脉冲数;

2)编码器的反馈脉冲计数器读数为零;

 


热门招聘
相关主题

官方公众号

智造工程师