最近在做关于AEB的联合仿真,做一个简单的记录以及教学。
Carisim版本:Carsim2019.0
Matlab版本:Matlab2023a(什么版本都能,版本低了自己换)
一、AEB算法
1.1 TTC算法
碰撞时间算法TTC是指从当前时刻开始,两车保持当前车速行驶直到发生碰撞所需的时间,两车前后行驶在路上时,只有当后车车速大于前车车车速时才会进入TTC算法。为了避免碰撞,前后车应满足以下关系式:
式中:v1、a1表示前车速度、加速度,v2、a2表示后车速度、加速度,Drel表示两车相对距离,d0表示安全停车距离(一般为2mor3m)。由上述公式得到如下解:
式中:vrel、arel表示两车相对速度、相对加速度。
然后是TTC的触发逻辑:
在TTC算法中设定时间阈值如下:TTC(预警危险)=2.6s,TTC(部分制动)=1.6s,TTC(全力制动)=0.6s。具体的控制逻辑如下:
1)TTC>2.6s:AEB系统不触发;
2)1.6s<TTC≤2.6s:AEB系统触发→发出警报;
3)0.6s<TTC≤1.6s:AEB系统触发→40%制动;
4)TTC≤0.6s:AEB系统触发→100%制动。
1.2 SeungwukMoon安全距离模型
SeungwukMoon安全距离模型计算公式如下:
式中:dbr为危险制动距离,Tdelay为系统延迟时间,f(μ)为制动因数,amax为最大制动减速度。参考文献,取Tdelay=1.2s、 f(μ)=0.2、amax=6m/s2。
触发逻辑也很简单,当相对车距小于等于dbr后AEB触发。
二、Carsim设置
首先打开Carsim界面如下所示,点击Duplicate复制一个新的。
2.1 工况设置
设置新的工况, 选择复制新建一个dataset
进入工况界面,删除其他设置,只保留换挡切换和驾驶员控制的转向。转向选择0.15s预瞄点:
设置好后整体如下:
2.2 道路设置
第一个Data选择设置3D surfaces
同样选择复制新建一个dataset
如下所示,其中1设置道路的形状长度,2设置路面附着系数,3设置道路宽度、草地、路肩等,4设置云朵,5设置道路两旁的树,可根据需要更改道路长度、形状。
2.3 前车设置
2.3.1 车辆设置
下一个Data采用Carsim自带的VS command设置前车,首先选择如下:
复制并新建:
第一个link设置前车的参数
复制并新建:
在外面设置如下,在第一个框中输入以下:
点击AEB进入前车设置:
Object Specifications处设置如下,然后随便选择一辆车
速度控制选择控制速度及加速度,后面会讲解如何控制。此处可以选择Formula for speed,然后在3处输入速度,单位为m/s,比如80km/h则输入80/3.6,前车匀速行驶。
总设置如下:其中1、2为道路设置,3是速度控制ID,4是初始的前车距离,5是侧向偏移(好像是的),1、2、5、6不管,主要修改3、4
2.3.2 传感器设置
退出当前界面,设置link2传感器设置,选择如下:
首先选择这个FCW and ACC 这个,复制并新建一个
点进去,具体设置如下图所示:
右上角取消勾选,传感器的长要和范围一样,比如图中都是50m,可自己修改为其他数值。
2.3.3 速度设置
若需要前车加/减速,则需要在link3设置前车的速度。首先选择如下;
复制并新建,然后点进去。
function type选择如下:
勾选custom setting,设置如图,其中N_SPEED_TARGET = 2表示定义了两个速度,一个为本车速度(2.1中driver control中设置的速度),一个为后车速度。ISPEED = 2 定义该速度索引号为2(下图中的3中的ID改为2)
如下图所示,可根据自己所需要的速度、加/减速度设置速度变换曲线,注意横坐标为时间,纵坐标为速度右下角rows为表格数量,可根据需要更改。
2.4 与matlab联合
回到主界面,如下图,选择联合simulink:
选择复制并新建:
打开matlab-simulink,新建一个 slx文件放在桌面:
进入所设置的simulink接口:
如图所示,在simulink model处选择你创建的slx文件,频率设置为60hz,下方分别选择IO_import和IO_export,然后复制并新建。
设置好后如下所示:
点击import下面的AEB设置信号输入:
首先链接到我们所设置的车辆及工况:
然后设置信号输入为制动总压力:
信号输出同理,如图设置三个输出。(若找不到DisS1、spdS1可能是使用的Carsim2020,也可能是传感器设置问题)
2.5 plot设置
在主界面右侧是plot图画动画设置,根据自己的需要选择more plot数量,
比如我想要速度的图像,复制并新建如下:
进入设置,在1处选择我们的工况,2处选择数据的单位(分类),3为横坐标,4为纵坐标,如图得到vx和time的图像。
三、simulink设置
3.1 发送至simulink
如图所示,车辆设置好后发送到simulink中。
3.2 simulink模型建立
打开我们建立的slx文件,在库里面找打Carsim s-function,如图所示:
根据我们在第一章的AEB算法建立模型:
其中1为TTC时间算法,2为SeungwukMoon距离算法。
最后在simulink里面运行,然后在Carsim中点击video+plot就可以得到仿真动画及图像!
参考文献:
- 胡远志,吕章洁,刘西.基于PreScan的AEB系统纵向避撞算法及仿真验证[J].汽车安全与节能学报,2017,8(02):136-142.
- 辛佳庚,杨复钰,张宝迪等.基于融合算法的电动汽车AEB控制策略[J].北京交通大学学报,2021,45(06):77-86+93.
自己摸索实践,如有错误,欢迎交流指导!搭建过程有问题的可以私信,需要slx模型的请在下载处自行下载!!
Matlab版本不对的话请自己想办法换一下!!!