元胞自动机matlab环境下对交通流问题的仿真 数学建模

上传人:第** 文档编号:38656692 上传时间:2018-05-05 格式:DOCX 页数:3 大小:12.71KB
返回 下载 相关 举报
元胞自动机matlab环境下对交通流问题的仿真 数学建模_第1页
第1页 / 共3页
元胞自动机matlab环境下对交通流问题的仿真 数学建模_第2页
第2页 / 共3页
元胞自动机matlab环境下对交通流问题的仿真 数学建模_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《元胞自动机matlab环境下对交通流问题的仿真 数学建模》由会员分享,可在线阅读,更多相关《元胞自动机matlab环境下对交通流问题的仿真 数学建模(3页珍藏版)》请在金锄头文库上搜索。

1、function v d p = multi_driveway( nl,nc,fp,dt,nt )% 在某一特定车流密度下的(车流密度由 fp 决定)单、双车道仿真模型 % nc:车道数目(1 或 2) ,nl:车道长度输入参数 % v:平均速度,d:换道次数(1000 次)p:车流密度输出参数 % dt:仿真步长时间,nt:仿真步长数目输入参数 % fp:车道入口处新进入车辆的概率输入参数 % test: % nl = 400;fp = 0.5; % nc = 2;dt=0.01;nt=500;%构造元胞矩阵B=ones(2*nc+1,nl+2);%奇数行为不可行车道B(1:2:(2*nc+

2、1),:)=1.2;%初始化仿真元胞状态(1 为无车,0 为有车)bb=B(2:2:2*nc,:);bb(bb=0)=1;B(2:2:2*nc,:)=bb;B(2:2:2*nc,end)=0;%显示初始交通流图figure(1);H=imshow(B,);set(gcf,position,241 132 560 420) ;%241 132 560 420set(gcf,doublebuffer,on); %241title(cellular-automation to traffic modeling,color,b);%初始化化存储元胞上车辆状态的矩阵S(1:nc,nl) = 0;Q(1:

3、nc,1:2) = 0;Acc(1:nc,1:(nl+2)=0;%初始化换道频率、平均速度、车流密度相关变量ad = 0;av(1:nt) = 0;ap(1:nt) = 0;c = 1;for n = 1:ntA=B(2:2:2*nc,:);%确定前 n-2 个车辆的状态S(:,:) = 0;S(A(:,1:end-2)=0%加速的车S(A(:,1:end-2)=0%停车的车S(A(:,1:end-2)=0%减速行驶的车%确定最后 2 两个元胞的状态Q(:,:) = 0;Q(A(:,end-1)=0Q(A(:,end-1)=0Q(A(:,end-1)=1Q(:,end) = 1;%获得所有元胞

4、上车辆的状态Acc = S Q ;%换路规则if(nc1A(2,g)=0;ad=ad+1;elseif( Acc(2,g)=3A(2,g)=1;ad=ad+1;%均速行驶车辆如另一条路有 3 空位则换路elseif( Acc(1,g)=1A(2,g)=0; ad =ad+1;elseif( Acc(2,g)=1A(2,g)=1;ad=ad+1;endend%换路后重新设置元胞上的车辆状态S(:,1:end) = 0;S(A(:,1:end-2)=0%寻找加速的车S(A(:,1:end-2)=0%寻找停车的车S(A(:,1:end-2)=0%寻找减速行驶的车%确定最后 2 两个元胞的状态Q(:,

5、1:end) = 0;Q(A(:,end-1)=0%Q(A(:,end-1)=0Q(A(:,end-1)=1Q(:,end) = 1;%获得所有元胞状态Acc = S Q ;end%根据当前状态改变元胞位置%匀速运行车辆向前走 1 格A( Acc(:,1:end)=1 ) = 1;A( zeros(nc,1) Acc(:,1:end-1)=1 ) = 0;%高速运行车辆向前走 2 格A( Acc(:,1:end)=2) = 1;A( zeros(nc,3) Acc(:,1:end-2)=2) = 0;%计算平均速度、换道频率、车流密度等参数%获得运行中的车辆数目 NmatN = Anl/2)av(c) = V/N;c = c+1;end%在车道入口处随机引入新的车辆A = round(fp/rand(nc,1)A(A=0)=1;%将新的车辆加入元胞矩阵中B(2:2:2*nc,:)=A;%显示交通流图set(H,CData,B);%仿真步长pause(dt);end%仿真结束,计算结果d = ad;p = mean(ap);v = sum(av)/c; end

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号