1 简介
元胞自动机模拟三车道干路中间有大企业两边有一一车道辅路高峰时段
2 部分代码
function main
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Sidex1 Sidex2
% +---------------+ Sidey = 2
% | |
% | |
% ======+===============+==== Mainy
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% T 总模拟实际时间
% Arrival 总车流量
% Mainlength 干道长
% Mainy 干道纵坐标
% Mainwide 干道宽
% Sidewide 辅路宽
% Sidex1 Sidex2 辅路横坐标
% Sidey 辅路纵坐标
% Sidelengthh 辅路南北长
% Sidelengthw 辅路东西长
% MP map矩阵
% 1 空 2 车 3 边界
% lightmp 红绿灯
% lighttime 红绿灯间隔
% v 车速度矩阵
% vmainmax 干道最高速
% vsidemax 辅路最高速
% time 车花费时间矩阵
% dt 单位时间
% tt 图像刷新时间
% h handle
% sumtime 车总时间
% alltime 车总花费时间
% changepro 右侧车道进入铺路概率
clear;clc
T = 3000;
Mainlength = 200; Mainwide = 3; vmainmax = 6;
%Sidelengthh = 25; Sidelengthw = 100; Sidewide = 1;
vsidemax = 4;
Sidex1 = 30; Sidex2 = 150; Sidey = 2; Mainy = 26;
[mp, v, time,lightmp] = init_mp(Sidex1,Sidex2,Sidey,Mainy,Mainlength,Mainwide);
h = print_mp(mp, NaN, 0.1);
dt = 1.2; tt=0.1;
sumtime = 0; sumpassed =0;
lighttime = 20;
changepro = 0;
alltime=0;
%mp(25,comy)=2;
cy2=130;
mp(25,cy2)=2;
for i = 1:T
sumtime=sumtime+dt;
% 刷车
if(rem(i,2)&(mp(27,8)~=2||v(27,8)~=0))[mp, v] = new_cars(dt,mp,v,vmainmax); end;
% 软件园
% if(rem(i,2))mp(24,cy2)=1;else mp(24,cy2)=2;end;
% mp(26,cy2)=2;v(26,cy2)=0;
% 变道 chos_road2 激进 chos_road 保守
[mp, v, time] = chos_road(mp,v,time);
% 变速
[mp, v, time] = change_speed(mp,v,time,vmainmax);
flag = (mp(Mainy,Sidex2)==0)
% 辅道
if(flag)
[mp, v, time] = fulu(mp,v,time,vsidemax,Sidex1,Sidex2,Sidey,changepro);
end;
% 位移&消车
[alltime, mp, v, time , sumpassed ] = move(alltime,sumpassed,mp,v,time,dt);
% 辅道
if(~flag)
[mp, v, time] = fulu(mp,v,time,vsidemax,Sidex1,Sidex2,Sidey,changepro);
end;
% 输出
h = print_mp(mp,h,tt);
xlabel({strcat(strcat('time = ',num2str(sumtime,'%.1f')),'s'),
strcat('total number of vehicles =',num2str(sumpassed)),
strcat('average passing time =',num2str(alltime/sumpassed,'%.4f'))
,'不开放辅路,软件园不影响,保守策略'});
end
3 仿真结果
4 参考文献
[1]李伟娟. 基于元胞自动机的城市车辆换道模型仿真研究. 吉林大学, 2015.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。