如何快速搭建整车模型用于整车仿真、底盘控制和自动驾驶

描述

MATLAB 在基于模型设计上的应用已经广受认可。从 2016 年开始 MATLAB 推出了 Powertrain Blockset 用于车辆纵向动力学仿真,2018 年推出了 Vehicle Dynamic blockset 用于车辆整车动力学建模仿真,帮助工程师快速搭建整车模型,并结合整车、底盘控制器以及自动驾驶场景、算法,完成了构建虚拟整车模型的工具链。

下面我们将以模型案例讲解如何快速搭建整车模型用于整车仿真、底盘控制和自动驾驶?以及在建模过程中各个组件的参数含义。

比如,我们需要验证一个纯电动汽车 AEB 功能的模型。这就需要一个能体现纯电动汽车整车动力学性能的模型。如何搭建车辆的物理模型呢?同时又要如何搭建整车 VCU 模型呢?

我们以这个下面链接的这个模型来讲解如何一步步搭建纯电动汽车 AEB 仿真测试模型。

本系列会分为 5 个步骤:

Step1:

基于 Reference Application,选取合适的整车模型,为接下来自定义打下框架。

Step2:

自定义车辆传动系统模型及整车能量管理策略。

Step3:

构建车辆车体、轮胎、悬架模型完成 14 自由度的整车模型。

Step4:

根据需求增加车辆底盘控制器模型,如 ABS 控制器。并进行整车仿真。

Step5:

自定义自动驾驶运行场景,如 AEB 法规场景,查看车辆的系统响应。

MATLAB

Step3

——自定义车辆车体、轮胎、悬架模型——

自定义车辆传动系统及控制器模型后,Reference Applications中的双移线模型已经被改成了纯电动汽车双移线的模型。

为了深度理解车辆动力学响应,我们需要查看车辆底盘、悬架、转向等模块的建模原理及参数设置。

不同于车辆纵向动力学,只有一个自由度的车身,车辆整体动力学需要体现车辆的纵向、垂向和侧向动力学特性。建模难度也大幅增高。

matlab

整车建模方法总体上可以分为两类,

matlab

一类是参数化建模,基于汽车动力学方程。一类是结构化建模,基于多体动力学方程。

对于这两种方法,MATLAB 都提供相应的工具箱支持。

基于多体动力学进行整车建模,需要输入车辆悬架、转向、轮胎准确的几何位置信息,基于拓扑结构进行抽象建模。过程比较复杂。但是更适合于悬架设计相关的工作。

Mathworks的Simscape Multibody 推出了 Vehicle Template 模型,可以大大简化这一过程。用户可以在模型中设定的用户界面上进行参数化设定,即可搭建悬架、车身模型等。

以下链接下载 Vehicle Template 模型:

https://www.mathworks.com/matlabcentral/fileexchange/79484-simscape-vehicle-templates

matlab

仿真结果的 3D 显示如下

matlab

由于参数化车辆模型运算速度快、建模方便等特点,更适合用于整车建模并支持 HIL ,我们接下来重点讲解参数化车辆建模的过程。

要点1. 整车模型

Vehicle Dynamic Bloicket 提供的整车模型有两个选择。一个是 14 自由度车辆模型,一个是 7 自由度车辆模型。其中 7 自由度车辆模型自行车模型,包含 3 个自由度的车体模型(纵向、横向、转向),以及 2 个自由度的轮胎模型(滚动、侧偏)。该车辆模型不能体现车辆的垂向特性,不含悬架模型。可以用于车辆横向动力学仿真的场景,如自动驾驶、底盘控制等。

14 自由度车辆模型更为完整地反映出车辆完整的动力学特性,包含车辆的垂向特性,车体含 6 个自由度,轮胎依然是2自由度轮胎。

matlab

要点2.传动系统部件的建模

轮胎作为车辆与路面保持唯一接触的部件,提供了车辆运行的除空气阻力外的所有外力。是车辆运动的基础。

轮胎建模的核心是根据轮胎当前状态计算出轮胎受到的外力,也即车辆受到的除空气阻力外的所有外力。

matlab

由于车辆是 6 个自由度,因此轮胎相应的也要计算出 6 个自由度对应的力、力矩,即轮胎六分力。这些力与轮胎的状态参数,外倾角、侧偏角、滑移率、垂直载荷等状态有关。这个关系即轮胎建模的模型公式。Vehicley Dynamic Blockset 提供魔术公式轮胎模型,以及 Fiala 轮胎模型。

以魔术公式轮胎模型为例,通过以下公式表达六分力与状态参数之间的数值拟合关系。简单的可以表现为以下形式。

Y(x)=Dsin{C arctan[Bx-E(Bx-arctan(Bx))]}

• 系数 B,C,D 依次由轮胎的垂直载荷和外倾角确定;

• B 为刚度因子; C 为形状因子; D 为峰值因子; E 为曲率因子。C 为曲线形状因子,决定曲线是侧向力、纵向力还是回正力矩;

