众所周知,步进电机在各个领域都有着应用场景,其主要的优势还是在于可操作性和准确性。不同的运行场景下,所需要配置的运行参数不尽相同,以合理的运行参数去配置,可以让我们在调试过程中少走很多的弯路。
对于常见的运行任务模型来说,一个运行任务涉及到的就是电机加速,减速,运行3个阶段。组合起来完成要求运行的参数。加速和减速阶段就包含了运行的启动速度,停止速度,最大速度和加速度这几个参数的适配。例如速度也快,步数短,加速度小,这样设置下去很可能电机在加速度过程中,就走完了要求的步数,加速过程不完整,即使设置速度再快,也没有达到预期的高速运行效果。 这个时候就需要计算控制器的速度要求,匹配对应的加减速度,以达到高速运行的要求。
以PMC007CXSP2的pp模式为例,运行能够以梯形加速的方式,匀加/减速到启动/停止速度,方便我们对参数进行运算。需要配置的参数就是启动速度,停止速度,加速度,最大速度和步进距离。那么根据运行特点我们知道,当刚刚好加速完成就进行减速完成的步进距离,就是最短的步数要求。步数再小的话,加减速过程就不完全。以加速过程为例:
其次启动速度和停止速度要小于,最大速度。 且启动速度/停止速度/加速度/最大速度都必须大于600。例如设置启动速度5000pps,最大速度10000pps,加速度160000pps,通过计算可得知加速时间为0.09375s,步进距离为1172个脉冲。
附上python的计算代码。
import sys def acce_min(): # 最小加速度计算 v_max = int(input('输入最大速度(整数)')) s = int(input('输入运行步数(整数)')) v0 = 1000 # 默认值 t = s / 2 * 2 / (v0 + v_max) a = (v_max - v0) / t print('需要设置的最小加速度为{}pps'.format(a)) def s_min(): # 最小脉冲计算 v_max = int(input('输入最大速度(整数):')) a = int(input('输入加速度值(整数):')) v0 = 1000 # 默认值 t = (v0 + v_max) * a s = v0 * t + a * t * t / 2 print('需要设置的最小步数为{}pp'.format(s)) if __name__ == '__main__': while 1: print() E = '请选择测试项 ' print(E.center(22, '*')) print('1:确定速度和加速步数,计算最小加速度:') print('2:确定速度和加速度,计算最小加速步数:') print('0:退出测试') operation_code = input('请输入:') if operation_code == '1': acce_min() elif operation_code == '2': s_min() elif operation_code == '0': sys.exit('测试程序已退出') else: print('输入错误,请重新输入')
楼主最近还看过