天天看点

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      

继续阅读