您的位置:控制工程论坛网论坛 » 仪器仪表 » 关于步进电机任意分度程序的编写方法

sweect

sweect   |   当前状态:在线

总积分:5941  2024年可用积分:0

注册时间: 2007-11-07

最后登录时间: 2023-08-21

空间 发短消息加为好友

关于步进电机任意分度程序的编写方法

sweect  发表于 2017/5/14 11:27:47      1544 查看 3 回复  [上一主题]  [下一主题]

手机阅读

许多人都认为步进电机是不能精密分度的,把伺服电机的驱动方法过于的神化。就本人用步进电机做分度盘的经验来看,其实你只要懂得怎么去用步进电机,懂得怎么去写程序,正常情况下的分度精度还是可以保证的。
步进电机不管在什么场所应用,有一点是必须要保证就是有足够的扭矩。步进电机就是一个大马拉小车的东西。
正常情况下的启动时间,一般来说应尽可能的拉长一些。启动的速度也不可以太快。启停过快都可能会引起过冲的现象。在使用过程中,如果分度不完整,也就是正常要走一圈的,但是发现怎么弄都差那么一点点,也就是有一个接缝,这种情况就是有传说中的失步。解决失步的方法不外乎如下几点:

增加电机扭矩,加大驱动器的电流;

降低运行的最大转速;

拉长启动时间;

减小启动转速。
  如果以上都没有问题,那么就有可能是程序里面带有无法分完的余数脉冲所产生的累计误差了。
众所周知,脉冲是以整数来计算,没有哪里会出现半个脉冲的说法。但是往往就是这半个脉冲出了问题,如果一个圆分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等份。要求一圈走完的最大误差不大于1个脉冲。
程序编写方法如下:
设定电机脉冲数,这个是死的,可以不写。 12800或者其它数值。
设定要分的等份数:129  代入数据寄存器D 或者V
计算出每个等份须要的整数脉冲数:12800/129=99
精确计算出每个等份须要的脉冲数,浮点运算得到的结果是: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.
总结:从上面的计算来看,如果不是要求绝对精密的加工,本程序加工出来的产品是完全满足要求的。

1楼 0 0 回复
  • a1123

    a1123   |   当前状态:在线

    总积分:5620  2024年可用积分:0

    注册时间: 2013-06-20

    最后登录时间: 2023-08-11

    空间 发短消息加为好友

    a1123   发表于 2017/5/14 13:18:58

    我做步进分度的时候也会出现这个问题,一般要求不高还可以的,就算是伺服电机也同样有这种事,我一般就是化成整数,余数去掉,但是精度不高。以后碰到这种项目就用吴老师的方法来做,学习了,谢谢

    2楼 回复本楼

    引用 a1123 2017/5/14 13:18:58 发表于2楼的内容

  • aaing

    aaing   |   当前状态:在线

    总积分:27966  2024年可用积分:0

    注册时间: 2007-04-27

    最后登录时间: 2023-08-21

    空间 发短消息加为好友

    aaing   发表于 2017/5/17 17:41:17

    这个经验真是难得,我做步进分度的时候也会出现这个问题,一般要求不高还可以的,就算是伺服电机也同样有这种事,我一般就是化成整数,余数去掉,但是精度不高。以后碰到这种项目就用吴老师的方法来做,学习了,

    3楼 回复本楼

    引用 aaing 2017/5/17 17:41:17 发表于3楼的内容

  • xueba

    xueba   |   当前状态:在线

    总积分:2090  2024年可用积分:0

    注册时间: 2014-01-06

    最后登录时间: 2023-08-11

    空间 发短消息加为好友

    xueba   发表于 2017/5/18 16:32:00

    好的经验,需要时间和不断的实践。                        

    4楼 回复本楼

    引用 xueba 2017/5/18 16:32:00 发表于4楼的内容

总共 , 当前 /