首页 > 编程知识 正文

求线段中点轨迹,双曲线中点轨迹方程

时间:2023-05-05 00:54:18 阅读:223250 作者:3477

一. 简介

       点到点的轨迹规划算法可以理解为在规定的时间T内,从已知起始点运动到末尾点的方法。这里引入中间变量s(t),它是时间的函数,定义域为[0,T],值域为[0,1],s与的关系见下面公式。这个公式不难理解,当s=0时,;当s=1时,。

对t求导是速度,即:

 

 

对t求二阶导是加速度,即

 所以

由于和是已知的,所以速度和加速度随时间的变化取决于,这里的s(t)有很多种方法,比较常用的是三次函数,五次函数,梯形曲线,S曲线等。这里对这几种曲线的方法和优缺点进行一下介绍。

二. 三次曲线

     三次曲线公式为

,

根据起始和终止时刻的约束条件即

这四个约束条件可以分别求出

所以

 

分别画出随时间变化的曲线。细心的朋友可以看出在在初始和末了时刻加速度是不连续的,会有冲击,这也是三次曲线的缺点。

三. 五次曲线

 

五次曲线公式为

根据起始和终止时刻的约束条件即

这六个约束条件可以分别求出

所以

 

分别画出随时间变化的曲线。从图中可以看出加速度始末时刻页是连续的,消除了三次曲线始末时刻有冲击的缺点。

四. 梯形曲线

     梯形曲线在电机控制中经常用到,因为的曲线形状为梯形,所以取名为梯形曲线,见下图。

s为分段函数,即

这里的v,a,T是有约束条件的,即

 

当指定v,a则, ,且需要满足 

当指定v,T则, ,且需要满足 

当指定a,T则, ,且需要满足 

从曲线中可以看出在四个时刻加速度不连续,存在冲击,为了改善这个问题有人提出S曲线。

五. S曲线

    S曲线见下图,

它的定义为:

    第一段:以恒定的痉挛J(加速度的导数)使加速度从0增加到预先设定的a;

    第二段:以恒定的加速度加速;

    第三段:已恒定的负的痉挛J(加速度的导数)使加速度从预先设定的a减到0;

    第四段:以恒定的速度v匀速运动;

    第五段:已恒定的负的痉挛J(加速度的导数)使加速度从0减到预先设定的-a;

    第六段:以恒定的加速度-a减速;

    第七段:以恒定的痉挛J(加速度的导数)使加速度从预先设定的-a增加到0;

在已知最大加速度a, 最大速度v和运行时间T时, 可由以下公式求得s曲线:

   

            

     

     

     

     

     

     

和梯形曲线一样, 也是有约束的:

解得:

      

        我也写了Matlab程序,验证了推导是正确的,且程序中如果输入的a,v,T满足上述不等式关系,则可以运算;如果不满足上述不等式关系,通过算法可以自动调整的值,使其得到可用解,这种算法也叫自适应S曲线。

       程序代码见下面链接:

    https://download.csdn.net/download/fengyu19930920/10639635

        例子:

 

 

 

 

 

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。