【自动驾驶】车辆横向控制模型——动力学模型

目录

一、运动学模型的局限性

1.忽略质心侧偏角

2.忽略轮胎特性

二、二自由度车辆动力学模型

1.基本假设

2.轮胎侧偏特性

3.动力学方程推导

三、动力学模型中的参数测量

1.质心估算

2.转动惯量

3.侧偏刚度估计


一、运动学模型的局限性

1.忽略质心侧偏角

运动学方程的前提是低速条件,在低速条件下认为车不会发生侧向滑动,即车不会漂移,所以认为                                                           v_y \approx 0

根据定义,质心侧偏角:

                                                        \beta=\arctan \frac{v_y}{v_x}=0

而在高速情况下,质心侧偏角不能被忽略,因为质心侧偏角可以反映车辆的姿态变化,过大或者过小都可能导致车辆失去稳定性,通过监控质心侧偏角,可以提高车辆在转弯时的稳定性,合适的侧偏角可以使车辆更容易控制,提高驾驶员对车辆的操控性和响应度。

2.忽略轮胎特性

在高速行驶条件下,车辆的运动学模型可能不够准确,最主要的原因是没有考虑到轮胎特性。在高速情况下,不能把轮胎看成完全刚性的轮胎,因为在低速情况下轮胎变形不大,可以近似为钢铁轮胎,而高速情况下轮胎变形比较大,所以会有很大误差。此时,需要分析车辆的动力学模型,尤其是轮胎的受力平衡,以更精确地捕捉车辆的运动关系。


二、二自由度车辆动力学模型

1.基本假设

  1. 纵向速度保持恒定。
  2. 左右车轴合并为单一车轮(即自行车模型)。
  3. 忽略悬挂运动、道路倾斜以及空气动力学影响。
  4. 纵向与横向运动解耦。

2.轮胎侧偏特性

轮胎变形在汽车领域中的专门术语叫轮胎的侧偏特性,看下面的轮胎三视图:


  当轮胎装在车上时,地面给轮胎一个力F,车也会给轮胎一个反作用力 F',但是轮胎相对钢铁来说比较软,所以受到力会变形成这样:


  它不是严格意义上的圆柱体,因为变形等效成圆台。

为什么圆柱有了这样的变形,就会等效成一个圆台呢?

圆台转 180 °,也就是前进 180 °,它还是这样:


  这就符合轮胎的特性,轮胎转 180 °还是会受到这样的侧压力。

但是变成圆台有一个很麻烦的事情,圆台不能走直线,只能走圆弧,会导致一个什么样的一个结果呢?

看下面的轮胎俯视图:


  本来轮胎按照v的方向直线前进, 但由于侧向力的作用,它不是圆柱,变成圆台了,所以实际上轮胎按照红色箭头方向走,存在一个侧偏角\alpha,即轮胎实际速度 v 和轮胎横截面之间的夹角。

  定义一个新的物理量:侧偏刚度C ,反映轮胎的软硬程度。侧偏刚度乘以侧偏角等于侧向力:
                                F=C\alpha
  力越大,轮胎变形越厉害,圆台就越斜,侧偏角也就越大,力除以侧偏角定义为侧偏刚度。

就像弹簧一样,弹簧的力越大,它的位移也就越大,力除以位移定义为弹簧刚度,那么对于轮胎也一样。

  注意,侧偏刚度一定是负数,因为坐标系都是右手系,看下面建立的右手系俯视图:


  侧向力F指向y 轴负方向,所以负的侧向力会导致正的侧偏角。

注意:在《汽车理论》中,采用的是右手坐标系,轮胎侧偏刚度是一个负数,所以一个正向的侧偏力会导致轮胎负的侧偏角。

而在百度Apollo代码中,采用了左手坐标系,定义轮胎的侧偏刚度是正值,导致同一侧偏角在右手系中为负值,在左手系中成了正值,于是正的侧偏角x正的侧偏刚度=正的侧向力。这样结果又变成一样了。

   一般通过做轮胎实验得到侧偏刚度,侧偏刚度是一个比较难以估计准的参数,实际上就是把轮胎等效于一个特殊的弹簧,认为侧偏角和力呈线性关系,但实际上因为轮胎是橡胶,并不是理想弹簧,所以在比较极限的工况下,侧向力和侧偏角并不成正比例关系。而且更重要的一点是侧偏刚度和轮胎的垂向力息息相关。但是在比较平缓的工况,可以认为侧向力和侧偏角是线性关系,并且侧偏刚度是常数。

