无刷电机位置S曲线拟合轨迹
S曲线的作用
平滑位置突变,避免因为电机位置变化过大造成速度波动大导致电机启动抖动,可以提高电机的运行速度和运行效率,让电机运动起来更加平滑
S曲线的原理
S型曲线加减速是指在加减速时,加速度的导数 J J J为常数的加减速过程通过控制加速度导数来避免加速度突变,减
小运动过程中由于加速度突变而引起的机械系统振动.采用S型曲线加减速算法可以获得平滑的速度和加速度图。
对于电机位置控制来说,因为初始速度和末端速度都一样的(都是0),因此加速度变化波形曲线是对称的。因此波形实际只有以下几种情况
1.(七段式S曲线)速度变化过程包括:加加速阶段,匀加速阶段,减加速阶段,匀速阶段,加减速阶段,匀减速阶段,减减速阶段
2.(六段式S曲线)速度变化过程包括:加加速阶段,匀加速阶段,减加速阶段,加减速阶段,匀减速阶段,减减速阶段
3.(五段式S曲线)速度变化过程包括:加加速阶段,减加速阶段,匀速阶段,加减速阶段,减减速阶段
3.(四段式S曲线)速度变化过程包括:加加速阶段,减加速阶段,加减速阶段,减减速阶段
以第一种情况为例:加速度,速度,位移曲线如下:
S曲线曲线图
分别为:位置变化曲线,速度变化曲线,加速度变化曲线
S曲线数学方程
定义一些参数变量如下:
参数名 | 参数含义 |
---|---|
J J J | 加速度变化率 |
a m a x a_{max} amax | 最大加速度 |
V m a x V_{max} Vmax | 给定最大速度 |
T n T_n Tn | 每个阶段的运行时间 n n n从1到7 |
t t t | 时间 |
S S S | 位移(如果是转动则是角位移) |
第一步
首先要判断S曲线是什么类型(七段,六段还是四段S曲线)
假设S曲线加速阶段不存在匀加速阶段(因为前后速度不变,加速和减速阶段对称,所以相应也不存在匀减速阶段),此时加速度和速度满足以下关系:
a m a x = J T v = ∫ 0 t a m a x d t = a m a x 2 / J a_{max}=JT\\ \\ v=\int_0^ta_{max}dt=a_{max}^2/J amax=JTv=∫0tamaxdt=amax2/J
可以根据计算加加速度阶段和减加速阶段所求得的速度 v v v和我们给定速度进行比较,判断S曲线应该是什么类型的。
1.如果加加速阶段和减加速阶段所求速度 v v v小于给定速度 V m a x V_{max} Vmax,说明此时应该存在匀加速阶段使得速度可以加速到达给定速度。通过前面可以知道变加速的时间,
下一步计算匀加速阶段的时间。因为速度需要加速到给定速度,所以有
T 2 ∗ a m a x + a m a x 2 / J = V m a x T 2 = V m a x a m a x − a m a x / J T_2*a_{max}+a_{max}^2/J=V_{max}\\ \\ T_2=\frac{V_{max}}{a_{max}}-a_{max}/J T2∗amax+amax2/J=VmaxT2=amaxVmax−amax/J
如果大于给定速度,这个时候说明我们给的 a m a x a_{max} amax太大了,需要重新求解 a m a x a_{max} amax使得加速阶段得到的速度能够满足要求。因为我们前面得到速度关系 v = a m a x 2 / J v=a_{max}^2/J v=amax2/J因此只要让 v = V m a x v=V_{max} v=Vmax带入前面方程就可以解得所需的加速度,并解出对应阶段的时间了
因此可以得到以下关系:
{ T 1 = T 3 = T 5 = T 7 = a m a x / J V m a x > = a m a x 2 / J T 1 = T 3 = T 5 = T 7 V m a x J V m a x < a m a x 2 / J \left\{ \begin{matrix} T_1=T_3=T_5=T_7=a_{max}/J & V_{max}>=a_{max}^2/J\\ \\ T_1=T_3=T_5=T_7\sqrt{\frac{V_{max}}{J}}&V_{max}<a_{max}^2/J \end{matrix} \right.