天天看點

matlab 七段式軌迹 S型速度規劃

1、内容簡介

609-可以交流、咨詢、答疑

2、内容說明

S形速度規劃相對于梯形速度規劃其速度曲線會更加平滑,電機運作會更加平穩。常見的S曲線包括7段式加速度曲線,這種曲線計算量大, 而且規劃起來困難。一種簡單的方法是采用Sigmoid對稱函數加減速曲線規劃法。典型的Sigmoid函數為: 其值域為(0,1),函數關于橫坐标左右對稱,關于點(0,0.5)中心對稱。其函數圖形為: 如要将此曲線應用在步進電機的加、減速過程中,需要将方程在XY坐标系進行平移,同時對曲線進行拉升變化。

3、仿真分析

%% S曲線規劃
 % 邊界條件
 q0 = 0; q1 = 200; 
 v0 = 0; v1 = 0;
 vmax = 10; amax = 2; jmax = 1;
 sigma = sign(q1 - q0);
 % 得到規劃參數Ta, Tv, Td, Tj1, Tj2, q0, q1, v0, v1, vlim, amax, amin, alima, alimd, jmax, jmin
 para = STrajectoryPara(q0, q1, v0, v1, vmax, amax, jmax)
 i = 1; 
 T = para(1) + para(2) + para(3)
 for t = 0: 0.001: T
    time(i) = 0.001*i;
    q(i) = S_position(t, para(1), para(2), para(3), para(4), para(5), para(6), para(7), para(8), para(9), para(10), para(11), para(12), para(13), para(14), para(15), para(16));
    qd(i) = S_velocity(t, para(1), para(2), para(3), para(4), para(5), para(6), para(7), para(8), para(9), para(10), para(11), para(12), para(13), para(14), para(15), para(16));
    qdd(i) = S_acceleration(t, para(1), para(2), para(3), para(4), para(5), para(6), para(7), para(8), para(9), para(10), para(11), para(12), para(13), para(14), para(15), para(16));
    qddd(i) = S_jerk(t, para(1), para(2), para(3), para(4), para(5), para(6), para(7), para(8), para(9), para(10), para(11), para(12), para(13), para(14), para(15), para(16));
    i = i + 1;
 end
 q = sigma*q;
 qd = sigma*qd;
 qdd = sigma*qdd;
 qddd = sigma*qddd; figure(1)
 subplot(4, 1, 1)
 plot(time, q, 'r', 'LineWidth', 1.5)
 grid on
 subplot(4, 1, 2)
 plot(time, qd, 'b', 'LineWidth', 1.5)
 grid on
 subplot(4, 1, 3)
 plot(time, qdd, 'g', 'LineWidth', 1.5)
 grid on
 subplot(4, 1, 4)
 plot(time, qddd, 'LineWidth', 1.5)
 grid on      

繼續閱讀