超市火灾烟雾蔓延及人员疏散的matlab模拟仿真,带GUI界面
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 <= N1 Map_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; end if i <= N1+N2 & i > N1 Map_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+N2 Map_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_People if Infor_People(i,5) == 1 ind1 = 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); end if Infor_People(i,5) == 2 ind2 = 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); end if Infor_People(i,5) == 3 ind3 = 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的速度不变。不在烟气中后,速度恢复以前。