伺服电机运动累计误差 点击:3261 | 回复:12



matlac

    
  • 精华:1帖
  • 求助:0帖
  • 帖子:10帖 | 6回
  • 年度积分:1
  • 历史总积分:57
  • 注册:2014年12月02日
发表于:2020-11-08 10:04:45
楼主

伺服带动丝杆螺母平台左右移动,先寻0,然后正向移动到500mm处,再反向运动到-500MM处,如此反复,PLC发脉冲给伺服驱动器,驱动器驱动伺服电机旋转,带动丝杆螺母平台。 运行成千上万次以后,如何保证精度呢?(第N次停止的500MM位置处和第1次停止的500MM位置是同一个位置?)

1. 伺服使用增量式编码器

   PLC发脉冲,驱动器驱动电机执行,然后编码器反馈位置; 如果这个过程中,有一次信号干扰,比如驱动器少接受了一个脉冲,由于使用增量式编码器,是靠脉冲数来计算实时位置的,造成有位置偏差,比如第1次正向移动到500MM位置,第2次由于干扰,正向移动到了499.9mm位置处,如此反复偏差,最终执行第N次的500MM位置处可能和第1次执行的位置偏差就就比较大了。  

   大家说使用增量式编码器的伺服电机走位置控制会不会存在这个问题呢? 就是执行了N次以后的500MM位置和第1次的500mm位置处有偏差,不是同一个位置?

2.伺服使用绝对值编码器

   由于使用了绝对值的编码器,所以它不再使用脉冲累加,保证电机走到的每一个位置都有实际对应的刻度位置。看起来好像没有累计误差了对吗?

可是我认为使用绝对编码器只能保证反馈的位置是准确的,不能保证发送的脉冲是正确的。  举例来说,PLC第1次发10000个脉冲,驱动器驱动电机准确的走到了500MM位置处;第2次PLC再发10000个脉冲,可是因为干扰,驱动器只接收到了9999个脉冲,驱动器带动电机只走到了499.9.由于是绝对式编码器,不同于增量式编码器,我们可以通过编码器的数据知道当前的位置是499.9 ,并不是500MM处。  但实际上呢? 实际上PLC是不管的,它认为10000个脉冲都发完了,电机处于500MM处了。

   所以使用绝对编码器能准确的知道电机的位置,但若不把编码器的数据反馈到PLC,只是反馈到驱动器(实际上,一般应用都是反馈到驱动器),这个闭环并不能保证位置偏差。

    不知道我理解的对吗? 欢迎大家指正。




楼主最近还看过



刘岩利

  • [版主]
  • 精华:2帖
  • 求助:0帖
  • 帖子:19帖 | 8241回
  • 年度积分:401
  • 历史总积分:28764
  • 注册:2005年3月09日
发表于:2020-11-08 18:24:47
1楼

个人看法,这个理解不能说不对,但是,有点偏了。


区分一下概念,误差和累计误差。造成误差的因素一直存在,误差的影响会一直累计,但是通常不把随机误差的累计称为累计误差。电气信号干扰造成的误差,是随机的。造成脉冲数偏多和偏少的机会都是存在的。可能由于由于某种原因,在一个方向上偏多的机会比较多,另一个方向上偏少的机会比较多。但这习惯上很少称为累计误差。


信号是通过电气传递的,电气是控制的基础,不能保证基本的电气环境,比如当干扰严重的时候,就不要妄想精确的控制了。


不同的信号传输/处理方式,对于干扰的承受能力是不一样的,在一种方式线显得很严重的干扰,换一种信号传输/处理方式可能就显得不严重了。

1、差动传输方式,比基于某个基准电位(共阳或公地)的传输方式更能承受干扰;

2、对于差动传输的信号;使用双绞线比使用普通排线抗干扰的效果好;

3、高电压的信号比低电压的信号抗干扰的能力强;

4、带校验的编码信号(大多数绝对值编码器是这个类型的信号),比增量式脉冲信号可靠性高。

以上四点在提高对抗干扰的能力时,都会有相应的代价,工程师的价值就是能根据具体的应用要求找到合适的方案。

