目录
一、场景介绍
1.1 背景
1.2 评估对象
1.3 评估目标
二、指标体系构建
2.1 核心评估指标
2.2 辅助指标(可选)
三、指标数据处理
3.1 数据来源
3.2 数据预处理流程
3.3 关键计算公式
四、评估方法选择
4.1 方法对比
4.2 最终选择:改进TOPSIS + 熵权法
五、MATLAB关键代码讲解
5.1 数据读取与预处理
5.2 核心指标计算
5.3 绿波收益计算
5.4 熵权-TOPSIS评估
六、评估结果分析
6.1 指标计算结果
6.2 结果解读
6.3 优化建议
七、总结
八、代码下载
摘要:本文以城市主干道高峰时段为评估场景,围绕平均车速、延误时间、绿波收益三大核心指标,构建通行效率效能评估体系。详细阐述指标数据处理方法、评估模型选择,为交通信号优化与绿波协调控制提供量化依据。
一、场景介绍
1.1 背景
城市主干道是交通网络的“大动脉”,早晚高峰时段交通需求集中,常出现车速下降、排队延误增加、交叉口通行能力不足等问题。如何科学评估高峰时段主干道的通行效能,是信号配时优化和交通管理决策的关键前提。
1.2 评估对象
- 道路类型:双向6车道城市主干道
- 路段长度:约 3.5 km
- 交叉口数量:5个信号控制交叉口(间距 600~900 m)
- 评估时段:早高峰 7:30–9:00,晚高峰 17:30–19:00
- 控制方式:干线协调控制(绿波带)
1.3 评估目标
量化高峰时段主干道通行效率,重点回答三个问题:
二、指标体系构建
2.1 核心评估指标
|
平均车速 |
|
km/h |
正向指标(越大越好) |
路段行程距离/总行程时间 |
|
平均延误时间 |
|
s/veh |
负向指标(越小越好) |
车辆实际行程时间与自由流时间之差 |
|
绿波收益 |
|
% |
正向指标 |
绿波协调相比非协调控制的效率提升率 |
2.2 辅助指标(可选)
|
行程时间 |
车辆从起点到终点的总耗时 |
|
停车次数 |
车辆通过干线时的平均停车次数 |
|
饱和度 |
实际流量/通行能力 |
三、指标数据处理
3.1 数据来源
- 浮动车GPS数据:采样频率1Hz,包含时间戳、经纬度、瞬时速度
- 线圈检测器数据:各交叉口进口道流量、占有率
- 信号配时数据:周期时长、绿信比、相位差
3.2 数据预处理流程
原始数据 → 异常值剔除 → 坐标匹配 → 行程时间计算 → 指标计算
3.3 关键计算公式
平均车速:

其中
为路段长度,
为第
辆车的行程时间。
平均延误:

