Tras mucho tiempo en la cocina, ha aparecido la nueva versión de FDS.
Esta versión tiene algunas novedades de importancia, como la introducción de turbulencias en la combustión.
Además tiene incluida la versión Evac 2.4.1, que simplifica notablemente la preparación de archivos de entrada.
La nueva versión necesita más capacidad de proceso que la 5 y por ser más configurable y permitir más parámetros de entrada presenta bastante complejidad.
Es decir, tendremos que trastear con ella antes de hacer cosas nuevas, porque los archivos de entrada de FDS 5 frecuentemente no funcionan en la nueva versión.
Simulación de incendios y evacuación
El programa FDS y el diseño basado en prestaciones
domingo, 29 de diciembre de 2013
domingo, 2 de junio de 2013
Hipotético pabellón
SOLUCIÓN DE UN
PROBLEMA EN UN HIPOTÉTICO PABELLÓN
Supongamos que queremos
hacer un espectáculo masivo en un pabellón que no cumple la parte
prescriptiva del CTE porque es un edificio deportivo y queremos poner
personas en la pista deportiva para un espectáculo.
Available Safe
Egress Time o tiempo disponible
Para determinar el
tiempo disponible se debe modelizar un fuego.
El dato más importante
sería la tasa de liberación de calor por metro cuadrado de incendio
y la superficie máxima que estimemos que puede alcanzar.
En este caso
apoyándonos en la norma UNE 1991-1, aunque no está específicamente
contemplado este caso tomaremos 250 kW/m2, con una fase de desarrollo
6 minutos.
La carga en un edificio
de este tipo será pequeña.
En cuanto a la
superficie de desarrollo, puede haber elementos limitadores. En este
caso he estimado que está presente una dotación de bomberos, además
de personal de la organización y por ello he supuesto una superficie
de 1m2.
Como no sabemos el
combustible que puede arder he tomado poliuretano y la situación una
posible mesa de sonido en el centro de la sala.
Cabe suponer que si hay
ventanas abiertas y ventilación natural haya una cierta corriente de
aire que mejorará las condiciones ambientales en la zona por la que
entra el aire y las empeorará en la contraria.
Como datos de salida
del incendio le vamos a pedir al programa que nos indique
temperaturas, concentración de CO y oscurecimiento del ambiente.
Para este último a falta de algo más próximo tomamos la CFPA-E 19,
que es una guía europea de asociaciones de protección contra
incendios, que pide una visibilidad de 10m en grandes edificios.
Required Safe Egress
Time o tiempo necesario
Para averiguar esto FDS
tiene el módulo EVAC integrado, que es bastante farragoso de usar,
pero es gratis y con los tiempos que corren…
Para no complicarnos la
vida elegimos como tipo de persona el adulto medio.
Como ocupación del
recinto vamos a poner 4.000 personas, de ellas 2.000 estarán en la
pista y otras 2.000 bajarán de las gradas.
El movimiento por las
gradas es difícil de simular con FDS-EVAC por lo que recurro a una
simplificación poniendo unas entradas por las que van apareciendo
250 personas y añadiéndose a las de la pista.
Hay valores que se
pueden indicar, como el tiempo que tardan los avatares en descubrir
el fuego, etc… pero para tener una aproximación de lo que puede
ocurrir puede servir.
Las salidas estarán en
las esquinas.
Se procesa todo en el
ordenador y…15 horas más tarde se obtiene el resultado.
Que por supuesto no
puede verse en Internet, porque es una larga serie de datos.
Aplicando el programa de postproceso Smokewiev y diciéndole por
ejemplo que nos enseñe a los avatares, el humo y la concentración
de CO, podemos generar una serie de imágenes como ésta.
Y generando unas 4.500
imágenes podemos hacer una película que sí es posible colgar a
través de Youtube.
miércoles, 27 de marzo de 2013
Simulando un incendio
Hemos estado viendo simulaciones de evacuación y va siendo hora de ver la simulación de un incendio, que es la función básica del FDS.
Usaré la versión 5 que es la estable, ya que la 6 es una beta y todavía tiene desarrollo por delante.
Hay dos formas de simular un incendio. La fácil, que es definir una potencia de fuego por área de superficie y luego aplicar esa superficie a una zona. Se define el parámetro HRRPUA (Heat Relise Rate Per Unit Area) en kW/m2. De esta forma se suelen definir los quemadores, es decir las zonas donde queremos que el incendio comience o también el máximo incendio que suponemos que pueda haber. La potencia del incendio que corresponda puede sacarse de otras publicaciones como “Initial Fires” de la Universidad de Lund en Suecia, que presenta las curvas de tasa de emisión de calor en distintos incendios.
Por ejemplo en el caso del Buesa Arena acordamos con los proyectistas 5MW, que podría equivaler al incendio simultáneo de dos furgonetas. En un recinto de esas características no imaginamos un incendio de más potencia, porque por su configuración geométrica (techo a 32m de altura) y por la reacción al fuego de los materiales (butacas clase B) no nos parecía (ni nos parece) posible un flash-over. Al programa se le puede decir que el incendio siga un patrón de crecimiento y decrecimiento determinado. En el caso del Buesa Arena el incendio alcanzaba su máximo desarrollo en 315s y se mantenía en los 5MW por tiempo indefinido.
Por ejemplo:
&SURF ID='BURNER', HRRPUA=1000., COLOR='RASPBERRY' /
Si queremos ver la propagación por distintos materiales tenemos que usar la forma más compleja y seguir los siguientes pasos:
- Definir los materiales implicados dando sus características físico-químicas por ejemplo en un tejido:
&MATL ID = 'FABRIC'
FYI = 'Properties completely fabricated'
SPECIFIC_HEAT = 1.0
CONDUCTIVITY = 0.1
DENSITY = 100.0
N_REACTIONS = 1
NU_FUEL = 1.
REFERENCE_TEMPERATURE = 350.
HEAT_OF_REACTION = 3000.
HEAT_OF_COMBUSTION = 15000. /
- Después tenemos que definir las superficies, que en ocasiones estarán compuestas de capas de distintos materiales. Por ejemplo:
&SURF ID = 'UPHOLSTERY'
COLOR = 'PURPLE'
BURN_AWAY = .TRUE.
MATL_ID(1:2,1) = 'FABRIC','FOAM'
THICKNESS(1:2) = 0.002,0.1 /
Donde tenemos una identificación de la superficie.
Un color asociado a esa superficie.
Una indicación de que cuando se haya quemado desaparezca de la simulación. Algo que queda muy bien, pero consume recursos del ordenador.
Una indicación del orden en el que están los materiales en la superficie.
Y otra del grosor de cada capa de material.
Después de hacer esto tenemos que aplicarlo a los objetos, paredes y techo del recinto en el que queremos hacer la simulación.
- También tenemos que definir una y en la versión 5 sólo una reacción de combustión. Si no definimos ninguna el programa en versión 5 adopta el propano. Ejemplo:
&REAC ID = 'POLYURETHANE'
FYI = 'C_6.3 H_7.1 N O_2.1, NFPA Handbook, Babrauskas'
SOOT_YIELD = 0.10
N = 1.0
C = 6.3
H = 7.1
O = 2.1 /
Y pertrechados con todo esto definir la geometría con superficies, orificios y obstáculos.
Vamos a hacer correr el siguiente ejemplo:
Room fire test case, based on an actual test conducted for US ATF by the University of Maryland .
All material properties are completely fabricated.
&HEAD CHID='room_fire', TITLE='ATF Room Fire Test, SVN $Revision: 4664 $' /
&MESH IJK=52,54,24, XB=0.0,5.2,-0.8,4.6,0.0,2.4 /
&TIME T_END=2000.0 /
&MISC SURF_DEFAULT='WALL'/
&REAC ID = 'POLYURETHANE'
FYI = 'C_6.3 H_7.1 N O_2.1, NFPA Handbook, Babrauskas'
SOOT_YIELD = 0.10
N = 1.0
C = 6.3
H = 7.1
O = 2.1 /
&SURF ID='BURNER', HRRPUA=1000., COLOR='RASPBERRY' /
&MATL ID = 'FABRIC'
FYI = 'Properties completely fabricated'
SPECIFIC_HEAT = 1.0
CONDUCTIVITY = 0.1
DENSITY = 100.0
N_REACTIONS = 1
NU_FUEL = 1.
REFERENCE_TEMPERATURE = 350.
HEAT_OF_REACTION = 3000.
HEAT_OF_COMBUSTION = 15000. /
&MATL ID = 'FOAM'
FYI = 'Properties completely fabricated'
SPECIFIC_HEAT = 1.0
CONDUCTIVITY = 0.05
DENSITY = 40.0
N_REACTIONS = 1
NU_FUEL = 1.
REFERENCE_TEMPERATURE = 350.
HEAT_OF_REACTION = 1500.
HEAT_OF_COMBUSTION = 30000. /
&MATL ID = 'GYPSUM PLASTER'
FYI = 'Quintiere, Fire Behavior'
CONDUCTIVITY = 0.48
SPECIFIC_HEAT = 0.84
DENSITY = 1440. /
&MATL ID = 'CARPET PILE'
FYI = 'Completely made up'
CONDUCTIVITY = 0.16
SPECIFIC_HEAT = 2.0
DENSITY = 750.
N_REACTIONS = 1
NU_FUEL = 1.
REFERENCE_TEMPERATURE = 290.
HEAT_OF_COMBUSTION = 22300.
HEAT_OF_REACTION = 2000. /
&SURF ID = 'UPHOLSTERY'
COLOR = 'PURPLE'
BURN_AWAY = .TRUE.
MATL_ID(1:2,1) = 'FABRIC','FOAM'
THICKNESS(1:2) = 0.002,0.1 /
&SURF ID = 'WALL'
RGB = 200,200,200
MATL_ID = 'GYPSUM PLASTER'
THICKNESS = 0.012 /
&SURF ID = 'CARPET'
MATL_ID = 'CARPET PILE'
COLOR = 'KHAKI'
BACKING = 'INSULATED'
THICKNESS = 0.006 /
&OBST XB= 1.50, 3.10, 3.80, 4.60, 0.00, 0.40 /
&OBST XB= 1.50, 3.10, 3.80, 4.60, 0.40, 0.60, SURF_ID='UPHOLSTERY' / Couch, seat cushions
&OBST XB= 1.30, 1.50, 3.80, 4.60, 0.00, 0.90, SURF_ID='UPHOLSTERY' / Couch, armrest
&OBST XB= 3.10, 3.30, 3.80, 4.60, 0.00, 0.90, SURF_ID='UPHOLSTERY' / Couch, armrest
&OBST XB= 1.50, 3.10, 4.40, 4.60, 0.60, 1.20, SURF_ID='UPHOLSTERY' / Couch, back cushions
&VENT XB= 2.50, 2.60, 4.30, 4.40, 0.60, 0.60, SURF_ID='BURNER' / Ignition source on couch
&OBST XB= 4.00, 4.60, 3.80, 4.60, 0.00, 0.40 /
&OBST XB= 4.00, 4.60, 3.80, 4.60, 0.40, 0.60, SURF_ID='UPHOLSTERY' / Chair, back corner, seat cushion
&OBST XB= 3.80, 4.00, 3.80, 4.60, 0.00, 0.90, SURF_ID='UPHOLSTERY' / Chair, back corner, right armrest
&OBST XB= 4.60, 4.80, 3.80, 4.60, 0.00, 0.90, SURF_ID='UPHOLSTERY' / Chair, back corner, left armerest
&OBST XB= 4.00, 4.60, 4.40, 4.60, 0.60, 1.20, SURF_ID='UPHOLSTERY' / Chair, back corner, back cushion
OBST XB= 1.60, 3.00, 2.80, 3.60, 0.40, 0.60, SURF_ID='SPRUCE' / Table
&OBST XB= 0.00, 0.80, 2.00, 2.60, 0.00, 0.40 /
&OBST XB= 0.00, 0.80, 2.00, 2.60, 0.40, 0.60, SURF_ID='UPHOLSTERY' / Chair, left wall, seat cusion
&OBST XB= 0.00, 0.80, 1.80, 2.00, 0.00, 0.90, SURF_ID='UPHOLSTERY' / Chair, left wall, right armrest
&OBST XB= 0.00, 0.80, 2.60, 2.80, 0.00, 0.90, SURF_ID='UPHOLSTERY' / Chair, left wall, left armrest
&OBST XB= 0.00, 0.20, 2.00, 2.60, 0.00, 0.90, SURF_ID='UPHOLSTERY' / Chair, left wall, back cushion
&OBST XB= 1.80, 3.80, 0.00, 1.00, 0.00, 0.20, SURF_ID='UPHOLSTERY' / Futon on floor?
&OBST XB= 2.00, 2.40, 1.60, 2.00, 0.00, 0.40 /
&OBST XB= 2.00, 2.40, 1.60, 2.00, 0.40, 0.60, SURF_ID='UPHOLSTERY' / Small chair, room center, seat cushion
&OBST XB= 1.80, 2.00, 1.60, 2.00, 0.00, 0.80, SURF_ID='UPHOLSTERY' / Small chair, room center, left armrest
&OBST XB= 2.40, 2.60, 1.60, 2.00, 0.00, 0.80, SURF_ID='UPHOLSTERY' / Small chair, room center, right armrest
&OBST XB= 1.80, 2.60, 1.40, 1.60, 0.00, 0.80, SURF_ID='UPHOLSTERY' / Small chair, room center, back cushion
OBST XB= 4.40, 5.20, 1.00, 2.00, 0.00, 0.80, SURF_ID='SPRUCE' / TV cart?
&OBST XB= 0.00, 5.20, -0.20, 0.00, 0.00, 2.40 / Front wall
&HOLE XB= 4.00, 4.90, -0.20, 0.00, 0.00, 2.00 / Door
&VENT MB='YMIN',SURF_ID='OPEN' /
&VENT XB=0.00,5.20,0.00,4.60,0.00,0.00, SURF_ID='CARPET' /
&BNDF QUANTITY='GAUGE HEAT FLUX' /
&BNDF QUANTITY='WALL TEMPERATURE' /
&BNDF QUANTITY='BURNING RATE' /
&SLCF PBX=2.60, QUANTITY='TEMPERATURE' /
&SLCF PBX=2.60, QUANTITY='HRRPUV' / Heat Release Rate per Unit Volume
&SLCF PBX=2.60, QUANTITY='MIXTURE FRACTION' /
&SLCF PBX=4.45, QUANTITY='TEMPERATURE' /
&SLCF PBX=4.45, QUANTITY='HRRPUV' / Heat Release Rate per Unit Volume
&SLCF PBX=4.45, QUANTITY='MIXTURE FRACTION' /
&DEVC XYZ=2.6,2.3,2.1, QUANTITY='TEMPERATURE' /
&DEVC XYZ=2.6,2.3,1.8, QUANTITY='TEMPERATURE' /
&DEVC XYZ=2.6,2.3,1.5, QUANTITY='TEMPERATURE' /
&DEVC XYZ=2.6,2.3,1.2, QUANTITY='TEMPERATURE' /
&DEVC XYZ=2.6,2.3,0.9, QUANTITY='TEMPERATURE' /
&DEVC XYZ=2.6,2.3,0.6, QUANTITY='TEMPERATURE' /
&DEVC XYZ=4.5,0.3,2.1, QUANTITY='TEMPERATURE' /
&DEVC XYZ=4.5,0.3,1.8, QUANTITY='TEMPERATURE' /
&DEVC XYZ=4.5,0.3,1.5, QUANTITY='TEMPERATURE' /
&DEVC XYZ=4.5,0.3,1.2, QUANTITY='TEMPERATURE' /
&DEVC XYZ=4.5,0.3,0.9, QUANTITY='TEMPERATURE' /
&DEVC XYZ=4.5,0.3,0.6, QUANTITY='TEMPERATURE' /
&DEVC XYZ=0.3,4.3,2.1, QUANTITY='TEMPERATURE' /
&DEVC XYZ=0.3,4.3,1.8, QUANTITY='TEMPERATURE' /
&DEVC XYZ=0.3,4.3,1.5, QUANTITY='TEMPERATURE' /
&DEVC XYZ=0.3,4.3,1.2, QUANTITY='TEMPERATURE' /
&DEVC XYZ=0.3,4.3,0.9, QUANTITY='TEMPERATURE' /
&DEVC XYZ=0.3,4.3,0.6, QUANTITY='TEMPERATURE' /
&DEVC XYZ=2.6,2.3,0.0, QUANTITY='RADIATIVE HEAT FLUX', IOR=3 /
&TAIL /
Donde además de los parámetros que definen el espacio, tenemos una serie de dispositivos de toma de datos, que serían termómetros (DEVC), unas superficies definidas (SLCF) que nos indicarían la evolución espacial de distintos planos de sección y BNDF que nos indicarían cómo evolucionan los parámetros seleccionados en las superficies que hemos definido.
Esto hay que marcarlo previamente, porque la salida de datos ocupa mucho espacio y da trabajo al programa.
¡Qué cosa esto de ahorrar trabajo al programa!
A estas alturas no me pongas una ecuación diferencial, porque sabría lo que significa (probablemente), pero sería incapaz de resolverla. Recuerdo que resolver media docena podía ser un duro examen de matemáticas. El programa para hacer la simulación resuelve miles o millones.
Tengo un ordenador portátil con procesador i7 y Linux Mint 14 instalado. Le costó 14 horas hacer la simulación de este “sencillo” ejemplo que es un incendio en un cuarto de estar.
La salida de un DEVC es una columna en una hoja de cálculo que registra el dato indiquemos en el punto que hayamos definido.
Este es el cuarto de estar y los puntos verdes que hay flotando los termómetros.
|
La salida de un SLCF es algo como esto, pero con posibilidad de animarlo. Aquí vemos una imagen fija de la sección que indica las temperaturas, donde podemos ver cómo hay una corriente de aire fresco entrando en la habitación y cómo produce temperaturas más elevadas cerca de la puerta que en el interior de la habitación por facilitar la combustión en esa zona, ya que nos encontraríamos por una combustión dominada por la disponibilidad de oxígeno.
Y aquí vemos mezclada la sección con las temperaturas de las superficies y una barra indicadora de qué quieren decir los colores.
sábado, 16 de marzo de 2013
¿Cuándo una persona está incapacitada debido a un incendio?
FDS utiliza la fractional effective dose (en adelante FED) que es una medida desarrollada por Purser y que relaciona las concentraciones de distintos contaminantes con el tiempo que las personas están sometidas a ellos y con otros factores como falta de oxígeno u oscurecimiento del ambiente.
De esta forma una persona tiene FED = 0 cuando está en ambiente limpio y FED = 1 cuando el incendio la ha incapacitado. Es una forma muy sencilla de controlar cómo les va a nuestros avatares.
Lo bueno del programa es que realiza por nosotros una cantidad de cálculos enorme, ya que calcula la FED de la siguiente forma:
Concentración de gas presente x tiempo de exposición / concentración x tiempo de incapacitación
Como referencia se aplican los valores IDLH: “Immediately dangerous to life or health” (inmediatamente peligroso para la vida o salud) en 30 minutos, pero como siempre en este programa se pueden introducir otros.
FDS puede controlar la cantidad de contaminantes, humo, falta de oxígeno y calor que llega a cada punto de la simulación o a cada uno de los avatares que hemos definido.
Los datos que produce, además de verse, pueden salvarse en una hoja de cálculo.
La versión 5 usaba CO, CO2, O2 (para medir hipoxia) y un factor de corrección para introducir el efecto de hiperventilación que ocasiona el aumento de CO2.
La versión 6 (beta) usa la siguiente fórmula:
FEDtot = (FEDCO+FEDCN+FEDNOx +FLDirr)×HVCO2 +FEDO2
Donde además del monóxido de carbono, cianhídrico, óxidos nitrosos, el factor de hiperventilación (HV) y la falta de oxígeno, nos encontramos con la fracción de la dosis letal (FDL), que en este programa se calcula con la presencia de ácidos clorhídrico, bromhídrico, fluorhídrico, óxidos de azufre y nitrógeno, acroleína y formaldehído, según la siguiente fórmula:
¡¡ Menos mal que el programa hace los cálculos por nosotros!!
sábado, 9 de marzo de 2013
El yin-yang de la simulación
El concepto taoista del yin-yang nos ayuda a ver lo bueno que hay en lo malo y lo malo que hay en lo bueno.
Para mí, la simulación con FDS-EVAC tiene una cosa muy buena, que es una herramienta científica muy poderosa que nos permite hacer montones de pruebas y tomar montañas de datos sin quemar nada. Además si, como nos ocurre a menudo, despúes de realizada decimos: ¡ah! tenía que haber medido esto o introducido este factor, pues se repite la prueba sin romper nada.
Esta facilidad para introducir datos y parámetros en las simulaciones hace que sus resultados sean manipulables con facilidad y que si por un interés espúreo queremos un resultado determinado podemos conseguirlo sin problemas.
He añadido un incendio de 360 kW a la simulación para que podamos ver el grado de intoxicación de los avatares.
En esta imagen podemos ver cómo los últimos se van coloreando de verde porque van alcanzando el 0,008 de la dosis tóxica mortal y en esta otra
El humo es más claro, los avatares no muestran intoxicación y de hacerlo lo harían con una dosis unas 100 veces menor que en el ejemplo anterior.
¿Cuál es la diferencia?
Para verla tendríamos que acudir al archivo que he usado para hacer la simulación que en este caso es el siguiente:
&HEAD CHID='DISCO3F', TITLE='Discoteca con dos salidas en fachada y un pequño incendio en una puerta'/
se trata de un local alargado con 25m de fondo y 6 de fachada, 300 personas dentro segun CTE
Hago una malla de 20cm de lado y me sale. Le añado 60cm para el exterior.
++MALLA DE FUEGO++
&MESH IJK=128,30,13, XB= -0.6,25.0, 0.0,6.0, 0.0,2.6/
++MALLA DE EVACUACION++
&MESH IJK=128,30,1, XB=-0.6,25.0, 0.0,6.0, 0.6,1.40, EVAC_Z_OFFSET=1.0, EVACUATION=.TRUE., EVAC_HUMANS=.TRUE. ID='MALLAEVACUACION' /
&MESH IJK=128,30,1, XB=-0.6,25.0, 0.0,6.0, 0.6,1.40, EVACUATION=.TRUE., ID='SALIDAS'/
Esta linea es importante debe haber un flujo de salida se suelen empear siempre estos valores
&REAC ID = 'POLYURETHANE'
FYI = 'C_6.3 H_7.1 N O_2.1, NFPA Handbook, Babrauskas'
SOOT_YIELD = 0.10
CO_YIELD = 0.1
N = 1.0
C = 6.3
H = 7.1
O = 2.1 /
&SURF ID='BURNER', HRRPUA=1000., COLOR='RASPBERRY' /
&VENT XB= 23.2, 23.8, 1.2, 1.8, 0.0, 0.0, SURF_ID='BURNER' / quemador
&MATL ID = 'GYPSUM PLASTER'
FYI = 'Quintiere, Fire Behavior'
CONDUCTIVITY = 0.48
SPECIFIC_HEAT = 0.84
DENSITY = 1440. /
&SURF ID='EVAC_WALL', RGB= 200,0,200 / or COLOR
&MISC SURF_DEFAULT='WALL',
EVAC_SURF_DEFAULT = 'EVAC_WALL' /
&SURF ID = 'WALL'
RGB = 100,100,100
MATL_ID = 'GYPSUM PLASTER'
THICKNESS = 0.012 /
&SURF ID='OUTFLOW', VEL= +0.000001, TAU_V=0.1 /
&OBST XB= 0.0,0.2, 0.0,6.0, 0.0,2.5 /
&HOLE XB= -0.1, 0.21, 0.5,2.0, 0.00, 2.00 / PUERTA IZQUIERDA
&HOLE XB= -0.1, 0.21, 5.5,4.0, 0.00, 2.00 / PUERTA DERECHA
&VENT MB='XMIN',SURF_ID='OPEN'/
&VENT XB= -0.60,-0.6, 0.0,6.0, 0.0,2.50, SURF_ID='OUTFLOW',
MESH_ID='MALLAEVACUACION', EVACUATION=.TRUE., RGB=0,0,255 / CALLE
&PERS ID='Adult',
FYI='Male+Female diameter and velocity',
DEFAULT_PROPERTIES='Adult',
TDET_SMOKE_DENS=0.1,
HUMAN_SMOKE_HEIGHT=1.60,
DENS_INIT=4.0,
OUTPUT_SPEED=.TRUE.,
OUTPUT_FED=.TRUE.,
COLOR_METHOD= 0,
OUTPUT_FED=.TRUE. /
&EVAC ID='EVACUADOS',
NUMBER_INITIAL_PERSONS = 300,
XB= -0.6,25.0, 0.0,6.0, 0.6,1.4,
AVATAR_COLOR = 'BLUE',
PERS_ID = 'Adult' /
&TIME T_END=100.0/
TAIL/
Sí, la entrada al programa no se hace con cliks de ratón, todo no puede ser.
Bueno, en el segundo ejemplo he modificado los parámetros:
SOOT_YIELD = 0.10
CO_YIELD = 0.1
de la reacción de combustión dividiéndolos por 10, con lo que el mismo fuego se produce la décima parte de humo y de monóxido de carbono.
Por otra parte al programa de postproceso e he dicho que no coloree los avatares.
viernes, 1 de marzo de 2013
Simulando la evacuación de una discoteca
Para comprender mejor cómo funciona un programa de simulación de evacuación vamos a ver cómo se evacúa una discoteca.
Un caso sencillo, un local de 6 x 25m, lo que nos da 150m2 de superficie y usando la ocupación del CTE para discotecas 300 personas en el interior.
No hay fuego y hemos definido 2 puertas de salida de 1,5m según marca la normativa, a razón de 200 personas por metro de salida pensando que una de las salidas pueda estar bloqueada.
Haciendo correr el modelo nos da este resultado.
El movimiento está acelerado. Atiempo normal la evacuación dura 96 s.
El video no ha quedado con mucha calidad.
En posteriores entradas los mejoraré
¡A que es bonito!
E inquietante, porque podemos ver empujones y sentir que no nos gustaría estar en el medio.
Detrás estos simpáticos avatares hay un trabajo técnico importante en los que están definidos multitud de características.
Como es un ejemplo muy simple he introducido estas características en los agentes.
&PERS ID='Adult',
FYI='Male+Female diameter and velocity',
DEFAULT_PROPERTIES='Adult',
PRE_EVAC_DIST=1,PRE_LOW=5.0,PRE_HIGH=15.0,
DET_EVAC_DIST=1,DET_LOW=5.0,DET_HIGH=15.0,
TDET_SMOKE_DENS=0.1,
HUMAN_SMOKE_HEIGHT=1.60,
DENS_INIT=4.0,
OUTPUT_SPEED=.TRUE.,
OUTPUT_FED=.TRUE.,
COLOR_METHOD= 0 /
Para comprender las características tenemos que saber que la imagen es sólo una representación y que un agente tiene esta forma en el cálculo:
Se asume que el cuerpo humano puede asimilarse a la superposición de 3 cículos, pudiendo definir diferentes tipos de persona variando el diámetro de esos círuclos.
Por otra parte también se asume que su movilidad puede ser distinta y podemos variar ambas cosas según nos convenga.
El programa trae los siguientes tipos predefinidos:
Osea adulto, hombre, mujer, niño o anciano.
En el ejemplo, con la línea "DEFAULT_PROPERTIES='Adult' nos hemos decantado por la primera opción.
Podemos definir multitud de opciones. En el ejemplo:
- DET_EVAC_DIST=1,PRE_LOW=5.0,PRE_HIGH=15.0: Indica el tiempo máximo y nínimo que los agentes van a tardar en detectar el motivo de la evacuación.
- PRE_EVAC_DIST=1,PRE_LOW=5.0,PRE_HIGH=15.0: Indica el tiempo máximo y nínimo que los agentes van a tomarse para iniciar la evacuación una vez detectado el fuego.
- TDET_SMOKE_DENS=0.1: Indica la densidad de humo en mg/m3 que tiene que alcanzarse en la posición del agente para que detecte humo.
- HUMAN_SMOKE_HEIGHT=1.60 es la altura a la que se realiza la toma de muestra de la densidad del humo en una posición determinada.
- DENS_INIT=4.0:m: permite altas densidades de personas en las condiciones iniciales, ya que la distribución de los agentes es aleatoria.
Las indicaciones OUTPUT son para que el programa guarde datos de la velocidad y de las concentraciones de tóxicos que les llegan a cada agente.
Esos datos se pueden usar en el postproceso para dar color a los avatares.
De esta forma si le decimos al programa que los coloree por velocidad de salida tendremos este resultado:
Vemos a los avatares casi parados en azul intenso y los que se mueven más deprisa en rojo
viernes, 8 de febrero de 2013
Evacuación. La pregunta del millón
En un diseño prestacional, la pregunta del millón en evacuación es ¿cuanto tardan los ocupantes de un recinto en alcanzar un lugar seguro?
Estos días es la Copa del Rey de baloncesto en Vitoria-Gasteiz y el pabellón Buesa Arena fue proyectado con un diseño prestacional, lo que quiere decir que el principal parámetro que define la seguridad de la evacuación del recinto es el tiempo que tarda en vaciarse una vez concluido el partido.
Hay edificios cuyo diseño ya te produce tranquilidad. Un edificio con 12 escaleras protegidas perimetrales es candidato ideal para una buena evacuación.
En un edificio como ese, en el que vamos a tener 15.000 personas dentro y que van a salir todas a la vez hay muchos factores que influyen en la evacuación y van más allá de la mera anchura de los pasillos.
Por ejemplo si cuando la gente sale del edificio se relaja y se queda junto a la puerta de salida, esto retrasa la evacuación de los que están dentro aún.
En el Buesa Arena el edificio está rodeado por el aparcamiento y la gente sale rápida a por su coche. Esto ayuda a que la evacuación sea eficiente.
En España no conozco ninguna norma que diga cuanto tiempo se puede tardar en salir de un recinto de este tipo, por lo que como nos ocurre muchas veces hay que salir a textos extranjeros.
Tras mucho bucear por la Red he visto que se reconoce como tiempo máximo de evacuación 8 minutos para estadios deportivos o lugares análogos. Hay que decir que en general se refieren a recintos al aire libre.
Según datos recogidos en la tesis doctoral del Dr. Salvador Casadesús las personas asignadas a una salida deberían poder alcanzarla antes de 2,5 minutos y situarse en un lugar seguro en 1 minuto de recorrido ascendente o 5 de descendente.
La experiencia subjetiva en el Buesa Arena es que se evacúa muy rápido. ¿Pero en cuánto tiempo?
Esta pregunta no es tan fácil de responder, pero en futuros posts la abordaremos.
Estos días es la Copa del Rey de baloncesto en Vitoria-Gasteiz y el pabellón Buesa Arena fue proyectado con un diseño prestacional, lo que quiere decir que el principal parámetro que define la seguridad de la evacuación del recinto es el tiempo que tarda en vaciarse una vez concluido el partido.
Hay edificios cuyo diseño ya te produce tranquilidad. Un edificio con 12 escaleras protegidas perimetrales es candidato ideal para una buena evacuación.
En un edificio como ese, en el que vamos a tener 15.000 personas dentro y que van a salir todas a la vez hay muchos factores que influyen en la evacuación y van más allá de la mera anchura de los pasillos.
Por ejemplo si cuando la gente sale del edificio se relaja y se queda junto a la puerta de salida, esto retrasa la evacuación de los que están dentro aún.
En el Buesa Arena el edificio está rodeado por el aparcamiento y la gente sale rápida a por su coche. Esto ayuda a que la evacuación sea eficiente.
En España no conozco ninguna norma que diga cuanto tiempo se puede tardar en salir de un recinto de este tipo, por lo que como nos ocurre muchas veces hay que salir a textos extranjeros.
Tras mucho bucear por la Red he visto que se reconoce como tiempo máximo de evacuación 8 minutos para estadios deportivos o lugares análogos. Hay que decir que en general se refieren a recintos al aire libre.
Según datos recogidos en la tesis doctoral del Dr. Salvador Casadesús las personas asignadas a una salida deberían poder alcanzarla antes de 2,5 minutos y situarse en un lugar seguro en 1 minuto de recorrido ascendente o 5 de descendente.
La experiencia subjetiva en el Buesa Arena es que se evacúa muy rápido. ¿Pero en cuánto tiempo?
Esta pregunta no es tan fácil de responder, pero en futuros posts la abordaremos.
Suscribirse a:
Entradas (Atom)