(另外,屏蔽线的效果比普通线好,但是屏蔽层本身的接地处理,或者说任何一个涉及接地处理的地方,都不是能简单说清楚的,处理不好,效果可能更糟糕)


1、差动传输方式,比基于某个基准电位(共阳或公地)的传输方式,需要更多的信号线;

2、对于差动传输的信号;使用双绞线比使用普通排线价格高不少;

3、高电压的信号比低电压的信号,等传输的信号频率低很多;

4、带校验的编码信号(大多数绝对值编码器是这个类型的信号),比增量式脉冲信号,响应速度慢;


@Q

  • 精华:8帖
  • 求助:0帖
  • 帖子:46帖 | 2199回
  • 年度积分:0
  • 历史总积分:4414
  • 注册:2003年2月20日
发表于:2020-11-09 19:51:50
2楼

把编码器的理解局限在电机屁股后面的,那对于PLC来说它并不是“位置闭环”。这个编码器仅仅是电机转角位置的反馈,无论是增量编码器还是绝对值编码器。对PLC而言没有考虑到输入指令至驱动器,到电机转角经机械传动才到终端的一个大闭环。所以题目中的误差累计也可能是指令也可能是机械传动在使用后发生的变化。我记得德国海德汉在高精度定位中,甚至要考虑到传动部分连续工作发热所带来材料的热胀冷缩。

@Q

  • 精华:8帖
  • 求助:0帖
  • 帖子:46帖 | 2199回
  • 年度积分:0
  • 历史总积分:4414
  • 注册:2003年2月20日
发表于:2020-11-09 19:57:01
3楼

真实的用绝对值编码器做闭环,它根本的使用上的不同不是累计,而是当前离设定终点多少距离。这样的好处是与过程无关,绝对值编码器的位置唯一性,无需考虑过程中发生了什么,只关注当前与目标设定的距离,也就不存在“累积”这样一个过程。

刘岩利

  • [版主]
  • 精华:2帖
  • 求助:0帖
  • 帖子:19帖 | 8241回
  • 年度积分:401
  • 历史总积分:28764
  • 注册:2005年3月09日
发表于:2020-11-10 14:16:58
4楼

引用 "@Q" 的回复,发表在2楼
        内容: 把编码器的理解局限在电机屁股后面的,那对于PLC来说它并不是“位置闭环”。这个编码器仅仅是电机转角位置的反馈,无论是增量编码器还是绝对值编码器。对PLC而言没有考虑到输入指令至驱动器,到电机转角经机械...


与主题关系不大的一点题外话。闭环,一直都有全闭环于半闭环的说法。运动控制的两端,一端是电气控制,一端是机械运动,中间是驱动器和电机。

在机械部件这端,在旋转电机轴上装编码器,通常称为半闭环。跨过一定的传动环节,将反馈信号连接到更接近最终位置的地方,就叫全闭环。这个“全”也只是一个相对概念。绝对的“全”,目前的技术手段好像还不是都能做到的。比如,买光栅尺的人会说,用了光栅尺就是全闭环了,传动环节的误差因素的,常见的比如机械制造装配误差(比如丝杠精度和螺母背隙),使用误差(如上面提到的不均匀热膨胀)都不会影响位置的检测了,原则上就不影响闭环后的位置精度了。但是,我们通常不是关心导轨上滑块的位置,而是最终的加工刀具的尖端之类的地方。这类位置,与滑块位置之间,还是有一定的机械结构,还是会因为热膨胀、长时间的应力(刀具和材料直接接触)、短时间的应力(机构加减速)导致位置变化的。而对刀尖位置的实时检测反馈,还没听说有什么普及的技术。闭环这事,越“全”就越贵,越半就越便宜,闭到什么程度,肯实际的设备要求,没有最好,只有最最合适。只关心停下位置,而且还是采用mm为单位没有小数点的情况下,最基本的半闭环也就足够了。

