自动驾驶--车辆动力学模型
车辆动力学模型
文章目录
- 车辆动力学模型
- 第一章: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˙=Fdrive−Fdrag−Froll−Fbrake
可进一步展开如下:
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(Fdrive−21ρCdAv2−mgfr−Fbrake)
其中:
- ρ\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˙=a或v˙=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+T⋅f(xk,uk)
1.8 控制约束与示例参数设定
在实际控制器设计中,我们常常需要引入物理约束条件,典型参数如下:
📌 几何与限制参数:
参数名称 | 符号 | 示例值 | 说明 |
---|---|---|---|
车辆轴距 | LLL | 2.5 m | 前后轮间距离 |
最大前轮转角 | δmax\delta_{\max}δmax | $\pm$30° | 控制输入上限 |
最大加速度 | amaxa_{\max}amax | 3.0 m/s² | 最大油门控制 |
最小加速度 | amina_{\min}amin | –5.0 m/s² | 最大制动能力 |
最大速度 | vmaxv_{\max}vmax | 35 m/s | 大约 126 km/h |
最小速度 | vminv_{\min}vmin | 0 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˙x−rvy)=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_flf、lrl_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=−vxvy−lrr
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˙x−rvy)=Fdrive−Fdrag−Froll−Fbrake
-
驱动力 / 制动力
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
- 轨迹进度 sss由 s˙=vxcoseψ−vysineψ\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=vx−Vref。
- 在 小角度、vx≈Vrefv_x\approx V_{\text{ref}}vx≈Vref 前提下线性化式 (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(−vxvy−lrr))−rvxr˙=Iz1(lf(−Cαf)(δ−vxvy+lfr)−lr(−Cαr)(vxvy−lrr))
-
2.5 简化线性模型(含纵向误差)
线性化前提
- 车辆以恒定参考速度 VrefV_{\text{ref}}Vref 行驶, vx≈Vrefv_x \approx V_{\text{ref}}vx≈Vref。
- 轮胎小侧偏角、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=vx−Vref,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=mVref−Cαf−Cαrvy+[mVref−Cαflf+Cαrlr−Vref]r+mCαfδ=IzVref−Cαflf+Cαrlrvy−IzVrefCαflf2+Cαrlr2r+IzCαflfδ=vy+Vrefeψ=r=−m1(21ρCdAfVref2+mgfr)+m1(Fx−Fbrake)
最后一行把空气阻力、滚阻归并为常数项;若需严格 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αflf−Cαrlr−Vref,=−IzVrefCαflf−Cα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=A1A3100A2A40100000000−Vref000000−mKdrag,B=mCαfIzCαflf0000000m10000−m1.
- 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.expm
或c2d
获得 Ad,BdA_d,B_dAd,Bd。
2.7 典型参数设定表(仿真或工程应用)
以下是典型中型车辆的模型参数(参考文献或工程系统常用):
参数名称 | 符号 | 示例值 | 说明 |
---|---|---|---|
车辆质量 | mmm | 1500 kg | 车辆总质量 |
偏航转动惯量 | IzI_zIz | 2500 kg·m² | 绕质心的惯量 |
前轴距 | lfl_flf | 1.2 m | 质心到前轴距离 |
后轴距 | lrl_rlr | 1.3 m | 质心到后轴距离 |
轴距总长 | L=lf+lrL = l_f + l_rL=lf+lr | 2.5 m | 车辆轴距 |
前轮侧偏刚度 | CαfC_{\alpha f}Cαf | 80000 N/rad | 单位角度产生的侧向力 |
后轮侧偏刚度 | CαrC_{\alpha r}Cαr | 80000 N/rad | 同上 |
控制周期 | TTT | 0.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)β=tan−1(lf+lrlrtanδ)
其中:
- lfl_flf:前轴到质心距离;
- lrl_rlr:后轴到质心距离;
- L=lf+lrL = l_f + l_rL=lf+lr:车辆轴距。
3.4 曲线坐标系下的非线性运动学模型
🔷 基于几何关系推导动态方程:
- 纵向进度变化率(弧长变化):
s˙=vcos(μ+β)1−nk(s)\dot{s} = \frac{v \cos(\mu + \beta)}{1 - n k(s)}s˙=1−nk(s)vcos(μ+β)
- 横向误差变化率:
n˙=vsin(μ+β)\dot{n} = v \sin(\mu + \beta)n˙=vsin(μ+β)
- 航向误差变化率:
μ˙=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β−1−nk(s)k(s)vcos(μ+β)
- 纵向速度与转向动态:
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˙=1−nk(s)vcos(μ+β)n˙=vsin(μ+β)μ˙=lrvsinβ−1−nk(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(纵向控制) | 可加入纵向加速控制 |
第四章:三种车辆模型的对比分析与选择建议
本章将系统地从结构组成、建模精度、控制友好性、计算复杂度、适用场景等角度出发,比较以下三种常见车辆模型:
- 运动学模型(Kinematic Bicycle Model + Longitudinal Dynamics)
- 动力学模型(Dynamic Bicycle Model + Longitudinal Dynamics)
- 曲线坐标系模型(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 控制器适配建议
控制器类型 | 推荐模型 | 理由 |
---|---|---|
PID | Kinematic | 状态简单,反馈误差直接可用 |
LQR | Curvilinear | 线性状态空间友好,误差形式直观 |
MPC | Curvilinear / Kinematic | 离散化明确,预测窗口容易设置 |
RL 强化学习 | Dynamic | 模拟更真实,适合端到端训练 |
4.5 总结对比表
维度 | Kinematic Model | Dynamic Model | Curvilinear Model |
---|---|---|---|
模型复杂度 | ★☆☆(低) | ★★★(高) | ★★☆(中) |
控制器适配性 | ★★☆ | ★☆☆ | ★★★ |
精度与真实度 | ★☆☆ | ★★★ | ★★☆ |
计算效率 | ★★★ | ★☆☆ | ★★☆ |
易线性化性 | ★★★ | ★☆☆ | ★★★ |
轨迹跟踪能力 | ★★☆ | ★★★ | ★★★ |
4.6 总结建议
-
若你的控制器或系统工作在低速、规整环境(如停车、狭窄场景),推荐使用:
✅ Kinematic Bicycle Model
-
若希望追求真实响应、考虑车体惯性、轮胎侧偏影响等高保真模型,则推荐:
✅ Dynamic Bicycle Model
-
若任务为轨迹跟踪、需要误差驱动反馈、结合最优控制(LQR、MPC),则优选:
✅ Curvilinear Model