当前位置: 首页 > news >正文

自动驾驶--车辆动力学模型

车辆动力学模型

文章目录

  • 车辆动力学模型
    • 第一章:Kinematic Bicycle Model + Longitudinal Dynamics(运动学模型 + 纵向动力学)
    • 1.1 模型简介与使用场景
    • 1.2 变量定义与建模假设
      • 📌 状态变量:
      • 📌 参数定义:
    • 1.3 横向运动建模(几何约束)
      • 🔸 基本几何关系:
      • 🔸 航向角变化(角速度):
      • ✅ 综合横向运动学模型为:
    • 1.4 纵向动力学建模(牛顿第二定律)
      • 🔸 纵向力平衡公式:
      • ✅ 简化版纵向动力学(无坡道时):
    • 1.5 模型组合与完整系统形式
      • 🚘 状态空间向量:
      • ✅ 联合动力学模型表达式:
    • 1.6 状态空间形式
    • 1.8 控制约束与示例参数设定
      • 📌 几何与限制参数:
      • 📌 控制约束(可直接用于 MPC):
    • 第二章:Dynamic Bicycle Model + Longitudinal Dynamics
    • 2.1 模型简介与使用场景
    • 2.2 状态变量与车辆假设
      • 📌 状态变量
      • 坐标系统说明
    • 2.3 动力学建模
      • 2.3.1 质心动力学(横纵向)
      • 2.3.2 偏航角动力学(绕 z 轴)
      • 2.3.3 轮胎侧向力建模(线性轮胎模型)
      • 🔸 侧偏角建模(假设小角度):
    • 2.3.4 纵向动力学补充
      • 🌟 方案 A —— 与横向 3 状态并列(常用于耦合 MPC)
      • 🌟 方案 B —— 线性近似 + 速度误差通道(常用于层次 LQR)
    • 2.4 完整系统模型(非线性)
    • 2.5 简化线性模型(含纵向误差)
      • 2.5.1 定义误差变量
      • 2.5.2 线性化动力学
    • 2.6 线性状态空间形式
      • 2.6.1 状态 & 输入向量
      • 2.6.2 系统矩阵
      • 2.6.3 离散化(零阶保持)
    • 2.7 典型参数设定表(仿真或工程应用)
    • 第三章:曲线坐标系车辆模型(Curvilinear Coordinates Vehicle Model)
    • 3.1 建模背景与坐标系定义
      • 📌 坐标系定义:
    • 3.2 状态变量与控制输入定义
      • ✅ 状态向量:
      • ✅ 控制输入:
    • 3.3 偏移角 β\betaβ 定义与推导
    • 3.4 曲线坐标系下的非线性运动学模型
      • 🔷 基于几何关系推导动态方程:
    • 3.5 状态空间模型汇总表达
    • 3.6 模型特性与应用说明
    • 3.7 模型结构总结
    • 第四章:三种车辆模型的对比分析与选择建议
    • 4.1 建模结构对比
    • 4.2 控制友好性与离散化性能
    • 4.3 适用速度范围与典型场景
    • 4.4 控制器适配建议
    • 4.5 总结对比表
    • 4.6 总结建议

第一章:Kinematic Bicycle Model + Longitudinal Dynamics(运动学模型 + 纵向动力学)


1.1 模型简介与使用场景

Kinematic Bicycle Model 是一种简化的车辆模型,仅考虑车辆的几何结构与转向约束,忽略轮胎侧偏、惯性力、质量分布等因素。

  • 优势:模型简单、计算效率高、适合低速场景;
  • 典型应用:路径规划、低速轨迹跟踪、MPC 控制建模;
  • 配合纵向动力学模型:可以在路径跟踪同时考虑加速、刹车行为。

1.2 变量定义与建模假设

📌 状态变量:

符号含义单位
xxx车体质心在全局坐标系下的 X 位置m
yyy车体质心在全局坐标系下的 Y 位置m
θ\thetaθ航向角(车辆朝向与 X 轴夹角)rad
vvv车辆质心处的速度m/s
δ\deltaδ前轮转角(控制输入)rad

📌 参数定义:

符号含义
LLL车辆轴距(前轮轴心到后轮轴心的距离)
Lf,LrL_f, L_rLf,Lr质心到前/后轮的距离,满足L=Lf+LrL = L_f + L_rL=Lf+Lr
a,ba, ba,b一般用于表示车辆前后半轴距

在这里插入图片描述

1.3 横向运动建模(几何约束)

从几何角度建模车辆的运动。假设车辆速度 vvv 作用在质心上,方向与车身一致(即忽略横向打滑、侧偏角等现象)。