在电气这边,一般把闭到驱动器上半闭环,闭到控制器上叫全闭环。而控制器本身也是一个比较宽泛的概念,通常的伺服驱动器也会有一定的控制功能。只要信号骄傲是接到了一个能够依据反馈信号对电机的动作进行修正的,而且在超出修正能力时能给出报警信号的地方,这就实现了基本的闭环功能。一般的伺服驱动器都有这个能力。如果有更复杂的功能/性能要求。比如,一般伺服电机的应用,运动中的位置跟随误差会比较大,实际定位后的位置误差会小得多,如果只关注定位后的误差而不在乎运动过程中差了多少,一般驱动器上的超差报警的功能就不太够用了,或者换用更智能(更贵)的驱动器,或者把闭环信号接到控制器了,根据自己的需要自己实现不同的闭环以及报警功能。

@Q

  • 精华:8帖
  • 求助:0帖
  • 帖子:46帖 | 2199回
  • 年度积分:0
  • 历史总积分:4414
  • 注册:2003年2月20日
发表于:2020-11-10 15:42:33
5楼

回复内容:

对:刘岩利 引用 "@Q" 的回复,发表在2楼        内容: 把编码器的理解局限在电机屁股后面的,那对于PLC来说它并不是“位置闭环”。这个编码器仅仅是电机转角位置的反馈,无论是增量编码器还是绝对值编码器。对PLC而言没有考虑到输入指令至驱动器,到电机转角经机械...与主题关系不大的一点题外话。闭环,一直都有全闭环于半闭环的说法。运动控制的两端,一端是电气控制,一端是机械运动,中间是驱动器和电机。在机械部件这端,在旋转电机轴上装编码器,通常称为半闭环。跨过一定的传动环节,将反馈信号连接到更接近最终位置的地方,就叫全闭环。这个“全”也只是一个相对概念。绝对的“全”,目前的技术手段好像还不是都能做到的。比如,买光栅尺的人会说,用了光栅尺就是全闭环了,传动环节的误差因素的,常见的比如机械制造装配误差(比如丝杠精度和螺母背隙),使用误差(如上面提到的不均匀热膨胀)都不会影响位置的检测了,原则上就不影响闭环后的位置精度了。但是,我们通常不是关心导轨上滑块的位置,而是最终的加工刀具的尖端之类的地方。这类位置,与滑块位置之间,还是有一定的机械结构,还是会因为热膨胀、长时间的应力(刀具和材料直接接触)、短时间的应力(机构加减速)导致位置变化的。而对刀尖位置的实时检测反馈,还没听说有什么普及的技术。闭环这事,越“全”就越贵,越半就越便宜,闭到什么程度,肯实际的设备要求,没有最好,只有最最合适。只关心停下位置,而且还是采用mm为单位没有小数点的情况下,最基本的半闭环也就足够了。在电气这边,一般把闭到驱动器上半闭环,闭到控制器上叫全闭环。而控制器本身也是一个比较宽泛的概念,通常的伺服驱动器也会有一定的控制功能。只要信号骄傲是接到了一个能够依据反馈信号对电机的动作进行修正的,而且在超出修正能力时能给出报警信号的地方,这就实现了基本的闭环功能。一般的伺服驱动器都有这个能力。如果有更复杂的功能/性能要求。比如,一般伺服电机的应用,运动中的位置跟随误差会比较大,实际定位后的位置误差会小得多,如果只关注定位后的误差而不在乎运动过程中差了多少,一般驱动器上的超差报警的功能就不太够用了,或者换用更智能(更贵)的驱动器,或者把闭环信号接到控制器了,根据自己的需要自己实现不同的闭环以及报警功能。     内容的回复:

这位楼主的题目是“累计误差”,我的参与也是围绕这个命题而言表达我的理解,

累计,这是一个过程变量,包括机械的传递过程和时间过程的积累。

那机械的传递过程就绕不过反馈传感器是装在哪里的。传递过程越少越接近于闭环。

那时间的积累就需要说明,如果用的是绝对值编码器,是只关注当前位置离目标有多远,与累计无关。

对于运动控制我也是在学习中,谢谢版主指正。

