Bootstrap

(二)五次多项式轨迹规划

一、三次多项式轨迹规划的缺陷

上一篇文章说道,三次多项式轨迹规划只能够保证速度和位移连续,并不能保证加速度连续。加速度不连续将会对使电机抖动、甚至冲击。

二、轨迹规划中的五次多项式

我们对加速度数值进行指定,将会增加两个加速度方程,总计6个方程组。他们分别是:

  • 起末位移方程组
  • 起末速度方程组
  • 起末加速度方程组
    x ( t ) = c 0 + c 1 t + c 2 t 2 + c 3 t 3 + c 4 t 4 + c 5 t 5 v ( t ) = c 1 + 2 c 2 t + 3 c 3 t 2 + 4 c 4 t 3 + 5 c 5 t 4 a ( t ) = 2 c 2 + 6 c 3 t + 12 c 4 t 2 + 20 c 5 t 3 (1) \begin{aligned} & x(t)=c_0+c_1t+c_2t^2+c_3t^3+c_4t^4+c_5t^5\\ & v(t)=c_1+2c_2t+3c_3t^2+4c_4t^3+5c_5t^4\\ & a(t)=2c_2+6c_3t+12c_4t^2+20c_5t^3 \end{aligned} \tag{1} x(t)=c0+c1t+c2t2+c3t3+c4t4+c5t5v(t)=c1+2c2t+3c3t2+4c4t3+5c5t4a(t)=2c2+6c3t+12c4t2+20c5t3(1)
    带入初始条件有:

x ( t s ) = c 0 + c 1 t s + c 2 t s 2 + c 3 t s 3 + c 4 t s 4 + c 5 t s 5 v ( t s ) = c 1 + 2 c 2 t s + 3 c 3 t s 2 + 4 c 4 t s 3 + 5 c 5 t s 4 a ( t s ) = 2 c 2 + 6 c 3 t s + 12 c 4 t s 2 + 20 c 5 t s 3 x ( t e ) = c 0 + c 1 t e + c 2 t e 2 + c 3 t e 3 + c 4 t e 4 + c 5 t e 5 v ( t e ) = c 1 + 2 c 2 t e + 3 c 3 t e 2 + 4 c 4 t e 3 + 5 c 5 t e 4 a ( t e ) = 2 c 2 + 6 c 3 t e + 12 c 4 t e 2 + 20 c 5 t e 3 (2) \begin{aligned} &x(t_s)=c_0+c_1t_s+c_2t_s^2+c_3t_s^3+c_4t_s^4+c_5t_s^5\\ &v(t_s)=c_1+2c_2t_s+3c_3t_s^2+4c_4t_s^3+5c_5t_s^4\\ &a(t_s)=2c_2+6c_3t_s+12c_4t_s^2+20c_5t_s^3\\ &x(t_e)=c_0+c_1t_e+c_2t_e^2+c_3t_e^3+c_4t_e^4+c_5t_e^5\\ &v(t_e)=c_1+2c_2t_e+3c_3t_e^2+4c_4t_e^3+5c_5t_e^4\\ &a(t_e)=2c_2+6c_3t_e+12c_4t_e^2+20c_5t_e^3 \end{aligned}\tag{2} x(ts)=c0+c1ts+c2ts2+c3ts3+c4ts4+c5ts5v(ts)=c1+2c2ts+3c3ts2+4c4ts3+5c5ts4a(ts)=2c2+6c3ts+12c4ts2+20c5ts3x(te)=c0+c1te+c2te2+c3te3+c4te4+c5te5v(te)=c1+2c2te+3c3te2+4c4te3+5c5te4a(te)=2c2+6c3te+12c4te2+20c5te3(2)
写成矩阵形式:
[ 1 t s t s 2 t s 3 t s 4 t s 5 1 t e t s 2 t s 3 t s 4 t s 5 0 1 2 t s 3 t s 2 4 t s 3 5 t s 4 0 1 2 t e 3 t e 2 4 t e 3 5 t e 4 0 0 2 6 t s 12 t s 2 20 t s 3 0 0 2 6 t e 12 t e 2 20 t e 3 ] [ c 0 c 1 c 2 c 3 c 4 c 5 ] = [ x s x e v s v e a s a e ] (3) \begin{bmatrix} 1 & t_s & t_s^2&t_s^3&t_s^4&t_s^5 \\ 1 & t_e & t_s^2&t_s^3&t_s^4&t_s^5 \\ 0 & 1 & 2ts&3t_s^2&4t_s^3&5t_s^4\\ 0&1&2t_e&3t_e^2&4t_e^3&5t_e^4\\ 0&0&2&6t_s&12t_s^2&20t_s^3\\ 0&0&2&6t_e&12t_e^2&20t_e^3\\ \end{bmatrix} \begin{bmatrix}\tag{3} c_0 \\ c_1 \\ c_2 \\ c_3\\ c_4\\ c_5 \end{bmatrix}= \begin{bmatrix} x_s \\ x_e \\ v_s \\ v_e\\ a_s\\ a_e \end{bmatrix} 110000tste1100ts2ts22ts2te22ts3ts33ts23te26ts6tets4ts44ts34te312ts212te2ts5ts55ts45te420ts320te3c0c1c2c3c4c5=xsxevsveasae(3)
记为 T C = P TC=P TC=P,则 C = T − 1 P C=T^{-1}P C=T1P

三、Matlab仿真与实现

% 五次多项式插补
close all
clear;
clc;

% 0-1
t0=0; x0=30; v0=30;a0=10;
t1=5; x1=60; v1=40;a1=13;
[x01,v01,a01]=fivetimes_plan(t0,x0,v0,a0,t1,x1,v1,a1);

% 1-2
t2=13; x2=80; v2=10;a2=13;
[x12,v12,a12]=fivetimes_plan(0,x1,v1,a1,t2-t1,x2,v2,a2);

% 2-3
t3=20; x3=10; v3=0;a3=23;
[x23,v23,a23]=fivetimes_plan(0,x2,v2,a2,t3-t2,x3,v3,a3);


x=[x01 x12 x23];
v=[v01 v12 v23];
a=[a01 a12 a23];

figure(1);
subplot(3,1,1);
plot(x,'r','LineWidth',1.2);
axis([ t0*100 t3*100 -inf inf]);
ylabel('position')

subplot(3,1,2);
plot(v,'g','LineWidth',1.2)
axis([ t0*100 t3*100 -inf inf]);
ylabel('velocity')

subplot(3,1,3);
plot(a,'b','LineWidth',1.2);
axis([ t0*100 t3*100 -inf inf]);
ylabel('acceleration')
xlabel('time')

function [x,v,a]=fivetimes_plan(ts,start_x,start_v,start_a,te,end_x,end_v,end_a)
    para=[start_x,end_x,start_v,end_v,start_a,end_a]';
    Tran=[1,ts,ts^2,ts^3,ts^4,ts^5;
          1,te,te^2,te^3,te^4,te^5
          0,1,2*ts,3*ts^2,4*ts^3,5*ts^4;
          0,1,2*te,3*te^2,4*te^3,5*te^4;
          0,0,2,6*ts,12*ts^2,20*ts^3
          0,0,2,6*te,12*te^2,20*te^3];
    C=(inv(Tran))*para;
    c0=C(1);
    c1=C(2);
    c2=C(3);
    c3=C(4);
    c4=C(5);
    c5=C(6);
    x=[];v=[];a=[];
    for i=ts:0.01:te
        t=i;
        x=[x c0+c1*t+c2*t^2+c3*t^3+c4*t^4+c5*t^5];
        v=[v c1+2*c2*t+3*c3*t^2+4*c4*t^3+5*c5*t^4];
        a=[a 2*c2+6*c3*t+12*c4*t^2+20*c5*t^3];
    end
end

在这里插入图片描述
可以看出,五次多项式确实没有加速度突变,符合开始的设想。无论是三次还是五次多项式插值速度曲线并没有匀速段,这种规划方式不适用于笛卡尔空间的规划,因为大多数工业应用如涂胶、焊接都要求有匀速段,为了拥有匀速段,就有了后边的梯形和S型速度规划。

;