梯形速度分佈的軌跡規劃,從本質上來說,是一個分段函數的軌跡規劃,基本的方式是一個先加速,再勻速,再減速的三段函數的過程。當然,當間隔時間太短時,會出現分段函數只有加速和減速,無勻速的情況。或者因爲開始速度和結束速度不相等,出現加速和減速過程不對稱的情況。在梯形速度分佈中,都需要根據實際的狀況,分別的全面考慮所有的情況。
一. 固定加/減速時間和勻速速度的模式
初始速度爲v0 = 0, 結束速度爲v1 = 0;初始時間t0 = 0。
假設:加速時間、減速時間分別爲Ta、Td,勻速時速度爲vv。
1. 加速階段
加速時間區間爲[0, Ta],因爲加速度恆定,因此,軌跡曲線爲二次多項式,在此階段,位置、速度、加速度的表達式如下所示:
⎩⎪⎨⎪⎧q(t)=a0+a1t+a2t2q˙(t)=a1+2a2tq¨(t)=2a2
表達式中常量參數的公式如下所示:
⎩⎪⎪⎪⎨⎪⎪⎪⎧a0=q0a1=0a2=2Tavv
2. 勻速階段
勻速時間區間爲[Ta, t1−Ta],因爲速度恆定,加速度爲0,因此軌跡曲線爲一次多項式,在此階段,位置、速度、加速度的表達式如下所示:
⎩⎪⎨⎪⎧q(t)=b0+b1tq˙(t)=b1q¨(t)=0
表達式中常量參數的公式如下所示:
⎩⎨⎧b1=vvb0=q0−2vvTa
3. 減速階段
減速時間區間爲[t1−Ta, t1],因爲加速度恆定,因此,軌跡曲線爲二次多項式,在此階段,位置、速度、加速度的表達式如下所示:
⎩⎪⎨⎪⎧q(t)=c0+c1t+c2t2q˙(t)=c1+2c2tq¨(t)=2c2
表達式中常量參數的公式如下所示:
⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧c0=q1−2Tavvt12c1=Tavvt1c2=−2Tavv
根據以上公式,針對兩點之間的軌跡規劃,使用matlab實現的關節角度、關節速度、關節加速度曲線如下所示:
- q0 = 0, q1 = 30; t0 = 0, t1 = 4; Ta = 1, vv = 10
關於上面Ta和vv的值是怎麼確定的,如下推導過程:
當初始速度爲0時,在t = t0+Ta這個點上,加速Ta後得到的速度和開始勻速時的速度的值是相等的,由此有如下所示的等式:
aaTa=Tm−Taqm−qa
以上等式中字符的表達式如下所示:
⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧qa=q(t0+Ta)qm=2(q1+q0)=q0+2hTm=2(t1−t0)=2T
剛剛加速完畢的時刻點,可得到的等式如下所示:
qa=q0+21aaTa2
將以上等式、qm=2(q1+q0)、Tm=2(t1−t0)代入,可得以下等式:
aaTa2−aa(t1−t0)Ta+(q1−q0)=0
同時,因爲速度曲線的面積=q1−q0,由此可得等式:
vv=t1−t0−Taq1−q0=T−Tah
二. 預先指定加速度的模式
如果指定加速度aa爲已知值,那麼需要根據此加速度確定加速和減速所需要的時間。
Ta=2aaaa(t1−t0)−aa2(t1−t0)2−4aa(q1−q0)
由以上公式可以得到加速度範圍的表達式,如下所示:
aa⩾(t1−t0)24(q1−q0)
由以上表達式,可知,在此種模式下,可以得到最小加速度爲aa=T24h,此時,加速時間爲Ta=21(t1−t0)
三. 預先指定加速度和速度的模式
假設:aa=amax,vv=vmax
則可以得到如下等式:
⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧Ta=amaxvmax,加速時間vmax(T−Ta)=q1−q0=h,位移T=amaxvmaxhamax+vmax2,總時間
假設t0不等於0,因爲t1=t0+T,因此可以得到有加速、勻速、減速三個階段的通用表達式爲:
q(t)=⎩⎪⎪⎨⎪⎪⎧q0+21amax(t−t0)2,t0≤t≤t0+Taq0+amaxTa(t−t0−2Ta),t0+Ta≤t≤t1−Taq1−21amax(t1−t)2,t1−Ta≤t≤t1
如果要保證一定有勻速階段,那麼需要滿足如下限制:
h⩾amaxvmax2
如果不滿足以上限制,則可以得到如下等式:
⎩⎪⎪⎨⎪⎪⎧Ta=amaxh,加速時間T=2Ta,總時間vmax=amaxTa=amaxh=Tah,最大速度
因爲不滿足限制條件,此時沒有勻速階段,此時的通用表達式爲:
q(t)={q0+21amax(t−t0)2,t0≤t≤t0+Taq1−21amax(t1−t)2,t1−Ta≤t≤t1
通過以上推導可知,如果使用此種模式,從q0到q1的運動總時間T是通過給定的加速度和速度計算出來的。
以上三種模式,均需要根據已知的值確定加速、勻速、減速的階段,在確定過程中,可能在某個階段,不是完全按照加速、勻速、減速的方式進行,譬如,沒有勻速階段,直接加速然後就需要減速了。所有的這些情況,在以上三種模式的基本公式中可以計算得到。
更多文章,請關注公衆號: