Article: Modélisation - FDS & Smokeview (IV)
Transmis le 17 février 2007 à 16:22:13 (18919 lectures)
Nous abordons cette fois le 4éme cours sur FDS. Nous
allons d'abord nous intéresser aux fichiers générés
par FDS, faire une rapide analyse du calcul de cours III, puis
nous allons réaliser la modélisation d'une mini-maison,
en améliorant l'aspect visuel tout en compliquant un peu
les choses au niveau du combustible et de la mise à feu
! Avant de commencer
Cette fois, nous ne repartirons pas du fichier du cours précédent.
Il est donc inutile de dupliquer le fichier du Cours III.
L'animation du Cours III
Dans le cours III nous avons modélisé un feu de
canapé dans un local.
Nous pouvons nous contenter de regarder l'animation réalisée
avec Smokeview, mais cette animation peut-être complétée
par l'analyse des fichiers générés par FDS.
Le fichier ".out"
A chaque "tour de boucle" de calcul, FDS sauve des informations
dans le fichier avec l'extension ".out". Vous y trouvez
le temps de calcul, le temps processeur, l'heure à laquelle
se calcul a été fait etc.. mais vous trouvez aussi
des informations très précieuses, telle que la pression
dans le local (si celui-ci est clos) , la puissance thermique
globale etc...
Les fichiers ".csv"
FDS en génère un certain nombre, en fonction de
ce que vous lui avez demandé de sauver. Les fichiers ".csv"
sont des fichiers textes, dans lesquels les informations sont
séparées par des virgules (CSV = Comma Separated
Value). Ce format est prévu pour être importé
dans un tableur (Excel par exemple): chaque ligne du fichier correspondra
à une ligne du tableau, et le tableau se repérera
sur les virgules qui séparent les données pour les
répartir dans les colonnes.
Il devient ainsi possible de créer des courbes en quelques
secondes, afin de visualiser rapidement l'évolution des
différentes valeurs.
CHID mass.csv
Contient la masse des différents gaz présents dans
la structure. La première colonne donne le temps, la seconde
la masse totale des gaz et les colonnes suivantes la masse de
chacun des gaz.
CHID hrr.csv
Le fichier est composé de 6 colonnes. La première,
c'est le temps, les colonnes 2 à 5 contiennent des valeurs
en kW. Colonne 2 = dégagement total de chaleur (Heat Release
Rate), colonne 3 = émission radiative sur les zones (solides
et ouvertures), colonne 4 = énergie convective et radiative
entrant et sortant du domaine, colonne 5 = énergie émise
par conduction sur les surfaces solides. La colonne 6 contient
la vitesse de combustion du combustible en kg/s.
Evolution de la puissance thermique dans la modélisation
du cours III
Cette courbe a été réalisée
sous Excel, à partir du fichier hrr.csv de la simulation
du cours III. Durant les 90 premières secondes la puissance
augmente rapidement, puis se calme : le feu ne meurt pas, mais
n'a jamais assez de comburant pour prendre suffisamment d'ampleur
car le seul renouvellement possible c'est le petite fenêtre.
Il est parfaitement clair que ce sont les secours, à leur
arrivée, qui ventilent le local et permettent au feu de
reprendre de l'ampleur pour atteindre le flashover. Nous voyons
également que les secours, en choisissant d'attaquer dès
leur entrée, aurait eu à combattre un feu avec
une puissance très faible alors qu'en choisissant de sauver
sans attaquer, ils dégradent fortement la situation, tant
pour eux que pour les victimes.
|
|
Où est la fumée?
La simulation du cours III est intéressante, nous pouvons
en déduire de très nombreuses choses, mais il lui
manque un point de réalisme: la fumée ne sort pas!
Pourtant la fenêtre de gauche est ouverte: elle n'a pas
la "croix" qui symbolise la fermeture, la fumée
se déplace à son niveau et si nous activons GAUGE_HEAT_FLUX
sans la fumée, nous voyons des zones de fortes chaleurs
à son niveau. En plus, lorsque la porte s'ouvre, la fumée
se déplace, semble sortir, mais rien n'apparaît sur
l'animation... Ces ouvertures sont donc prises en compte par la
modélisation, mais pas lors de la visualisation.
FDS réalise les calculs dans le cadre d'un volume que
nous avons défini comme faisant 8 m x 4m et une hauteur
de 2,40m. Et notre "maison" occupe tout ce volume. FDS
sait bien que la fumée sort et il prend cette extraction
en compte, tout comme il prend l'apport d'air en compte. Mais
il ne dessine pas la fumée puisqu'elle sort du domaine.
Une mini-maison
Pour voir comment faire, nous allons nous exercer avec la modélisation
d'une mini-maison. Nous allons faire sortir la fumée par
le petit exutoire du plafond, mais aussi par la porte. Mais en
même temps, nous allons rendre transparentes la façade
et le côté gauche, afin que l'observation puisse
être facilitée.
En premier nous allons construire l'en-tête de notre
fichier.
&HEAD CHID='test_4',TITLE='Test Cours 4
pour flashover.fr' /
&GRID IBAR=40,JBAR=25,KBAR=40 / Nombre de cellules en x,
y, z
&PDIM XBAR0=-0.30, YBAR0=-0.20, ZBAR0=0, XBAR=0.50,YBAR=0.30,ZBAR=0.80
/ Dimensions en mètres
&TIME TWFIN=300.0 / Durée de la simulation (300 =
5 min) |
La différence se trouve dans le &PDIM. Dans les
autres exercices, nous n'avions que les valeurs XBAR, YBAR et
ZBAR donc uniquement des valeurs donnant un coin du volume de
travail. Par défaut, l'autre coin était donc à
(0, 0, 0). Pour notre mini-maison, nous définissons les
2 coins, donc avec XBAR0, YBAR0 et ZBAR0 (c'est un zéro
et pas la lettre O). Quel intérêt ? En définissant
un volume assez grand qui commence à des coordonnées
négatives, nous allons pouvoir placer notre mini-maison,
en la construisant à partir du point (0, 0, 0) ce qui sera
plus facile.
Ensuite nous allons définir les 6 faces de ce volume
comme étant des VENT ouverts. Car sinon FDS considérera
ce volume comme une zone fermée : notre mini-maison produirait
alors de la fumée, mais celle-ci serait bloquée
dans ce volume.
Le combustible
Notre mini-maison est en aggloméré et pour y mettre
le feu nous allons utiliser un petit tas de bûchettes en
pin. Vous constaterez qu'il y a 3 définitions de combustibles,
dont deux qui se ressemblent beaucoup (voir le code en fin de
l'article). Ce sont des définitions qui correspondant approximativement
à de l'aggloméré / MDF. La seconde définition,
intitulée MDF_MAP comporte des informations de couleur
et de texture. Une texture, c'est une image quoi va être
« collée » sur les parois définies avec
ce combustible.
RGB = 0.9,0.6,0.2
TEXTURE_MAP = 'chip_board.jpg'
TEXTURE_WIDTH = 0.60
TEXTURE_HEIGHT = 0.60 |
Pour trouver des textures de bois, il vous suffit d'utiliser
le moteur de recherche Google, de cliquer sur le lien «
image » et de taper comme recherche "texture bois".
Cette texture n'a qu'un intérêt visuel : vous pouvez
utiliser n'importe quelle image, cela ne changera rien au résultat
du calcul.
Important
La définition du combustible est un sujet sensible,
et trouver une bonne définition de l'aggloméré
s'avère très difficile. La définition donnée
ici correspond à un mélange entre une étude
Finlandaise et une étude Américaine. Pour l'instant,
le résultat obtenu est suffisamment proche de la réalité
pour nous servir de base de travail.
La mini-maison
Nous la définissons classiquement avec des objets OBST,
et nous créons notre exutoire supérieur ainsi que
la porte avec des HOLE. Mais pour nos murs nous utilisons nos
deux définitions de matériaux afin d'indiquer à
FDS que le plafond, le sol, le fond et le côté droit
devront avoir une texture. Pour les 2 autres côtés
(façade et côté gauche), nous ajoutons le
paramètre BLOCK_COLOR='INVISIBLE'. Ces éléments
seront donc invisibles, ce qui nous permettra de voir l'intérieur
de la boîte.
L'allumage
Pour allumer, il faut de tout petits morceaux de bois. Mais la
dimension minimale des objets est définie par la dimension
de notre grille de travail qui est composée ici de cubes
de 2cm de côté. Impossible d'avoir des éléments
plus petits et impossible de placer des morceaux de bois en oblique.
Nous allons donc construire un petit empilement de bûchettes
: deux dans un sens, deux dans l'autre, encore deux autres dans
le même sens que les premières, et enfin deux dans
l'autre sens !
Pour allumer nous allons mettre, sous ce tas de bois, un objet
VENT comme lorsque nous avons mis le feu à notre canapé,
dans le cours III. Mais avec notre canapé, notre élément
chauffant chauffait d'un bout à l'autre de la simulation.
Ce n'était pas gênant car cela pouvait simuler une
lampe tombée sur le canapé, et parce que le morceau
de canapé chauffé était éloigné
de l'autre canapé : l'élément chauffant servait
bien au démarrage, n'influait pas le reste de la combustion
et ne participait pas à la propagation.
Pour notre mini-maison, c'est différent : il faut «
allumer » les bûchettes, puis les laisser brûler
toutes seules.
Pour cela nous allons associer à notre « burner »
un paramètre « RAMP_Q » auquel nous donnerons
un nom. Ici, nous le nommons « FIRE ». Ceci va nous
permettre de définir la manière dont la puissance
thermique émise par notre brûleur, va évoluer.
&SURF ID='BURNER',PART_ID='tracers', RAMP_Q='FIRE',
HRRPUA=250./
&RAMP ID='FIRE', T=0.0, F=0.0 /
&RAMP ID='FIRE', T=1.0, F=1.0 /
&RAMP ID='FIRE', T=10.0, F=1.0 /
&RAMP ID='FIRE', T=11.0, F=0.0 /
&VENT XB= 0.36,0.48,0.16,0.28, 0.02, 0.02, SURF_ID='BURNER'
/ |
Nous avons ici quatre lignes « RAMP » pour définir
cette évolution. Chaque ligne comporte le nom de cette
évolution (donc ici « FIRE ») et deux paramètres
: T qui indique le nombre de secondes écoulées depuis
le début de la modélisation avant de prendre en
compte la valeur F. Cette valeur F peut évoluer de 0 à
1.
Regardons nos quatre lignes : la première prend effet à
0 seconde et à ce moment F vaut 0 : notre brûleur
n'émet alors aucune chaleur. La seconde ligne indique qu'à
1 seconde, F vaut 1 donc notre brûleur émettra sa
puissance maximale. La troisième ligne indique qu'à
10 secondes, le brûleur est toujours au maximum, mais à
11 secondes, il est éteint.
Pourquoi quatre ligne ? Simplement parce que FDS calcule les valeurs
intermédiaire de façon linéaire.
Imaginons que nous supprimions la troisième ligne RAMP
: notre brûleur serait au maximum de sa puissance à
1 seconde, mais pour atteindre la valeur 0 au bout de 11 secondes,
sa puissance baisserait progressivement.
Or ce n'est pas ce que nous voulons : nous voulons un brûleur
actif à son maximum, pendant 10 secondes et c'est pour
cela que nous devons définir la puissance à son
maximum à 1 secondes, puis encore au maximum au bout de
10.
Les résultats
Il n'est pas nécessaire d'attendre que le calcul soit entièrement
terminé pour lancer Smokeview. Dés que FDS a fait
quelques tours de boucles, vous pouvez visualiser le résultat.
Cela vous permet éventuellement de remarquer des erreurs,
d'arrêter FDS et de corriger. En ce qui concerne l'allumage
par exemple, celui-ci fonctionne mais si vous augmentez l'humidité
des bûchettes (paramètre MOISTURE_FRACTION) vous
verrez qu'à l'arrêt du brûleur, les bûchettes
s'arrêtent de brûler.
|
Lorsque vous lancez Smokeview vous constatez que la mini-maison
est bien dans un volume plus grand, mais les arrêtes de
celui-ci sont visibles et notre mini-maison n'a pas de texture
(image de gauche). Pour corriger cela, il faut aller dans le
menu de Smokeview :
- Show/Hide -> Texture -> nom du fichier texture
- Show/Hide -> Geometry -> Hide All
Vous aurez alors le résultat de l'image de droite.
|
|
Lancer l'animation
Activez la fumée et les flammes etc vous obtiendrez
le résultat espéré. En faisant tourner la
boîte, vous verrez parfaitement les flammes sortir par la
porte.
De gauche à droite: la colone de flammes touche
le plafond, les flammes sortent par la porte, le flashover se
met en place. A la fin, la production de gaz de pyrolyse est trop
importante: le front de flamme décole du foyer. C'est le
"hot rich flashover" qui, si le front de flammes est
détruit par un coup de vent, débouchera sur un "backdraft
naturel", qui se met en place sans intervention umaine, dans
un local ouvert.
Les fichiers Plot-3D
Le format Plot-3D a été mis au point par la NASA.
Il, permet une représentation assez complète des
événements et ce format a été repris
par FDS et Smokeview. Compte tenu de la quantité importante
de données à sauver, ces fichiers ne sont pas générés
en permanence. Par défaut FDS prend la durée totale
prévue pour le calcul (paramètre TWFIN) la divise
par 5 et obtient ainsi l'écart entre les moment ou il sauvera
les données Plot-3D.
|
Si vous visualisez le résultat du calcul avant que
FDS n'ait atteint ce moment, vous n'aurez pas de fichier Plot-3D.
Dans le cas contraire, en choisissant Load/Unload -> Plot
3D file dans le menu de Smokeview, vous verrez alors les
durées de simulation correspondant aux fichiers Plot 3D
disponibles.
|
|
L'affichage devient alors statique et fait apparaître
une sorte de plaque qui coupe la mini-maison. En fait, il y a
trois coupes, une dans chaque axe. Pour les déplacer,
utilisez les flèches du clavier pour les axes X / Y. Pour
la coupe Z, sur Macintosh, elle est obtenue par un appui simultané
des flèches et de la touche de fonction. A vous de trouver
sur votre machine !
Ces coupes vous donnent par défaut la température.
Elles sont très intéressantes en permettant de
découvrir les zones plus chaudes, les entrées d'air
frais etc Avec la touche V, vous passez en mode vecteur, et avec
la touche A vous allonger les vecteurs, ce qui va vous donner
la directement des variations de températures. Si l'affichage
est trop "dense", utilisez la touche S pour afficher
moins de vecteurs.
Le code complet
Voici le code complet de la modélisation de notre mini-maison.
/ Simulation Incendie
/ Numéro 4
/ Version 2.00 du 16-02-2007
/ Mini-Maison en bois - PL Lamballais pour flashover.fr
/ Durée totale 5 minutes
/ Essai avec data SURF de Jukka Hietaniemi
/ Simo Hostokka & Jukka Vaari (VTT Building and Transport)
/ Paramètre A issus des travaux de Seugn Han Lee (Red
Oak)
&HEAD CHID='test_4',TITLE='Test Cours 4 pour flashover.fr'
/
&GRID IBAR=40,JBAR=25,KBAR=40 / Nombre de cellules en x,
y, z
&PDIM XBAR0=-0.30, YBAR0=-0.20, ZBAR0=0, XBAR=0.50,YBAR=0.30,ZBAR=0.80
/ Dimensions en mètres
&TIME TWFIN=300.0 / Durée de la simulation (300 =
5 min)
/ Définition des surfaces
&SURF ID = 'SPRUCE'
FYI = 'Charring material'
RGB = 0.5,0.2,0.1
A = 80931
PHASE = 'CHAR'
MOISTURE_FRACTION = 0.01
DELTA = 0.020
MASS_FLUX_CRITICAL = 0.012
TMPIGN = 320.0
HEAT_OF_VAPORIZATION = 400.
DENSITY = 420.
KS = 0.19
C_P = 1.2
KS_CHAR = 0.12
C_P_CHAR = 1.5
CHAR_DENSITY = 150.
WALL_POINTS = 30
BACKING = 'EXPOSED'/
&SURF ID = 'MDF_MAP'
FYI = 'Charring material'
PHASE = 'CHAR'
A = 80931
MOISTURE_FRACTION = 0.10
DELTA = 0.020
MASS_FLUX_CRITICAL = 0.012
TMPIGN = 320.0
HEAT_OF_VAPORIZATION = 400.
DENSITY = 700.
KS = 0.15
C_P = 1.5
CHAR_DENSITY = 80
KS_CHAR = 0.20
C_P_CHAR = 2.5
WALL_POINTS = 30
RGB = 0.9,0.6,0.2
TEXTURE_MAP = 'chip_board.jpg'
TEXTURE_WIDTH = 0.60
TEXTURE_HEIGHT = 0.60
BACKING = 'EXPOSED'/
/ Bois aggloméré de 20mm d'épaisseur
sans texture
&SURF ID = 'MDF'
FYI = 'Charring material'
PHASE = 'CHAR'
A = 80931
MOISTURE_FRACTION = 0.10
DELTA = 0.020
MASS_FLUX_CRITICAL = 0.012
TMPIGN = 320.0
HEAT_OF_VAPORIZATION = 400.
DENSITY = 700.
KS = 0.15
C_P = 1.5
CHAR_DENSITY = 80
KS_CHAR = 0.20
C_P_CHAR = 2.5
WALL_POINTS = 30
BACKING = 'EXPOSED'/
/ Ouverture des faces du volume afin que la fuméee
ne soit pas bloquée
/ On met en VENT l'avant, l'arrière, les côtés
et le plafond
&VENT XB= -0.30,0.50,-0.20, -0.20, 0.0,0.80, SURF_ID='OPEN'
/
&VENT XB= -0.30,0.50,0.30, 0.30, 0.0,0.80, SURF_ID='OPEN'
/
&VENT XB= -0.30,-0.30,-0.20, 0.30, 0.0,0.80, SURF_ID='OPEN'
/
&VENT XB= 0.50,0.50,-0.20, 0.30, 0.0,0.80, SURF_ID='OPEN'
/
&VENT XB= -0.30,0.50,-0.20, 0.30, 0.80,0.80, SURF_ID='OPEN'
/
/ Boite dans la structure, avec plancher en bois, 4 côtés
et le plafond
/ Sol et plafond
&OBST XB= 0.0, 0.50, 0.0, 0.30, 0.0, 0.02, SURF_ID='MDF_MAP'
/
&OBST XB= 0.0, 0.50, 0.0, 0.30, 0.60, 0.62, SURF_ID='MDF_MAP'
/
/ Côtés (gauche et droit)
&OBST XB= 0.0, 0.02, 0.0, 0.30, 0.02, 0.60, SURF_ID='MDF',BLOCK_COLOR='INVISIBLE'
/
&OBST XB= 0.48, 0.50, 0.0, 0.30, 0.02, 0.60, SURF_ID='MDF_MAP'
/
/ Face et arrière
&OBST XB= 0.02, 0.48, 0.0, 0.02, 0.02, 0.60, SURF_ID='MDF',
BLOCK_COLOR='INVISIBLE' /
&OBST XB= 0.02, 0.48, 0.28, 0.30, 0.02, 0.60, SURF_ID='MDF_MAP'
/
/ Ouverture en facade (porte en bas à gauche). 26cm
de haut, 20 de large
&HOLE XB= 0.02, 0.22, 0.0, 0.02, 0.0, 0.28 /
/ Exutoire au plafond, fermé au bout de X secondes
&HOLE XB= 0.22, 0.28, 0.12, 0.18, 0.60, 0.62, T_REMOVE=30.0
/
/ Tas de bois au fond à droite. Nous empilons des petits
tasseaux de bois en sapin
&OBST XB= 0.38, 0.40, 0.16, 0.28, 0.02, 0.04, RGB=1,0.75,0.15,
SURF_ID='SPRUCE' /
&OBST XB= 0.44, 0.46, 0.16, 0.28, 0.02, 0.04, RGB=1,0.75,0.15,
SURF_ID='SPRUCE' /
&OBST XB= 0.36, 0.48, 0.16, 0.18, 0.04, 0.06, RGB=0.9,0.6,0.2,
SURF_ID='SPRUCE' /
&OBST XB= 0.36, 0.48, 0.24, 0.26, 0.04, 0.06, RGB=0.9,0.6,0.2,
SURF_ID='SPRUCE' /
&OBST XB= 0.38, 0.40, 0.16, 0.28, 0.06, 0.08, RGB=1,0.75,0.15,
SURF_ID='SPRUCE' /
&OBST XB= 0.44, 0.46, 0.16, 0.28, 0.06, 0.08, RGB=1,0.75,0.15,
SURF_ID='SPRUCE' /
&OBST XB= 0.36, 0.48, 0.16, 0.18, 0.08, 0.10, RGB=0.9,0.6,0.2,
SURF_ID='SPRUCE' /
&OBST XB= 0.36, 0.48, 0.24, 0.26, 0.08, 0.10, RGB=0.9,0.6,0.2,
SURF_ID='SPRUCE' /
&OBST XB= 0.38, 0.40, 0.16, 0.28, 0.10, 0.12, RGB=1,0.75,0.15,
SURF_ID='SPRUCE' /
&OBST XB= 0.44, 0.46, 0.16, 0.28, 0.10, 0.12, RGB=1,0.75,0.15,
SURF_ID='SPRUCE' /
&OBST XB= 0.36, 0.48, 0.16, 0.18, 0.12, 0.14, RGB=0.9,0.6,0.2,
SURF_ID='SPRUCE' /
&OBST XB= 0.36, 0.48, 0.24, 0.26, 0.12, 0.14, RGB=0.9,0.6,0.2,
SURF_ID='SPRUCE' /
/ Source de chaleur sous le tas de bois.
/ Mise en place pendant un temps asssez court et ensuite le tas
de bois brûle tout seul.
&SURF ID='BURNER',PART_ID='tracers', RAMP_Q='FIRE', HRRPUA=250./
&RAMP ID='FIRE', T=0.0, F=0.0 /
&RAMP ID='FIRE', T=1.0, F=1.0 /
&RAMP ID='FIRE', T=10.0, F=1.0 /
&RAMP ID='FIRE', T=11.0, F=0.0 /
&VENT XB= 0.36,0.48,0.16,0.28, 0.02, 0.02, SURF_ID='BURNER'
/
&BNDF QUANTITY='GAUGE_HEAT_FLUX' / Flux de chaleur
&BNDF QUANTITY='WALL_TEMPERATURE' / Température des
murs (surfaces)
&BNDF QUANTITY='BURNING_RATE' / Perte de masse par unité
|
La prochaine fois
Le cours V sera l'occasion de travailler sur des zones plus complexes
et sans doute de mesurer des températures avec des thermocouples.
D'ici là, exercez vous et comme toujours, le forum "Simulation
informatique" est ouvert aux discussions!
|
"Article: Modélisation - FDS & Smokeview (IV)" | Connexion/Créer un compte | 0 commentaires |
| Les commentaires sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus ! |
|
Les commentaires anonymes ne sont pas autorisés, veuillez vous enregistrer
|
| |
Noter cet Article |
Score Moyen: 5 Votes: 2
|
|
|