当前位置:首页 > IT技术 > 其他 > 正文

【元胞自动机】基于元胞自动机模拟交通事故下的通行情况含Matlab源码
2022-04-25 23:06:24

1 简介

随着城市社会经济的发展,交通流量的增长与现有道路状况之间的矛盾日益突出,已成为制约城市经济发展的主要因素之一.因此,近年来交通问题受到了国内外专家的重视,提出了各种各样的交通模型用以研究交通问题.其中元胞自动机模型可以灵活地加以修改以考虑各种真实的交通条件并且可以有效的进行计算机实时仿真,它为交通流理论中的系统整体行为与复杂的非线性动力学现象的研究提供了一个有效的模型工具,因此受到了广泛的关注. 

2 部分代码

function [plaza, v, number_cars] = new_cars(Arrival, dt, plaza, v, vmax, iteration)
%
% new_cars introduce new cars. Cars arrive at the toll plaza uniformly in
% time (the interarrival distribution is exponential with rate Arrival?).
% "rush hour" phenomena can be consider by varying the arrival rate.
%
% USAGE: [plaza, v, number_cars] = new_cars(Arrival, dt, plaza, v, vmax)
% Arrival = the mean total number of cars that arrives
% dt = time step
% plaza = plaza matrix
% 1 = car, 0 = empty, -1 = forbid, -3 = empty&booth
% v = velocity matrix
% vmax = max speed of car
%
% zhou lvwen: zhou.lv.wen@gmail.com
% Find the empty lanes of the entrance where a new car can be add.
unoccupied = find(plaza(1,:) == 0);
n = length(unoccupied); % number of available lanes
% The number of vehicles must be integer and not exceeding the number of
% available lanes
number_cars =min( poissrnd(Arrival*dt,1), n);
% if number_cars > 0
% x = randperm(n);
% for i = 1:number_cars
% plaza(1, unoccupied(x(i))) = 1;
% v(1, unoccupied(i)) = vmax;
% end
% end
newcarmerge=[2 5 14 30 30 40 42 45 46 50 51 51 52 54 60 61 91 102 106 110 111 112 116 118 118 123 132 133 148 152 153 158 162 169 170 171 172 173 173 174 175 178 178 181 216 221 221 225 232 232 234 238 239 240 269 272 286 288 288 290 291 295 296 299 299 300 303 308 310 310 313 318 318 336 343 343 346 346 348 352 352 355 358 358 359 361 361 363 366 366 374 399 403 408 409 409 412 414 419 421 421 423 425 426 426 458 462 465 467 469 472 472 472 473 477 477 477 477 478 483 483 483 483 487 521 524 524 527 527 531 531 532 536 538 538 541 541 545 545 545 545 548 552 563 564 565 579 584 585 586 589 589 592 593 594 595 595 595 605 605 609 624 639 639 639 641 641 644 645 645 647 649 649 655 659 665 667 670 673 673 693 701 701 701 704 704 707 707 707 708 708 712 712 712 712 761 765 769 769 777 777 781 784 784 786 941 944 946 996 1004 1004 1010 1012 1014 1014 1016 1033 1135 1137 1137 1199 1143 1143 1143 1144];
mergelane=[3 3 3 2 3 2 2 2 3 2 2 3 2 2 3 2 1 3 3 2 3 3 2 2 3 3 1 2 2 2 3 3 2 2 3 2 3 2 3 2 1 2 3 2 2 2 3 2 3 3 2 1 1 3 2 2 2 2 3 2 3 2 2 2 3 3 3 2 2 3 1 2 3 1 3 2 2 3 3 2 2 3 2 1 2 2 3 3 2 3 2 2 2 2 2 3 3 2 3 3 3 3 2 1 1 1 3 2 3 2 2 2 3 3 2 2 2 3 3 1 2 2 3 1 3 2 3 2 3 2 2 2 2 2 3 2 2 2 2 1 3 3 1 1 2 2 3 3 3 3 2 3 2 2 2 3 1 2 3 2 2 2 3 1 2 2 1 2 3 2 2 3 2 2 2 2 2 2 2 1 2 2 2 3 2 3 2 2 3 3 2 2 3 2 3 2 3 1 2 1 2 3 1 2 2 2 3 3 2 2 3 2 3 2 2 3 2 3 3 2 3 3 2 3 1];
flag=find(newcarmerge==iteration);
if flag~=0
for i=1:length(flag)
plaza(1,mergelane(flag(i))+1)=1;
v(1,mergelane(flag(i))+1)=vmax;
end
% end
% else
% if r<0.6 && plaza(2,3)==0 && plaza(1,3)==0
% plaza(2,3)=-3;
% plaza(1,3)=-3;
% v(2,3)=vmax;
% v(1,3)=vmax;
% elseif plaza(2,4)==0 && plaza(1,4)==0
% plaza(2,4)=-3;
% plaza(1,4)=-3;
% v(2,4)=vmax;
% v(1,4)=vmax;
% end
end

3 仿真结果

【元胞自动机】基于元胞自动机模拟交通事故下的通行情况含Matlab源码_无人机

【元胞自动机】基于元胞自动机模拟交通事故下的通行情况含Matlab源码_d3_02

4 参考文献

[1]刘学兵. 基于元胞自动机模型的交通事故研究[D]. 东北大学, 2008.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

【元胞自动机】基于元胞自动机模拟交通事故下的通行情况含Matlab源码_无人机_03


本文摘自 :https://blog.51cto.com/u

开通会员,享受整站包年服务立即开通 >