基于元胞自动机的人员疏散模拟器研究(Matlab代码实现)

 ‍个人主页:研学社的博客 

欢迎来到本博客❤️❤️

博主优势:博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

本文目录如下:

目录

1 概述

2 运行结果

3 Matlab代码实现

4 参考文献


1 概述

在现实生活中,大型复合建筑已经成为人们各种社会活动的重要载体,并且扮演着日益重要的角色。随着经济社会日益进步,人们的生活水平也在不断改善并不断产生新的需求,导致一些大型的功能复杂的建筑随着人们的需求日益增加,数量以及规模也迅速增大。随之而来的是在突发情况下,具有一定脆弱性的大型复合建筑中人员疏散问题。

2 运行结果

基于元胞自动机的人员疏散模拟器研究(Matlab代码实现)_第1张图片

 这里仅展现一张结果图。

部分代码:

x0=20;y0=120;%最佳出逃位置
peoplemidu=0.6;%人员密度
%危险度
z(1:20,1:100)=0;
z(1:20,140:240)=0;%障碍区

%初始化函数图像
xpf1=zeros(1,128)
xpf2=zeros(1,128)
%为出口赋值
for i = 1:20
    for j = 100:140
        pd(i,j)=i;
    end
end

for  i=21:158
    for j=3:238
        if(j <= 100)
            pd(i,j)=sqrt((i-20)^2+(j-100)^2);
        elseif(j >=140)
            pd(i,j)=sqrt((i-20)^2+(j-140)^2);
        else
            d(i,j)=i-20;
        end
        pd(i,j)=sqrt((i-1)^2+(j-120)^2);
    end
end
%%%%初始化选择矩阵
        for i=21:158
            for j= 3:238
                choice{i,j}=[0 0]; %为什么默认是左上角?
            end
        end
%如果已经到了出口,那么默认往前走
for i = 1:20
    for j = 100:140
        choice{i,j}=[0 0];
    end
end
%%%%初始化人群
cells(1:20,100:140)=1;%留出出口
cells(21:158,3:238)=1;
for  i=22:157
    for j=4:237
        if(sqrt((i-20)^2+(j-120)^2) < 100)
            if(rand<=peoplemidu)
                 cells(i,j)=0.25; %此处有人,原来是白人,现在改成了灰人
                 pv(i,j)=1; 
                 choice{i,j}=[i j]; %默认该人倾向于选择原点——空点选择不可能的点,有人的点选择留在原地
            end
        end
    end
end

imh = imshow(cat(3,cells,cells,cells)); %
axis equal
axis tight
stop= 0; 
run = 0; 
freeze = 0; 
%%%%开始逃生 

3 Matlab代码实现

4 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]赵会芳. 大型复合建筑突发事件下人员疏散模拟研究[D].哈尔滨工程大学,2012. 

你可能感兴趣的:(#,#,数学建模比赛,matlab,开发语言,元胞自动机,人员疏散模拟器)