车载自组织网络中路边性能及防碰撞算法仿真研究
项目介绍
本项目是一个基于MATLAB开发的智能交通系统(ITS)车载自组网(VANET)仿真平台。该项目旨在针对城市道路环境,模拟车辆的高速移动、网络通信及行车安全预警机制。
系统构建了一个曼哈顿网格形式的城市交通模型,在其中模拟车辆节点的随机分布与移动,并通过路边单元(RSU)辅助进行网络性能分析。核心功能涵盖了基于地理位置信息的路由性能估算、网络连通性分析以及基于相对运动矢量的防碰撞算法。通过实时可视化界面,用户可以直观地观察车辆运行轨迹、通信链路状态及安全预警情况,并生成相关的统计图表以评估算法效果。
功能特性
- 城市交通拓扑建模:基于3x3网格构建曼哈顿移动模型,模拟规则的城市道路布局及十字路口。
- 车辆移动性模拟:实现了车辆沿道路直线行驶、边界循环(Toroidal边界)以及在路口基于概率(30%)的随机转向逻辑。
- 网络通信性能分析:
* 计算网络连通度及RSU覆盖率。
* 模拟基于地理位置的贪婪转发路由,估算跳数、包投递率(PDR)及端到端延迟。
- 行车安全防碰撞算法:基于车辆间的相对距离与相对速度矢量,实时检测潜在的碰撞风险并触发预警。
- 实时可视化与数据统计:
* 动态展示车辆移动、RSU位置、通信链路及红色预警圈。
* 绘制包投递率、网络延迟、碰撞预警次数及网络覆盖率随时间变化的统计曲线。
系统要求
- MATLAB R2016b 或更高版本
- Statistics and Machine Learning Toolbox(用于距离计算和样本抽样)
使用方法
- 直接运行主程序脚本。
- 程序启动后将自动弹出图形窗口,展示仿真动画。
- 仿真结束后(默认100秒),窗口中将保留最终的动态视图以及分析图表。
详细功能与算法实现分析
本项目的主程序(main)通过离散时间步进的方式不仅模拟了物理层的车辆运动,还模拟了网络层的数据传输特征。以下是代码的详细实现逻辑分析:
1. 参数与环境初始化
代码首先设定了仿真区域为 1000m x 1000m,包含50辆车和9个固定在交叉路口的路边单元(RSU)。
- 通信参数:通信半径设定为250米,基础误码率设定为1%。
- 安全参数:防碰撞预警的距离阈值为40米。
- 道路构建:通过线性插值生成3x3的网格坐标,构建水平和垂直的道路线段约束车辆位置。
2. 节点初始化
- 车辆分布:车辆被随机放置在定义的水平或垂直道路上。
- 速度矢量:根据所在道路的方向(上、下、左、右),赋予车辆5m/s至20m/s之间的随机速度。
- RSU部署:RSU节点被静态初始化在所有道路交叉口的坐标位置,作为固定的路侧基础设施。
3. 移动模型 (Manhattan Mobility)
在每个仿真步长(0.5秒)内,程序执行以下移动逻辑:
- 位置更新:根据当前速度矢量更新车辆坐标。
- 边界处理:实施循环边界条件,当车辆驶出区域一侧时,会从对侧重新进入,保持车辆总数不变。
- 路口转向:代码检测车辆与最近RSU(路口)的距离。如果距离小于10米且满足随机概率(rand < 0.3),车辆将改变行驶方向(例如从水平变为垂直),并修正坐标至路口中心,防止偏移道路。
4. 网络拓扑与连通性分析
系统每一步都会重新计算网络状态:
- 利用欧氏距离公式生成所有节点间的距离矩阵。
- 邻接矩阵构建:根据通信半径(250m)判断节点间是否连通。
- RSU覆盖率:计算处于任意RSU通信范围内的车辆比例。
- 网络连通度:统计至少拥有一个邻居节点的车辆比例,反映网络的稀疏程度。
5. 防碰撞算法 (Anti-Collision)
代码在双重循环中遍历所有车辆对,实现了基于相对运动的预警机制:
- 距离筛选:首先筛选出距离小于预警阈值(40m)的车辆对。
- 相对运动矢量检测:计算两车的相对速度(dv)和相对位置(dp)。
- 判定逻辑:计算相对速度与相对位置的点积。如果结果为负值(表示两车正在相互通过或靠近),则判定为存在碰撞风险并计数;如果结果为正(表示两车在相互远离),则不触发预警。
6. 路由性能估算模型
代码并没有模拟完整的网络协议栈,而是采用概率模型估算路由性能:
- 源-被动对选择:随机选取网络中的源节点和目的节点。
- 连通性检查:通过广度优先搜索(BFS)或路径检测函数确认物理路径是否存在。
- 传输模拟:
* 根据几何距离估算所需的跳数(Hops)。
* 基于跳数和基础误码率计算总丢包率公式:
1 - (1 - 误码率)^跳数。
* 通过随机数判定数据包是否成功投递。
* 延迟计算包含每跳的处理延迟和传播延迟。
- 使用移动平均滤波法(加权0.95/0.05)平滑PDR和延迟曲线,以减少随机性带来的图表抖动。
7. 可视化模块
使用了MATLAB的句柄图形技术进行高效绘图:
- 主视图:每2个时间步刷新一次。显示灰色道路背景、绿色五角星表示RSU、蓝色圆形表示车辆。
- 动态元素:
*
连通链路:随机抽取并绘制部分处于通信范围内的V2V链路(青色线)。
*
预警高亮:被判定为有碰撞风险的车辆会被标记红色圆圈。
- 统计图表:右上角图表显示包投递率和端到端延迟随时间的走势;右下角图表通过柱状图展示碰撞预警次数,通过折线图展示网络连通度和RSU覆盖率。