步进电机加减速——梯形算法

1.声明

1、这是我第一篇博客文章,如有错误请各位大佬指点,谢谢。
2、该篇文章是适合了解了步进电机基础原理的学习者阅读。

2.目的

使用要求与场合: 1、步进电机
2、速度变化较大
3、启动停止频繁
步进电机加减速算法目的:对于上述2、3的场合,步进电机容易出现丢步和过冲甚至无法启动的现象,所以加入该算法来解决这一问题。

3. 算法实现

3.1加减速期望曲线

如图1所示,该曲线是期望的加减速曲线。横坐标t为时间,纵坐标ω为速度。以下三个参数有开发者设定。
accel:加速度
decel:减速度
step:总行程
步进电机加减速——梯形算法_第1张图片
图1

3.2速度与脉冲周期有何关系

电机的调速与脉冲周期是有关系的,并且是正比例关系,脉冲周期越长,步进电机转速越慢。
在梯形加速过程,速度变化是直线的,将该曲线截取加速过程放大并加入脉冲,如图2所示。
步进电机加减速——梯形算法_第2张图片
图2
图中t0到t1这段时间为第一个脉冲的时间,t1到t2为第二个脉冲的时间
C0为第一个脉冲的定时器计数值
tt为定时器的计数周期,也就是频率的倒数
距离=速度*时间
每给一个脉冲,步进电机行走一步,这时候步进电机旋转的角度称为步距角,用α表示,单位为弧度。
所以图2中每个长方形的面积就是一个步距角,所以每个长方形面积相等。

3.3位置与加速度的关系

根据牛顿定律位移S=V0t+1/2at²,由于步进电机启动初始速度为0,所以公式变成S=1/2at²。在这里用ω’表示加速度。所以公式变成S=1/2ω’t²。由于已知步距角和脉冲数(n),所以S=αn。
从而得到1/2ω’t²=α
n

3.4脉冲周期与脉冲数和加速度的关系

由于t表示从t0到tn的时间,由于t0为0,所以tn=t,通过转换,tn与加速度的关系如下:
tn=√(2*n *α/ω’)­­­
所以Cntt=t(n+1)-tn=(√(n+1)-√n)*√(2α/ω’)
得到Cn=1/tt *(√(n+1)-√n)*√(2α/ω’)
由上述的推导得到Cn与加速度和脉冲数和加速度的关系,因此可以求得在加速过程或者减速过程脉冲的周期。

3.5何时减速

得到了加减速度和脉冲周期的关系后还需要考虑电机什么时候开始减速。

3.5.1斜率与脉冲数的关系

如图3所示
步进电机加减速——梯形算法_第3张图片
图3
n1:加速需要的脉冲数
n2:减速需要的脉冲数
ω’1:加速度
ω’2:减速度
斜率(K)=y/x,所以y=K*x,在图3中,由于该三角形高相等,所以n1 * ω’1=n2 * ω’2
为了方便后面计算,等式左右两边加上n1 * ω’2,得到n1 * ω’1+n1 * ω’2=n2 * ω’2+n1 * ω’2
最终得到n1=(n1+n2)*ω’2/(ω’1+ω’2)

3.5.2实际曲线另外一种情况

在实际的运动中,梯形曲线并不一定是图1那样,还有另外一种情况,如图4所示。
步进电机加减速——梯形算法_第4张图片
图4
该图显示实际最大速度未达到设定最大速度。
accle_lim:实际加速运动的脉冲数
max_s_lim:达到设定最大速度需要的脉冲数
根据公式n1=(n1+n2)*ω’2/(ω’1+ω’2)可以得到accle_lim=(step *decle)/(accel+decel)
根据公式n *ω’=ω’n/2 *α可以得到max_s_lim=n=speed *speed/(2 *α *accel)
从数学角度将模型的两种情况分为了accle_lim>max_s_lim的和accle_lim 1.accle_lim>max_s_lim
decel_val=(max_s_lim *accel)/decel
2.accle_lim decel_val=step-accle_lim

4.结论

通过上面的分析与计算得出了两个关系
1、加减速度和脉冲周期的关系
2、减速开始时刻

你可能感兴趣的:(电机算法,电机算法,步进电机,梯形加减速)