01
交通流仿真概述
什么是交通流仿真、仿真在交通工程中的作用、常见仿真软件对比(SUMO、Vissim、MATSim)、本课程使用的仿真框架介绍。
概念对比
02
仿真环境搭建
Python环境配置(Anaconda)、SUMO安装与配置、TraCI接口安装、验证环境是否搭建成功。
环境SUMO
03
SUMO基础操作
SUMO网络文件(.net.xml)结构、路网生成工具(netedit)、简单的路网创建与导出。
路网netedit
04
交通需求建模
交通需求文件(.rou.xml)结构、车辆类型定义、车流生成器(flow)、路径定义与随机路径。
需求flow
05
SUMO配置文件
SUMO配置文件(.sumocfg)结构、仿真参数设置(步长、时间、输出)、运行第一个仿真。
配置仿真
06
TraCI入门
TraCI是什么、TraCI连接与断开、获取仿真状态(车辆数、时间步)、控制仿真步进。
TraCI接口
07
车辆控制基础
获取车辆位置与速度、设置车辆速度与车道、车辆变道控制、车辆颜色与轨迹可视化。
控制可视化
08
交通灯控制
获取交通灯状态、设置交通灯相位、固定配时与感应控制、交通灯协调控制。
信号灯配时
09
检测器与数据采集
感应线圈(E1)配置、行程时间检测器(E2)、车辆轨迹输出(fcd)、数据导出与分析。
检测器数据
10
仿真脚本调试基础
常见错误类型(连接失败、ID不存在、类型错误)、使用print调试、日志记录(logging模块)。
调试logging
11
高级调试技巧
断点调试(pdb)、条件断点、异常捕获与处理、断言(assert)的使用。
pdb断言
12
性能瓶颈分析
仿真速度慢的原因、使用cProfile进行性能分析、识别热点函数、优化循环与数据结构。
性能cProfile
13
代码优化技巧
向量化操作(NumPy)、避免重复连接TraCI、批量获取与设置、使用缓存减少TraCI调用。
优化NumPy
14
并行仿真策略
多线程与多进程的区别、使用multiprocessing并行运行多个仿真、结果汇总与同步。
并行多进程
15
仿真参数优化
参数扫描(Parameter Sweep)、网格搜索与随机搜索、使用Optuna进行超参数优化。
调参Optuna
16
交通流模型校准
什么是模型校准、校准指标(RMSE、MAE)、使用实测数据校准跟驰模型参数。
校准RMSE
17
仿真结果可视化
Matplotlib绘制车辆轨迹图、速度-密度散点图、时空图(Spacetime Diagram)、动态仿真动画。
可视化Matplotlib
18
交互式仿真控制
使用Jupyter Notebook进行交互式仿真、ipywidgets创建控制面板、实时数据更新与图表联动。
交互Jupyter
19
仿真场景设计
高速公路场景设计、城市交叉口场景设计、混合交通流场景(车辆+行人)。
场景设计
20
特殊事件仿真
交通事故模拟、道路施工模拟、恶劣天气影响模拟、应急车辆优先通行。
事件应急
21
V2X通信仿真
V2V通信模型、V2I通信模型、通信延迟与丢包模拟、协同自适应巡航控制(CACC)。
V2XCACC
22
排放与能耗模型
SUMO排放模型(HBEFA、PHEM)、油耗计算、排放数据导出与可视化。
排放能耗
23
大规模网络仿真
大规模路网加载策略、分布式仿真(SUMO-GUI与命令行)、内存管理与优化。
大规模分布式
24
仿真数据管理
使用Pandas处理仿真数据、数据清洗与聚合、数据库存储(SQLite)、数据版本控制。
PandasSQLite
25
自动化测试框架
单元测试(unittest/pytest)、仿真结果回归测试、持续集成(CI)配置。
测试CI
26
仿真脚本重构
函数与模块化设计、面向对象重构(车辆类、控制器类)、设计模式应用(策略模式、观察者模式)。
重构设计模式
27
文档与注释规范
文档字符串(docstring)规范、类型提示(Type Hints)、使用Sphinx生成API文档。
文档Sphinx
28
版本控制与协作
Git基础操作、分支管理策略、代码审查流程、仿真项目协作最佳实践。
Git协作
29
案例实战一:城市主干道绿波带优化
从数据采集到方案评估,完整绿波带优化案例。
实战绿波
30
案例实战二:高速公路匝道控制
基于强化学习的动态限速策略,高速公路匝道控制实战。
实战强化学习