超市火灾烟雾蔓延及人员疏散的matlab模拟仿真,带GUI界面
1.程序功能描述
出口在人员的视野范围内时,该元胞选择朝向引导点的方向运动。出口不在人员的视野范围内时,作随机运动,8个方向的运动概率相等。引导点可设在过道中间等地方,出口都是引导点。
1. 当多个元胞同时竞争同一个格点时,每个元胞以50%等概率进入,没有进入的保持静止.
2.运动人员以5%概率静止,即下一时间步不动.
3.开始疏散时所有人员是以正态分布的概率开始运动,而不是同时运动.
2.测试软件版本以及运行结果展示
MATLAB2022A版本运行
3.核心程序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | 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的速度不变。不在烟气中后,速度恢复以前。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下