很(hěn)多(duō)人都认為(wèi)步进電(diàn)机是不能(néng)精密分(fēn)度的,把伺服電(diàn)机的驱动方法过于的神化。就本人用(yòng)步进電(diàn)机做分(fēn)度盘的经验来看,其实你只要懂得怎么去用(yòng)步进電(diàn)机,懂得怎么去写程序,正常情况下的分(fēn)度精度还是可(kě)以保证的。
步进電(diàn)机不管在什么场所应用(yòng),有(yǒu)一点是必须要保证就是有(yǒu)足够的扭矩。步进電(diàn)机就是一个大马拉小(xiǎo)車(chē)的东西。
正常情况下的启动时间,一般来说应尽可(kě)能(néng)的拉長(cháng)一些。启动的速度也不可(kě)以太快。启停过快都可(kě)能(néng)会引起过冲的现象。在使用(yòng)过程中,如果分(fēn)度不完整,也就是正常要走一圈的,但是发现怎么弄都差那么一点点,也就是有(yǒu)一个接缝,这种情况就是有(yǒu)传说中的失步。解决失步的方法不外乎如下几点:
增加電(diàn)机扭矩,加大驱动器的電(diàn)流;
降低运行的最大转速;
拉長(cháng)启动时间;
减小(xiǎo)启动转速。
如果以上都没有(yǒu)问题,那么就有(yǒu)可(kě)能(néng)是程序里面带有(yǒu)无法分(fēn)完的余数脉冲所产生的累计误差了。
众所周知,脉冲是以整数来计算,没有(yǒu)哪里会出现半个脉冲的说法。但是往往就是这半个脉冲出了问题,如果一个圆分(fēn)10等份,每个等份差半个脉冲不算个什么。20个等份,每个等份差半个脉冲可(kě)能(néng)也不是特别明显。但是要分(fēn)到50个,100个,500个,nnn个等份时,这样每个等份差半个脉冲可(kě)就不是一个小(xiǎo)数目了。在等份数越多(duō)时,就算是每个等份差0.1个脉冲,都是一个天文(wén)数字。这就是很(hěn)多(duō)人都认為(wèi)步进電(diàn)机无法做出精密的分(fēn)度盘的原因了。这不仅仅是进步電(diàn)机,就算是伺服電(diàn)机,同样也存在这个问题----余数。
如下:步进驱动器的细分(fēn)数為(wèi)64.那么電(diàn)机每一圈的脉冲数為(wèi)64x200=12800.
现在设定電(diàn)机分(fēn)成128等份,那么很(hěn)好计算 12800/128=100.每个等份的脉冲数為(wèi)100个脉冲。
但是如果我现在要求分(fēn)成129等份,公式為(wèi):12800/129=99.2248062,也就是每个等份须要99.2248062个脉冲才能(néng)均分(fēn),如此计数去掉小(xiǎo)数点余数,那么这129个等份里总共将要误差129X0.2248062=28.9999999个脉冲。相当于这个圆就误差了一个等份的1/4。
由于汉德保小(xiǎo)编文(wén)化水平有(yǒu)限,通过了相当長(cháng)的时间去思考,终于解决了这个剩余脉冲数的处理(lǐ)方法。
以面说的例子為(wèi)参考,電(diàn)机脉冲数為(wèi)12800為(wèi)一圈,分(fēn)成129等份。要求一圈走完的最大误差不大于1个脉冲。
程序编写方法如下:
设定電(diàn)机脉冲数,这个是死的,可(kě)以不写。 12800或者其它数值。
设定要分(fēn)的等份数:129; 代入数据寄存器D 或者V
计算出每个等份须要的整数脉冲数:12800/129=99
精确计算出每个等份须要的脉冲数,浮点运算得到的结果是:12800/129=99.2248062
把99转為(wèi)浮点数,得到数据為(wèi)99.0
然后用(yòng)99.2248062—99.0=0.2248062 这个计算公式得到了每个等份剩下脉冲数。
用(yòng)剩下的脉冲数再乘上等份总数:0.2248062x129=28.99999998.去掉小(xiǎo)数点,得到整数28.
用(yòng)等份数减去28得到:129-28=101。本数据為(wèi)加工过程中的等份数。
程序运行到:己经加了的等份大于101,也就是从102等份开始到129等份,这28个等份里面,每个等份加一个脉冲。也就是从102等份开始的脉冲数為(wèi)99+1=100.
如上计算,在后28个等份里面,每个等份增加一个脉冲,也就是每个等份增加了1/100.
总结:从上面的计算来看,如果不是要求绝对精密的加工,本程序加工出来的产品是完全满足要求的。