• Y 为输出变量,可以是纵向力 Fx ,侧向力 Fy, 回正力矩 M;

• x 为输入变量,在不同的情况下分別表示轮胎的侧偏角 α 或纵向滑移率 κ;

注意:B、C、D 是随着载荷、车速等不同而变化,而非常量。

其中的参数可以从轮胎实验的测量数据进行拟合。

下图中就是按照魔术公式拟合处的轮胎模型(实线)与轮胎测试数据(点)之间的对比。

matlab

因此建立轮胎模型可以按照以下步骤生成:

matlab

Vehicle Dynamic Blockset 中的轮胎模型还支持 .tir 格式的轮胎模型导入。也提供一些常用轮胎模型的选择。

matlab

这里有个额外的小问题,魔术公式模型中输入的参数如何获得?其中,外倾角和垂直载荷来自于悬架模型的计算,侧偏角、纵向滑移率则是来自于车速 (Vx, Vy) 和轮速 (omega) 的计算。

matlab

要点3. 悬架模型

悬架模型连接车身与轮胎 ,一方面传递轮胎力和力矩给车身,另一方面根据车身状态计算出轮胎的定位参数,传递给轮胎。

matlab

悬架结构较为复杂,很多杆件结构组成的多刚体,此外还有非线性的弹簧阻尼原件。如果需要对悬架进行细节动力学建模,需要借助多体动力学仿真工具,如 Simscape Multibody。而在参数化车辆模型中,悬架模型可以简化成等效的弹性、阻尼原件来表达其动力学特性,进而建立动力学微分方程。同时悬架对轮胎定位参数的影响可以通过查表得方式获得。

简化成弹性、阻尼原件得等效悬架模型示意图如下:

matlab

等效悬架模型中弹簧和阻尼只作用于 z 方向上。因此,对于轮胎传过来的六分力中,x、y 方向的力以及 z 方向的转矩直接传递给车身的,z 方向上,传递的力要受悬架弹簧阻尼原件的影响。

而同时由于四个轮胎对应的等效悬架可能处在不同的跳动位移中,因此,x,y 方向的扭矩会考虑悬架侧倾的问题等问题。

matlab

matlab

matlab

向下滑动查看完整公式

悬架连接还有横向稳定杆 (Anti-sway bar) 又称防倾杆,是汽车悬架中的一种辅助弹性元件。当车身侧倾时,两侧悬架跳动不一致,横向稳定杆发生扭转,杆身的弹力成为阻碍侧倾的阻力,从而起到横向稳定的作用。体现在模型上就是将悬架的抗侧倾力修正为以下公式:

matlab

抗侧倾扭矩

抗侧倾扭矩

matlab

抗侧倾力

matlab

悬架的动态系统等效模型虽然可以简化为以上公式,但是有时难以得到等效刚度和阻尼的大小。

一般参数化建模可以直接通过悬架 K&C 实验获得。其中动力学特性就是将悬架对车身的力和力矩做成对悬架跳动和车轮定位参数的查表。这个查表数据既可以来自于悬架 K&C 特性始线,也可以来自于多体动力学工具搭建的复杂的悬架模型。

matlab

悬架模型的另一个重要内容就是计算轮胎的定位参数,外倾角 ξa,t、后倾角 ηa,t 和前束角 ζa,t。这部分的内容叫做悬架的 K 特性,也可以从 K&C 结果查表得出。

matlab

车轮转向角也受 K 特性影响

matlab

除了通过 K&C 实验查表获得这些参数,也可以通过集合计算得出,例如麦弗逊悬架的参数可由以下公式得出

matlab

备注:从轮胎建模角度上来说,只有内倾角和车轮转向角对魔术公式轮胎模型有意义

要点4. 转向模型

转向模型是根据当前的方向盘转角计算左右车轮的转角。Vehicle Dynamic Blockset 提供的运动学模型可以通过几何参数计算。以下是阿克曼转向模型的计算公式及其示意图:

matlab

matlab

向下滑动查看完整公式

γ 是转向比

如果需要集成 EPS 算法到整车模型中,则需要选择动力学转向模型模块。

至此车辆本体模型已经搭建完成。

结论

完整的能够反应车辆三个方向运动的车辆模型复杂程度非常高。我们既可以选用基于车辆动力学建模的整车模型也可以选用基于多体动力学建模的整车模型。就底盘控制、整车 HIL 测试,以及后续自动驾驶仿真需求而言,我们倾向于前者。后者更适合于高度自定义车辆,比如火星车、或者用于复杂的悬架设计及调教等。

这一部分的内容基于车辆动力学相关的课程。深度理解车辆建模原理可以帮助同学们设计底盘控制算法。

原文标题:MATLAB 手把手 | 五步教你玩转整车建模和自动驾驶仿真 (Step 3)

文章出处:【微信公众号:MATLAB】欢迎添加关注!文章转载请注明出处。

审核编辑:汤梓红

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分