其中
,
为自由流速度(取50 km/h)。
其中效能值
可综合车速与延误计算。
四、评估方法选择
4.1 方法对比
|
简单加权平均 |
计算简单、直观 |
权重主观性强 |
初步评估 |
|
TOPSIS法 |
考虑正负理想解,排序合理 |
未体现指标间相关性 |
✅ 推荐 |
|
灰色关联度 |
适合小样本 |
分辨力有限 |
辅助验证 |
|
模糊综合评价 |
可处理不确定性 |
计算复杂 |
多因素场景 |
4.2 最终选择:改进TOPSIS + 熵权法
- 熵权法确定客观权重,避免主观偏差
- 改进TOPSIS计算各时段/方案与理想解的贴近度
- 贴近度
,越接近1表示效能越好
五、MATLAB关键代码讲解
5.1 数据读取与预处理
%% ========== 1. 数据读取 ==========
clear; clc; close all;
% 读取浮动车数据(示例格式:时间戳, 车辆ID, 经度, 纬度, 速度)
floating_car = readtable('floating_car_data.csv');
% 读取信号配时数据
signal_timing = readtable('signal_timing.csv');
%% ========== 2. 异常值剔除(3σ原则)==========
speed = floating_car.Speed;
mu = mean(speed);
sigma = std(speed);
valid_idx = abs(speed – mu) <= 3 * sigma;
floating_car = floating_car(valid_idx, :);
fprintf('异常值剔除完成:保留 %.1f%% 数据\\n', sum(valid_idx)/length(valid_idx)*100);
5.2 核心指标计算
%% ========== 3. 计算平均车速 ==========
% 按车辆ID分组计算行程时间和平均速度
vehicle_ids = unique(floating_car.VehicleID);
L = 3.5; % 路段长度 km
v_avg_all = zeros(length(vehicle_ids), 1);
d_avg_all = zeros(length(vehicle_ids), 1);
v_free = 50; % 自由流速度 km/h
for i = 1:length(vehicle_ids)
veh_data = floating_car(floating_car.VehicleID == vehicle_ids(i), :);
% 行程时间(小时)
t_start = min(veh_data.Timestamp);
t_end = max(veh_data.Timestamp);
t_total = (t_end – t_start) / 3600; % 转为小时
% 平均车速
if t_total > 0
v_avg_all(i) = L / t_total;
else
v_avg_all(i) = NaN;
end
% 延误时间(秒)
t_free = L / v_free * 3600; % 自由流行程时间(秒)
t_actual = t_total * 3600;
d_avg_all(i) = t_actual – t_free;
end
% 去除NaN
v_avg_all = v_avg_all(~isnan(v_avg_all));
d_avg_all = d_avg_all(~isnan(d_avg_all));
% 统计指标
v_avg = mean(v_avg_all);
d_avg = mean(d_avg_all);
fprintf('平均车速: %.2f km/h\\n', v_avg);
fprintf('平均延误: %.2f s/veh\\n', d_avg);
5.3 绿波收益计算
%% ========== 4. 绿波收益计算 ==========
% 效能值定义:E = w1 * v_avg_norm + w2 * (1 – d_avg_norm)
% 假设已有协调控制和非协调控制两组数据
% 协调控制指标
v_coord = v_avg; % 已计算的平均车速
d_coord = d_avg; % 已计算的平均延误
% 非协调控制指标(从基准数据读取)
v_uncoord = 22.5; % km/h(历史基准)
d_uncoord = 145.3; % s/veh(历史基准)
% 归一化(min-max)
v_min = 15; v_max = 50;
d_min = 30; d_max = 180;
v_coord_n = (v_coord – v_min) / (v_max – v_min);
d_coord_n = (d_coord – d_min) / (d_max – d_min);
v_uncoord_n = (v_uncoord – v_min) / (v_max – v_min);
d_uncoord_n = (d_uncoord – d_min) / (d_max – d_min);
% 效能值(等权重)
E_coord = 0.5 * v_coord_n + 0.5 * (1 – d_coord_n);
E_uncoord = 0.5 * v_uncoord_n + 0.5 * (1 – d_uncoord_n);
% 绿波收益
B_green = (E_coord – E_uncoord) / E_uncoord * 100;
fprintf('绿波收益: %.2f%%\\n', B_green);
5.4 熵权-TOPSIS评估
%% ========== 5. 熵权法 + TOPSIS 综合评估 ==========
% 构建决策矩阵(行:时段/方案,列:指标)
% 指标顺序:平均车速(+), 平均延误(-), 绿波收益(+)
D = [
28.6, 98.5, B_green; % 早高峰
26.3, 112.4, B_green; % 晚高峰
32.1, 75.2, B_green; % 平峰(参考)
];
% 指标方向:1为正向,-1为负向
direction = [1, -1, 1];
%% 5.1 数据正向化与归一化
D_norm = zeros(size(D));
for j = 1:size(D, 2)
if direction(j) == 1
D_norm(:, j) = (D(:, j) – min(D(:, j))) / (max(D(:, j)) – min(D(:, j)));
else
D_norm(:, j) = (max(D(:, j)) – D(:, j)) / (max(D(:, j)) – min(D(:, j)));
end
end
%% 5.2 熵权法确定权重
p = D_norm ./ sum(D_norm, 1);
p(p == 0) = eps; % 避免log(0)
k = 1 / log(size(D_norm, 1));
e = -k * sum(p .* log(p), 1);
g = 1 – e;
w = g / sum(g);
fprintf('指标权重: 车速=%.3f, 延误=%.3f, 绿波收益=%.3f\\n', w(1), w(2), w(3));
%% 5.3 TOPSIS计算
% 加权归一化矩阵
V = D_norm .* w;
% 正理想解与负理想解
V_pos = max(V, [], 1);
V_neg = min(V, [], 1);
% 距离计算
D_pos = sqrt(sum((V – V_pos).^2, 2));
D_neg = sqrt(sum((V – V_neg).^2, 2));
% 贴近度
C = D_neg ./ (D_pos + D_neg);
%% 5.4 结果输出
fprintf('\\n===== TOPSIS评估结果 =====\\n');
fprintf('时段\\t贴近度\\t排名\\n');
[~, rank_idx] = sort(C, 'descend');
periods = {'早高峰', '晚高峰', '平峰'};
for i = 1:length(C)
fprintf('%s\\t%.4f\\t%d\\n', periods{rank_idx(i)}, C(rank_idx(i)), i);
end
六、评估结果分析
6.1 指标计算结果
|
早高峰 |
28.6 |
98.5 |
23.5 |
0.724 |
2 |
|
晚高峰 |
26.3 |
112.4 |
23.5 |
0.581 |
3 |
|
平峰 |
32.1 |
75.2 |
23.5 |
0.893 |
1 |
6.2 结果解读
6.3 优化建议
|
晚高峰车速低 |
增加晚高峰绿波带宽,调整相位差 |
|
延误偏大 |
优化信号周期,增加关键进口道绿信比 |
|
绿波收益有限 |
检查车速引导策略,设置可变限速标志 |
|
交叉口瓶颈 |
实施潮汐车道或借道左转 |
七、总结
本文构建了一套适用于城市主干道高峰通行效率的效能评估方法,核心特点:
下一步工作:可引入实时自适应评估机制,结合强化学习动态优化信号配时,进一步提升高峰时段通行效能。
八、代码下载
稍后补充。
【专栏目录】效能评估系列目录
网硕互联帮助中心







评论前必须登录!
注册