很多文章会把侧向力和侧偏力这两个概念搞混,这里我来强调一下:

图中:

  • F_Y:侧偏力,地面作用于车轮的力,作用点在轮胎和地面接触处
  • F_y :侧向力,车身作用于车轮的力,作用在车轮的中心

两者大小相等,平行但不共线

 如果在A_0点列力矩方程的话,可以得到F_y会对A_0点产生一个向左的力矩,这也是为什么轮胎会侧偏的原因之一。

侧偏力与侧偏角的关系如下图所示。可以发现,在侧偏角比较小的情况下,几乎是线性关系,当达到一定侧偏角以后,即接近于饱和。

3.动力学方程推导

由于车身坐标系不是惯性系,沿车身y轴的加速度是惯性加速度。那么有两个因素影响它,分别是沿着y轴的运动加速度,也就是我们的\dot{v}_y。另外一个就是我们这个向心加速度。我们可以把车看成是在绕着圆心O在做一个旋转的运动。假设我们的这个O到质心的半径是R那么这部分向心加速度就等于\frac{v_x^2}{R}

a_y=\left(\frac{\mathrm{d}^2 y}{\mathrm{~d} t^2}\right)_{\mathrm{}}=\dot{v}_y+\frac{v_x^2}{R}=\dot{v}_y+v_x \dot{\psi}

另一种解释:

车身y轴受力平衡:

\sum F_y=\left(F_{y f} \cos (\delta)-F_{x f} \sin (\delta)\right)+F_{y_{\Gamma}}=m a_y=m\left(\dot{v}_y+v_x \dot{\psi}\right)

质心力矩平衡:

\sum M=\ell_f\left(F_{y f} \cos (\delta)-F_{x f} \sin (\delta)\right)-\ell_r F_{y r}=I_z \ddot{\psi}

\psi为偏航角,即车身与大地坐标系x轴夹角,在后面我们用r来表示。

再把侧向力写成侧偏刚度乘以侧偏角的形式(在这里认为侧偏角是正的):

F_{y f}= c_f \alpha_f= c_f\left(\delta-\theta_{v f}\right)

F_{y r}= c_r \alpha_r= c_r\left(-\theta_{v r}\right)

其中

  • \delta:前轮转角
  • \theta_{v f}:前轮速度与车身夹角
  • \theta_{v r}:后轮速度与车身夹角

现在我们来计算\theta_{v f}\theta_{v r}

分别把前后轮的速度移到质心处,由刚体旋转运动+平移运动速度,及速度投影定理可得

刚体旋转运动+平移运动速度公式推导(一) - 知乎

v_{f y}-v_y=r \cdot l_f

v_{r y}-v_y=r \cdot l_r

带入到前后轮转角可得:

\theta_{v f}=\tan ^{-1}\left(\frac{v_{f y}}{v_{f x}}\right)=\tan ^{-1}\left(\frac{v_y+l_f r}{v_x}\right)

\theta_{v r}=\tan ^{-1}\left(\frac{v_{r y}}{v_{r x}}\right)=\tan ^{-1}\left(\frac{v_y-l_r r}{v_x}\right)

侧偏角:

\alpha_f=\delta-\tan ^{-1}\left(\frac{v_y+\ell_f r}{v_x}\right)

\alpha_r=-\tan ^{-1}\left(\frac{v_y-\ell_r r}{v_x}\right)

侧偏力:

F_{y f}=\mathrm{c}_f \alpha_f=\mathrm{c}_f\left[\delta-\tan ^{-1}\left(\frac{v_y+\ell_f r}{v_x}\right)\right]

F_{y r}=c_r \alpha_r=-c_r \tan ^{-1}\left(\frac{v_y-\ell_r r}{v_x}\right)

代入之前受力平衡和力矩平衡式子:

