目录
1.程序功能描述
2.测试软件版本以及运行结果展示
3.核心程序
4.本算法原理
5.完整程序
1.程序功能描述
出口在人员的视野范围内时,该元胞选择朝向引导点的方向运动。出口不在人员的视野范围内时,作随机运动,8个方向的运动概率相等。引导点可设在过道中间等地方,出口都是引导点。
1. 当多个元胞同时竞争同一个格点时,每个元胞以50%等概率进入,没有进入的保持静止.
2.运动人员以5%概率静止,即下一时间步不动.
3.开始疏散时所有人员是以正态分布的概率开始运动,而不是同时运动.
2.测试软件版本以及运行结果展示
MATLAB2022A版本运行
3.核心程序
Times = str2num(get(handles.edit1,'string'));
TStep = str2num(get(handles.edit2,'string'));YW_X = str2num(get(handles.edit3,'string'));
YW_Y = str2num(get(handles.edit4,'string'));
Vyw = str2num(get(handles.edit5,'string'));
Fac = str2num(get(handles.edit6,'string'));N1 = str2num(get(handles.edit7,'string'));
N2 = str2num(get(handles.edit8,'string'));
N3 = str2num(get(handles.edit9,'string'));V1 = str2num(get(handles.edit10,'string'));
V2 = str2num(get(handles.edit11,'string'));
V3 = str2num(get(handles.edit12,'string'));SCOPE = str2num(get(handles.edit13,'string'));
movetime = str2num(get(handles.edit14,'string'));
dmovetime = str2num(get(handles.edit14,'string'));[gnd,Exit_Position] = func_Small_market();
% ϰ ϰ
obstacles = gnd(:,:,1);%1 ʾͨ 0 ʾ ϰ
[row,col,KK] = size(gnd);
Ewidth = [40,50]; % 2 ڵĿ
% ォ ٶ Ϊÿ ƶ ķ Ϊ
Vv1 = lcm(V1,V2);
VMAX = lcm(Vv1,V3);
% ٶ ÿ ٸ ʱ 䲽 ƶ һ
L1 = VMAX/V1;
L2 = VMAX/V2;
L3 = VMAX/V3;%%
%******************************************************************************************************
%ģ ʼ
% ʼ
Positions = zeros(row,col);
Positions(YW_X,YW_Y) = 1;
[I1,I2] = find(Positions==1);
% Ա ʼ
% Ա ʼ
Num_People = N1 + N2 + N3;
Infor_People = zeros(Num_People,5); % X Y X Y
Map_People = zeros(row,col);
x = [];
y = [];
i = 0;
while(i <= Num_People)r = randi([1,row]);c = randi([1,col]);II1 = find(x == r);II2 = find(y == c);if Map_People(r,c)==0 & obstacles(r,c)==1 & (isempty(II1) == 1 & isempty(II2) == 1)i = i + 1;if i <= N1Map_People(r,c) = 1;Infor_People(i,1:2) = [c,r];Infor_People(i,3:4) = [func_rand_fangx()];% Infor_People(i,5) = 1;% ˵ı x(end+1) = c;y(end+1) = r;endif i <= N1+N2 & i > N1Map_People(r,c) = 1;Infor_People(i,1:2) = [c,r];Infor_People(i,3:4) = [func_rand_fangx()];% Infor_People(i,5) = 2;% ˵ı x(end+1) = c;y(end+1) = r;end if i <= N1+N2+N3 & i > N1+N2Map_People(r,c) = 1;Infor_People(i,1:2) = [c,r];Infor_People(i,3:4) = [func_rand_fangx()];% Infor_People(i,5) = 3;% ˵ı x(end+1) = c;y(end+1) = r;end end
end
%******************************************************************************************************
ind1 = 0;
ind2 = 0;
ind3 = 0;
for i = 1:Num_Peopleif Infor_People(i,5) == 1ind1 = ind1 + 1;
% plot(Infor_People(i,1),Infor_People(i,2),'ko');Infor_People_Saved1(ind1,:) = Infor_People(i,1:2);Ind_People_Saved1(ind1) = Infor_People(i,5);endif Infor_People(i,5) == 2ind2 = ind2 + 1;
% plot(Infor_People(i,1),Infor_People(i,2),'k^');Infor_People_Saved2(ind2,:) = Infor_People(i,1:2);Ind_People_Saved2(ind2) = Infor_People(i,5); endif Infor_People(i,5) == 3ind3 = ind3 + 1;
% plot(Infor_People(i,1),Infor_People(i,2),'ks');Infor_People_Saved3(ind3,:) = Infor_People(i,1:2);Ind_People_Saved3(ind3) = Infor_People(i,5); end
% hold on;
end
%*******
16_019m
4.本算法原理
在超市这类大型商业建筑中,火灾发生后,烟雾会在短时间内迅速扩散。烟雾的传播主要受到热量释放、空气流动(包括自然对流、强制通风)、建筑布局(如走廊、隔断、开口)以及材料燃烧特性的影响。烟雾不仅阻碍视线,而且含有有毒有害物质,对被困人员构成生命威胁。烟雾蔓延可以通过火灾动力学模型(如热层流方程、组分传输方程)进行模拟分析,如使用FDS(Fire Dynamics Simulator)软件。
基本烟雾扩散模型都是基于流体方程建模的:
并考虑室内风速为0,我们可以将模型做如下的修改,那么模型可以简化为如下的公式:
关于人员疏散部分的要求,主要分为两个部分进行讨论:
·当人员在正常区域:
疏散人员的视野范围是个参数值,初值设为10个单位,并且参数值可改。
出口在人员的视野范围内时,该元胞选择朝向引导点的方向运动。出口不在人员的视野范围内时,作随机运动,8个方向的运动概率相等。引导点可设在过道中间等地方,出口都是引导点。
当多个元胞同时竞争同一个格点时,每个元胞以50%等概率进入,没有进入的保持静止。
运动人员以5%概率静止,即下一时间步不动。
每个时间步为1/12s,可设置3种移动速度的人员,分别设置为3种颜色,速度分别为2m/s,1.5m/s,1m/s,即每3、4、6个时间步运动一次。
开始疏散时所有人员是以正态分布的概率开始运动,而不是同时运动。
·当人员在烟雾区域:
人员以80%概率躲避烟气(即20%概率进入烟气中)
进入烟气后,前360个时间步(30s)朝引导点运动,但速度减小,2m/s的减小为1.5m/s,1.5m/s的减小为1.0m/s,1.0m/s的速度不变。不在烟气中后,速度恢复以前。
5.完整程序
VVV