目录
1. 使用加减速的理由
为什么要使用加减速呢?步进电机有一个很重要的技术参数:空载启动频率,也就是在没有负载的情况下能够正常启动的最大脉冲频率,如果脉冲频率大于该值,步进电机则不能够正常启动,发生丢步或者堵转的情况;或者也可以理解为由于步进脉冲变化过快,转子由于惯性的作用跟不上电信号的变化。所以要使用加减速来解决启动频率低的问题,在启动时使用较低的脉冲频率,然后逐渐的加快频率。
2. 梯形加减速算法特点
梯形加减速一共分为三个阶段,OA 加速部分、AB 匀速部分 和 BC 减速部分。 在 OA 加速过程中,由低于步进电机的启动频率开始启动(模型中由 0 启动),以固定的加速度增加速度到目标值;在 AB 匀速过程中,以最大速度匀速运动; 在 BC 减速部分中,以加速度不变的速度递减到 0; 这种算法是一种在加速过程和减速过程中加速度不变的匀变速控制算法,由于速度变化的曲线有折点,所以在启动、停止、匀速段中很容易产生冲击和振动。
3. 算法基础
步进电机的转动需要控制器发送脉冲,如果控制器以恒定速度发送脉冲,那么步进电机就以恒定速度转动;如果控制器以加速度发送脉冲,那么步进电机就以加速度运动;所以只要改变脉冲的频率 就可以改变速度的变化,也就是说调整脉冲之间的时间间隔就可以改变速度。
上图为步进电机与时间的示意图,其中
- t0 表示第1个脉冲发送时刻
- t1 表示第2个脉冲发送时刻
- t2 表示第3个脉冲发送时刻
- tt 表示定时器的计数周期
- C0 表示定时器从 t0 ~ t1 时刻的定时器计数值
- C1 表示定时器从 t1 ~ t2 时刻的定时器计数值
- Δt1 和Δt2表示两个脉冲之间的间隔时间
以 stm32 的高级定时器 8 为例,定时器 8 的时钟频率为 168MHZ, 如果将分频值设置为 5,那么定时器的时钟频率则为:ft=168/(5+1)=28MHZ, 相当于计数 28M 次正好为一秒,周期与频率为倒 数关系,所以分频值为 5 的定时器 8 的计数周期tt = 1/ft;C0和C1的值即为ARR寄存器的值,所以我们在固定的定时器频率下,只需要改变ARR的值,即可改变电机的速度。
4. 梯形算法要求的变量
我们通过控制定时器输出PWM波形来描绘上述梯形,至少需要知道以下变量:
4.1 在加速阶段:
- 加速初始PWM频率
- 加速度accel
- 加速所用的脉冲数
4.2匀速阶段
- 匀速所用的脉冲数
- 减速阶段
- 减速初始频率
- 减速度decel
- 减速所用的脉冲
一般情况下,电机加速度accel、减速度decel和匀速运动的最大速度max_speed是给定的,我们需要通过这3个变量推导出剩余的变量。知道以上变量,再推导出每步的定时器频率,结合脉冲数即可绘制完整的梯形图。
5. 加减速算法推导过程
5.1 电机转过的角度θ的计算:
其中:n表示驱动电机的脉冲数
α表示电机的步距角
5.2 电机由速度0匀加速运动,转过θ所用的时间tn:
5.3 求相邻脉冲时间间隔Δt:
此处计算时,让θt = (n+1) α, θt-1 = nα,而不是θt = nα, θt-1 = (n-1)α,是因为Δt是两脉冲之间的时间间隔,θt-1的脉冲数n最小也应该等于1,所以在n为正整数的情况下,采用θt = (n+1) α, θt-1 = nα更符合实际情况。
5.4 求第1个周期内计数器的值
5.5 求第n个周期内计数器的值
公式推导一共分为以下 5 个步骤推导:
A. 步骤 1 是将 n 与 n-1 分别带入到公式 9;
B. 分子分母提出 C0 和根号 n, 并将其约掉;
C. 整理化简根号下的内容;
D. 将麦克劳林公式带入;
E. 忽略无穷下余项,化简求得; 将其化简为关于 Cn 的式子如下:
通过公式(7)和公式(9),即可推到出每个周期内的计时器的值,及每步的频率。经过化简的公式(9)有一定的误差,其得出的结果比公式(8)快。所以我们对公式(7)乘以0.676加以校正。
5.6 由s = 1/2 ώtn¬2 和θ = nα可推出:
5.7 在一个电机匀加速到一定速度,再匀减速的情况下,如下图:
5.8 加速情况
对于加减速的情况来说,由于已经设定好了步进电机加速度、减速度、最大速度和步数,所以说一共分为两种情况:
6. 算法优化
7.总结
在给定步距角α、定时器频率tt、加速度ώ1、减速度ώ2和最大速度speed以及总步数total_step的情况下,电机的加减速计算步骤如下: