描述AEB中TTC算法

最近在做关于AEB的联合仿真,做一个简单的记录以及教学。

Carisim版本:Carsim2019.0

Matlab版本:Matlab2021b


一、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就可以得到仿真动画及图像!

 参考文献:

  1. 胡远志,吕章洁,刘西.基于PreScan的AEB系统纵向避撞算法及仿真验证[J].汽车安全与节能学报,2017,8(02):136-142.
  2. 辛佳庚,杨复钰,张宝迪等.基于融合算法的电动汽车AEB控制策略[J].北京交通大学学报,2021,45(06):77-86+93.

 自己摸索实践,如有错误,欢迎交流指导!搭建过程有问题的可以私信,需要slx模型的请在下载处自行下载!!

文章知识点与官方知识档案匹配,可进一步学习相关知识
算法技能树首页概览 57869 人正在系统学习中
  • 7
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: aeb仿真ttc模型代码是指用来模拟AEB(Automatic Emergency Braking,自动紧急制动)系统的时间至碰撞(Time to Collision,TTC)的模型代码。该模型代码的主要功能是评估车辆与前方障碍物之间的时间间隔,以判断是否需要启动自动紧急制动系统。 该代码的实现过程通常包括以下几个步骤: 1. 数据采集:首先需要获取车辆当前的运动状态,包括速度、加速度等信息,以及前方障碍物的位置和速度等数据。这些数据可以通过传感器(如雷达、摄像头)获取。 2. 碰撞检测:基于采集到的数据,利用数学模型计算车辆与前方障碍物之间的最短距离、相对速度等参数,判断是否存在碰撞风险。 3. TTC计算:根据碰撞检测得到的数据,通过数学公式计算时间至碰撞,即TTC值。TTC可以表示为最短距离与相对速度之间的比值。 4. 决策判断:根据计算得到的TTC值,判断是否需要启动紧急制动系统。如果TTC小于安全阈值,则触发制动,防止碰撞发生;否则,继续监测障碍物状态。 5. 反馈控制:根据实际制动效果和障碍物状态的改变情况,对制动力进行调整,以确保安全性和稳定性。 综上所述,aeb仿真ttc模型代码是通过采集车辆和障碍物的运动数据,结合数学模型和规则判断,评估时间至碰撞,并控制自动紧急制动系统的代码。这些代码的目的是提高车辆行驶的安全性,减少碰撞事故的发生。 ### 回答2: aeb仿真ttc模型代码是基于车辆动力学原理建立起来的模型,用于模拟和评估车辆在道路上的行为和交通情况。以下是一个简单的aeb仿真ttc模型代码的示例: ```python import math class Vehicle: def __init__(self, position, velocity): self.position = position self.velocity = velocity def update(self, acceleration, time_step): self.velocity += acceleration * time_step self.position += self.velocity * time_step class AEB_TTC_Model: def __init__(self, ego_vehicle, lead_vehicle): self.ego_vehicle = ego_vehicle self.lead_vehicle = lead_vehicle def calculate_ttc(self): relative_velocity = self.ego_vehicle.velocity - self.lead_vehicle.velocity if relative_velocity <= 0: return math.inf relative_position = self.lead_vehicle.position - self.ego_vehicle.position if relative_position <= 0: return math.inf ttc = relative_position / relative_velocity return ttc # 初始化车辆 ego_vehicle = Vehicle(position=0, velocity=20) lead_vehicle = Vehicle(position=50, velocity=10) # 初始化AEB TTC模型 aeb_model = AEB_TTC_Model(ego_vehicle, lead_vehicle) # 更新车辆状态和计算TTC ego_vehicle.update(0, 1) # 传入车辆加速度和时间步长 lead_vehicle.update(0, 1) ttc = aeb_model.calculate_ttc() print("TTC:", ttc) ``` 上面的代码演示了一个简单的aeb仿真ttc模型,模拟了车辆在道路上的运动,并计算了两辆车之间的时间到碰撞(TTC)。其,`Vehicle`类表示一个车辆,具有位置和速度属性,`update`方法更新车辆状态。`AEB_TTC_Model`类表示AEB TTC模型,通过传入两辆车的信息,计算并返回TTC
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值