【MATLAB例程|车联网6】考虑调头车流扰动与网联车辆实时感知信息的干线多交叉口 FAC-CV 全感应协调控制仿真与性能对比分析

原创代码,附下载链接。可联系获取代码定制、讲解,请勿翻卖

参考文献:孙立.车联网环境下城市道路交叉口调头开口位置与信号控制方案优化D.大连理工大学,2025

文章目录

程序介绍

面向城市干线多交叉口信号协调控制场景,构建了一套基于网联车辆环境的全感应协调控制仿真框架。固定协调控制采用基于历史交通需求的预设绿波方案,传统全感应协调控制根据本周期排队状态和上游放行信息进行绿灯时间调整,FAC-CV 方法则进一步利用网联车辆提供的实时排队、到达时间和车队传播信息,对绿灯时间和交叉口间相位差进行动态修正。

缩写说明:FAC-CV 表示 Fully-Actuated Coordinated Control under Connected Vehicle environment,即车联网环境下全感应协调控制;其中 FA-CV 表示车联网环境下全感应控制,CV 表示 Connected Vehicle,即网联车辆。

方法对比

编号 方法 英文简称 控制逻辑 是否使用CV信息 是否动态修正相位差
1 固定协调控制 Fixed Coordination 采用固定主线绿灯、固定支路绿灯和固定绿波相位差 否 否
2 传统全感应协调 Conventional Actuated Coordination 根据本周期排队长度计算绿灯时间,但相位差仍基本固定 否 否
3 FAC-CV全感应协调控制 FAC-CV 利用网联车辆估计排队、预测到达车辆,并动态调整绿灯和相位差 是 是

运行结果

程序运行后会生成以下图像:

  • 协调延误对比
  • 排队长度对比
  • 渗透率敏感性

  • 相位差修正

  • 时距图

命令行会输出固定协调、传统全感应协调和 FAC-CV 的平均延误与平均排队长度。

MATLAB源代码

部分代码:

matlab 复制代码
%% FAC-CV干线多交叉口全感应协调控制例程(平衡对照组版本)
% 调头车流影响下的干线多交叉口全感应协调控制演示。
% 缩写说明:
% FAC-CV = Fully-Actuated Coordinated Control under Connected Vehicle environment,
% 即车联网环境下全感应协调控制;CV = Connected Vehicle,即网联车辆。
%
% 作者:matlabfilter(V同号,除前期达成一致外,付费咨询)
% 2026-06-25 / Ver3
clear; clc; close all;
rng(0);

%% 输出目录
scriptDir = fileparts(mfilename('fullpath'));
if isempty(scriptDir)
    scriptDir = pwd;
end

%% 场景参数
numCycle = 75;              % 仿真周期数
numIntersection = 3;        % 干线交叉口数量
cycleLength = 110;          % 信号周期长度,s

linkDistance = [420, 380];  % 相邻交叉口间距,m
desiredSpeed = 14.5;        % 期望绿波速度,m/s,约52.2 km/h
travelTime = linkDistance / desiredSpeed;

% 网联车辆渗透率敏感性分析
cvRates = 0.20:0.20:1.00;

methodName = {'固定协调控制', '传统全感应协调', 'FAC-CV'};

%% 80%网联车辆渗透率下的三种方法对比
result80 = cell(1, 3);
for method = 1:3
    result80{method} = simulateArterial(method, 0.80, numCycle, numIntersection, ...
        cycleLength, travelTime);
end

%% FAC-CV渗透率敏感性分析
sensitivityDelay = zeros(numel(cvRates), 1);
sensitivityQueue = zeros(numel(cvRates), 1);

for r = 1:numel(cvRates)
    tmp = simulateArterial(3, cvRates(r), numCycle, numIntersection, cycleLength, travelTime);
    sensitivityDelay(r) = tmp.avgDelay;
    sensitivityQueue(r) = tmp.avgQueue;
end

%% 打印结果
fprintf('FAC-CV干线多交叉口全感应协调控制仿真结果。\n');
fprintf('说明:本版本已增强固定协调控制和传统全感应协调,使其作为更合理的对照组。\n\n');

for method = 1:3
    fprintf('%s | 平均延误 %.2f 秒/车 | 平均剩余排队 %.2f 辆\n', ...
        methodName{method}, result80{method}.avgDelay, result80{method}.avgQueue);
end

baseDelay = result80{1}.avgDelay;
actuatedDelay = result80{2}.avgDelay;
faccvDelay = result80{3}.avgDelay;

fprintf('\nFAC-CV相对固定协调控制延误降低:%.2f%%\n', ...
    100 * (baseDelay - faccvDelay) / max(baseDelay, eps));
fprintf('FAC-CV相对传统全感应协调延误降低:%.2f%%\n', ...
    100 * (actuatedDelay - faccvDelay) / max(actuatedDelay, eps));

%% 结果可视化
figure('Color', 'w');
bar([result80{1}.avgDelay, result80{2}.avgDelay, result80{3}.avgDelay]);
set(gca, 'XTickLabel', methodName, 'FontName', 'Microsoft YaHei');
grid on; box on;
ylabel('平均延误 (秒/车)');
title('协调控制延误对比');
saveas(gcf, '协调延误对比.png');

完整代码和函数:
https://download.csdn.net/download/callmeup/93028527

更多方向

  1. 基于网联车辆实时感知的单交叉口全感应自适应信号控制仿真系统------FA-CV方法与传统控制策略的性能对比研究:https://blog.csdn.net/callmeup/article/details/162304025?spm=1011.2415.3001.5331

  2. 多MEC协同的分层联邦学习在车路协同感知中的收敛性与通信代价分析

  3. 基于车车协同参数卸载的联邦拆分混合学习时延优化系统仿真:https://blog.csdn.net/callmeup/article/details/162243648?spm=1011.2415.3001.5331

如需帮助,或有车联网、干线绿波协调、交通信号控制相关的代码定制需求,可从个人主页左侧联系我

相关推荐
AI源码25 分钟前
基于 Python 的短视频用户行为分析系统
开发语言·python
旖旎夜光1 小时前
【C++ 基础入门】类和对象(上):封装、对象模型与 this 指针
开发语言·c++·笔记·学习
揽星河..1 小时前
【C语言】结构体
c语言·开发语言
2601_966949652 小时前
如何封装 qd.klines.batch(),让批量 K 线查询函数在多个策略中复用?
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
码农小韩2 小时前
FPGA学习(一)——LED点灯与开发流程
学习·fpga开发·入门·环境配置·仿真·点灯
分享资料3 小时前
MATLAB 中分号 (;)的作用
matlab
神仙别闹3 小时前
基于Python实现英词语自动对齐系统
开发语言·python
akinggw3 小时前
libagentcore - 一个基于c++的AI多agent系统升级到2.0版本
开发语言·jvm·c++
老歌老听老掉牙3 小时前
圆柱端面四平面交线及其在yoz面投影的几何解析与 Python 实现
开发语言·python·平面
旖旎夜光4 小时前
【C++ 基础入门】命名空间、输入输出、缺省参数与函数重载
开发语言·c++·笔记·学习