十字路口交通流动态模拟系统
项目介绍
本项目是一个基于MATLAB开发的二维交通流仿真平台,专门用于模拟和分析十字路口的车辆通行行为。通过数学建模还原真实的道路几何结构、车辆动力学特性以及交通信号灯控制逻辑,系统能够直观地展示不同交通压力及信号灯配时方案下的交通状况。该系统适用于交通工程初学者理解交通流特性,也可用于交通信号优化的初步仿真验证。
功能特性
- 实时动画渲染:采用动态绘图技术,实时更新车辆位置、颜色状态及红绿灯切换。
- 自定义交通参数:支持灵活调整车流生成概率、最大车速、安全跟车距离及加速度等动力学参数。
- 智能信号灯系统:内置自动状态机,支持红、绿、黄三色灯循环切换,且各相位时长可调。
- 车辆行为仿真:模拟车辆在行驶过程中的跟车距离保持、红灯减速制动、绿灯起步加速等逻辑,有效防止车辆重叠。
- 自动统计分析:仿真结束后自动计算各方向通过车辆总数、系统平均延误时间,并生成排队长度演变曲线图。
系统要求
- 软件环境:MATLAB R2018a 或更高版本。
- 硬件要求:基础运行内存 4GB 以上,支持图形化输出。
- 所需工具箱:仅需 MATLAB 基础功能,无需额外工具箱。
使用方法
- 在 MATLAB 中打开主程序脚本。
- 在脚本开头的参数设置区域(Section 1),根据需求调整模拟总时长(simTime)、车流密度(probNS/probEW)或红绿灯时间。
- 点击运行(Run),系统将自动弹出仿真界面并开始模拟。
- 仿真过程中,可以通过观察窗口实时查看各方向车辆排队与消散情况。
- 仿真结束后,在 MATLAB 命令行窗口查看统计报告,并在弹出的图表窗口中查看通行量和排队趋势。
实现逻辑与功能结构
#### 1. 车辆状态管理与数据结构
系统使用矩阵存储所有活动车辆的信息,核心数据包括车辆的平面坐标(x, y)、横向与纵向速度(vx, vy)、行驶方向(北/南/东/西)、进入时间、离开时间及通行状态。通过动态维护该矩阵,实现车辆的产生、更新与注销。
#### 2. 红绿灯状态机逻辑
通过时间取模运算实现循环控制。系统将信号周期分为四个阶段:南北绿灯(东西红)、南北黄灯(东西红)、东西绿灯(南北红)、东西黄灯(南北红)。该逻辑确保了两个交叉方向的通行权在时间上是互斥的,保证了路口安全。
#### 3. 车辆生成机制
系统在每个时间步长内,通过随机概率判断四个入口是否产生新车。生成前会调用碰撞检测算法,检查入口处是否存在空间,若预设的安全距离内已有车辆,则暂缓生成,模拟真实的车辆驶入限制。
#### 4. 物理运动与跟车决策引擎
这是系统的核心算法,涵盖了以下三个核心判断:
- 障碍感知:车辆会检测前方同向车辆的距离,同时感知红绿灯状态。如果前方为红灯或黄灯且车辆位于停止线前,系统会计算到停止线的距离。
- 速度决策:基于“距离-速度”模型,当与前车或停止线距离缩小时,目标车速线性下降。当距离小于最小安全距离时,目标速度置为零。
- 平滑加减速:车辆不直接改变速度,而是根据系统设定的加速度和减速度,在每个步长内平滑趋近目标车速,模拟真实的物理特性。
#### 5. 道路与环境渲染
系统通过几何填充函数绘制深灰色背景的十字道路,包括中心黄色虚线和白色停止线。信号灯以圆形图标显示,根据实时状态变换颜色(红/黄/绿)。车辆以带轮廓的彩色方块表示,不同颜色代表不同的行驶方向。
#### 6. 统计分析算法
- 流量统计:实时监测车辆坐标,当车辆坐标越过对应的停止线位置时,该方向的通行计数器加一。
- 延误分析:记录每辆车从生成到离开的总时长,减去其以最大车速通过路段所需的理想时长,得到该车的延误时间,最后计算全系统的平均值。
- 排队监测:在每个时间步,统计瞬时速度低于 1m/s 的车辆总数,记录队列随时间的变化,用于反映路口的拥堵剧烈程度。