MPC(3)常用车辆模型

上一篇中介绍了,模型预测控制的理论方面基础,无人驾驶车辆采用MPC控制方法来进行相关控制的时候,就考虑结合车辆的运动学以及动力学的相关约束。而且,如果在路径规划阶段(Local Planner)就考虑到车辆运动学和动力学约束,则车辆运动跟踪性能会更好。这篇文章就主要介绍的就是,前轮驱动小轿车目前常用的几种车辆运动学以及动力学模型。

阿克曼模型

车辆低速行驶时,轮胎不会产生侧滑,同时,车辆转向时,左前轮和右前轮偏转的角度是不同的,如下图所示(画图很麻烦,所以图片很多都是网上找的)
在这里插入图片描述
由于两个前轮的转向角度不同,造成了,两个后轮旋转半径也不相同,于是,做出了相应的简化,以车辆后轴中心点为旋转参考点,对车辆左前轮角度和右前轮角度取均值:
在这里插入图片描述
δ = 1 2 ( δ l + δ r ) (1) \delta = \frac{1}{2}(\delta_l + \delta_r) \tag{1} δ=21(δl+δr)(1)
式中, δ \delta δ为简化后车辆前轮转向角, δ l \delta_l δl δ r \delta_r δr分别为对应的车辆左侧前轮角度和右侧前轮转向角度。简化后的模型,称为自行车模型,自行车模型最大的好处就是把前轮转角与车辆后轴质心旋转的半径联系了起来。
t a n   δ = L R (2) tan \space \delta = \frac{L}{R} \tag{2} tan δ=RL(2)
其中, δ \delta δ 为车辆前轮转角
L L L 为车辆前后轴之间的距离(Wheel Base)
R R R 为车辆在给定的前轮转角 δ \delta δ情况下,所遵循的圆轨迹的半径。

车辆运动学模型

如下图所示,车辆转向模型:

在这里插入图片描述