🔸 基本几何关系:

车辆质心沿着车头方向 θ\thetaθ 运动,同时受前轮转角 δ\deltaδ 控制车辆的转向。

{x˙=vcos⁡(θ)y˙=vsin⁡(θ)\begin{cases} \dot{x} = v \cos(\theta) \\ \dot{y} = v \sin(\theta) \end{cases}{x˙=vcos(θ)y˙=vsin(θ)

🔸 航向角变化(角速度):

车辆转弯时将产生偏航角速度 θ˙\dot{\theta}θ˙,其近似表达式为:

θ˙=vLtan⁡(δ)\dot{\theta} = \dfrac{v}{L} \tan(\delta)θ˙=Lvtan(δ)

这是由于前轮转角控制了车辆的转向半径 R=Ltan⁡(δ)R = \frac{L}{\tan(\delta)}R=tan(δ)L,而角速度 ω=vR\omega = \frac{v}{R}ω=Rv

✅ 综合横向运动学模型为:

{x˙=vcos⁡(θ)y˙=vsin⁡(θ)θ˙=vLtan⁡(δ)\boxed{ \begin{cases} \dot{x} = v \cos(\theta) \\ \dot{y} = v \sin(\theta) \\ \dot{\theta} = \dfrac{v}{L} \tan(\delta) \end{cases} }x˙=vcos(θ)y˙=vsin(θ)θ˙=Lvtan(δ)


1.4 纵向动力学建模(牛顿第二定律)

考虑车辆的加速度来自于纵向驱动力(发动机提供)和阻力(如滚动阻力、空气阻力、坡度等)。

🔸 纵向力平衡公式:

mv˙=Fdrive−Fdrag−Froll−Fbrakem \dot{v} = F_{\text{drive}} - F_{\text{drag}} - F_{\text{roll}} - F_{\text{brake}}mv˙=FdriveFdragFrollFbrake

可进一步展开如下:

v˙=1m(Fdrive−12ρCdAv2−mgfr−Fbrake)\dot{v} = \dfrac{1}{m} \left( F_{\text{drive}} - \dfrac{1}{2} \rho C_d A v^2 - mg f_r - F_{\text{brake}} \right)v˙=m1(Fdrive21ρCdAv2mgfrFbrake)

其中:

  • ρ\rhoρ:空气密度
  • CdC_dCd:空气阻力系数
  • AAA:迎风面积
  • frf_rfr:滚阻系数

✅ 简化版纵向动力学(无坡道时):

当只考虑输入加速度 aaa,或用简单模型时可写作:

v˙=a或v˙=Flongm\dot{v} = a \quad\text{或}\quad \dot{v} = \dfrac{F_{\text{long}}}{m}v˙=av˙=mFlong

其中 aaa 由油门/刹车控制,FlongF_{\text{long}}Flong 是总纵向力。


1.5 模型组合与完整系统形式

🚘 状态空间向量:

x=[x,y,θ,v]T,u=[δ,a]T\mathbf{x} = [x, y, \theta, v]^T, \quad \mathbf{u} = [\delta, a]^Tx=[x,y,θ,v]T,u=[δ,a]T

✅ 联合动力学模型表达式:

{x˙=vcos⁡(θ)y˙=vsin⁡(θ)θ˙=vLtan⁡(δ)v˙=a\boxed{ \begin{cases} \dot{x} = v \cos(\theta) \\ \dot{y} = v \sin(\theta) \\ \dot{\theta} = \dfrac{v}{L} \tan(\delta) \\ \dot{v} = a \end{cases} }x˙=vcos(θ)y˙=vsin(θ)θ˙=Lvtan(δ)v˙=a

1.6 状态空间形式

为了方便后续控制器设计(如 LQR、MPC),我们明确给出状态与输入向量结构:

  • 状态向量

    x=[xyθv]\mathbf{x} = \begin{bmatrix} x \\ y \\ \theta \\ v \end{bmatrix}x=xyθv

  • 控制向量

    u=[δa]\mathbf{u} = \begin{bmatrix} \delta \\ a \end{bmatrix}u=[δa]

  • 连续时间系统

    x˙=[vcos⁡(θ)vsin⁡(θ)vLtan⁡(δ)a]\dot{\mathbf{x}} = \begin{bmatrix} v \cos(\theta) \\ v \sin(\theta) \\ \frac{v}{L} \tan(\delta) \\ a \end{bmatrix}x˙=vcos(θ)vsin(θ)Lvtan(δ)a

  • 离散时间系统(用于 MPC):

    xk+1=xk+T⋅f(xk,uk)\mathbf{x}_{k+1} = \mathbf{x}_k + T \cdot f(\mathbf{x}_k, \mathbf{u}_k)xk+1=xk+Tf(xk,uk)


1.8 控制约束与示例参数设定

在实际控制器设计中,我们常常需要引入物理约束条件,典型参数如下:

📌 几何与限制参数:

参数名称符号示例值说明
车辆轴距LLL2.5 m前后轮间距离
最大前轮转角δmax⁡\delta_{\max}δmax$\pm$30°控制输入上限
最大加速度amax⁡a_{\max}amax3.0 m/s²最大油门控制
最小加速度amin⁡a_{\min}amin–5.0 m/s²最大制动能力
最大速度vmax⁡v_{\max}vmax35 m/s大约 126 km/h
最小速度vmin⁡v_{\min}vmin0 m/s静止状态

📌 控制约束(可直接用于 MPC):

{δ∈[−0.52,+0.52]rada∈[−5.0,+3.0]m/s2v∈[0,35]m/s\begin{cases} \delta \in [-0.52,\; +0.52]\;\text{rad} \\ a \in [-5.0,\; +3.0]\;\text{m/s}^2 \\ v \in [0,\; 35]\;\text{m/s} \end{cases}δ[0.52,+0.52]rada[5.0,+3.0]m/s2v[0,35]m/s

第二章:Dynamic Bicycle Model + Longitudinal Dynamics


2.1 模型简介与使用场景

Dynamic Bicycle Model 是将车辆建模为一个“动力学双轮车模型”,考虑了轮胎的侧向力、车身的惯性和质心偏移等因素,相较于运动学模型更贴近真实车辆运动,尤其适用于:

  • 中高速车辆建模
  • 稳定性控制(如电子稳定系统 ESP)
  • 轨迹跟踪时的打滑补偿控制
  • 横向控制器(LQR、MPC)建模

2.2 状态变量与车辆假设

📌 状态变量

符号含义单位
vxv_xvx车体坐标系下的纵向速度m/s
vyv_yvy车体坐标系下的横向速度m/s
rrr偏航角速度(yaw rate)rad/s
δ\deltaδ前轮转角(控制输入)rad
axa_xax加速度/驱动力(控制输入)m/s²

坐标系统说明

我们以车辆质心为原点建立车体坐标系

  • xxx 轴沿车辆前进方向
  • yyy 轴指向车辆左侧(右手坐标系)
  • 偏航角速度 r=θ˙r = \dot{\theta}r=θ˙ 为车体绕垂直轴的旋转速度

2.3 动力学建模

2.3.1 质心动力学(横纵向)

对质心进行牛顿第二定律建模,在车体坐标系中:

{m(v˙x−rvy)=Fxm(v˙y+rvx)=Fyfcos⁡δ+Fyr\begin{cases} m(\dot{v}_x - r v_y) = F_{x} \\ m(\dot{v}_y + r v_x) = F_{yf} \cos\delta + F_{yr} \end{cases}{m(v˙xrvy)=Fxm(v˙y+rvx)=Fyfcosδ+Fyr

其中:

  • FxF_xFx:车辆前进方向的总驱动力(发动机牵引或制动)
  • Fyf,FyrF_{yf}, F_{yr}Fyf,Fyr:前/后轮产生的侧向力
  • mmm:车辆质量
  • rvyrv_yrvy, rvxr v_xrvx:哥氏力项(非惯性坐标下的修正)

在这里插入图片描述

2.3.2 偏航角动力学(绕 z 轴)

以车辆质心为参考点,进行刚体转动分析:

r˙=lfFyfcos⁡δ−lrFyr\dot{r} = l_f F_{yf} \cos\delta - l_r F_{yr}r˙=lfFyfcosδlrFyr

  • IzI_zIz:车辆绕垂直轴的转动惯量
  • lfl_flflrl_rlr:质心到前轴、后轴的距离

2.3.3 轮胎侧向力建模(线性轮胎模型)

侧向力来源于轮胎与地面间的侧偏角 α\alphaα,在小角度近似下(线性区):

Fyf=−Cαfαf,Fyr=−CαrαrF_{yf} = -C_{\alpha f} \alpha_f, \quad F_{yr} = -C_{\alpha r} \alpha_rFyf=Cαfαf,Fyr=Cαrαr

其中:

  • Cαf,CαrC_{\alpha f}, C_{\alpha r}Cαf,Cαr:轮胎侧偏刚度(单位侧偏角产生的侧向力)

🔸 侧偏角建模(假设小角度):

{αf=δ−vy+lfrvxαr=−vy−lrrvx\begin{cases} \alpha_f = \delta - \dfrac{v_y + l_f r}{v_x} \\ \alpha_r = - \dfrac{v_y - l_r r}{v_x} \end{cases}αf=δvxvy+lfrαr=vxvylrr

2.3.4 纵向动力学补充

在车体坐标系下对纵向方向列牛顿方程:

m(v˙x−rvy)=Fdrive−Fdrag−Froll−Fbrakem\bigl(\dot v_x - r v_y\bigr) = F_{\text{drive}} - F_{\text{drag}} - F_{\text{roll}} - F_{\text{brake}}m(v˙xrvy)=FdriveFdragFrollFbrake

  • 驱动力 / 制动力

    Fdrive=∑iTi/Rw,Fbrake=∑iFb,iF_{\text{drive}} = \sum_i T_i/R_w, \qquad F_{\text{brake}} = \sum_i F_{b,i}Fdrive=iTi/Rw,Fbrake=iFb,i

    TiT_iTi:各驱动轮轮端扭矩;RwR_wRw:有效轮胎半径。

  • 空气阻力

    Fdrag=12ρCdAfvx2F_{\text{drag}}=\tfrac12\,\rho C_d A_f v_x^2Fdrag=21ρCdAfvx2

  • 滚动阻力

    Froll=mgfrF_{\text{roll}} = m g f_rFroll=mgfr

若在坡道上,还应加上坡度阻力 Fslope=mgsin⁡θslopeF_{\text{slope}} = m g \sin\theta_{\text{slope}}Fslope=mgsinθslope

整理得到纵向加速度

KaTeX parse error: \tag works only in display equations


🌟 方案 A —— 与横向 3 状态并列(常用于耦合 MPC)

新的 7 维状态向量

x=[vxvyreyeψsδ]⁣T\mathbf{x} = \begin{bmatrix} v_x & v_y & r & e_y & e_\psi & s & \delta \end{bmatrix}^{\!T}x=[vxvyreyeψsδ]T

  • 轨迹进度 ssss˙=vxcos⁡eψ−vysin⁡eψ\dot s = v_x\cos e_\psi - v_y\sin e_\psis˙=vxcoseψvysineψ 给出。
  • 控制向量
    u=[Tdrive,Fbrake,δ]T\mathbf{u}=[T_{\text{drive}},\,F_{\text{brake}},\,\delta]^{T}u=[Tdrive,Fbrake,δ]T

插入式写法(与原横向方程并排)即可得到完整 非线性 7-DOF 模型,用于能量–稳定性联合 MPC


🌟 方案 B —— 线性近似 + 速度误差通道(常用于层次 LQR)

  • 设定参考巡航速度 VrefV_{\text{ref}}Vref
  • 定义速度误差 ev=vx−Vrefe_v = v_x - V_{\text{ref}}ev=vxVref
  • 小角度、vx≈Vrefv_x\approx V_{\text{ref}}vxVref 前提下线性化式 (8):

KaTeX parse error: \tag works only in display equations

其中Kdrag=12ρCdAf2VrefK_{\text{drag}}=\tfrac12\rho C_d A_f\,2V_{\text{ref}}Kdrag=21ρCdAf2Vref.

这样就得到 横向 4 维 + 纵向 1 维5 维 LTI 系统
x~˙=Ax~+Bu~~\dot{\tilde{\mathbf{x}}}=A\tilde{\mathbf{x}}+B\tilde{\mathbf{u}} x~˙=Ax~+Bu~
其中
x~=[vy,r,ey,eψ,ev]T\tilde{\mathbf{x}}=[v_y,\; r,\; e_y,\; e_\psi,\; e_v]^Tx~=[vy,r,ey,eψ,ev]T,
u~=[δ,Fdrive,Fbrake]T\tilde{\mathbf{u}}=[\delta,\; F_{\text{drive}},\; F_{\text{brake}}]^Tu~=[δ,Fdrive,Fbrake]T.


2.4 完整系统模型(非线性)

将以上所有项代入后,得到非线性动力学模型:

{v˙x=1m(Fx)+rvyv˙y=1m(−Cαf(δ−vy+lfrvx)−Cαr(−vy−lrrvx))−rvxr˙=1Iz(lf(−Cαf)(δ−vy+lfrvx)−lr(−Cαr)(vy−lrrvx))\boxed{ \begin{cases} \dot{v}_x = \dfrac{1}{m} \left( F_x \right) + r v_y \\ \dot{v}_y = \dfrac{1}{m} \left( -C_{\alpha f}(\delta - \frac{v_y + l_f r}{v_x}) - C_{\alpha r}(- \frac{v_y - l_r r}{v_x}) \right) - r v_x \\ \dot{r} = \dfrac{1}{I_z} \left( l_f (-C_{\alpha f}) (\delta - \frac{v_y + l_f r}{v_x}) - l_r (-C_{\alpha r}) (\frac{v_y - l_r r}{v_x}) \right) \end{cases} }v˙x=m1(Fx)+rvyv˙y=m1(Cαf(δvxvy+lfr)Cαr(vxvylrr))rvxr˙=Iz1(lf(Cαf)(δvxvy+lfr)lr(Cαr)(vxvylrr))


  • 2.5 简化线性模型(含纵向误差)

    线性化前提

    • 车辆以恒定参考速度 VrefV_{\text{ref}}Vref 行驶, vx≈Vrefv_x \approx V_{\text{ref}}vxVref
    • 轮胎小侧偏角、sin⁡θ≈θ,cos⁡θ≈1\sin\theta\approx\theta,\;\cos\theta\approx1sinθθ,cosθ1
    • 纵向、横向耦合项中的高阶积被忽略。

    2.5.1 定义误差变量

    ev=vx−Vref,ey,eψ同前节定义e_v = v_x - V_{\text{ref}},\quad e_y,\;e_\psi\ \text{同前节定义}ev=vxVref,ey,eψ 同前节定义

    2.5.2 线性化动力学

    v˙y=−Cαf−CαrmVrefvy+[−Cαflf+CαrlrmVref−Vref]r+Cαfmδr˙=−Cαflf+CαrlrIzVrefvy−Cαflf2+Cαrlr2IzVrefr+CαflfIzδe˙y=vy+Vrefeψe˙ψ=re˙v=−1m⁣(12ρCdAfVref2+mgfr)+1m(Fx−Fbrake)\begin{aligned} \dot v_y &= \frac{-C_{\alpha f} - C_{\alpha r}}{mV_{\text{ref}}}\,v_y\; +\;\Bigl[\frac{-C_{\alpha f}l_f + C_{\alpha r}l_r}{mV_{\text{ref}}}-V_{\text{ref}}\Bigr]\,r +\;\frac{C_{\alpha f}}{m}\,\delta \\[4pt] \dot r &= \frac{-C_{\alpha f}l_f + C_{\alpha r}l_r}{I_z V_{\text{ref}}}\,v_y -\;\frac{C_{\alpha f}l_f^2 + C_{\alpha r}l_r^2}{I_z V_{\text{ref}}}\,r +\;\frac{C_{\alpha f}l_f}{I_z}\,\delta \\[4pt] \dot e_y &= v_y + V_{\text{ref}}\,e_\psi \\[2pt] \dot e_\psi &= r \\[2pt] \dot e_v &= -\frac{1}{m}\!\Bigl(\tfrac12\rho C_dA_f\,V_{\text{ref}}^2 + mgf_r\Bigr) +\frac{1}{m}\bigl(F_{x}-F_{\text{brake}}\bigr) \end{aligned}v˙yr˙e˙ye˙ψe˙v=mVrefCαfCαrvy+[mVrefCαflf+CαrlrVref]r+mCαfδ=IzVrefCαflf+CαrlrvyIzVrefCαflf2+Cαrlr2r+IzCαflfδ=vy+Vrefeψ=r=m1(21ρCdAfVref2+mgfr)+m1(FxFbrake)

    最后一行把空气阻力、滚阻归并为常数项;若需严格 LTI,可将常数项视为外部扰动并在控制环外补偿。


    2.6 线性状态空间形式

    2.6.1 状态 & 输入向量

    x~=[vyreyeψev],u~=[δFxFbrake]\tilde{\mathbf{x}} = \begin{bmatrix} v_y \\ r \\ e_y \\ e_\psi \\ e_v \end{bmatrix}, \qquad \tilde{\mathbf{u}} = \begin{bmatrix} \delta \\ F_{x} \\ F_{\text{brake}} \end{bmatrix}x~=vyreyeψev,u~=δFxFbrake

    2.6.2 系统矩阵

    A1=−Cαf+CαrmVref,A2=−Cαflf−CαrlrmVref−Vref,A3=−Cαflf−CαrlrIzVref,A4=−Cαflf2+Cαrlr2IzVref,Kdrag=12ρCdAf2Vref.\begin{aligned} A_1 &= -\dfrac{C_{\alpha f}+C_{\alpha r}}{mV_{\text{ref}}}, \qquad A_2 = -\dfrac{C_{\alpha f}l_f-C_{\alpha r}l_r}{mV_{\text{ref}}}-V_{\text{ref}},\\[4pt] A_3 &= -\dfrac{C_{\alpha f}l_f-C_{\alpha r}l_r}{I_zV_{\text{ref}}},\qquad A_4 = -\dfrac{C_{\alpha f}l_f^{2}+C_{\alpha r}l_r^{2}}{I_zV_{\text{ref}}},\\[4pt] K_{\text{drag}} &= \tfrac12\rho C_dA_f\,2V_{\text{ref}}. \end{aligned}A1A3Kdrag=mVrefCαf+Cαr,A2=mVrefCαflfCαrlrVref,=IzVrefCαflfCαrlr,A4=IzVrefCαflf2+Cαrlr2,=21ρCdAf2Vref..A=[A1A2000A3A4000100−Vref0010000000−Kdragm],B=[Cαfm00CαflfIz0000000001m−1m].A = \begin{bmatrix} A_1 & A_2 & 0 & 0 & 0 \\ A_3 & A_4 & 0 & 0 & 0 \\ 1 & 0 & 0 & -V_{\text{ref}} & 0 \\ 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & -\dfrac{K_{\text{drag}}}{m} \end{bmatrix}, \qquad B = \begin{bmatrix} \frac{C_{\alpha f}}{m} & 0 & 0 \\ \frac{C_{\alpha f}l_f}{I_z} & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & \dfrac{1}{m} & -\dfrac{1}{m} \end{bmatrix}.A=A1A3100A2A40100000000Vref000000mKdrag,B=mCαfIzCαflf0000000m10000m1.

    • AAA 五行五列对应 x~~\tilde{\mathbf{x}} x~
    • BBB 五行三列对应 u~~\tilde{\mathbf{u}} u~
      若只用一个合成纵向输入 FlongF_{\text{long}}Flong,可将 BBB 最后一行改为 1m\dfrac{1}{m}m1 并删除第 3 列。

    2.6.3 离散化(零阶保持)

    采样周期 TTT 下:

    Ad=eAT,Bd=∫0TeAτdτB.A_d = e^{AT},\qquad B_d = \int_{0}^{T} e^{A\tau}\,d\tau \; B.Ad=eAT,Bd=0TeAτdτB.

    在 Python/Matlab 中可用 scipy.linalg.expmc2d 获得 Ad,BdA_d,B_dAd,Bd


2.7 典型参数设定表(仿真或工程应用)

以下是典型中型车辆的模型参数(参考文献或工程系统常用):

参数名称符号示例值说明
车辆质量mmm1500 kg车辆总质量
偏航转动惯量IzI_zIz2500 kg·m²绕质心的惯量
前轴距lfl_flf1.2 m质心到前轴距离
后轴距lrl_rlr1.3 m质心到后轴距离
轴距总长L=lf+lrL = l_f + l_rL=lf+lr2.5 m车辆轴距
前轮侧偏刚度CαfC_{\alpha f}Cαf80000 N/rad单位角度产生的侧向力
后轮侧偏刚度CαrC_{\alpha r}Cαr80000 N/rad同上
控制周期TTT0.1 s离散时间步长(用于仿真/MPC)

📌 说明:

  • 上述参数适用于中型轿车(如 Prius、Tesla Model 3 等);

  • 若进行离散化建模(如用于 MPC),你还需要对矩阵 A,BA, BA,B 进行离散化(例如零阶保持 ZOH 方法):

    Ad=eAT,Bd=∫0TeAτdτ⋅BA_d = e^{A T},\quad B_d = \int_0^T e^{A \tau} d\tau \cdot BAd=eAT,Bd=0TeAτdτB

第三章:曲线坐标系车辆模型(Curvilinear Coordinates Vehicle Model)


3.1 建模背景与坐标系定义

为了更准确地描述车辆在复杂路径上的跟踪误差,我们引入与参考轨迹绑定的Frenet-Serret 曲线坐标系。在该坐标系下,车辆位置、方向与速度等信息被投影到路径坐标系中,便于定义“与轨迹相关”的误差动态。

📌 坐标系定义:

  • sss:参考路径的弧长进度;
  • nnn:车辆质心到参考曲线的横向偏移(正值代表车辆在右侧);
  • ϕs\phi_sϕs:参考路径在 sss 处的切线方向;
  • φ\varphiφ:车辆实际航向角;
  • u=φ−ϕsu = \varphi - \phi_su=φϕs:航向误差;
  • k(s)k(s)k(s):参考曲线在 sss 处的曲率(R=1/kR = 1/kR=1/k)。

在这里插入图片描述

3.2 状态变量与控制输入定义

我们构建的状态空间模型如下:

✅ 状态向量:

x=[snμvaδδ˙]\mathbf{x} = \begin{bmatrix} s \\ n \\ \mu \\ v \\ a \\ \delta \\ \dot{\delta} \end{bmatrix}x=snμvaδδ˙

符号含义
sss跟踪进度(沿轨迹前进的弧长)
nnn横向误差(车辆质心与轨迹的垂直距离)
μ\muμ航向误差(车辆与轨迹切线夹角)
vvv车辆质心速度
aaa车辆纵向加速度
δ\deltaδ前轮转角
δ˙\dot{\delta}δ˙转角变化率

✅ 控制输入:

u=[ujerkuδ˙]\mathbf{u} = \begin{bmatrix} u_{\text{jerk}} \\ u_{\dot{\delta}} \end{bmatrix}u=[ujerkuδ˙]

控制量含义
ujerku_{\text{jerk}}ujerk加加速度,控制纵向 jerk
uδ˙u_{\dot{\delta}}uδ˙前轮角加速度

3.3 偏移角 β\betaβ 定义与推导

由于车辆质心不在转向轮上,前轮转角 δ\deltaδ 与车辆质心的运动方向之间存在夹角 β\betaβ。其计算公式为:

β=tan⁡−1(lrlf+lrtan⁡δ)\beta = \tan^{-1} \left( \frac{l_r}{l_f + l_r} \tan \delta \right)β=tan1(lf+lrlrtanδ)

其中:

  • lfl_flf:前轴到质心距离;
  • lrl_rlr:后轴到质心距离;
  • L=lf+lrL = l_f + l_rL=lf+lr:车辆轴距。

3.4 曲线坐标系下的非线性运动学模型

🔷 基于几何关系推导动态方程:

  1. 纵向进度变化率(弧长变化):

s˙=vcos⁡(μ+β)1−nk(s)\dot{s} = \frac{v \cos(\mu + \beta)}{1 - n k(s)}s˙=1nk(s)vcos(μ+β)

  1. 横向误差变化率

n˙=vsin⁡(μ+β)\dot{n} = v \sin(\mu + \beta)n˙=vsin(μ+β)

  1. 航向误差变化率

μ˙=vlrsin⁡β−k(s)vcos⁡(μ+β)1−nk(s)\dot{\mu} = \frac{v}{l_r} \sin \beta - \frac{k(s) v \cos(\mu + \beta)}{1 - n k(s)}μ˙=lrvsinβ1nk(s)k(s)vcos(μ+β)

  1. 纵向速度与转向动态

v˙=a,a˙=ujerk,δ˙=δ˙,δ¨=uδ˙\dot{v} = a, \quad \dot{a} = u_{\text{jerk}}, \quad \dot{\delta} = \dot{\delta}, \quad \ddot{\delta} = u_{\dot{\delta}}v˙=a,a˙=ujerk,δ˙=δ˙,δ¨=uδ˙


3.5 状态空间模型汇总表达

{s˙=vcos⁡(μ+β)1−nk(s)n˙=vsin⁡(μ+β)μ˙=vsin⁡βlr−k(s)vcos⁡(μ+β)1−nk(s)v˙=aa˙=ujerkδ˙=δ˙δ¨=uδ˙\boxed{ \begin{cases} \dot{s} = \dfrac{v \cos(\mu + \beta)}{1 - n k(s)} \\ \dot{n} = v \sin(\mu + \beta) \\ \dot{\mu} = \dfrac{v \sin \beta}{l_r} - \dfrac{k(s) v \cos(\mu + \beta)}{1 - n k(s)} \\ \dot{v} = a \\ \dot{a} = u_{\text{jerk}} \\ \dot{\delta} = \dot{\delta} \\ \ddot{\delta} = u_{\dot{\delta}} \end{cases} }s˙=1nk(s)vcos(μ+β)n˙=vsin(μ+β)μ˙=lrvsinβ1nk(s)k(s)vcos(μ+β)v˙=aa˙=ujerkδ˙=δ˙δ¨=uδ˙


3.6 模型特性与应用说明

  • 优势
    • 便于设计误差反馈控制器(如轨迹跟踪 LQR、MPC);
    • 状态变量紧贴实际控制目标(误差最小化);
    • 结构清晰,适合路径规划与控制统一建模。
  • ⚠️ 局限
    • 曲率 k(s)k(s)k(s) 需已知或可实时计算;
    • 非线性较强,需配合线性化或数值方法求解。

3.7 模型结构总结

状态变量控制变量描述能力
ey,eψ,se_y, e_\psi, sey,eψ,sδ\deltaδ表示车辆相对于轨迹的几何误差
+ vvv(可选)aaa(纵向控制)可加入纵向加速控制

第四章:三种车辆模型的对比分析与选择建议


本章将系统地从结构组成、建模精度、控制友好性、计算复杂度、适用场景等角度出发,比较以下三种常见车辆模型:

  1. 运动学模型(Kinematic Bicycle Model + Longitudinal Dynamics)
  2. 动力学模型(Dynamic Bicycle Model + Longitudinal Dynamics)
  3. 曲线坐标系模型(Curvilinear Coordinates Vehicle Model)

4.1 建模结构对比

模型描述方式是否建模轮胎力是否考虑质心是否建模偏航
Kinematic几何关系
Dynamic牛顿力学
Curvilinear误差反馈❌(隐式)✅(与参考轨迹比较)

4.2 控制友好性与离散化性能

模型控制器设计适配性离散化是否简单是否适合线性化
Kinematic✅ 适合 MPC、LQR✅(一阶 Euler 足够)✅ 小角度可线性化
Dynamic⚠️ 控制器需处理非线性⚠️ 需处理侧偏角和轮胎力关系⚠️ 复杂,适合高保真建模
Curvilinear✅ 误差驱动控制最优✅(直接预测误差)✅(LQR/MPC 核心模型)

4.3 适用速度范围与典型场景

模型适用速度范围典型应用
Kinematic低速(0–30 km/h)路径规划,泊车控制
Dynamic中高速(30–120 km/h)高速稳定控制,打滑建模
Curvilinear全速度段(依赖参考轨迹)轨迹跟踪、LQR、MPC 控制

4.4 控制器适配建议

控制器类型推荐模型理由
PIDKinematic状态简单,反馈误差直接可用
LQRCurvilinear线性状态空间友好,误差形式直观
MPCCurvilinear / Kinematic离散化明确,预测窗口容易设置
RL 强化学习Dynamic模拟更真实,适合端到端训练

4.5 总结对比表

维度Kinematic ModelDynamic ModelCurvilinear Model
模型复杂度★☆☆(低)★★★(高)★★☆(中)
控制器适配性★★☆★☆☆★★★
精度与真实度★☆☆★★★★★☆
计算效率★★★★☆☆★★☆
易线性化性★★★★☆☆★★★
轨迹跟踪能力★★☆★★★★★★

4.6 总结建议

  • 若你的控制器或系统工作在低速、规整环境(如停车、狭窄场景),推荐使用:

    Kinematic Bicycle Model

  • 若希望追求真实响应、考虑车体惯性、轮胎侧偏影响等高保真模型,则推荐:

    Dynamic Bicycle Model

  • 若任务为轨迹跟踪、需要误差驱动反馈、结合最优控制(LQR、MPC),则优选:

    Curvilinear Model

http://www.xdnf.cn/news/1260343.html

相关文章:

  • linux安装mysql8.0,二进制码安装
  • SpringCloud(4)-多机部署,负载均衡-LoadBalance
  • 数据持久化 —— `chrome.storage` 的记忆魔法
  • Java学习进阶--集合体系结构
  • 跨域解决方案
  • Unity基于Recoder的API写了一个随时录屏的工具
  • Linux Shell:Nano 编辑器备忘
  • ConcurrentDictionary 详解:.NET 中的线程安全字典
  • simulink tlc如何通过tlc写数据入文件
  • Spring Boot + Angular 实现安全登录注册系统:全栈开发指南
  • 深入理解 Java AWT Container:原理、实战与性能优化
  • 使用Prometheus + Grafana + node_exporter实现Linux服务器性能监控
  • 【3d61638 渍韵】001 png pdf odt 5与明天各种号(虚拟文章スミレ数据)
  • 从零开始构建【顺序表】:C语言实现与项目实战准备
  • 【前端】纯代码实现Power BI自动化
  • 破界之光:DeepSeek 如何重构AI搜索引擎的文明坐标 || #AIcoding·八月创作之星挑战赛#
  • 点播服务器
  • Day10 SpringAOP
  • Linux 学习 ------Linux 入门(上)
  • DuoPlus支持导入文件批量配置云手机参数,还优化了批量操作和搜索功能!
  • DigitalProductId解密算法php版
  • 三种经典寻路算法对比
  • 在 Mac 上安装 IntelliJ IDEA
  • 2025产品经理接单经验分享与平台汇总
  • 2025最新版天猫图片搜索API全解析:从图像识别到商品匹配实战
  • TensorFlow深度学习实战(29)——自监督学习(Self-Supervised Learning)
  • 存储管理、XFS 增量备份恢复、LVM
  • 【Qt开发】常用控件(二) -> enabled
  • GoLand 项目从 0 到 1:第六天 —— 权限接口开发与问题攻坚
  • npm run 常见脚本