運動學模型只是在幾何意義上描述了無人車的運動。實際情況中,無人車的運動受外界的因素(如:路面、坡度、空氣動力)影響較大。在高速動行時,這些外界擾動變得更加明顯。爲了構建更加精準的無人車模型,有必要考慮汽車的動力學特性。無人車的動力學模型可以拆分成橫向動力學模型與縱向動力學模型。橫向動力學建模從輪胎受力出發構建立無人車的橫向控制模型,縱向動力學建模考慮坡度、空氣動力學構建無人車的縱向控制模型。本篇主要介紹無人車橫向動力學模型的建立過程。關於無人車縱向動力學模型的構建請參照無人駕駛縱向控制研究。
阿克曼轉向模型的動力學分析
無人車動學習模型表徵的是受力與速度、加速度以及橫擺角之間的關係,如下圖所示。
{Fyfcosδ−Fxfsinδ+Fyr=m(v˙y+vxω)lf(Fyfcosδ−Fxfsinδ)−lrFyr=Izω˙
其中:
Fyf,Fyr:無人車前、後輪側向力(N);
Fxf,Fxr:無人車前、後輪縱向力(N);
lf,lr:無人車質心到前、後軸的距離(m);
m:無人車質量(kg);
vy:無人車橫向車速(m/s);
vx:無人車縱向車速(m/s);
ω:無人車橫擺角速度(deg/s);
Iz:無人車相對z軸的轉動慣量(kg.m2)
前後輪側向力可用簡化公式計算:
⎩⎨⎧Fyf=2cfαf=2cf(δ−arctan(vxvy+lfω))Fyr=2crαr=2crarctan(vxlrω−vy)
其中:
αf,αr:無人車前、後輪側偏角(rad);
cf,cr:無人車前、後輪綜合側偏剛度;
【重要假設】無人車的航向角度δ,前後輪側偏角αf,αr都較小時,上式可近似爲如下:
{Fyf+Fyr=m(v˙y+vxω)lfFyf−lrFyr=Izω˙
以及
⎩⎨⎧Fyf=2cfαf=2cf(δ−vxvy+lfω)Fyr=2crαr=2cr(vxlrω−vy)
將Fyf與Fyr代入近似後的模型,可得:
⎩⎨⎧2cf(δ−vxvy+lfω)+2cr(vxlrω−vy)=m(v˙y+vxω)2lfcf(δ−vxvy+lfω)−2lrcr(vxlrω−vy)=Izω˙
可得無人車二自由度模型如下:
X˙=AX+Bu
其中:
X=[y˙θ˙]
u=δ
A=[−mvx2Cf+2Cr−Izvx2lfCf−2lrCr−mvx2Cflf−2Crlr−vx−Izvx2lf2Cf+2lr2Cr]
B=[m2CfIz2lfCf]
寫在後面
再次強調:我們構建的一切模型都是爲了預測系統未來的狀態。構建的模型可以用於控制領域,也可以用於強化學習領域(強化學習與控制理論的共同特點是——反饋)。本人非控制專業,所以不不敢涉入太過底層的電機模型(電機驅動轉向執行機構,電機驅動油門、剎車以及檔位)。無人車橫向控制得到期望的方向盤轉角,這與無人車系統中的速度規劃模塊功能相似。本文中介紹的無人車橫向模型,獨立於縱向模型,也獨立於底層電機驅動轉向執行器的模型,相對來說算是一個比較簡潔的模型。實際應用中,也建議將底層電機控制與無人車橫向控制解耦,形成兩層上下級控制架構,因爲與電機模型合在一起的總模型非常複雜,在後續控制算法設計過程中,還是得對模型進行簡化,這樣可能損失了更多精度。
在後續博客中,我將介紹幾種經典的無人車橫向控制方法(也即軌跡跟蹤控制方法)。
以上