不需要专门的延迟。但是软件中应该做到使速度是连续的渐变,而不是突变。
类似物理里面我们分析的“上抛物体”的运动一样:先按匀减速运动,速度减到零后就变成反方向的匀加速运动了。
不要有从某个速度“突变”为静止,或由静止“突变”为某个速度的操作。这种“突变”自然会产生冲击振动。
至于这个“匀加速度”、“匀减速度”的加速度大小,则可以根据步进电机的性能和负载的惯性大小来确定。
通常,步进电机都会给出一个“最大力矩”的参数。根据这个最大力矩,和负载的惯性(包括步进电机的转子和传动机构的惯性在内)大小,可以计算出加速度不应该超过多少。实际设计时,还应该比最大允许值再留出相当的余地。
当然,我上面说的“速度”、“加速度”都是一个连续的理论值,实际的步进电机是一步一步离散的操作的,和理论规律总会有差别。但是只要这种“量化误差”不超过一定限度,就可以有满意的效果了。
最理想的是,这个误差的累计值不超过0.5步。也就是说,假如按照上述“匀加速”、“匀减速”的理论计算,在时刻t的时候应该走到x步(有小数)的位置,而真实的执行效果是:走到的位置总是等于x的四舍五入取整的值。这是最理想的。
如果算法设计不好,这个累积误差可能会大些。但最坏的情况下,这个误差的累计值不要超过半个相位周期。例如,您的脉冲分配如果是“四相八拍制”,那么,累积误差就必须小于4步。
超出的话,就会发生步进电机的“失步”。
上面说的道理,对于采用不采用“细分”,道理是一样的。只是采用细分后的每一个“步”(“细步”)比原来小了,容易做到比较均匀。
例如上面说的“四相八拍制累积误差就必须小于4步”,如果采用了“16细分”,那么只要小于64“细步”就可以,显然软件里处理起来更容易一些。
但是,只要软件考虑设计仔细一些,不采用细分也是可以做到的。
【看了“广州一丁”兄的回答后,再补充说明一点】
上面“广州一丁”兄说的“减速时间长点,加速时间同时也长点”,就相当于我这里说的“匀加速运动”和“匀减速运动”段中,加速度的绝对值再小一些。
原则上说,这个加速度的绝对值,只要不超过上面说的根据电机性能和负载惯性算出来的允许值就可以。当然,更小一点冲击更小。
我只是担心,您是否没有按“匀加速”、“匀减速”设计,而是直接由静止突变为某个速度,或由某个速度突变为静止。如果是那样,问题就比较大了。
一般来说,一个方向的运动,应该分为至少两个阶段,或者还需要三个阶段。开始是由静止开始的匀加速度段,后段是匀减速段(直到速度减为零)。如此,中间的速度最高。假如最高的速度超出了电机或者我们的设备允许的值,那么还应该限制。于是,中间又多出一个段:匀速段。这就成了三个段。
这种控制原理上应该是清楚的。但是实现时的算法,则根据需求不同,有可能需要特别安排。
例如:如果希望速度减到零的时候,位置也恰好走到某个给定的位置,那么后一段的计算就稍微难了一点(最笨的方法需要开平方)。实践中有不少巧妙的设计,限于篇幅这里不好介绍了。
【看了您的追问后再补充一点】
关于您说的“增加细分,速度就有点慢了”的问题:
假如您已经采用了我上面说的“三个阶段”的设计的话,那么,你如果脉冲频率的算法不动,仅仅把细分增加,等同于把上述的速度、加速度都按照同一个比例减小了。
加速度减小,可以减小冲击。如果您觉得加速度现在已经合适了的话,那么要想增加速度,就只有加大中间的“匀速段”的速度了。
例如,您如果把细分率加大到原来的二倍了,那么只要把中间匀速段的频率限制值也放宽到原来的二倍,结果中间的匀速段的速度,就会和原来相同了。
当然,这样中间匀速段所占的时间段比原来少了,所以总平均速度还是会比原来小一些。如希望总平均和原来相同,那可以进一步提高匀速段速度,当然,以不超出设备允许为限。
用细分驱动!细分驱动是专门解决步进电机低频震动的有效方法.
如果挂有牙带先张紧带子,延长减速时间,增长加速过程,转向时停止50mS以上。
可以加一个减震圈试一下,应该可以帮助到你