雪夜守护者

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 117回
  • 年度积分:31
  • 历史总积分:3442
  • 注册:2020年4月14日
发表于:2020-11-13 14:34:11
6楼

首先,增量编码器不是只能走增量运动,绝对编码器也不是只能走绝对运动.

目前按照题设,以增量运动方式(向前运动500,再以停止位置为起点向后运动500),累计误差是必然存在的.在不改变这种运动方式的情况下,因增量运动所带来的的"累积误差"是无法消除的.

那么再不改变运动方式情况下,就只能尽可能消除其他部分所带来的误差,如使用分辨率更高的反馈,将位置反馈从电机末端(半闭环)延展到负载端(全闭环).

如果能更改运动方式,为了达到同样的运动效果,以绝对运动方式(第一次运动目标位置为500,第二次运动目标位置为0)如此往复,这样由"运动方式"带来的"累积误差"就会减小(增量编码器),或者消失(机械绝对编码器).

以上是我个人的理解,欢迎各路大佬讨论斧正

@Q

  • 精华:8帖
  • 求助:0帖
  • 帖子:46帖 | 2199回
  • 年度积分:0
  • 历史总积分:4414
  • 注册:2003年2月20日
发表于:2020-11-13 19:20:38
7楼

回复内容:

对:雪夜守护者 首先,增量编码器不是只能走增量运动,绝对编码器也不是只能走绝对运动.目前按照题设,以增量运动方式(向前运动500,再以停止位置为起点向后运动500),累计误差是必然存在的.在不改变这种运动方式的情况下,因增量运动所带来的的"累积误差"是无法消除的.那么再不改变运动方式情况下,就只能尽可能消除其他部分所带来的误差,如使用分辨率更高的反馈,将位置反馈从电机末端(半闭环)延展到负载端(全闭环).如果能更改运动方式,为了达到同样的运动效果,以绝对运动方式(第一次运动目标位置为500,第二次运动目标位置为0)如此往复,这样由"运动方式"带来的"累积误差"就会减小(增量编码器),或者消失(机械绝对编码器).以上是我个人的理解,欢迎各路大佬讨论斧正     内容的回复:

关于增量与绝对,我想请大家区分两种不同角度的理解方式,

一种是从伺服计算方式的增量与绝对,这种称为“绝对式”,“对零点位置的坐标”。中间仍然有可能有过程,累计,并需要记忆。有累计并记忆,就会有累计误差。

另一种是从编码器编码原理的角度,增量编码的还是绝对编码的,这种绝对值的编码是已经预先的机械位置一一对应的已经存在的,

——无需考虑过程,无需记忆的。

绝对值编码无需记忆,原始编码没有”过程”的变化。

一个个唯一性的位置“点”,所以是不存在“累计”这个过程变量的,有误差但不会是累计的。

当然,上面没有谈机械传递的过程与机械误差传递累计。

刘岩利

  • [版主]
  • 精华:2帖
  • 求助:0帖
  • 帖子:19帖 | 8241回
  • 年度积分:401
  • 历史总积分:28764
  • 注册:2005年3月09日
发表于:2020-11-14 11:45:52
8楼

"雪夜守护者" 的回复,发表在6楼
        对内容: 目前按照题设,以增量运动方式(向前运动500,再以停止位置为起点向后运动500),累计误差是必然存在的.在不改变这种运动方式的情况下...】进行回复:

        -----------------------------------------------------------------

“题设”,好怀念的词汇,冒昧的问一下,您还是学生么?这个词在高中时经常用,在大学时偶尔用。从学校出来就基本不用,很久没怎么听到过了。


误差是不可能绝对消除的,只能尽量减小,降低其影响。但累计误差是可以通过正确的机械、电气、控制方案消除的。这个,与运动方式无关。换个更直接的表达方式:如果设备出现了累计误差,那么就是在机械、电气、控制中的某个或某几个方面出现了错误。如果接受了人犯错这个题设,讨论什么东西都意义不大了。


那么再不改变运动方式情况下,就只能尽可能消除其他部分所带来的误差,如使用分辨率更高的反馈,将位置反馈从电机末端(半闭环)延展到负载端(全闭环).

改变闭环的传感器位置,可以改善传动的机械误差带来的问题。只要机械传动环节没有错误(比如不用齿形皮带,非要用摩擦传动),这种误差是不会累计的。也就是说,这种措施,对累计误差是i没有意义的。


如果能更改运动方式,为了达到同样的运动效果,以绝对运动方式(第一次运动目标位置为500,第二次运动目标位置为0)如此往复,这样由"运动方式"带来的"累积误差"就会减小(增量编码器),或者消失(机械绝对编码器).

这只是表述方式的区别而已。在实际的设备上,相关的是控制器(PLC)内部的逻辑表达,控制器与驱动器之间电气信号表达,驱动器内部的逻辑表达。真对这样一个简单的往复动作,无论是驱动器还是控制器内地逻辑表达都不会有产生可累计误差的机会。通常来说,plc编程时采用绝对定位还是增量移动,它输出给驱动器的电气信号是完全一样的(部分本身支持指令编程的高级驱动器配合控制器是可以做出区别的,但是这个模式基本没有人使用。而且,用了其实意义也不大)。

这种用绝对值定位来实现增量运动效果的思路,是用来解决运动数值换算问题的。这种换算带来的误差,也只有在多次单向运动中才会累计。比如,设备上走1毫米需要发送9个脉冲,那么要前进0.3毫米就要三个脉冲,会产生一个可接受的有误差(如果这个误差不可接受,就要提高分辨率了),如果连续进行每次0.3毫米前进,如果还是采用简单的增量运动,误差就会累计,最后可能会累计到不可接受的程度。误差的累计,这要看单次的误差有多大(一般来说是控制或者反馈的一个分辨率)、设备的总行程允许对少个单次运动、不可接受的误差极限有多大。

采用绝对定位的方式,在上面的例子中,在第二次前进的时候,不是前进0.3毫米,而是移动到0.6毫米处,控制器就不会发三个脉冲,而是只发俩脉冲,消除部分误差,保证总误差依然不大于一个分辨率。前进一百次,也只是270个脉冲而不是300个。

一个成熟的控制器,敢在功能上支持用户采用不同单位(毫米、英寸、角度之类)编程,这些就应该是透明的,无论用户编程是绝对定位还是增量运动,都应该会在第二次只发两个脉冲。只有在不支持用户自定义单位编程,需要用户自己做转换时,才需要注意这个细节。


Cheart

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 221回
  • 年度积分:0
  • 历史总积分:727
  • 注册:2020年9月02日
发表于:2020-11-14 13:57:59
9楼

学习下看看楼主的程序。感谢提供

雪夜守护者

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 117回
  • 年度积分:31
  • 历史总积分:3442
  • 注册:2020年4月14日
发表于:2020-11-20 15:29:23
10楼

"刘岩利" 的回复,发表在8楼
        对内容: 【"雪夜守护者" 的回复,发表在6楼        对内容: 目前按照题设,以增量运动方式(向前运动500,再以停止位置为起点向后运动500),累计误差是必然存在的.在不改变这种运动方式的情况下...】...】进行回复:

        -----------------------------------------------------------------


逐个回答探讨一下吧:

一,我不是学生,半路出家做运控也差不多3年了.可能大部分都是做院校的项目吧,语言上和学生比较像.

二,"误差是不可能绝对消除的,只能尽量减小,降低其影响。"这个赞同,理论上由于阿贝误差的存在误差是永远不可能消除的.

三,"改变闭环的传感器位置,可以改善传动的机械误差带来的问题。只要机械传动环节没有错误(比如不用齿形皮带,非要用摩擦传动),这种误差是不会累计的。也就是说,这种措施,对累计误差是i没有意义的。"这个确实,将半闭环做成全闭环是在消除其他误差,因为我觉得累积误差是由运动方式不同带来的,不改进运动方式的话,我是想使用这些手段提高单次定位精度以减小累积误差的单次累积量.

