目录
车道被占用对城市道路通行能力的影响 0
摘要 0
关键词: 0
一、问题重述 2
1.1 引言 2
1.2 问题的提出 2
二、问题分析 3
问题一: 3
问题二: 3
问题三 3
问题四 3
三、基本假设 4
四、符号说明 4
五、模型的建立与求解 5
5.1 问题一的建模与解答 5
5.1.1 实际通行能力的定义与理解 5
5.1.2 根据视频采集横断面的车流量数据并计算最大通行能力 6
5.1.3 找出影响最大通行能力的因素 8
5.1.4 结合上述因素描述实际通行能力的变化 10
5.2 问题二模型的建立与解答 11
5.2.1 模型假设 11
5.2.2 模型的建立与求解: 12
5.2.3数据的分析与说明: 15
5.3 问题三模型的建立与求解 17
符号规定 17
5.3.1 确定视频中事故发生的起止位置 17
5.3.2 每次事故统计四项指标的变化 18
5.3.3 根据统计数据逐步建立指标间的联系 19
5.3.4 元胞自动机的引入 20
模型综述: 20
符号定义: 20
模型的准备: 21
模型仿真: 27
5.4 问题四的求解 28
6.模型的科学性分析 29
6.1对于实际通行能力定义的科学性分析 29
6.2 基于单服务台多列的排队模型的科学性分析 30
6.3 研究车辆排队长度与事故影响程度关系的多元回归分析的科学性分析 30
6.4模拟事故发生路段的元胞自动机模型的科学性分析 30
7.模型的评价与改进 31
7.1 模型的优点 31
7.2 模型的缺点 31
7.3模型的可推广性分析 31
一、问题重述
1.1 引言
交通对国民经济的发展具有重要的战略意义,一直是国家重点建设内容。随着各种交通工具数量增长迅速,交通阻塞日趋严重,不仅会引发一系列严峻的社会和环境问题,而且制约经济发展,所以交通问题引起了政府机关、科研机构和学术界,乃至城市居民的普遍重视。
由于城市道路具有交通流密度大、连续性强等特点,一条车道被占用,也可能降低路段所有车道的通行能力,即使时间短,也可能引起车辆排队,出现交通阻塞。如处理不当,甚至出现区域性拥堵。
而交通系统是一个具有严重非线性、强随机性、大时变性和不确定性的复杂系统,车道被占用的情况种类也极其繁多、复杂,要解决此类交通问题,除了要充分利用现有交通资源外,更重要的是要利用科学的理论来进行合理的交通规划、控制和管理。因此,正确估算车道被占用对城市道路通行能力的影响程度,将为交通管理部门正确引导车辆行驶、审批占道施工、设计道路渠化方案、设置路边停车位和设置非港湾式公交车站等提供理论依据。
1.2 问题的提出
为了更好地估算车道被占用对城市道路通行能力的影响程度,本文依次提出以下问题。
(1)根据视频1(附件1),描述视频中交通事故发生至撤离期间,事故所处横断面实际通行能力的变化过程。
(2)根据问题1所得结论,结合视频2(附件2),分析说明同一横断面交通事故所占车道不同对该横断面实际通行能力影响的差异。
(3)构建数学模型,分析视频1(附件1)中交通事故所影响的路段车辆排队长度与事故横断面实际通行能力、事故持续时间、路段上游车流量间的关系。
(4)假如视频1(附件1)中的交通事故所处横断面距离上游路口变为140米,路段下游方向需求不变,路段上游车流量为1500pcu/h,事故发生时车辆初始排队长度为零,且事故持续不撤离。请估算,从事故发生开始,经过多长时间,车辆排队长度将到达上游路口。
% main.m
%
% This is a main script to simulate the approach, service, and departure of
% vehicles passing through a toll plaza, , as governed by the parameters
% defined below
%
% iterations = the maximal iterations of simulation
% B = number booths
% L = number lanes in highway before and after plaza
% Arrival = the mean total number of cars that arrives
% plazalength = length of the plaza
% Service = Service rate of booth
% plaza = plaza matrix
% 1 = car, 0 = empty, -1 = forbid, -3 = empty&booth
% v = velocity matrix
% vmax = max speed of car
% time = time matrix, to trace the time that the car cost to
% pass the plaza.
% dt = time step
% t_h = time factor
% departurescount = number of cars that departure the plaza in the step
% departurestime = time cost of the departure cars
% influx = influx vector
% outflux = outflux vector
% timecost = time cost of all car
% h = handle of the graphics
%
% zhou lvwen: zhou.lv.wen@gmail.com
clear;clc
iterations = 1200; % the maximal iterations of simulation
B = 3; % number booths
L = 3; % number lanes in highway before and after plaza
Arrival=3; % the mean total number of cars that arrives
plazalength = 81; % length of the plaza
[plaza, v, time,buspla] = create_plaza(B, L, plazalength);
h = show_plaza(plaza,buspla, NaN, 0.01);
timeblock=5;
dt = 0.2; % time step
t_h = 1; % time factor
vmax = 2; % max speed
vinit=1;%initial speed
busstop=6*ones(plazalength,B+2);
carstop=3*ones(plazalength,B+2);
timecost = [];
sf=0;%switchflag
for i = 1:iterations
if i==14
ss=0;
end
if i==370
ss=0;
end
if i==490
ss=0;
end
if i==550
ss=0;
end
if i==602
ss=0;
end
if i==711
ss=0;
end
% introduce new cars
[plaza, v, arrivalscount] = new_cars(Arrival, dt, plaza, v, vinit,i);
[plaza, v, buspla] = new_bus(plaza, v, vinit, i,buspla);
h = show_plaza(plaza,buspla, h, 0.02);
[timeblock,plaza] = carblock(timeblock,plaza,sf);%转向导致堵车
% update rules for lanes
r=rand();
if(r<0.3)
[plaza, v, time,buspla,busstop,carstop,sf] = switch_lanes(plaza, v, time,buspla,busstop,carstop,sf); % lane changes
[plaza, v, time,buspla] = move_forward(plaza, v, time, vmax,buspla); % move cars forward
else
[plaza, v, time,buspla] = move_forward(plaza, v, time, vmax,buspla); % move cars forward
[plaza, v, time,buspla,busstop,carstop,sf] = switch_lanes(plaza, v, time,buspla,busstop,carstop,sf); % lane changes
end
[plaza,buspla, v, time, departurescount, departurestime] = clear_boundary(plaza,buspla, v, time);
% flux calculations
influx(i) = arrivalscount;
outflux(i) = departurescount;
timecost = [timecost, departurestime];
end
h = show_plaza(plaza, h, 0.01);
xlabel({strcat('B = ',num2str(B)), ...
strcat('mean cost time = ', num2str(round(mean(timecost))))})