- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于FPGA的伺服驱动高精度位置反馈研究
潘宇 皮佑国
摘要:伺服驱动向CNC反馈进给伺服系统的位置量时,由于电机编码器脉冲量到CNC脉冲量的转换存在量化误差,多个周期就存在积累误差。本文提出一种以CNC脉冲当量的一半为量尺的方法,以减法代替出发得到反馈脉冲量和误差,保证了每一周期的反馈量小于一个脉冲当量。在每一次计算电机编码器测得的位置量时考虑误差,从而保证了积累误差小于一个CNC脉冲当量,实现了高精度位置反馈利用Actel公司的软件Libro IDE 及其产品APA400对该方案进行了仿真和实验,并给出了仿真、实验结果。
关键词:FPGA;高精度位置反馈;量化误差,积累误差
0 引言
在数字位置伺服系统中,CNC的位置和速度设定指令常以脉冲形式给出,以脉冲数量来表示伺服轴的进给位置,频率表示进给速度。将进给脉冲量折算到伺服轴的位移的比例称为电子齿轮比,它与机床的螺距有关。在间接位置闭环的系统中,进给轴位置和速度反馈,常利用安装在电机轴上的旋转式光电编码器来测量,并将其转换成与给定脉冲当量相同的量反馈给CNC,以实现对位置、速度的监控以及位置、速度运行轨迹等的显示。CNC脉冲当量与光电编码器的脉冲当量的比值称为分频比,也有文章称为分周比。
图1 分频比功能示意图
如图1所示[1],CNC、电机和编码器、机械减速器、丝杆都是独立的功能部件,因此电子齿轮比和分频比为因机床不同而不同,而在机床安装时在CNC上设定。实际运行中从电机编码器到CNC脉冲的转换就存在量化误差,即编码器的脉冲量除以分频比可能为小数。每次转换的量化误差又会产生积累误差。如何保证此每次转换的量化误差小于一个脉冲,且在持续分频的过程中累积误差也小于一个脉冲当量,是高性能数控伺服驱动必须解决的问题。
有人利用整数分频来合成,控制整数分频器的分频比按一定规则变化,以此在效果上达到小数分频,但容易出现毛刺,而且不同的小数分频时误差出现的形式和位置也不尽相同,对于小数位数越多的小数分频,此方法对硬件资源的要求就越来越高【2】【3】
本文尝试提出一种新的方法,姑且称为丈量法。其基本思想是,对于一个采样周期内编码器的脉冲增量,用半个CNC脉冲对应的编码器脉冲量作为量尺,将丈量次数除2后作为反馈脉冲量,并将余差留待下次考虑,从而实现小数分频,并且保证了对误差的要求。
本文的结构是先介绍丈量法原理,然后说明程序实现的步骤,接着给出在FPGA中实现的实例,并且给出仿真。
丈量法原理
设CNC 通信周期内编码器增量为, 周期内编码器增量为,如图2所示。
图2 丈量法误差示意图
周期内,和满足如下 (1)
式中,为整数商,为余数。
规定为奇数的时候多发半个脉冲,则有反馈脉冲量和反馈脉冲量误差满足:
(2)
(3)
周期内,编码器的增量需要考虑上一次遗留的余数进行调整:
(4)
按照此递推关系:在第周期内,编码器的增量考虑次遗留的误差进行调整:
(5)
则在周期内,余数、、为:
(6)
(7)
(8)
由此可见,第周期的计算中,已经考虑上一次遗留误差,所以算法的积累误差均不超过一个脉冲。
2 程序实现
第一步:计算采样周期内的编码器增量。在绝对式编码器里面,为当前位置信号与上次位置信号之差,正负号代表电机旋转方向。如果是增量式编码器,可以利用计数器对周期内的脉冲量进行计数,并且通过脉冲的相位判断方向。
第二步:求反馈脉冲次数与余数。因为小数分频比一般都在FPGA或者CPLD里面计算,所以需要考虑硬件资源的要求。以FPGA为例,首先,FPGA处理不了小数,另外,即使是做整数的除法,也非常费力耗时。为此,编程实现丈量法的时候,可以考虑用减法代替除法求。并且可以把计算用到的数字,根据的位数z,乘上,全部化为整数计算。
以本论文的实验平台为例:读数时钟为5M,电机最高转速为3000p/min,编码器分辨率为,,按照最高转速,周期内最大编码器增量为:
(9)
最大反馈脉冲为:
(10)
因此,在周期内,最多占用10次时钟周期做10次减法,即可完成丈量法的计算,相对做除法来说,更加方便快捷。同时,避免了对小数的计算。
第三步:发送脉冲与方向信号。此步骤可以根据CNC的要求,设定反馈脉冲的宽度和占空比,保证在此周期里面脉冲能够发送完毕。
在实际的编程中,应该加入对上述三步骤的保护,只
文档评论(0)