1 简介
本文通过建立关于车辆通行的模型,解决了研究小区开放对周边道路通行的影响问题.假设小区内部为单车道,周边道路为三车道.以元胞自动机理论为基础,建立了关于车辆通行的模型.对南京市凤凰和美小区开放前后的数据进行仿真,得出结论:开放小区和不开放小区,车辆经过小区周围路段的速度几乎无变化.但是由于开放小区出入口可以增加车流量,为车辆出行提供便利.
2 部分代码
%每个格子的状态有三种:
%用1来表示正常前进车辆,-3表示拐入小区的车辆,0表示空位,-888表示不可进入区域
%% 初始化运行空间
clear?all;
%clc;
warning?off;
dbstop?if?error
W?=?0;
%% 模型主要参数设置
red_light_time?=?60;%红灯时间
green_light_time?=?40;%绿灯时间
fresh_frequency?=?0.1;%刷新速率
num_of_street?=?4;%小区道路的数量,也就是交叉口的数量
global?pixellength;%定义全局变量车道长度
pixellength?=?30;%主道的长度
side_length?=?25;%小区边长
%% 用来统计数据的变量
global?speed_index
speed_index=0;
loop_times?=?10;%循环`次数;
time_step_length?=?loop_times*(red_light_time+green_light_time)/2;
avr_move_steps?=?ones(1,time_step_length);
store_num_of_cars?=?ones(1,time_step_length);
store_num_of_jam_cars?=?ones(1,time_step_length);
avr_mainroad_move_steps?=?ones(1,time_step_length);
%% 生成运行改进后的N-S模型所需的变量.
B?=?side_length+1;
%% 绘图与统计
hold?off;
time_series?=?linspace(1,time_step_length,time_step_length);
show_pixel(pixel,B,temp_handle);
figure(2);
% title('平均车速');
% xlabel('时步')
% ylabel('每辆车的平均移动距离')
para?=?robustfit(time_series,avr_move_steps);
xdata?= [ones(size(time_series,2),1)?time_series'];
regress_avr_move_steps=xdata*para;?
%fitresult=createFit(avr_move_steps);
temp_handle=plot(avr_move_steps);
legend(?temp_handle,?'每辆车的平均移动距离'?);
hold?on;
%plot(fitresult);
title('平均车速');
xlabel('时步')
ylabel('每辆车的平均移动距离')
hold?off
figure(3);
% title('位于地图内的车辆数量');
% xlabel('时步')
% ylabel('车辆数量')
temp_handle=plot(store_num_of_cars);
legend(?temp_handle,?'位于地图内的车辆数量'?);
title('位于地图内的车辆数量');
xlabel('时步')
ylabel('车辆数量')
figure(4);
temp_handle=plot(store_num_of_jam_cars);
legend(?temp_handle,?'被阻塞的车辆'?);
title('被阻塞的车辆数量');
xlabel('时步')
ylabel('车辆数量')
fprintf('小区边长:%i\n',side_length);
fprintf('主路长度:%i\n',pixellength);
fprintf('小区道路数:%i\n',num_of_street);
fprintf('一个红绿灯周期内的一辆车的平均车速为:%f 格每时步\n',mean(avr_move_steps(end-(red_light_time+green_light_time):end)));
fprintf('一个红绿灯周期内的一辆在主道上的车的平均车速为:%f 格每时步\n',mean(avr_mainroad_move_steps(end-(red_light_time+green_light_time):end)));
fprintf('稳定的位于地图内的车辆数量为:%f \n',floor(mean(store_num_of_cars(end-30:end))));
fprintf('稳定的位于地图内被阻塞的车辆为:%f \n',floor(mean(store_num_of_jam_cars(end-30:end))));
fprintf('稳定的主道阻塞率为:%f \n',mean(store_num_of_jam_cars(end-30:end))/pixellength);
3 仿真结果
4 参考文献
[1]吕倩, 葛文潇, 严然. 基于元胞自动机的小区开放对周围道路影响研究[J]. 中国高新区, 2019.
部分理论引用网络文献,若有侵权联系博主删除。
|