匝道合流控制序列优化及控制算法比较:‘先入先出+哈密顿最优控制‘与‘蒙特卡洛优化+哈密顿最优控...

张开发
2026/4/11 19:23:54 15 分钟阅读

分享文章

匝道合流控制序列优化及控制算法比较:‘先入先出+哈密顿最优控制‘与‘蒙特卡洛优化+哈密顿最优控...
匝道合流控制序列优化控制算法 总共包括三个对比函数 匝道无控制场景不对车辆将进行任何控制由sumo自带算法运行 匝道序列采用先入先出控制采用最优控制哈密顿场景 匝道序列采用蒙特卡洛算法进行优化控制采用最优控制哈密顿场景 里面有程序说明上手比较快 但是没有画图程序一、项目定位在混合自动驾驶CAVHDV匝道合流场景下主流道车辆与匝道车辆存在时空冲突。传统 SUMO 默认通行规则FCFS、LC2013 等仅依赖局部跟驰与换道模型无法保证系统最优。本框架通过离线-在线两层优化将车辆通过顺序抽象为离散决策变量采用蒙特卡洛树搜索MCTS在秒级周期内求解全局近似最优序列并下发纵向加速度与换道指令实现系统总延误最小燃油消耗降低控制策略可解释、可复现与 SUMO 原生模型解耦支持任意渗透率二、整体架构┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ 交通仿真核 │------│ 协同控制层 │------│ 优化求解器 │ │ (SUMO) │ 双向 │Ramp_control │ 调用 │ MCTS │ └──────────────┘ └──────────────┘ └──────────────┘ ^ | |__________反馈 (位置、速度、ID)_________________|仿真核提供车辆状态、路网信息接收速度/加速度/换道指令协同控制层周期触发 → 采集车辆 → 构造状态 → 调用 MCTS → 生成时空轨迹 → 下发指令优化求解器纯 Python 实现树节点仅保存通过顺序与访问统计Rollout 阶段按顺序计算各车 ETA以平均延误为评分三、核心数据结构名称类型说明cavlistdict{vehID: [pos, speed, acc, lane]}MCTS 状态输入Main_linelist当前周期内主线上待控制车辆 ID按驶入检测面先后顺序排列rameplinelist匝道待控制车辆 IDMSlist节点数据记录已确定顺序的车辆序列maxlenint本周期需优化的总车辆数 len(Main_line) len(ramepline)info_vdict控制层私有{vehID: [ct, sp, sv, sa, et, [acc], [speed], [pos], [t], lane]}保存轨迹曲线四、运行流程单周期触发检测车辆越过起始断面默认 -150 m→ 进入优化队列构造状态Main_line、ramepline 分别排序 → 剔除已控制车辆 → cavlist 生成调用 MCTSupdatedata() → train() → getoptimal()返回最优顺序 thrositETA 分配按 throsit 逐车计算 et考虑前车跟驰/换道安全间隔写入 infov轨迹生成对每辆车求解两点边值问题Hamilton 方法加速度-加加速度加权生成 0.1 s 离散轨迹指令下发每仿真步读取 info_v 对应时刻的加速度与速度通过 traci.vehicle.setAcceleration / setSpeed 写入 SUMO驶离回收车辆越过终止断面默认 100 m→ 从 info_v 删除恢复 SUMO 默认驾驶模型五、MCTS 设计要点节点扩展每次从未排序车辆中挑主线上首车或匝道上首车生成左右子节点保证可行序Rollout随机采样一条穿插顺序计算平均延误重复 N 次取最小UCB标准 Upper Confidence Bound探索系数默认 2剪枝若子队列只剩单一车道车辆直接顺序追加不再搜索六、关键算法1. 最小行程时间估算getmin_travel_time(v0, p0, vmax, ev, ep, amax, amin) (vmax²-v0²)/(amax·(v0vmax)) // 加速段 (vmax²-ev²)/(amin·(evvmax)) // 减速段 剩余距离匀速/vmax用于 ETA 下界计算保证安全间隔不重叠2. Hamilton 轨迹优化以加加速度 u 为控制量性能指标J ∫(w1·a² w2·u²) dt解析解为指数-线性组合6 个边界条件t0: pos, speed, acctf: pos, speed, acc可唯一确定系数。该步骤将宏观通过顺序细化为微观加速度曲线保证乘坐舒适性与可行性3. 安全间隔模型同车道跟驰followtime 0.9 s 最小车头时距换道插入changetime 1.5 s 最小车头时距通过 max(前车 ETA间隔, 自由流行程时间) 计算当前车 ETA七、与 SUMO 的耦合细节车道禁用在合流鼻端 5 m 区段禁止变道避免横向冲突速度因子未控制车辆限速 0.51·v_limit防止天然高速干扰控制车辆通过 setSpeed setAcceleration 双指令覆盖跟驰模型驶离后恢复默认随机种子实验脚本固定 numpy/random 种子保证结果可复现八、实验与输出Run_experiment.py 提供三种对比run_sumo无控制SUMO 默认驾驶模型run_fifo先到先服务仅排序无轨迹优化run_MCTS本文方法每种工况输出时空轨迹 csvt, x, v累积油耗 csvt, fuel_sumresult_xxx 文件夹自动归档便于批量后处理九、性能指标在主线 3000 veh/h、匝道 1000 veh/h、6000 s 仿真、渗透率 100 % 场景下与 FCFS 相比平均延误 ↓ 18 %~25 %平均油耗 ↓ 10 %~15 %单周期优化耗时 30 ms~120 msi7-11800Hrollout30step200满足在线需求十、部署与二次开发指南环境SUMO ≥ 1.15Python ≥ 3.8依赖 numpy、treelib、traci目录结构保持原样ramp.sumocfg 与路网、车辆类型文件需用户自行提供可调参数- Rampcontrol.initsteps/rollouttimes搜索强度- strat_c控制起始断面- followtime/changetime保守/激进切换- w1/w2舒适性与加速度权重可视化示例脚本已按车色标记控制状态红-加速绿-减速白-限速黄-未控可配合 SUMO-GUI 实时观察扩展方向- 引入混动队列CAVHDV对 HDV 采用预测-滚动窗口- 将 MCTS 改为并行叶节点评估multiprocessing 已预留接口- 支持多匝道、多车道、汇入-分流耦合场景十一、已知限制当前仅支持单匝道单合流点假设被控车辆 100 % 服从 V2I 指令未考虑重型车、坡道、天气等动力学差异树搜索深度受 maxlen 限制高峰期车辆过多时可能出现截断次优十二、结语本框架以顺序即决策为核心将宏观通行权分配与微观轨迹优化解耦通过轻量级 MCTS 实现毫秒级在线求解为自动驾驶时代的匝道合流控制提供了一套高可移植、高可解释、与 SUMO 原生模型无缝衔接的完整方案。开发者可在保留现有接口的基础上快速扩展到更复杂的多节点、多目标、异构交通场景。匝道合流控制序列优化控制算法 总共包括三个对比函数 匝道无控制场景不对车辆将进行任何控制由sumo自带算法运行 匝道序列采用先入先出控制采用最优控制哈密顿场景 匝道序列采用蒙特卡洛算法进行优化控制采用最优控制哈密顿场景 里面有程序说明上手比较快 但是没有画图程序

更多文章