1、第 1 页 共 19 页跳水世界杯期间“水立方”安检工作模拟化学工程系 化 612006011689储博钊第 2 页 共 19 页1.引言2008 年 2 月 19 日至 25 日第十六届国际泳联跳水世界杯赛在国家游泳中心(简称“水立方”) 举行。在 6 天比赛中,中国队作为东道主再展横扫之威,勇夺 7 枚金牌成为最大赢家。在比赛过程中,让人们欣喜地不仅仅是中国跳水运动员们精彩的表现,更让人们欣慰的是奥运场馆中日臻成熟的志愿服务工作。水立方作为重要的奥运场馆在奥运测试赛期间的试运行阶段虽然遇到了种种问题,但通过志愿者和安保人员的共同努力,场馆运行机制得到了不断的完善与改进,本人作为一名在水立方
2、工作过的普通志愿者亲身经历并见证了水立方在一场场测试赛中的变化与进步。本文以水立方在跳水世界杯期间的安检工作为例,利用本学期学到的数学建模知识对其模拟,通过对该模型的分析与讨论,希望能够提出合理化的改进措施与建议。跳水世界杯期间的安检工作的目的是为了在保证场馆运行与观众观赛安全的前提下,尽可能的使观众快速有地通过安检大棚。安检工作大致分为如下三个部分:(1)场馆规定水立方观众不得携带任何软硬包装饮料进入场馆,但很多观众并不了解此规定,因此须由安保协查员告知携带此类物品的观众自行处理;(2)由安检协查员协助观众将其包裹类物品放入透视安检仪,由安保人员检查合格后方可允许观众通过,若检查出违禁物品,
3、须要将其没收后放行,严重者需要交由公安机关审理;(3)由检票员检查观众票面信息,与当场比赛相符者方可允许通过;2.模型建立与假设:通过跳水世界杯测试赛期间对安检工作的亲身经历,跟据安检工作的需要将观众人群分为两部分,即到达水立方观众总人数 n1,通过安检检查观众总人数 n2。其模型是有关各类观众人数与时间的函数关系,以测试赛期间的观众安检规模为基准,对此模型作出如下有关时间与各类观众数目变化规律等方面的假设:2.1 时间部分:观众在比赛开始前三小时开始陆续出现在场馆外围安保线(安检大棚外) ,而比赛开始后仍有观众陆续到达直至比赛开始一小时后才基本不再出现观众,因此不妨将比赛开始前三小时作为该模
4、型时间的原点(以分钟计) ,以比赛开始后一小时作为该模型时间的终点,则比赛时刻恰为 t0=180min。2.2 各类观众数目变化规律:(1) 到达水立方观众总人数 n1 增长速度随着比赛时间的临近而增大,在比赛前一小时时达到峰值,此后又下降直至比赛开始一小时后无观众出现。由于测试赛时正值“水立方”建成不久,观众中有相当一部分是为了参观水立方而来的,所以对跳水比赛的时间不很敏感(大部分观众的迟到充分说明了这点) ,在比赛开始后仍有相当一部分观众陆续到达。假设比赛开始前观众人数增长加速度 a1(人/min 2)为定值(a 10),并且观众人数增长速度 v1(人/min)在比赛开始前一小时时(t=1
5、20min)有最大值 v10,由于在 t=0 时刻才开始有观众到达,因此 a1=v10/120;在 t=120min 之后观众人数增长加速度 a2(人/min 2)为定值(a2180min)以及比赛开始前九十分钟以前(t0n3(k+1)=n3(k)+r*v10*(1- abs(120-k)/120)-v0;elsen3(k+1)=0;endend%自行处理违禁物品观众人数 n3 随时间 t 变化规律求解源程序:n30=0;t=240;第 8 页 共 19 页v10=24.5;r=0.2;v0=4;n3= third(n30,t,v10,r,v0)通过对差分方程(3)的求解,了解了此部分自行处理
6、违禁物品观众人数 n3 随时间变化的规律,将之代入由常微分方程(1)、(2)联立得到的常微分方程组中应用 MATLAB 求解,程序如下:%总观众人数 n1 与通过安检观众人数 n2 随时间 t 变化规律函数 M 文件源程序:function dn=test(t,n)v10=24.5;v20=20;v21=25.33; k1=0.0045;n3=0;r=0.2;v0=4;for k=1:tif n3(k)+r*v10*(1- abs(120-k)/120)-v00n3(k+1)=n3(k)+r*v10*(1- abs(120-k)/120)-v0;elsen3(k+1)=0;endendv1=v
7、10*(1- abs(120-t)/120); v2=0.5*(1+sign(180-t)*0.5*(1+sign(t-60)*(1+(v21-v20)*(t-60)/(v20*120)*v20)/(k1* n3(fix(t)+1)+ 0.5*(1+sign(180-t)*v21/(k1* n3(fix(t)+1);dn=v1;v2;%总观众人数 n1 与通过安检观众人数 n2 随时间 t 变化规律求解源程序:ts=1:240;n0=0,0;t,n=ode23(test,ts,n0); ts, n (:,1),n(:,2)grid; plot(ts,n(:,1),r-,ts,n(:,2);xl
8、abel(t);ylabel(n)此程序程序运行结果为:Error: Unexpected MATLAB operator.鉴于以上程序已经超出MATLAB求解范围,为实现模型求解,根据常微分方程组的具体形式进行分段编程,程序如下:%t=060min时间段内安检模型函数M文件:function dn=test1(t,n)v10=24.5; v1=v10*(1-(120-t)/120); v2=0;第 9 页 共 19 页dn=v1;v2;%t=60min180min时间段内安检模型函数M文件:function dn=test2(t,n)v10=24.5;v20=20;v21=25.33;k1=
9、0.0045;n3=0;r=0.2;v0=4;for k=1:240if n3(k)+r*v10*(1- abs(120-k)/120)-v00n3(k+1)=n3(k)+r*v10*(1- abs(120-k)/120)-v0;elsen3(k+1)=0;endendv1=v10*(1- abs(120- t)/120); v2= (1+(v21-v20)*(fix(t)-60)/(v20*120)*v20)/(k1*n3(fix(t)+1);dn= v1; v2;%t=180min240min时间段内安检模型函数M文件:function dn=test3(t,n)v10=24.5;v21=
10、25.33;k1=0.0045;n3=0;r=0.2;v0=4;for k=1:240if n3(k)+r*v10*(1- abs(120-k)/120)-v00n3(k+1)=n3(k)+r*v10*(1- abs(120-k)/120)-v0;elsen3(k+1)=0;endendv1=v10*(1- (t-120)/120);v2=v21/(k1* n3(fix(t)+1);dn= v1; v2;%安检模型求解源程序:ts=1:60; %t=060min时间段内安检模型n0=0,0;t,n1=ode23(test1,ts,n0); ts, n1(:,1),n1(:,2);ts=60:1
11、80; %t=60min180min时间段内安检模型第 10 页 共 19 页n0= n1(end,1),n1(end,2);t,n2=ode23(test2,ts,n0); ts, n2(:,1),n2(:,2);ts=180:240; %t=180min240min时间段内安检模型n0= n2(end,1),n2(end,2);t,n3=ode23(test3,ts,n0); ts, n3(:,1),n3(:,2);ts=1:240; %整合数据n=n1;n2;n3;n(60,:)=;n(181,:)=;grid; %作 n1、n2 随时间变化曲线图 plot(ts,n(:,1),r-,ts,n(:,2);xlabel(t);ylabel(n)gtext(红色线代表观众总人数 n1);gtext(蓝色线代表通过安检观众人数上限 n2);for i=1:240; %作排队人数随时间变化曲线图if n(i,1)- n(i,2)=0n4(i)=( n (i,1)- n(i,2)/10;elsen4(i)=0;endendgrid;plot(ts,n4);xlabel(t/min);ylabel(n/人)ts, n(:,1),n(:,2), n45.安检模型合理性的验证:上述程序输出结果: