AEB基于危险系数,复现lun wen(相对基础)。 构建了基于TTC和危险系数的风险评估模型,适合初学AEB,想了解AEB原理和simulink搭建的,simulink中有风险评估的状态机模型和底层PID控制的实施模型,采用trucksim/carsim联合仿真实现
嘿,各位对AEB(自动紧急制动系统)感兴趣的小伙伴们!今天咱就唠唠基于危险系数对AEB进行复现这事儿,特别适合刚接触AEB,想要搞清楚其原理以及Simulink搭建方法的朋友。
一、基于TTC和危险系数的风险评估模型
咱们先来看看这个风险评估模型,它可是AEB的关键部分。TTC(Time - To - Collision,碰撞时间)是个啥呢?简单说,就是当前状态下车辆预计碰撞前方物体的剩余时间。结合危险系数,就能更全面地评估潜在风险。
% 简单示意计算TTC的代码 % 假设我们已知本车速度v和与前车距离d v = 30; % 单位:m/s d = 100; % 单位:m TTC = d/v; disp(['计算得到的TTC为:', num2str(TTC),'秒']);在这段代码里,我们通过速度和距离算出TTC。在实际AEB系统中,TTC的计算会复杂些,要考虑各种传感器数据的融合与误差修正,但这是基础思路。危险系数的引入,则是综合考虑了更多因素,像是路况、天气等。通过一个合理的算法将TTC和危险系数结合起来,就能更精准地判断风险等级。
二、Simulink搭建
状态机模型
在Simulink里,风险评估的状态机模型就像是整个系统的“大脑决策中心”。它会根据风险评估模型的输出,决定AEB系统该采取啥动作。比如,当风险较低时,系统可能只是发出预警;风险高了,就得紧急制动。
下面是一个简单状态机模型在Simulink中的搭建示意图(由于无法直接展示Simulink截图,这里用文字描述):
- 首先有一个输入端口,连接风险评估模型的输出。
- 接着是状态转移模块,设定不同风险等级对应的状态转移条件。比如说,当风险值小于某个阈值,状态为“预警”;大于这个阈值,状态为“制动”。
- 最后有输出端口,根据当前状态输出相应控制信号。
底层PID控制实施模型
PID控制在AEB里负责精确调节制动压力等参数。PID嘛,就是比例(P)、积分(I)、微分(D)控制。
% 简单PID控制代码示意 Kp = 0.5; Ki = 0.1; Kd = 0.2; error = 10; % 假设的误差值 P_term = Kp * error; I_term = Ki * cumsum(error); D_term = Kd * diff([0, error]); control_signal = P_term + I_term + D_term; disp(['计算得到的控制信号为:', num2str(control_signal)]);在这段代码里,我们根据设定的Kp、Ki、Kd值,以及当前误差计算出P、I、D三个控制项,相加得到最终控制信号。在Simulink中搭建PID模型,就是按照PID算法的原理,连接相应模块实现对制动系统的精确控制。
三、联合仿真实现
这里我们用到了TruckSim/Carsim来联合仿真。为啥要用它们呢?因为这俩软件能精准模拟车辆动力学特性。通过与Simulink结合,我们能把之前搭建的风险评估和控制模型放到真实感很强的车辆行驶场景中去验证。
比如说,在TruckSim里设定好车辆的物理参数,像质量、轴距等。然后在Simulink里调用TruckSim的接口,将风险评估和控制模型的输出作为输入信号给到TruckSim,模拟车辆在不同风险情况下的制动反应。这样我们就能直观看到AEB系统在各种场景下的实际表现啦。
好啦,以上就是基于危险系数复现AEB的一些关键内容,希望对初学AEB的朋友们有所帮助,大家一起探索AEB的奇妙世界吧!