【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

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

相关推荐
云絮.1 小时前
数据库事务
java·开发语言·数据库
派葛穆1 小时前
Python-pip切换镜像源
开发语言·python·pip
Full Stack Developme1 小时前
Java 漏斗算法 及应用场景
java·开发语言·算法
阿里嘎多学长2 小时前
2026-07-03 GitHub 热点项目精选
开发语言·程序员·github·代码托管
xxie1237942 小时前
Python 闭包:函数嵌套的 “状态捕获” 机制
开发语言·python
骑士雄师2 小时前
java面试记录: sychonized 锁,熔断组件,分布式锁
java·开发语言·面试
lilihuigz2 小时前
Meta Box完整指南:WordPress自定义字段与内容框架高效构建结构化内容 - 易服客工作室
java·开发语言
xxie1237943 小时前
Python 闭包的调用方法与实践
开发语言·python
aini_lovee3 小时前
计算 HOG算子的典型 MATLAB 程序
开发语言·matlab