个人主页:研学社的博客
欢迎来到本博客❤️❤️
博主优势:博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
本文目录如下:
目录
1 概述
2 运行结果
3 Matlab代码实现
4 参考文献
在现实生活中,大型复合建筑已经成为人们各种社会活动的重要载体,并且扮演着日益重要的角色。随着经济社会日益进步,人们的生活水平也在不断改善并不断产生新的需求,导致一些大型的功能复杂的建筑随着人们的需求日益增加,数量以及规模也迅速增大。随之而来的是在突发情况下,具有一定脆弱性的大型复合建筑中人员疏散问题。
这里仅展现一张结果图。
部分代码:
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;
%%%%开始逃生
部分理论来源于网络,如有侵权请联系删除。
[1]赵会芳. 大型复合建筑突发事件下人员疏散模拟研究[D].哈尔滨工程大学,2012.