(注:由于篇幅等限制,相应的代码没有办法在此处提供,本文只讲解相应方法。)
我相信大家在使用步进电机的时候都会有一个这样的苦恼:电机需要多次旋转并且精度要求较高,但是多次旋转会降低我们旋转的准确度,有什么办法能解决它呢?下面小编为大家提供一个通过程序就可以提高精度的方法。
使用过步进电机的小伙伴们都知道,我们计算旋转角度的脉冲数和我们的步进角有一定比例关系:
脉冲数=旋转角度/步进角
42步进电机振动不转而我们的步进角和我们使用的驱动器的细分步数有一定比例关系:
步进角=360°/细分步数。
因此我们可得到:
脉冲数=旋转角度/(360°/细分步数)
一般我们熟悉使用的是将脉冲数定义为整形,方便我们计算,这样我们若使用的细分步数是360的整倍数的情况下,多次旋转角度在理论的情况下(机械结构等误差不计算在内)可以很准确的旋转一定角度,但是当我们的精度要求较高时(0.1°以下),我们不得已就会选择更大的细分步数,但是成本也就相应增加。一般对于我们来说使用的驱动器细分步数最大在25000,这样
步进角=360°/25000=0.0144°
42步进电机振动不转可以看出我们随机旋转一定角度时无法得到整数的脉冲值,这样多次旋转后积累的角度误差一定会超过0.1°。有什么解决办法呢?在这里为大家提供一个好的解决办法。
比如我们想要旋转1°,通过计算可以得到脉冲数≈69.4444,这时我们就会只取69,而将0.4444舍弃掉,这时我们可以看一下,旋转这一次我们的误差就至少有0.0144*0.4444=0.00639936°,可能很多人都会认为这0.006几度微不足道,但是当我们每次旋转1°,旋转100次时我们的误差就能到0.6°,这样很影响我们的精度。
但是当将我们需要旋转的角度扩大100倍时,此时在处理我们就可以得到计算脉冲数时舍掉的后两位小数,我们将此脉冲误差变量进行记录并且我们需要记录此时是少转相应角度还是多转相应角度,在转下一个角度的时候,我们需要对脉冲误差变量进行判断,判断两次旋转脉冲误差变量值是否超过100(即超过一个步进角),若超过则对我们此次旋转计数的脉冲数进行加减,并且需要记录此时剩余脉冲误差变量值(以便下次旋转时再次进行脉冲误差的确认),这样我们在多次旋转时,理论上积累的误差值就不会再超过1个脉冲的角度,即0.0144度。这样就能在没有编码器的情况下提高步进电机旋转的准确度。
大家还知道其他什么好的办法来提高电机的旋转精度呢?欢迎大家在评论区留言,让我们一起学习与进步。