开发者说 | Apollo控制算法之汽车动力学模型
动力学主要研究作用于物体的力与物体运动的关系。
车辆动力学模型一般用于分析车辆的平顺性和车辆操纵的稳定性。
对于车来说,研究车辆动力学,主要是研究车辆轮胎及其相关部件的受力情况。
比如纵向速度控制,通过控制轮胎转速实现;
横向航向控制,通过控制轮胎转角实现。
正常情况下,车辆上的作用力沿着三个不同的轴分布:
纵轴上的力包括驱动力和制动力,以及滚动阻力和拖拽阻力作滚摆运动;
横轴上的力包括转向力、离心力和侧风力,汽车绕横轴作俯仰运动;
立轴上的力包括车辆上下振荡施加的力,汽车绕立轴作偏摆或转向运动。
无论是LQR或是MPC控制,都需要有车辆的模型作为基础。
本文由社区开发者——卜大鹏撰写,整理出Apollo控制算法中使用的车辆动力学模型的推导过程。
车辆动力学模型
以下,ENJOY
首先,根据牛顿第二定律结合车辆前后轮受力,有:
根据力矩平衡结合车辆前后轮受力和受力点到车辆重心距离,有:
上述两式中,汽车质量m、转动惯量Iz、前轴到重心距离lf和后轴到重心距离lr都是可测量的。
为了求解两等式,需要分别求得车辆横向加速度ay和前轮横向受力Fyf和后轮横向受力Fyr。
横向加速度可以分解为由横向位移产生的加速度和向心加速度。
y为横向位移,psi为航向角,Vx为纵向速度。这样横向加速度就分解为位移和航向角的表达式。
前轮横向受力可以近似为公式4,其中Caf为前轮侧偏刚度,delta为前轮转角,theta_vf为前轮侧偏角。
后轮横向受力可以近似为公式5,其中Car为后轮侧偏刚度,theta_vr为后轮侧偏角。
公式4和公式5可以理解为实测数据标定后得到近似公式。
在简化环境因素下,侧偏刚度可以由简化的轮胎模型求出,前轮转角为可获取量,只需想办法表示出前后轮的侧偏角。
至此,上文提到的各变量在车体上的示意图如下:
根据上图可知,tan(theta)等于车辆横向速度比纵向速度,而横向速度由车辆自身横向速度和绕重心转动速度组成。
在小角度转向假设下,有:
至此,把变化后的各变量表达式代入公式1和公式2,有:
设e1为横向偏差,e2为航向角偏差,可以得到如下关系。
在匀速假设下,上式可进一步推导出:
带入公式10和公式11可以得到两个偏差的表达式:
转换为状态空间的表达式:
这样就得到了在
小角度侧偏角
匀速
不考虑环境因素
假设下,车辆的动力学模型表达式。
令:
得到状态方程:
式中,前轮侧偏刚度Caf、后轮侧偏刚度Car、车身质量m、转动惯量Iz、前轮到重心距离lf、后轮到重心距离lr都是常量;
每个时刻的横向偏差e1、航向偏差e2、纵向速度Vx、前轮转角delta都是可测量量;
目标航向psi是可获取量。
这样每个运算周期通过传感器测得的数值更新测量量就可以用这个模型通过相应算法实现目标轨迹的跟踪了。
但因为需要使用计算机进行数值计算,推导截至到上面的连续模型还不够,还需要对上述模型进行离散化。
对于连续系统有:
令采样周期为T,t0=kT,t=(k+1)T,即考虑k到k+1时刻的状态响应,有:
考虑在采样周期内u不变,C为常数,有
对上式积分中做变量替换,令t=(k+1)T-tau,有
将上式与定常离散线性系统的状态方程
比较可知,要使两式对任意x(kT)和u(kT)成立,有
公式23到公式29即为连续状态空间到离散状态空间的精确离散化推导过程。为了便于后续计算,还需要对精确离散化进一步进行近似离散化,因为有
对上式分子分母同时做泰勒展开,取前两项,有
同样,对式23进行泰勒展开,取前一项,有
剩下的常数项,显然有
至此,得到了连续模型转换为后续算法可用的近似离散化模型
自Apollo平台开放已来,我们收到了大量开发者的咨询和反馈,越来越多开发者基于Apollo擦出了更多的火花,并愿意将自己的成果贡献出来,这充分体现了Apollo『贡献越多,获得越多』的开源精神。为此我们开设了『开发者说』板块,希望开发者们能够踊跃投稿,更好地为广大自动驾驶开发者营造一个共享交流的平台!
* 以上内容为开发者原创,不代表百度官方言论。
已获开发者授权,原文地址请戳阅读原文。
点击阅读原文,了解更多
◤