运动学模型只是在几何意义上描述了无人车的运动。实际情况中,无人车的运动受外界的因素(如:侧滑)影响较大。在高速动行时,这些外界扰动变得更加明显。为了构建更加精准的无人车模型,有必要考虑汽车的动力学特性。本篇主要介绍无人车动力学模型的建立过程
阿克曼转向模型的动力学分析
无人车动学习模型表征的是受力与速度、加速度以及横摆角之间的关系,如下图所示。
{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=2[−mvxCf+Cr−IzvxlfCf−lrCrmvxCflf−Crlr−vx−Izvxlf2Cf+lr2Cr]
B=2[mCfIzlfCf]
结语
无人车主要的几个执行机构为转向机构(方向盘)、刹车、油门与档位。其中转向机构主要控制无人车的航向角,刹车、油门与档位则控制无人车的速度。
无人车的期望速度一般由速度规划模块得到。在已知无人车速度的前提下,只需要得到当前无人车的方向盘转角,我们便可以估计下一时刻无人车的航向角,从而知道无人车在世界坐标系中X轴与Y轴方向的分速度,进而估计无人车在世界坐标系中的位置。注意:x,y,θ就是无人车三个主要的状态。
以上建模过程只对无人车的横向动力学进行建模。在速度已知的条件下,可以利用以上模型估计无人车的横向位移与航向角变化。故本文介绍的动力学模型又被称为无人车横向控制模型。被广泛应用于无人车的横向控制。
此处多说一句:本文建模将无人车横向模型与纵向模型拆开,有一方面原因是:如果在X中加入纵向速度vx,则得不到以上漂亮的线性模型,纵向速度vx在模型中作为一个已知量存在。无人车在纵向维持在速度层面就行,然而在横向则需要维持在位移层。这多出来的一层则就需要无人车系统的横向控制(也即轨迹跟踪控制)。
也许有人会好奇,无人车有横向控制,肯定也有纵向控制吧。那是肯定的。无人车的纵向控制主要是控制速度,它与控制方向盘达到期望转角的控制器同属于较底层的电机控制。所以无人车的横向控制的地位与速度规划模块同属于一个级别。无人车横向控制能够得到的是方向盘的期望转向角,该期望值输出给底层电机控制器,进而输出指令驱动电机控制转向机构。
比较讲究的无人车系统,也会在速度规划与底层电机控制之间加一个速度控制,但是增加的速度控制只是为了让无人车更加平稳的从当前速度过渡到规划器规划出的期望速度,所以只需要一个比例控制就足够,也没有什么值得一说的地方,并且这个比例控制在理论上是可以与底层电机控制融为一体的。
无人车系统中也有一些场景中需要位移层面的纵向控制,例如:定点停车。但是,怎么说呢,相对横向控制来说,无人车的纵向控制太过容易,有时候在规划层就可以直接做了。一般没有人专门把无人车的纵向控制作为研究对象。
阿克曼轮(无人车为代表)与麦克阿姆轮(以小型移动机器人为代表)的区别就是,阿克曼轮的横向控制比能够随意左右移动的基于麦克阿姆轮机器人系统难太多。但是有意思的是,为什么马路上的汽车为什么采用阿克曼转向轮,而不是更加灵活的麦克阿姆轮?现在主流的无人车系统又为什么继续采用阿克曼轮,而不采用更加容易控制的麦克阿姆轮呢?以上两个问题欢迎大家留言发表自己的看法,可以交流哦。【虽然,某人心中在早些时候已经得到信服的答案=v=】
在后续博客中,我将介绍各种无人车横向控制方法(也即轨迹跟踪控制方法)。
以上