\dot{v}_y=\frac{c_f\left[\delta-\tan ^{-1}\left(\frac{v_y+\ell_f r}{v_x}\right)\right] \cos (\delta)-c_r \tan ^{-1}\left(\frac{v_y-\ell_r r}{v_x}\right)-F_{x f} \sin (\delta)}{m}-v_x r

\dot{r}=\frac{\ell_f c_f\left[\delta-\tan ^{-1}\left(\frac{v_y+\ell_f r}{v_x}\right)\right] \cos (\delta)+\ell_r c_r \tan ^{-1}\left(\frac{v_y-\ell_r r}{v_x}\right)-l_f F_{x f} \sin (\delta)}{I_z}

由于在高速情况下,前轮转角很小,所以做出如下假设:

\left\{\begin{array}{c} \cos (\delta) \approx 1 \\ \sin (\delta) \approx 0 \\ \tan ^{-1}(\theta) \approx \theta \end{array}\right.

化简可得:

\dot{v}_y=\frac{-c_f v_y-c_f \ell_f r}{m v_x}+\frac{c_f \delta}{m}+\frac{-c_r v_y+c_r \ell_r r}{m v_x}-v_x r

\dot{r}=\frac{-\ell_f c_f v_y-\ell_f^2 c_f r}{I_z v_x}+\frac{\ell_f c_f \delta}{I_z}+\frac{\ell_r c_r v_y-\ell_r^2 c_r r}{I_z v_x}

有人可能会觉得这种近似真的可以接受吗?

一般开车时:

转直角弯时,转弯半径为8-10 m
变道时,转弯半径为 20-30 m

可以用\tan \delta=\frac{L}{R}来验证,车的轴距一般都是3m,我们把转弯半径为10m30m分别代入,可以得到,\cos \delta \approx 0.96\cos \delta \approx 0.99,可以接受。

用状态\mathrm{X}=\left[\begin{array}{c} v_y \\ r \end{array}\right]改写成状态空间方程

\dot{v}_y=\frac{-\left(c_f+c_r\right)}{m v_x} v_y+\left[\frac{\left(l_r c_r-l_f c_f\right)}{m v_x}-v_x\right] r+\frac{c_f}{m} \delta

\dot{r}=\frac{l_r c_r-l_f c_f}{I_z v_x} v_y+\frac{-\left(\ell_f^2 c_f+\ell_r^2 c_r\right)}{I_z v_x} r+\frac{l_f c_f}{I_z} \delta

\left[\begin{array}{c} v_y \\ \dot{r} \end{array}\right]=\left[\begin{array}{cc} \frac{-\left(c_f+c_r\right)}{m v_x} & \frac{\left(l_r c_r-l_f c_f\right)}{m v_x}-v_x \\ \frac{l_r c_r-l_f c_f}{I_z v_x} & \frac{-\left(\ell_f^2 c_f+\ell_r^2 c_r\right)}{I_z v_x} \end{array}\right]\left[\begin{array}{c} v_y \\ r \end{array}\right]+\left[\begin{array}{c} \frac{c_f}{m} \\ \frac{l_f c_f}{I_z} \end{array}\right] \delta

另一种形式:

X=\left[\begin{array}{l} y \\ \dot{y} \\ \psi \\ \dot{\psi} \end{array}\right],\dot{X}=A X+B \delta

\frac{d}{d t}\left[\begin{array}{c} y \\ \dot{y} \\ \psi \\ \dot{\psi} \end{array}\right]=\left[\begin{array}{cccc} 0 & 1 & 0 & 0 \\ 0 & \frac{-\left(c_f+c_r\right)}{m v_x} & 0 & \frac{\left(l_r c_r-l_f c_f\right)}{m v_x}-v_x \\ 0 & 0 & 0 & 1 \\ 0 & \frac{l_r c_r-l_f c_f}{I_z v_x} & 0 & \frac{-\left(\ell_f^2 c_f+\ell_r^2 c_r\right)}{I_z v_x} \end{array}\right]\left[\begin{array}{c} y \\ \dot{y} \\ \psi \\ \dot{\psi} \end{array}\right]+\left[\begin{array}{c} 0 \\ \frac{c_f}{m} \\ 0 \\ \frac{l_f c_f}{I_z} \end{array}\right] \delta

      本博客可能与其他博主推导的状态方程不一样,差别在以下两点:

1、侧偏刚度相差两倍
  本篇博客只考虑了两个轮子,虽然是自行车模型,但实际的车辆并不是真的自行车,所以每个侧偏刚度\alpha都要乘以 2 ,相当于两个轮子合并在一起的自行车模型。

2、侧偏刚度和侧偏角相差负号
  除此之外其他都一样,这是为什么呢?一般的车辆工程的关于车辆动力学知识都认为侧偏刚度是负的,在汽车理论里就明确的写出了侧偏刚度永远是负的。
  阿波罗的代码或者在《车辆动力学及控制》这本书里,认为侧偏刚度是正的,所以相差一个负号,其实无论正和负,得到的结果都一样。


三、动力学模型中的参数测量

与之前的模型不同,动态自行车模型 中的某些参数不易直接测量。为了获得合理的估计,可以使用一些常见的工具,像是通过四个秤(每个车轮下)来估算。这样的方法能帮助确定重要参数,如车辆的 质心 和 转动惯量。

1.质心估算

        \left\{\begin{array}{l} \ell_f=L\left(1-\frac{m_f}{m}\right) \\ \ell_r=L\left(1-\frac{m_r}{m}\right) \end{array}\right.
        \begin{aligned} & m=m_{f r}+m_{f l}+m_{r r}+m_{r l} \\ & m_f=m_{f r}+m_{f l} \\ & m_r=m_{r r}+m_{r l} \end{aligned}

其中

  • m_f ,m_r:分别是前轴和后轴的总质量。
  • m_{f r}, m_{f l}, m_{r r}, m_{r l}:分别是右前轮、左前轮、右后轮、左后轮的质量。

2.转动惯量

车辆的转动惯量 I_z​ 可以通过将车辆视为由两个点质量连接起来的简化模型来近似。公式为:

                I_Z=m_f \ell_f^2+m_r \ell_r^2

3.侧偏刚度估计

对于某辆特定的车,如果我们不和车厂合作,轮胎侧偏刚度那幅图其实是很难拿到的。那么我们要怎么样做才能够测量出我们的这个侧偏刚度呢?其实我们可以用一些可以采集到,可以测量的量来进行一个估计。

假设条件:

  • 横向速度 v_y 和横摆角速度 \dot{r} 未被直接测量。
  • 车辆的纵向速度v_x 和横摆角速度 r可用。
  • 使用 欧拉方法 将连续时间方程离散化。

系统的运动方程由车辆动力学模型得出:

横向速度变化率:

\dot{v}_y+v_x r=\left(\frac{-\ell_f r-v_y}{m v_x}+\frac{\delta}{m}\right) c_f+\left(\frac{\ell_r r-v_y}{m v_x}\right) c_r

横摆角速度变化率:

\dot{r}=\left(\frac{-\left(\ell_f v_y+\ell_f^2 r\right)}{I_z v_x}+\frac{\ell_f \delta}{I_z}\right) c_f+\left(\frac{\ell_r v_y-\ell_r^2 r}{I_z v_x}\right) c_r

离散化处理:
使用欧拉方法对时间离散化,记 \Delta t为采样时间,得到离散形式:

对横向速度v_y

v_y(k+1)-v_y(k)+v_x(k) r(k) \Delta t=\left(-\frac{\ell_f r(k)+v_y(k)}{m v_x(k)}+\frac{\delta(k)}{m}\right) \Delta t c_f+\left(\frac{\ell_r r(k)-v_y(k)}{m v_x(k)}\right) \Delta t c_r

对横摆角速度r

r(k+1)-r(k)=\left(-\frac{\ell_f v_y(k)+\ell_f^2 r(k)}{I_z v_x(k)}+\frac{\ell_f \delta(k)}{I_z}\right) \Delta t c_f+\left(\frac{\ell_r v_y(k)-\ell_r^2 r(k)}{I_z v_x(k)}\right) \Delta t c_r

方程离散化后可以视为一个 最小二乘估计问题。

这里我们用递推最小二乘法:RLS递推最小二乘法RLS的轮胎侧偏刚度估计(原书缺失代码已补全)_轮胎侧偏角约束 mpc-优快云博客

A=\left[\begin{array}{c} v_y(2)-v_y(1)+v_x(1) r(1) \Delta t \\ r(2)-r(1) \\ \vdots \\ v_y(n)-v_y(n-1)+v_x(n-1) r(n-1) \Delta t \\ r(n)-r(n-1) \end{array}\right]

B=\left[\begin{array}{cc} \left(\frac{-\ell_f r(1)-v_y(1)}{m v_x(1)}+\frac{\delta(1)}{m}\right) \Delta t & \left(\frac{\ell_r r(1)-v_y(1)}{m v_x(1)}\right) \Delta t \\ \left(\frac{-\ell_f v_y(1)-\ell_f^2 r(1).}{I_z v_x(1)}+\frac{\ell_f \delta(1)}{I_z}\right) \Delta t & \left(\frac{\ell_r v_y(1)-\ell_r^2 r(1)}{I_z v_x(1)}\right) \Delta t \\ \vdots \\ \left(\frac{-\ell_f r(n-1)-v_y(n-1)}{m v_x(n-1)}+\frac{\delta(n-1)}{m}\right) \Delta t & \left(\frac{\ell_r r(n-1)-v_y(n-1)}{m v_x(n-1)}\right) \Delta t \\ \left(\frac{-\ell_f v_y(n-1)-\ell_f^2 r(n-1)}{I_z v_x(n-1)}+\frac{\ell_f \delta(n-1)}{I_z}\right) \Delta t & \left(\frac{\ell_r v_y(n-1)-\ell_r^2 r(n-1)}{I_z v_x(n-1)}\right) \Delta t \end{array}\right]

A=B\left[\begin{array}{l} c_f \\ c_r \end{array}\right]

在整个数据收集过程中,当轮胎上的侧向力适中(不过度刺激悬架)并且连续变化时,可以获得最佳结果。

### Carsim 中车辆动力学模型的含义 #### 定义与作用 车辆动力学模型是指用于描述和模拟车辆在行驶过程中动态行为的一系列数学方程和物理规律。这些模型涵盖了车辆各个子系统的相互作用,包括但不限于转向系统、悬挂系统、轮胎以及驱动/制动系统等[^1]。 #### 组件构成 具体到 Carsim 这一特定平台上的车辆动力学模型,则包含了多个关键组成部分: - **整车模块**:构建了一个拥有14个自由度的整体架构来精确反映实际汽车的各种可能位移形式——比如纵向移动、横向滑动、绕垂直轴线转动(即横摆)、车身前部上下起伏(俯仰)、侧面倾斜变化(侧倾),还有四个车轮各自的旋转和平动情况;所有上述提到的状态变量都可以通过连接至 Matlab/Simulink 的接口实现实时监测与调整[^3]。 - **子系统集成** - *转向系统*:负责处理方向盘操作对于前桥角度的影响; - *悬架系统*:定义了弹簧阻尼器特性及其对路面不平顺性的响应机制; - *魔术轮胎模型*:提供了一种高度灵活的方法来表征复杂条件下胎面接触区域内的力矩分布状况; - *车轮组件*:考虑到了滚动阻力等因素的作用效果; - *PI驾驶员控制器*:实现了自动化的驾驶意图表达逻辑,使得虚拟测试更加贴近真实世界中的用户体验[^2]. #### 应用价值 借助于如此详尽而全面的动力学框架,工程师不仅能够在开发阶段就深入探究不同设计方案之间的优劣差异,而且还能针对特定应用场景开展针对性优化工作,从而显著提升最终产品的性能表现并改善乘坐舒适性和安全性指标。此外,当涉及到新型零部件的研发或是现有技术改进项目时,这样的高精度仿真是不可或缺的研究手段之一。 ```matlab % MATLAB代码片段展示如何加载Carsim模型并与Simulink交互 load_system('MyCarModel'); set_param(gcb,'SimulationMode','normal'); % 设置仿真模式为正常运行状态 sim('MyCarModel'); % 开始执行仿真流程 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值