
原创代码,附下载链接。可联系获取代码定制、讲解,请勿翻卖参考文献:孙立.车联网环境下城市道路交叉口调头开口位置与信号控制方案优化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
更多方向
如需帮助,或有车联网、干线绿波协调、交通信号控制相关的代码定制需求,可从个人主页左侧联系我