运动学模型只是在几何意义上描述了无人车的运动。实际情况中,无人车的运动受外界的因素(如:路面、坡度、空气动力)影响较大。在高速动行时,这些外界扰动变得更加明显。为了构建更加精准的无人车模型,有必要考虑汽车的动力学特性。无人车的动力学模型可以拆分成横向动力学模型与纵向动力学模型。横向动力学建模从轮胎受力出发构建立无人车的横向控制模型,纵向动力学建模考虑坡度、空气动力学构建无人车的纵向控制模型。本篇主要介绍无人车横向动力学模型的建立过程。关于无人车纵向动力学模型的构建请参照无人驾驶纵向控制研究。
无人车动学习模型表征的是受力与速度、加速度以及横摆角之间的关系,如下图所示。
{ F y f cos δ − F x f sin δ + F y r = m ( v ˙ y + v x ω ) l f ( F y f cos δ − F x f sin δ ) − l r F y r = I z ω ˙ \left\{\begin{array} {l}{F_{y f} \cos \delta-F_{x f} \sin \delta+F_{y r}=m\left(\dot{v}_{y}+v_{x} \omega\right)} \\ {l_{f}\left(F_{y f} \cos \delta-F_{x f} \sin \delta\right)-l_{r} F_{y r}=I_{z} \dot{\omega}} \end{array}\right. {Fyfcosδ−Fxfsinδ+Fyr=m(v˙y+vxω)lf(Fyfcosδ−Fxfsinδ)−lrFyr=Izω˙
其中:
F y f F_{yf} Fyf, F y r F_{yr} Fyr:无人车前、后轮侧向力( N N N);
F x f F_{xf} Fxf, F x r F_{xr} Fxr:无人车前、后轮纵向力( N N N);
l f l_f lf, l r l_r lr:无人车质心到前、后轴的距离( m m m);
m m m:无人车质量(kg);
v y v_y vy:无人车横向车速(m/s);
v x v_x vx:无人车纵向车速(m/s);
ω \omega ω:无人车横摆角速度(deg/s);
I z I_z Iz:无人车相对 z z z轴的转动惯量( k g . m 2 kg.m^2 kg.m2)
前后轮侧向力可用简化公式计算:
{ F y f = 2 c f α f = 2 c f ( δ − arctan ( v y + l f ω v x ) ) F y r = 2 c r α r = 2 c r arctan ( l r ω − v y v x ) \left\{\begin{array}{l}{F_{y f}=2c_{f} \alpha_{f}=2c_{f} (\delta-\arctan \left(\frac{v_{y}+l_{f} \omega}{v_{x}}\right)}) \\ {F_{y r}=2c_{r} \alpha_{r}=2c_{r} \arctan \left(\frac{l_{r} \omega-v_{y}}{v_{x}}\right)}\end{array}\right. ⎩⎨⎧Fyf=2cfαf=2cf(δ−arctan(vxvy+lfω))Fyr=2crαr=2crarctan(vxlrω−vy)
其中:
α f \alpha_f αf, α r \alpha_r αr:无人车前、后轮侧偏角(rad);
c f c_f cf, c r c_r cr:无人车前、后轮综合侧偏刚度;
【重要假设】无人车的航向角度 δ \delta δ,前后轮侧偏角 α f , α r \alpha_f,\alpha_r αf,αr都较小时,上式可近似为如下:
{ F y f + F y r = m ( v ˙ y + v x ω ) l f F y f − l r F y r = I z ω ˙ \left\{\begin{array} {l}{F_{y f} +F_{y r}=m\left(\dot{v}_{y}+v_{x} \omega\right)} \\ {l_{f}F_{y f}-l_{r} F_{y r}=I_{z} \dot{\omega}} \end{array}\right. {Fyf+Fyr=m(v˙y+vxω)lfFyf−lrFyr=Izω˙
以及
{ F y f = 2 c f α f = 2 c f ( δ − v y + l f ω v x ) F y r = 2 c r α r = 2 c r ( l r ω − v y v x ) \left\{\begin{array}{l}{F_{y f}=2c_{f} \alpha_{f}=2c_{f} \left(\delta-\frac{v_{y}+l_{f} \omega}{v_{x}}\right)} \\ {F_{y r}=2c_{r} \alpha_{r}=2c_{r} \left(\frac{l_{r} \omega-v_{y}}{v_{x}}\right)}\end{array}\right. ⎩⎨⎧Fyf=2cfαf=2cf(δ−vxvy+lfω)Fyr=2crαr=2cr(vxlrω−vy)
将 F y f F_{yf} Fyf与 F y r F_{yr} Fyr代入近似后的模型,可得:
{ 2 c f ( δ − v y + l f ω v x ) + 2 c r ( l r ω − v y v x ) = m ( v ˙ y + v x ω ) 2 l f c f ( δ − v y + l f ω v x ) − 2 l r c r ( l r ω − v y v x ) = I z ω ˙ \left\{\begin{array} {l}{2c_{f} \left(\delta-\frac{v_{y}+l_{f} \omega}{v_{x}}\right) +2c_{r} \left(\frac{l_{r} \omega-v_{y}}{v_{x}}\right)=m\left(\dot{v}_{y}+v_{x} \omega\right)} \\ {2l_{f}c_{f} \left(\delta-\frac{v_{y}+l_{f} \omega}{v_{x}}\right)-2l_{r} c_{r} \left(\frac{l_{r} \omega-v_{y}}{v_{x}}\right)=I_{z} \dot{\omega}} \end{array}\right. ⎩⎨⎧2cf(δ−vxvy+lfω)+2cr(vxlrω−vy)=m(v˙y+vxω)2lfcf(δ−vxvy+lfω)−2lrcr(vxlrω−vy)=Izω˙
可得无人车二自由度模型如下:
X ˙ = A X + B u \dot{X}=A X+Bu X˙=AX+Bu
其中:
X = [ y ˙ θ ˙ ] X=\left[\begin{array}{c}\dot{y} \\ \dot{\theta}\end{array}\right] X=[y˙θ˙]
u = δ u=\delta u=δ
A = [ − 2 C f + 2 C r m v x − 2 C f l f − 2 C r l r m v x − v x − 2 l f C f − 2 l r C r I z v x − 2 l f 2 C f + 2 l r 2 C r I z v x ] A=\left[\begin{array}{cc}{-\frac{2C_{f}+2C_{r}}{m v_x}} & {-\frac{2C_{f} l_{f}-2C_{r} l_{r}}{m v_x}-v_x} \\ {-\frac{2l_{f} C_{f}-2l_{r} C_{r}}{I_{z} v_x}} & {-\frac{2l_{f}^{2} C_{f}+2l_{r}^{2} C_{r}}{I_{z} v_x}}\end{array}\right] A=[−mvx2Cf+2Cr−Izvx2lfCf−2lrCr−mvx2Cflf−2Crlr−vx−Izvx2lf2Cf+2lr2Cr]
B = [ 2 C f m 2 l f C f I z ] B=\left[\begin{array}{c}{\frac{2C_{f}}{m}} \\ {\frac{2l_{f} C_{f}}{I_{z}}}\end{array}\right] B=[m2CfIz2lfCf]
再次强调:我们构建的一切模型都是为了预测系统未来的状态。构建的模型可以用于控制领域,也可以用于强化学习领域(强化学习与控制理论的共同特点是——反馈)。本人非控制专业,所以不不敢涉入太过底层的电机模型(电机驱动转向执行机构,电机驱动油门、刹车以及档位)。无人车横向控制得到期望的方向盘转角,这与无人车系统中的速度规划模块功能相似。本文中介绍的无人车横向模型,独立于纵向模型,也独立于底层电机驱动转向执行器的模型,相对来说算是一个比较简洁的模型。实际应用中,也建议将底层电机控制与无人车横向控制解耦,形成两层上下级控制架构,因为与电机模型合在一起的总模型非常复杂,在后续控制算法设计过程中,还是得对模型进行简化,这样可能损失了更多精度。
在后续博客中,我将介绍几种经典的无人车横向控制方法(也即轨迹跟踪控制方法)。
以上