四,"这只是表述方式的区别而已。在实际的设备上,相关的是控制器(PLC)内部的逻辑表达,控制器与驱动器之间电气信号表达,驱动器内部的逻辑表达。真对这样一个简单的往复动作,无论是驱动器还是控制器内地逻辑表达都不会有产生可累计误差的机会。通常来说,plc编程时采用绝对定位还是增量移动,它输出给驱动器的电气信号是完全一样的(部分本身支持指令编程的高级驱动器配合控制器是可以做出区别的,但是这个模式基本没有人使用。而且,用了其实意义也不大)。"这点我有异议,理由是这样,之前使用过AKD驱动器,在脉冲方向指令模式下有两种运算方式(根据其技术手册表述):一种是增量运动,即脉冲数量代表本次运动距离.另一种是绝对运动,以单次伺服循环接收到的脉冲数取倒数作为绝对指令位置值.在脉冲方向这一统一方式下其脉冲数所对应的值也是有所不同.还有就是关于使用两种运动方式效果差别方面,我觉得是有的,而且差别巨大.我的根据是这样:之前参加一家公司的运动控制器培训(IMAC),其中一个内容是利用控制器控制两轴在XY平面做矩形.实际测试结果使用INC(增量,忘了是不是这几个字母了)模式第一圈就不能使矩形完全闭合,走完后终点与起点有较大偏差(并没有连实际机械结构,仅是利用调试软件功能显示XY平面运动轨迹).而使用ABS模式就可以完全避免这个问题.所以我觉得在部分系统中累积误差的影响还是比较大的,而使用绝对运动方式是可以消除其影响的.

雪夜守护者

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 117回
  • 年度积分:31
  • 历史总积分:3442
  • 注册:2020年4月14日
发表于:2020-11-20 15:35:48
11楼

"@Q" 的回复,发表在7楼
        对内容: 【回复内容:对:雪夜守护者 首先,增量编码器不是只能走增量运动,绝对编码器也不是只能走绝对运动.目前按照题设,以增量运动方式(向前运动500,再以停止位置为起点向后运动500),累计误差是必然存在的.在...】进行回复:

        -----------------------------------------------------------------


大致理解了一下,对于"绝对运动也会带有累积误差"这一点不很赞同.我认为累积误差产生的原因是单次运动参考点在变化的时候实际值与期望值的偏差造成的.例如:第一次增量运动+500,实际运动至501,第二次增量运动-500时,其最终位置为1,这1的误差就是第二次增量运动参考点期望值为500,实际值为501造成的.而绝对运动方式中,参考点始终是没有变动过得,因此我觉得不会有累积误差的存在

@Q

  • 精华:8帖
  • 求助:0帖
  • 帖子:46帖 | 2199回
  • 年度积分:0
  • 历史总积分:4414
  • 注册:2003年2月20日
发表于:2020-11-20 22:35:18
12楼

物理参考点是没有变动过,但是控制器里记忆的”参考点”与物理参考点是同一个吗?因为毕竟是记忆的。如果是开环的,仅凭记忆一样可以设计成“绝对式运动方式”,如何确认?开环的或者无法完整闭环的依赖记忆的,就有错误可能并累计,必然需要绝对值传感器的反馈来确认。

所以这是两个概念,一个是从控制器方向的理解的“绝对式”,另一个是从传感器反馈的方向的理解并确认的“绝对值”。

雪夜守护者

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 117回
  • 年度积分:31
  • 历史总积分:3442
  • 注册:2020年4月14日
发表于:2020-11-23 11:30:02
13楼

"@Q" 的回复,发表在12楼
        对内容: 【物理参考点是没有变动过,但是控制器里记忆的”参考点”与物理参考点是同一个吗?因为毕竟是记忆的。如果是开环的,仅凭记忆一样可以设计成“绝对式运动方式”,如何确认?开环的或者无法完整闭环的依赖记忆的,就有...】进行回复:

        -----------------------------------------------------------------


了解了,确实使用增量编码器往复运动会造成"误差",不过我一直没把这个"误差"当"累积误差"


热门招聘
相关主题

官方公众号

智造工程师