【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

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

相关推荐
ι:18 分钟前
MATLAB 与 Python 搭建无人机地面站:优势、劣势与选型逻辑
python·matlab·无人机
汉字萌萌哒34 分钟前
2024CSP-J入门级C++真题详解
开发语言·c++
arbboter1 小时前
【网络工具】NetProxy网络代理用户手册
开发语言·网络·c#·网络代理·网络异常·代理工具
汉字萌萌哒2 小时前
2019CCF-CSP入门级C++试题解析
java·开发语言·c++
叠层归一研究院2 小时前
AGI 系统(十一):二阶网络 — 二阶递归 × 多主体 (元符号网络)
开发语言·人工智能·算法·php·agi
小雨笙笙2 小时前
C语言:变量三属性——存储类型
c语言·开发语言
果果燕3 小时前
C++ 学习笔记(二):类与对象—— 构造函数与析构函数
开发语言·c++
江畔柳前堤3 小时前
Function Calling 与 Tool Calling:从认知到工程的全景深度解析
开发语言·网络·人工智能·深度学习·算法·机器学习·php
2601_949950633 小时前
Java 面试准备,用练题簿把“背过八股”变成“真正会答”
java·开发语言·面试·刷题·小程序推荐
老洋葱Mr_Onion3 小时前
【C++】信息学奥赛CSP通关之路——CSP-J/S第一轮原创全真模拟试卷集(2026)卷四全卷解析
开发语言·c++