在惯性坐标系XOY下, ( X f , Y f ) (X_f,Y_f) (Xf,Yf) ( X r , Y r ) (X_r,Y_r) (Xr,Yr)分别代表车辆后轴中心和前轴中心的坐标, φ \varphi φ表示车辆的航向角, δ f \delta_f δf表示前轮偏角, v r v_r vr表示车辆后轴中心沿车辆轴线方向的速度, v f v_f vf表示车辆前轴中心沿着前轮偏角方向的速度, l l l表示车辆前后轴之间的距离。
在车辆后轴中心 ( X r , Y r ) (X_r,Y_r) (Xr,Yr)处,有
v r = X ˙ r ∗ c o s ( φ ) + Y ˙ r ∗ s i n ( φ ) (3) v_r = \dot{X}_{r}*cos (\varphi) + \dot{Y}_{r}*sin(\varphi) \tag{3} vr=X˙rcos(φ)+Y˙rsin(φ)(3)
前、后轴的运动学约束(车辆无横向侧滑):
{ X ˙ f ∗ s i n ( φ + δ f ) − Y ˙ f ∗ c o s ( φ + δ f ) = 0 X ˙ r ∗ s i n ( φ ) − Y ˙ r ∗ c o s ( φ ) = 0 (4) \begin{cases} \dot{X}_{f}*sin(\varphi + \delta_f) - \dot{Y}_{f}*cos(\varphi + \delta_f) = 0 \\ \dot{X}_{r}*sin(\varphi) - \dot{Y}_{r}*cos(\varphi) = 0 \end{cases} \tag{4} {X˙fsin(φ+δf)Y˙fcos(φ+δf)=0X˙rsin(φ)Y˙rcos(φ)=0(4)
根据式(3)、式(4)可以得出:
{ X ˙ r = v r ∗ c o s ( φ ) Y ˙ r = v r ∗ s i n ( φ ) (5) \begin{cases} \dot{X}_{r} = v_r*cos(\varphi) \\ \dot{Y}_{r} = v_r*sin(\varphi) \\ \end{cases} \tag{5} {X˙r=vrcos(φ)Y˙r=vrsin(φ)(5)

根据前后轮的位置关系有:
{ X f = X r + l ∗ c o s φ Y f = Y r + l ∗ s i n φ (6) \begin{cases} X_f = X_r + l*cos\varphi \\ Y_f = Y_r + l*sin\varphi \\ \end{cases} \tag{6} {Xf=Xr+lcosφYf=Yr+lsinφ(6)

将(5)、(6)带入(4)可以得出横摆角 ω \omega ω速度为:
φ ˙ = ω = v r l ∗ t a n ( δ f ) (7) \dot\varphi=\omega = \frac{v_r}{l}*tan(\delta_f) \tag{7} φ˙=ω=lvrtan(δf)(7)

由横摆角 ω \omega ω和车速 v r v_r vr可以计算出车辆在不同的前轮转向角的条件下,对应的不同转向半径(可以看出与阿克曼模型的转弯半径计算方式相同):
{ R = v r ∗ ω δ f = a r c t a n ( l R ) (8) \begin{cases} R = v_r*\omega \\ \delta_f = arctan(\frac{l}{R}) \end{cases} \tag{8} {R=vrωδf=arctan(Rl)(8)
由式(5),(7)可以得出车辆运动学模型
[ X ˙ r Y ˙ r φ ˙ ] = [ c o s φ s i n φ t a n ( δ f ) / l ] ∗ v r (9) \begin{bmatrix} \dot{X}_{r} \\ \dot{Y}_{r} \\ \dot{\varphi} \end{bmatrix} = \begin{bmatrix} cos \varphi \\ sin \varphi \\ tan(\delta_f)/l \end{bmatrix} *v_r \tag{9} X˙rY˙rφ˙=cosφsinφtan(δf)/lvr(9)
车辆的可控制量为 v r v_r vr δ f \delta_f δf,而在实际使用中,最好的方式是希望以 [ v r , ω ] [v_r,\omega] [vr,ω]作为控制量,将式(7)带入式(9)中,可以将车辆运动学模型可以被转换为以下形式:
[ X ˙ r Y ˙ r φ ˙ ] = [ c o s φ s i n φ 0 ] ∗ v r + [ 0 0 1 ] ∗ ω (10) \begin{bmatrix} \dot{X}_{r} \\ \dot{Y}_{r} \\ \dot{\varphi} \end{bmatrix} = \begin{bmatrix} cos \varphi \\ sin \varphi \\ 0 \end{bmatrix} *v_r + \begin{bmatrix} 0 \\ 0 \\ 1 \end{bmatrix} * \omega \tag{10} X˙rY˙rφ˙=cosφsinφ0vr+001ω(10)
由车辆运动学模型可以看作是对阿克曼运动模型的延伸,通过运动学方程可以计算出控制时域内,可以计算出车身后轴中心点坐标 X X X Y Y Y以及航向角 φ \varphi φ在预测时间内的变化量。

车辆动力学模型

在进行车辆动力学建模时,首先要进行以下理想化假设:

  • 假设车辆在平坦路面上行驶,忽略车辆的垂向运行
  • 忽略悬架系统运动造成的相关影响
  • 只考虑纯侧偏轮胎特性,忽略轮胎力的纵横向耦合关系
  • 忽略车辆前后以及左右向的载荷转移
  • 忽略纵向横向的空气动力学
    同样,设定车辆为前轮驱动,以车辆质心为原点 O O O,沿着车辆纵向轴线指向车头方向为 X X X轴正向,垂直于车辆,车身水平面内垂直于 X X X轴且指向车身左侧方向为 Y Y Y轴, Z Z Z轴垂直于 X Y XY XY面且垂直向上。具体如下图所示:

在这里插入图片描述
关于其中轮胎受力定义如下:
F l f , F l r   F_{lf},F_{lr}\space Flf,Flr  —— 前、后轮胎受到的纵向力
F c f , F c r F_{cf},F_{cr} Fcf,Fcr —— 前、后轮胎受到的侧向力
F x f , F x r F_{xf},F_{xr} Fxf,Fxr —— 前、后轮胎受到的x方向的力
F y f , F y r F_{yf},F_{yr} Fyf,Fyr —— 前、后轮胎收到的y方向的力

根据牛顿第二定律,分别可得沿 x x x轴, y y y轴和绕 z z z轴的受力平衡方程
X X X轴方向上:
m ∗ x ¨ = m ∗ y ˙ ∗ φ ˙ + 2 ∗ F x f + 2 ∗ F x r (11) m*\ddot{x} = m*\dot{y}*\dot{\varphi} + 2*F_{xf} + 2*F_{xr} \tag{11} mx¨=my˙φ˙+2Fxf+2Fxr(11)

Y Y Y轴方向上:
m ∗ y ¨ = − m ∗ x ˙ ∗ φ ˙ + 2 ∗ F y f + 2 ∗ F y r (12) m*\ddot{y} = -m*\dot{x}*\dot{\varphi} + 2*F_{yf} + 2*F_{yr} \tag{12} my¨=mx˙φ˙+2Fyf+2Fyr(12)

Z Z Z轴方向:
I z ∗ φ ¨ = 2 ∗ a ∗ F y f − 2 ∗ b ∗ F y r (13) I_{z}*\ddot{\varphi}= 2*a*F_{yf}-2*b*F_{yr} \tag{13} Izφ¨=2aFyf2bFyr(13)
式中, a a a b b b分别为质心到前、后轴的距离, m m m为车辆装备质量, I z I_z Iz为车辆绕 z z z轴的转动惯量。

轮胎在 x , y x,y x,y方向上受到的合力与纵向、侧向力的转换关系如下:
{ F x f = F l f ∗ c o s ( δ f ) − F c f ∗ s i n ( δ f ) F x r = F l r ∗ c o s ( δ r ) − F c r ∗ s i n ( δ r ) F y f = F l f ∗ s i n ( δ f ) + F c f ∗ c o s ( δ f ) F y r = F l r ∗ s i n ( δ r ) + F c r ∗ c o s ( δ r ) (14) \begin{cases} F_{xf} = F_{lf}*cos(\delta_f)-F_{cf}*sin(\delta_f) \\ F_{xr} = F_{lr}*cos(\delta_r)-F_{cr}*sin(\delta_r) \\ F_{yf} = F_{lf}*sin(\delta_f)+F_{cf}*cos(\delta_f) \\ F_{yr} = F_{lr}*sin(\delta_r)+F_{cr}*cos(\delta_r) \tag{14} \end{cases} Fxf=Flfcos(δf)Fcfsin(δf)Fxr=Flrcos(δr)Fcrsin(δr)Fyf=Flfsin(δf)+Fcfcos(δf)Fyr=Flrsin(δr)+Fcrcos(δr)(14)
轮胎的纵向力、侧向力可以表示为轮胎的侧偏角、滑移率、路面摩擦系数和垂向载荷等参数的复杂函数:
{ F l = f l ( α , s , μ , F z ) F c = f c ( α , s , μ , F z ) (15) \begin{cases} F_l=f_l(\alpha,s,\mu,F_z) \\ F_c=f_c(\alpha,s,\mu,F_z) \end{cases} \tag{15} {Fl=fl(α,s,μ,Fz)Fc=fc(α,s,μ,Fz)(15)

式中, α \alpha α为轮胎侧偏角, s s s为滑移率, μ \mu μ为路面摩擦系数, F z F_z Fz为轮胎所受到的垂向载荷。

轮胎的侧偏角 α \alpha α可以由几何关系计算得到:
α = a r c t a n v c v l (16) \alpha= arctan \frac{v_c}{v_l} \tag{16} α=arctanvlvc(16)

式中, v c v_c vc v l v_l vl为轮胎在侧向、纵向的速度,可以用坐标系方向的速度 v x v_x vx v y v_y vy表示:
{ v l = v y ∗ s i n δ + v x ∗ c o s δ v c = v y ∗ c o s δ − v x ∗ s i n δ (17) \begin{cases} v_l=v_y*sin\delta+v_x*cos\delta \\ v_c=v_y*cos\delta-v_x*sin\delta \end{cases} \tag{17} {vl=vysinδ+vxcosδvc=vycosδvxsinδ(17)

式中, δ \delta δ为轮胎偏转角。

轮胎的速度获取通常比较麻烦,现在的车子四个轮子在旋转时会发出相应的脉冲信号,通过解析这些信号获取四个轮子的轮速是一种很方便且精确的方式,另外一种就是通过车辆速度计算得出,这种方法虽说没有上一种方式精确,但是使用范围广泛,具体公式如下:
v y f = y ˙ + a ∗ φ ˙ v y r = y ˙ − b ∗ φ ˙ v x f = x ˙ v x r = x ˙ (18) \begin{matrix} v_{yf}= \dot{y}+a*\dot{\varphi} \\ v_{yr}= \dot{y}-b*\dot{\varphi} \\ v_{xf} = \dot{x} \\ v_{xr} = \dot{x} \end{matrix} \tag{18} vyf=y˙+aφ˙vyr=y˙bφ˙vxf=x˙vxr=x˙(18)

轮胎在地面上的滑移率 s s s的计算公式:
s = { r ∗ w t v − 1 if  v > r ∗ w t , v = /   0 1 − v r ∗ w t if  v < r ∗ w t , w t = /   0 (19) s= \begin{cases} \frac{r*w_t}{v}-1 & \text{if} \space v>r*w_t,v {=}\mathllap{/\,}0 \\ 1-\frac{v}{r*w_t} & \text{if} \space v<r*w_t,w_t {=}\mathllap{/\,}0 \end{cases} \tag{19} s={vrwt11rwtvif v>rwt,v=/0if v<rwt,wt=/0(19)

式中, r r r为车轮半径, w t w_t wt为车轮旋转角速度。
车辆前后轴所受的垂向载荷:
{ F z f = b ∗ m ∗ g 2 ∗ ( a + b ) F z r = a ∗ m ∗ g 2 ∗ ( a + b ) (20) \begin{cases} F_{zf}=\frac{b*m*g}{2*(a+b)} \\ F_{zr}=\frac{a*m*g}{2*(a+b)} \end{cases} \tag{20} {Fzf=2(a+b)bmgFzr=2(a+b)amg(20)

最后,考虑车身坐标系以及惯性坐标系之间的关系有:
{ Y ˙ = x ˙ ∗ s i n φ + y ˙ ∗ c o s φ X ˙ = x ˙ ∗ c o s φ − y ˙ ∗ s i n φ (21) \begin{cases} \dot{Y}=\dot{x}*sin\varphi+\dot{y}*cos\varphi \\ \dot{X}=\dot{x}*cos\varphi-\dot{y}*sin\varphi \end{cases} \tag{21} {Y˙=x˙sinφ+y˙cosφX˙=x˙cosφy˙sinφ(21)

以上就是车辆非线性动力学模型。路面摩擦系数 μ \mu μ为路面固有信息,滑移率 s s s的控制需要由另一套控制系统来控制(ABS),在此我们假设此控制系统已经很好,滑移率 s s s就是一个已知量。

总结

以上三个模型都是常用的车辆模型,但是每个都有不同的用处以及不足,实际应用运动学和动力学要求都必须考虑到,当然,车速很低的情况下,需要考虑的因素较少,实践出真理,现有的MPC控制算法证明已经是可行的方案,唯一的缺陷就是MPC一旦预测步长过多,对算力的要求比较高。因此,模型的简化和算力之间的平衡,需要实际情况实际考虑,在此就不赘述了。

  • 17
    点赞
  • 160
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
### 回答1: 混动车辆模型是一种用于模拟和分析混合动力汽车性能和能源消耗的系统。Matlab 是一种常用的科学计算软件,可用于创建和仿真混动车辆模型。 对于混动车辆模型,一些重要的参数包括车辆质量、发动机功率、电动机功率、电池容量、发动机燃料效率等。通过输入这些参数,可以使用Matlab编程语言创建一个能够准确预测混动汽车性能的模型。 使用Matlab可以将车辆模型建立为一个基于物理原理的系统,可以考虑车辆动力学、能量流和能量转换等。通过编写方程和使用数值计算技术,可以模拟车辆在不同工况下的性能,如加速、制动和巡航。 模型的输入可以是驾驶行为(如油门输入)和环境条件(如路况、气温等),输出可以是车辆速度、燃料消耗等性能指标。通过改变输入参数,可以评估不同驾驶模式和车辆设置对性能的影响。 此外,使用Matlab还可以进行优化和控制算法的设计。例如,可以使用遗传算法或模型预测控制(MPC)来优化混动汽车的功率分配策略,以最小化燃料消耗。 总之,利用Matlab可以建立一个全面的混动车辆模型,以预测和分析其性能和能源消耗。这将有助于优化混动汽车设计、改进燃料经济性,并推动这一领域的研究和开发。 ### 回答2: Matlab混合动力车辆模型是一种用于模拟和分析混合动力汽车性能和燃料经济性的计算工具。通过该模型,我们可以评估和优化混合动力系统的设计和控制策略。 该模型涵盖了混合动力车辆的多个关键组成部分,包括内燃机、电动机、电池、传动系统以及控制器。这些组件在模型中被描述为相互连接的子模块,以便能够准确地模拟它们之间的相互作用。 模型基于物理原理和实验数据进行建模。通过输入参数,例如车速、油耗、电池状态等,模型可以计算混合动力系统的功率输出、燃料消耗、能量流动和排放等方面的信息。 借助Matlab混合动力车辆模型,我们可以进行各种分析和优化。例如,我们可以评估不同电池容量和类型对车辆性能和经济性的影响,进行功率分配和控制策略的优化,比较不同混合动力系统设计方案的性能等。 此外,该模型还可以用于开发和测试混合动力车辆的控制策略。我们可以将其与车辆的实际控制系统进行集成,通过模拟和仿真来验证控制策略的有效性和稳定性。 总之,Matlab混合动力车辆模型是一个强大的工具,可以帮助工程师和研究人员进行混合动力系统的设计、优化和控制策略的开发。通过该模型,我们可以更好地理解和改进混合动力车辆的性能和经济性,促进可持续交通的发展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值