车辆紧急防避撞AEB控制,模型包含建立驾驶员制动模型来模拟制动过程,同时加入模糊控制实现期望减速度的计算,加入纵向发动机逆动力学模型实时求解期望节气门开度,驱动与制动的切换控制,以及制动压力与减速度之间的关系计算,加入了实际的风阻和滚动阻力的计算,档位的控制,资料包含对应的算法实现原理论文,以及节气门开度计算等,非常详细,同时也包含了详细仿真的步骤

在汽车安全领域,车辆紧急防避撞AEB控制就像是一位隐形的守护者,时刻准备在关键时刻避免碰撞的发生。今天咱就来深入唠唠这个AEB控制里那些有意思的门道。

建立驾驶员制动模型

这驾驶员制动模型呢,就好比是给电脑设定了一个“虚拟驾驶员”,来模拟现实中驾驶员踩刹车的过程。为啥要模拟这个呢?因为真实驾驶场景里,驾驶员的制动行为是整个防避撞流程的起点。代码大概长这样:

def driver_brake_model(speed, distance_to_obstacle):
    # 根据当前车速和到障碍物的距离,计算制动意图
    if distance_to_obstacle < threshold_distance:
        brake_intention = 1  # 这里简单设定,小于一定距离就全力制动意图
    else:
        brake_intention = 0
    return brake_intention

这段代码就是根据车速和到障碍物距离判断是否有制动意图。如果距离太近,就认为驾驶员想刹车了。

模糊控制计算期望减速度

模糊控制在这就像一个聪明的“智囊团”,它根据各种复杂、边界不清晰的条件,算出车辆需要达到的期望减速度。它考虑的因素可能不仅仅是车速和距离,还可能有路面状况等“模糊”信息。

import skfuzzy as fuzz
from skfuzzy import control as ctrl

# 定义输入输出变量
speed = ctrl.Antecedent(np.arange(0, 120, 1), 'Speed')
distance = ctrl.Antecedent(np.arange(0, 100, 1), 'Distance')
deceleration = ctrl.Consequent(np.arange(-10, 0, 0.1), 'Deceleration')

# 定义模糊集合
speed['low'] = fuzz.trimf(speed.universe, [0, 0, 40])
speed['medium'] = fuzz.trimf(speed.universe, [20, 60, 100])
speed['high'] = fuzz.trimf(speed.universe, [80, 120, 120])

distance['near'] = fuzz.trimf(distance.universe, [0, 0, 30])
distance['medium'] = fuzz.trimf(distance.universe, [20, 50, 80])
distance['far'] = fuzz.trimf(distance.universe, [60, 100, 100])

deceleration['low'] = fuzz.trimf(deceleration.universe, [-10, -10, -5])
deceleration['medium'] = fuzz.trimf(deceleration.universe, [-8, -5, -2])
deceleration['high'] = fuzz.trimf(deceleration.universe, [-4, 0, 0])

# 定义模糊规则
rule1 = ctrl.Rule(speed['low'] & distance['near'], deceleration['high'])
rule2 = ctrl.Rule(speed['medium'] & distance['medium'], deceleration['medium'])
rule3 = ctrl.Rule(speed['high'] & distance['far'], deceleration['low'])

# 创建控制系统
deceleration_ctrl = ctrl.ControlSystem([rule1, rule2, rule3])
deceleration_simulation = ctrl.ControlSystemSimulation(deceleration_ctrl)

# 设置输入并计算输出
deceleration_simulation.input['Speed'] = 60
deceleration_simulation.input['Distance'] = 40
deceleration_simulation.compute()
desired_deceleration = deceleration_simulation.output['Deceleration']

在这段代码里,我们先定义了车速、距离作为输入变量,期望减速度作为输出变量。然后给这些变量划分不同的模糊集合,像车速的“低”“中”“高”。接着制定模糊规则,比如车速低且距离近,就需要高的减速度。最后通过设置输入值,计算出期望减速度。

纵向发动机逆动力学模型与节气门开度

有了期望减速度,还得通过纵向发动机逆动力学模型来算出期望节气门开度,这就像是给发动机下达指令,告诉它该怎么配合制动。

def longitudinal_engine_model(desired_deceleration, vehicle_mass, current_speed):
    # 这里简化计算,实际还需考虑更多因素
    force_required = vehicle_mass * desired_deceleration
    # 根据发动机特性等关系计算节气门开度
    throttle_opening = force_required / (current_speed * some_engine_constant)
    return throttle_opening

这段代码根据期望减速度、车辆质量和当前车速,简单计算出节气门开度。当然实际中发动机模型更复杂,这里只是个示意。

驱动与制动的切换控制以及其他关键计算

驱动与制动的切换就像是一场精心编排的舞蹈,要恰到好处。同时,制动压力与减速度之间的关系计算也非常关键,这能确保制动系统精准地实现期望减速度。

def drive_brake_switch(throttle_opening, brake_intention):
    if brake_intention == 1:
        return 'brake'
    elif throttle_opening > 0:
        return 'drive'
    else:
        return 'neutral'

这段代码根据节气门开度和制动意图判断车辆是处于制动、驱动还是空挡状态。

而计算风阻和滚动阻力也不能少,它们会影响车辆实际的动力学表现。

def calculate_resistance(speed, vehicle_mass):
    air_density = 1.225
    frontal_area = 2.5
    drag_coefficient = 0.3
    rolling_resistance_coefficient = 0.015

    wind_resistance = 0.5 * air_density * speed ** 2 * frontal_area * drag_coefficient
    rolling_resistance = rolling_resistance_coefficient * vehicle_mass * 9.81
    total_resistance = wind_resistance + rolling_resistance
    return total_resistance

这段代码计算了风阻和滚动阻力,为整个车辆动力学模型提供更准确的参数。

车辆紧急防避撞AEB控制,模型包含建立驾驶员制动模型来模拟制动过程,同时加入模糊控制实现期望减速度的计算,加入纵向发动机逆动力学模型实时求解期望节气门开度,驱动与制动的切换控制,以及制动压力与减速度之间的关系计算,加入了实际的风阻和滚动阻力的计算,档位的控制,资料包含对应的算法实现原理论文,以及节气门开度计算等,非常详细,同时也包含了详细仿真的步骤

档位控制也是整个系统的一部分,它会根据车速、发动机转速等因素进行调整,让车辆始终保持在合适的运行状态。

详细仿真步骤

资料里详细的仿真步骤就是我们验证整个AEB控制模型的“试验田”。一般来说,先设定各种初始参数,像车辆的初始速度、与障碍物的初始距离等。然后逐步运行上述各个模型和算法,模拟车辆在不同场景下的行驶状况。通过观察输出结果,比如车辆是否成功避免碰撞、实际减速度与期望减速度的差距等,来不断优化模型。

车辆紧急防避撞AEB控制真的是一个充满挑战又无比有趣的领域,从这些代码和原理中我们能看到,背后无数的技术细节共同守护着我们的行车安全。希望以后这技术能越来越完善,让路上的每一次出行都更加安心。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