众所周知,步进电机在各个领域都有着应用场景,其主要的优势还是在于可操作性和准确性。不同的运行场景下,所需要配置的运行参数不尽相同,以合理的运行参数去配置,可以让我们在调试过程中少走很多的弯路。
对于常见的运行任务模型来说,一个运行任务涉及到的就是电机加速,减速,运行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('输入错误,请重新输入')