马上注册,享受更多特权
您需要 登录 才可以下载或查看,没有帐号?立即注册 
x
本帖最后由 孙黎明 于 2022-1-24 23:25 编辑
一、简介 中型机的速度斜坡有四种方式:梯形、sin²、二次方、二次方平滑。加减速过程与设定加速度、设定加加速度参数有关,参数不同从而影响加减速性能。 首先声明,此文全部为个人根据trace跟踪曲线仿真建模计算出,涉及到高等数学的微积分和高中数学的三角函数。纯手工计算。
二、原理
微分和积分是互为反向的过程,此次建模的主要过程就是根据确定速度函数的幂和类型,根据最低次幂的函数和设定值积分还原速度函数表达式。 1.梯形
设定加速度有效,设定加加速度无效。 速度:V(t)=V0+V'(t)*t; 加速度:V'(t)=AccSet; 加加速度:V''(t)=0; 加速度恒定为设定值,加加速度恒等于0,速度以设定加速度值为斜率变化。 2.sin² 设定加速度有效,设定加加速度无效但不为0。 速度:V(t)=V0+Asin²(Bt)
加速度:V'(t)=ABsin(2Bt) 加加速度:V''(t)=2AB²cos(2Bt) 加速度V'(t)函数恒定,加加速度V''(t)是加速度V'(t)的导函数,即设定加加速度值不生效但为其导函数,可根据当前速度和设定速度求出常数A=(V0-Vset)/2,再根据设定加速度值A*B=AccSeet求出B 3.二次方 设定加速度有效,设定加加速度有效。 速度:V(t)=Ax²+B 加速度:V'(t)=2Ax 加加速度:V''(t)=2A 加加速度V''(t)为设定值JerkSet,根据加速度的方向变化为V''(t)=±JerkSet,加速度V'(t)以加加速度V''(t)为斜率进行变化。 需要注意的是,二次方为中心对称速度曲线,按照加速度曲线来看也就是分段对称曲线,加速度变化范围0->JerkSet,JerkSet->0。 4.二次方平滑 仿真时推算二次方平滑为六阶高次多项式的分段对称函数,是的六阶,求了五次导函数才为直线,过于复杂且不常用,本人放弃推算。
三、加减速的计算和验证
1.梯形
梯形的加减速时间最为简单,速度按照设定加速度值进行变化,即时间=速度的变化值/设定加速度。
梯形的加减速距离,按照速度曲线计算为直角梯形的面积,面积在几何意义上时则为积分,即速度积分=距离。 时间:Acctime= (Vset-V0)/AccSet; 距离:AccPos = (Vset+V0)*Acctime/2; 验证结果如图:


2.sin²
sin²函数其实可看作为cosx,高中数学的三角函数转换,sin²x=(1-cos2x)/2,简化来看就是cosx,cosx=sin(x+Π/2),整体来看其实就是sinx的函数。 速度V(t)=Asin²(Bt); 加速度V'(t)=ABsin(2Bt); 加加速度V''(t)=2AB²cos(2Bt); 可根据当前速度V0和目标速度Vset算出,A=(Vset-V0)/2,再根据AB=AccSet算出B,即可算出全部表达式,加加速度表达式与设定加加速度值无关。 加速过程中各个函数均对称,即加速过程为正弦函数的半个周期,即加速时间为半个周期,根据高中数学的三角函数周期可知,周期T=2Π/B。加速过程中走过的距离为此区间内的速度的面积,中心对称的正限面积为梯形的面积。 时间:Acctime= T / 2 = 2Π / B / 2; 距离:AccPos = (Vset+V0)*Acctime/2; 验证结果如图:
3.二次方 二次方简单说就是速度Ax²,加速度Ax,加加速度A(常数)。但是同时,二次方相对计算较为繁琐,繁琐的地方在于设定加速度值过大,或者设定加速度过小。 ①设定加速度值过大,实际加速过程可能会无法到达,所以存在理论计算的最大加速度。举例设定速度为1,设定加速度1000,设定加加速度1000,若加速度从0增加至1000会导致速度超过设定速度1,所以加速度设定不合理会出现无法到达的情况。 ②设定加速度值过大,实际加速度到达后,加速度无法继续增大而出现的加速度恒定,即匀加速段。举例设定速度为100,设定加速度1,设定加加速度1,加速度从0增大至1后保持恒定,中间出现匀加速段。 速度:V(t)=Ax²+B 加速度:V'(t)=2Ax 加加速度:V''(t)=2A
二次方表达式简单,但是分类较多,计算结果如下:
(1)设定加速度值可到达,无匀加速段:速度10,加速度100,加加速度1000
(2)设定加速度值不可到达:速度10,加速度4000(实际加速度值300),加加速度1000
(3)设定加速度到达,存在匀速段:速度100,加速度200,加加速度500
4.二次方平滑 不讨论,但是还是展示下其各阶导函数的曲线,我个人表示看呆了,六阶高次多项式。
四、总结 速度斜坡的加减速时间、距离的计算过程其实就是利用加速度函数进行面积计算,只要算出了加速度的实际值,不用计算函数表达式就可以计算出时间和距离。因为速度函数对称,几何的积分为面积,所以较多的积分运算可用梯形或三角形面积计算公式替代,所以也算是取巧的计算。 其中二次方的计算涉及到匀加速段和加速值无法到达设定值的情况,所以理论加减速时间可能出现失控情况。如果对加速时间有较高的要求,可采取边界情况,即加速度和加加速度的设定保证无匀速段、刚好能够到达设定速度,那就需要将加速时间代入函数中,反算加速度和加加速度值。反算加速度和加加速度在之前有讲过, AccSet=Vset/(Acctime/2)=2Vset/Acctime,j=AccSet/(Acctime/2)=4v/Acctime² 这方面感兴趣的可以去看一下我之前的帖子《分享:梯形、二次方速度曲线的加减速时间计算》。
另外,部分代码放到评论区,通过这个帖子希望能让大家复习下数学知识,呼吁大家多学多用,后续还会再分享一些三次曲线和五次曲线的一些计算问题。
|