伺服电机LXM32CD30N4
减小启动转速。
如果以上都没有问题,那么就有可能是程序里面带有无法分完的余数脉冲所产生的累计误差了。
众所周知,脉冲是以整数来计算,没有哪里会出现半个脉冲的说法。但是往往就是这半个脉冲出了问题,如果一个圆分10等份,每个等份差半个脉冲不算个什么。20个等份,每个等份差半个脉冲可能也不是特别明显。但是要分到50个,100个,500个,nnn个等份时,这样每个等份差半个脉冲可就不是一个小数目了。在等份数越多时,就算是每个等份差0.1个脉冲,都是一个天文数字。这就是很多人都认为步进电机无法做出精密的分度盘的原因了。这不仅仅是进步电机,就算是伺服电机,同样也存在这个问题----余数。
如下:步进驱动器的细分数为64.那么电机每一圈的脉冲数为64x200=12800.
现在设定电机分成128等份,那么很好计算 12800/128=100.每个等份的脉冲数为100个脉冲。
但是如果我现在要求分成129等份,公式为:12800/129=99.2248062,也就是每个等份须要99.2248062个脉冲才能均分,如此计数去掉小数点余数,那么这129个等份里总共将要误差129X0.2248062=28.9999999个脉冲。相当于这个圆就误差了一个等份的1/4。
由于本人文化水平有限,通过了相当长的时间去思考,终于解决了这个剩余脉冲数的处理方法。
以面说的例子为参考,电机脉冲数为12800为一圈,分成129等份。要求一圈走完的X大误差不大于1个脉冲。
程序编写方法如下:
设定电机脉冲数,这个是死的,可以不写。 12800或者其它数值。
设定要分的等份数:129 代入数据寄存器D 或者V
计算出每个等份须要的整数脉冲数:12800/129=99
X计算出每个等份须要的脉冲数,浮点运算得到的结果是:12800/129=99.2248062
把99转为浮点数,得到数据为99.0
然后用99.2248062—99.0=0.2248062 这个计算公式得到了每个等份剩下脉冲数。
用剩下的脉冲数再乘上等份总数:0.2248062x129=28.99999998.去掉小数点,得到整数28.
用等份数减去28得到:129-28=101。本数据为加工过程中的等份数。
程序运行到:己经加了的等份大于101,也就是从102等份开始到129等份,这28个等份里面,每个等份加一个脉冲。也就是从102等份开始的脉冲数为99+1=100.
如上计算,在后28个等份里面,每个等份增加一个脉冲,也就是每个等份增加了1/100.
总结:从上面的计算来看,如果不是要求X精密的加工,本程序加工出来的产品是完全满足要求的。