加减速控制时,怎样发脉冲控制伺服定位才精确 点击:21900 | 回复:90



coolzhpfree

    
  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 39回
  • 年度积分:0
  • 历史总积分:172
  • 注册:2012年9月07日
发表于:2012-09-07 22:28:12
楼主
求助帖10分-已结帖
当我用台达伺服做定位控制时发生这样的现象,脉冲发给伺服,可是编码器反馈实际的位置还没有到我脉冲计算的位置。也就是说:我做加减速控制时已经发送1000个脉冲,我计算的实际距离应该是10mm,可是根据编码器反馈的实际位置大概只有9.5mm,如果速度越快,位置偏差越大,请问有没有高手可以指点一下,在做加减速控制时怎么样才能让编码器实际反馈的位置和脉冲输出计算的位置误差要小一点?



coolzhpfree

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 39回
  • 年度积分:0
  • 历史总积分:172
  • 注册:2012年9月07日
发表于:2012-09-11 21:34:40
21楼
回复内容:
对:qlizhiwei9关于如果不是硬件接口匹配问题导致的丢脉冲的话,那是动态跟随性问题了。动态跟随误差跟速度和位置环增益关系比较大,可以试着提高位置环增益,如果伺服有速度前馈的话,试着用下速度前馈。要是停止时还有一定的震荡问题的话,还有可能是内环速度环响应不足,得提高速度环增益。这个应该调调增益参数能够有所改善!内容的回复:


你说的很有道理,这些我都调试过了,可是有些参数不能调的太高或者太低来响应系统的跟随性,系统要求运行很柔和,不能有太大的震荡和噪音,所有这些参数基本上保持一个合适的值,仅仅是调参数还是不能很好的解决问题,我是希望能够从控制发出的脉冲频率上面能想解决的方法,改善减速过程的准确定位,怎么处理所发的脉冲和编码器反馈的位置值,通过适当的减速过程,既能满足快速定位,又能满足系统很柔和没有噪音,因为系统运行的距离在三十万个脉冲的范围内,加速的最高速可以做到200K

coolzhpfree

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 39回
  • 年度积分:0
  • 历史总积分:172
  • 注册:2012年9月07日
发表于:2012-09-11 21:38:00
22楼
回复内容:
对:zlzxw关于这个是动态误差,滞留脉冲。调节参数可以改善。也可以考虑用更高性能的系统。内容的回复:


你说的对,确实是动态误差,滞留脉冲导致的,你说的更高性能的系统是指伺服驱动器,还是控制脉冲频率发出的控制器,当然这个是不能采用运动控制卡的,只想有人能指点一下,解决这一的动态误差一般从什么地方入手最好。

coolzhpfree

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 39回
  • 年度积分:0
  • 历史总积分:172
  • 注册:2012年9月07日
发表于:2012-09-11 21:45:27
23楼
回复内容:
对:原创军团--指尖漫步关于嗯  没调齿轮比的话   看下PLC发了多少个脉冲,伺服从PLC那边收到了多少个脉冲,伺服编码器实际反馈了多少个脉冲,从而先判断下是哪一块的问题,在针对问题寻求解决办法内容的回复:


我不是用PLC去控制伺服的,我是用单片机去控制伺服的,单片机在发脉冲的时候是有很大的加减速的过程,通过发脉冲的方式控制伺服系统运行,然后又采集编码器的反馈值来定位的,譬如我发1000个脉冲,位置应该要走10mm,可是这个时候采集到编码器的值大概只有9mm,也就是说有部分脉冲被伺服滞留在系统内,这个时候你发的脉冲和你采集的位置就有冲突了,二者不一致,当然也可以通过调参数来改善,可是调试的参数会导致系统存在很大的噪音和柔和性不是很好的问题,当然这种方法不可取,目前我认为最可取的是改善减速过程,能让系统既能快速定位,又没有什么噪音,问题是这个减速过程怎么做才是最好的    

Like_MCU

  • 精华:0帖
  • 求助:1帖
  • 帖子:4帖 | 494回
  • 年度积分:0
  • 历史总积分:1666
  • 注册:2012年8月11日
发表于:2012-09-11 21:50:07
24楼
回复内容:
对:coolzhpfree关于回复内容:对:征关于加减速在哪边做的? 是否是改变上位脉冲频率做的加减速? 内容的回复:是这样的,我用单片机芯片控制脉冲,直接给伺服系统发脉冲,伺服系统是设置为位置控制模式,增益是调试好的,因为系统需要高速运行,定位要准确,所以在发脉冲的时候做了加减速,加速的时候发了几千个脉冲,可是编码器反馈回来的位置远小于脉冲运行应该要走的行程。而且随着速度越快滞后的行程越多,当到稳定速度运行一段时间后,滞后的脉冲数基本不变,而这时我开始做减速运行,这时滞后的脉冲慢慢变少。如果用我采集编码器的值来定位的话,我定位的位置已经不准确了,因为发出的脉冲数过多,我的位置已经往超出我需求的位置 内容的回复:

貌似控制器的积分环节没有起到作用呀,无法消除稳态误差。

  • 精华:2帖
  • 求助:0帖
  • 帖子:10帖 | 2393回
  • 年度积分:1
  • 历史总积分:5804
  • 注册:2006年1月06日
发表于:2012-09-12 07:36:21
25楼
楼主,你为什么这样用伺服的位置控制模式?有特殊要求?

  • 精华:2帖
  • 求助:0帖
  • 帖子:10帖 | 2393回
  • 年度积分:1
  • 历史总积分:5804
  • 注册:2006年1月06日
发表于:2012-09-12 08:05:27
26楼
“通过发脉冲的方式控制伺服系统运行,然后又采集编码器的反馈值来定位的,譬如我发1000个脉冲,位置应该要走10mm,可是这个时候采集到编码器的值大概只有9mm,也就是说有部分脉冲被伺服滞留在系统内,这个时候你发的脉冲和你采集的位置就有冲突了,二者不一致”,不明白你为什么这样做? 不管加减速单片机怎么实现,要走10mm,就发走10mm的脉冲(包括加减速过程的总脉冲数),驱动器的位置闭环会控制电机停止在10mm左右的位置上,这个过程中必然存在跟随误差。这种位置控制模式满足不了你的应用?

  • 精华:2帖
  • 求助:0帖
  • 帖子:10帖 | 2393回
  • 年度积分:1
  • 历史总积分:5804
  • 注册:2006年1月06日
发表于:2012-09-12 08:19:35
27楼
“如果用我采集编码器的值来定位的话,我定位的位置已经不准确了,因为发出的脉冲数过多,我的位置已经往超出我需求的位置”,如20楼所说,如果这样用伺服驱动器,无论怎么做减速都无法实现准确定位。因为你走10mm的距离,然后又发了减速的指令脉冲,可能发了11mm的脉冲指令,位置闭环会驱动电机到11mm的位置,超出点实际位置!

eagle109

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 18回
  • 年度积分:0
  • 历史总积分:94
  • 注册:2008年8月26日
发表于:2012-09-12 08:35:23
28楼

如果滞后的位置误差恒定,那么你是可以在软件工艺上做一定的补偿的

 

如果你要求这个位置误差尽量小或者是位置整定时间短,只有调整伺服参数

zlzxw

  • 精华:0帖
  • 求助:0帖
  • 帖子:11帖 | 768回
  • 年度积分:0
  • 历史总积分:2197
  • 注册:2004年7月05日
发表于:2012-09-12 13:28:53
29楼
你单片机发出多少个脉冲你自己应该知道吧?发多少脉冲走多少距离,这个事肯定的,伺服到最后肯定是走完了的,虽然在转的时候相比你的指令脉冲有点滞后。

coolzhpfree

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 39回
  • 年度积分:0
  • 历史总积分:172
  • 注册:2012年9月07日
发表于:2012-09-12 20:25:38
30楼
回复内容:
对:征关于“通过发脉冲的方式控制伺服系统运行,然后又采集编码器的反馈值来定位的,譬如我发1000个脉冲,位置应该要走10mm,可是这个时候采集到编码器的值大概只有9mm,也就是说有部分脉冲被伺服滞留在系统内,这个时候你发的脉冲和你采集的位置就有冲突了,二者不一致”,不明白你为什么这样做? 不管加减速单片机怎么实现,要走10mm,就发走10mm的脉冲(包括加减速过程的总脉冲数),驱动器的位置闭环会控制电机停止在10mm左右的位置上,这个过程中必然存在跟随误差。这种位置控制模式满足不了你的应用? 内容的回复:

你说的对,可是工控系统用工业的时候,大家最看重的是系统的效率。确实只要你发相应的脉冲数伺服系统能够运行我的目标位置,可当你的脉冲早发完了,伺服至少等几百ms才运行到你的目标位置,才慢慢响应过来,而这个等待时间很容易影响系统的工作效率,当然:对于一次要运行几十万个脉冲的系统,一次多运行500个脉冲的误差可以接受,但是一定要能快速定位。而且定位的精度要在误差范围类,且系统的速度是随时可以调节的。所以在减速的时间要尽量的短,系统柔和性要好。

coolzhpfree

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 39回
  • 年度积分:0
  • 历史总积分:172
  • 注册:2012年9月07日
发表于:2012-09-12 20:34:45
31楼
回复内容:
对:征关于“如果用我采集编码器的值来定位的话,我定位的位置已经不准确了,因为发出的脉冲数过多,我的位置已经往超出我需求的位置”,如20楼所说,如果这样用伺服驱动器,无论怎么做减速都无法实现准确定位。因为你走10mm的距离,然后又发了减速的指令脉冲,可能发了11mm的脉冲指令,位置闭环会驱动电机到11mm的位置,超出点实际位置! 内容的回复:

呵呵,你说得对,这个时候靠采集编码器的值来定位的位置已经超出了我的目标位置,但是如果你能在到达目标位置前把速度降低到一个合适的值,这个时候采集的编码器位置的值误差 不会很大,而且这个误差可以接受。现在问题的关键就是系统运行时在什么地方开始减速,应该怎么去减速,才能达到这个效果。我的最高频率200K,减速后运行的最低频率在4K,系统脉冲数20万个,该怎么样规划一条减速曲线,让伺服能从200K的频率运行到4K,然后在4K的频率去定位目标位置。当然最主要的是减速过程一定要很快,很平稳。

coolzhpfree

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 39回
  • 年度积分:0
  • 历史总积分:172
  • 注册:2012年9月07日
发表于:2012-09-12 20:39:20
32楼
回复内容:
对:eagle109关于如果滞后的位置误差恒定,那么你是可以在软件工艺上做一定的补偿的 如果你要求这个位置误差尽量小或者是位置整定时间短,只有调整伺服参数内容的回复:


伺服的滞后脉冲是随着速度的变换而变换的,就算是滞留的脉冲,伺服系统也会相应完才停下来的,其实伺服系统中有清除滞留脉冲的功能,可是当然把滞留脉冲清除后,系统运行很抖动。这个方法不可取

coolzhpfree

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 39回
  • 年度积分:0
  • 历史总积分:172
  • 注册:2012年9月07日
发表于:2012-09-12 20:43:23
33楼
回复内容:
对:zlzxw关于你单片机发出多少个脉冲你自己应该知道吧?发多少脉冲走多少距离,这个事肯定的,伺服到最后肯定是走完了的,虽然在转的时候相比你的指令脉冲有点滞后。内容的回复:


这个当然知道,问题就是伺服滞后的时间已经严重影响到了系统的工作效率,不能被接受了。系统可以多走一定数目在误差内的脉冲,但是减速的过程一定要快,运行一定要平稳。

  • 精华:2帖
  • 求助:0帖
  • 帖子:10帖 | 2393回
  • 年度积分:1
  • 历史总积分:5804
  • 注册:2006年1月06日
发表于:2012-09-12 22:07:33
34楼
你这样问问题得不到有益的答案,大家不清楚你的应用,都在猜。你最好把应用情况,如定位距离、时间、误差等,还有就是设备,如电机的总惯量、负载大小、电机额定转速、额定转矩等写出来,然后才能分析,否则谁知道问题在哪?

coolzhpfree

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 39回
  • 年度积分:0
  • 历史总积分:172
  • 注册:2012年9月07日
发表于:2012-09-13 21:19:33
35楼
回复内容:
对:征关于你这样问问题得不到有益的答案,大家不清楚你的应用,都在猜。你最好把应用情况,如定位距离、时间、误差等,还有就是设备,如电机的总惯量、负载大小、电机额定转速、额定转矩等写出来,然后才能分析,否则谁知道问题在哪? 内容的回复:


那等我把系统相关参数写清楚些再问了,

hvirust

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 21回
  • 年度积分:0
  • 历史总积分:120
  • 注册:2006年3月09日
发表于:2013-02-19 00:50:08
36楼
跟加减速的关系不大,要想提高精度,主要调整位置环增益(p2-00),速度环积分(p2-06)和位置前馈(P2-02)三个参数

zwm00306

  • 精华:0帖
  • 求助:0帖
  • 帖子:16帖 | 1541回
  • 年度积分:0
  • 历史总积分:5963
  • 注册:2001年10月22日
发表于:2013-02-19 08:25:21
37楼
让编码器实际反馈的位置和脉冲输出计算的位置误差要小一点

大头兄

  • 精华:0帖
  • 求助:3帖
  • 帖子:11帖 | 58回
  • 年度积分:0
  • 历史总积分:241
  • 注册:2008年9月06日
发表于:2013-02-20 16:50:40
38楼
编码器定位经典课程,学习中……

south_fox

  • 精华:1帖
  • 求助:2帖
  • 帖子:3帖 | 17回
  • 年度积分:0
  • 历史总积分:82
  • 注册:2012年2月04日
发表于:2013-02-27 09:37:49
39楼
回复内容:
对:coolzhpfree关于回复内容:对:征关于你这样问问题得不到有益的答案,大家不清楚你的应用,都在猜。你最好把应用情况,如定位距离、时间、误差等,还有就是设备,如电机的总惯量、负载大小、电机额定转速、额定转矩等写出来,然后才能分析,否则谁知道问题在哪? 内容的回复:那等我把系统相关参数写清楚些再问了, 内容的回复:

伺服电机输出脉冲数滞后输入脉冲数,是不可避免的,不然的话,由于机械惯性系统不可避免出现超调。电机速度越快,滞后的越多。至于要减小这个滞后大小,可以调下位置环比例参数,但是这个必须根据系统的惯性和其他要素来确定,简单的就是你调试位置环参数时必须要求你的系统是稳定的。希望这个建议对你有用。

午夜清风555555

  • 精华:0帖
  • 求助:2帖
  • 帖子:63帖 | 3967回
  • 年度积分:683
  • 历史总积分:41167
  • 注册:2012年1月21日
发表于:2013-02-27 10:08:11
40楼
如果确定不是机械的问题,那就调整参数吧。

热门招聘
相关主题

官方公众号

智造工程师