Download flamh.eso

Back to the list

   1 : C FLAMH     SOURCE    TTMF3     12/07/05    21:15:45     7425           
   2 :       SUBROUTINE FLAMH(YH2e,YO2e,YN2e,YH2Oe,YHEe,YCO2e,YCOe,
   3 :      &              PRESe,TEMPe,
   4 :      &              TEMPSOR,TEMPPLA,Q,
   5 :      &              YH2SOR,YO2SOR,YN2SOR,YH2OSOR,YHESOR,YCO2SOR,YCOSOR,
   6 :      &              DDT,iKA,iMOD,iCST,IHI)
   7 : C------------------------------------------------------------------------
   8 : C Modélisation d'un recombineur thermique par une approche 0D.
   9 : *------------------------------------------------------------------------
  10 : C
  11 : C---------------------------
  12 : C Parametres Entree/Sortie :
  13 : C---------------------------
  14 : C
  15 : C E/  YH2e    : flottant : Fraction massique moyenne de H2 (PAR inlet)
  16 : C E/  YO2e    : flottant : Fraction massique moyenne de O2 (PAR inlet)
  17 : C E/  YN2e    : flottant : Fraction massique moyenne de N2 (PAR inlet)
  18 : C E/  YH2Oe   : flottant : Fraction massique moyenne de H2O (PAR inlet)
  19 : C E/  YHEe    : flottant : Fraction massique moyenne de HE (PAR inlet)
  20 : C E/  YCO2e   : flottant : Fraction massique moyenne de CO2 (PAR inlet)
  21 : C E/  YCOe    : flottant : Fraction massique moyenne de CO (PAR inlet)
  22 : C E/  PRESe   : flottant : Pression moyenne autour du PAR (Pa)
  23 : C E/  TEMPe   : flottant : Température moyenne du gaz (PAR inlet, K)
  24 : C  /S TEMPSOR : flottant : Température moyenne du gaz (PAR outlet, K) 
  25 : C E/S TEMPPLA : flottant : Température moyenne des plaques du PAR (K) 
  26 : C  /S Q       : flottant : Débit dans le PAR (kg/s)
  27 : C  /S YH2SOR  : flottant : Fraction massique moyenne de H2 (PAR outlet)
  28 : C  /S YO2SOR  : flottant : Fraction massique moyenne de O2 (PAR outlet)
  29 : C  /S YN2SOR  : flottant : Fraction massique moyenne de N2 (PAR outlet)
  30 : C  /S YH2OSOR : flottant : Fraction massique moyenne de H2O (PAR outlet)
  31 : C  /S YHESOR  : flottant : Fraction massique moyenne de HE (PAR outlet)
  32 : C  /S YCO2SOR : flottant : Fraction massique moyenne de CO2 (PAR outlet)
  33 : C  /S YCOSOR  : flottant : Fraction massique moyenne de CO (PAR outlet)
  34 : C E/  DDT     : flottant : Pas de temps (s)
  35 : C E/  IKA     : entier   : Flag pour correction du coefficient d'échange
  36 : C                          comme dans RALOC (voir fla009.eso)
  37 : C E/  IMOD    : entier   : Modélisation du PAR (1=SIEMENS, 2=HEATER)
  38 : C E/  ICST    : entier   : Pointeur de LISTREEL, paramètres du modèle
  39 : C  /S IHI     : entier   : Flag de convergence et gestion des erreurs
  40 : C
  41 : C------------------------------------------------------------------------
  42 : C
  43 : C Langage : ESOPE + FORTRAN 77
  44 : C
  45 : C----------------
  46 : C Modifications :
  47 : C----------------
  48 : C
  49 : C 2012 : F. Dabbene  - mise en oeuvre du modele HEATER sur la base du
  50 : C                      modèle SIEMENS
  51 : C
  52 : C------------------------------------------------------------------------
  53 :       IMPLICIT INTEGER(I-N)
  54 :       IMPLICIT REAL*8 (A-H,O-Z)
  55 : -INC SMLREEL
  56 : C
  57 : C===============================================================
  58 : C Ordre des espèces : 1 N2, 2 O2, 3 H2, 4 H2O, 5 HE, 6 CO2, 7 CO
  59 : C===============================================================
  60 : C
  61 :       real*8 xi(7),om(7)
  62 : C
  63 : C Description du segment de travail TRAV (initialisé ici, il est
  64 : C transmis à tous les .eso du modèle (de fla001.eso à fla019.eso).
  65 : C Les valeurs numériques sont celles du recombineur SIEMENS FR/1-150
  66 : C   Hauteur totale du recombineur = 1 m
  67 : C   Longueur du recombineur (Lgr) = 0.15 m
  68 : C   Profondeur du recombineur (W) = 0.15 m
  69 : C   Nombre de plaques (n)         = 14
  70 : C
  71 : C IKALP   : Flag pour correction RALOC du coefficient d'échange (=IKA)
  72 : C IMODEL  : Modélisation du PAR (1=SIEMENS, 2=AUTRE) (=IMOD)
  73 : C E       : Distance entre deux plaques (= 0.01 m)
  74 : C           (Lgr/(n+1), W=largeur et n=nombre de plaques)
  75 : C L       : Hauteur des plaques (= 0.15 m)
  76 : C LCH     : Hauteur de la cheminée (= 0.85 m)
  77 : C DH      : Diamètre hydraulique entre les plaques (= 0.01875 m) 
  78 : C           (2EW/(E+W))
  79 : C S       : Surface des plaques (= 0.675 m2) 
  80 : C           (2n*LW, n=nombre de plaques)
  81 : C SP      : Section de passage entrée/sortie fluide du PAR (= 0.0225 m2)
  82 : C           (Lgr*W)
  83 : C CK      : Demi somme des coefficients de perte de charge à l'entrée et à
  84 : C           la sortie du PAR (= 3/2)
  85 : C MC      : Masse des plaques (= 0.133 kg)
  86 : C CPC     : Chaleur spécifique des plaques (= 132.6 J/kg/K)
  87 : C G       : Gravité (=9.81 m/s2)
  88 : C R       : Constante des gaz (= 8.314 J/mol/K)
  89 : C DELTAH  : Energie libérée par la combustion d'un kg d'H2 (= 120 MJ/kg)
  90 : C M(7)    : Masse molaire des constituants du mélange (kg/mol) 
  91 : C ncst    : Nombre de constantes du modèle (= longueur du listreel ICST)
  92 : C CSTMOD  : Constantes du modèle  (= contenu de ICST)
  93 : C CPI(7)  : Chaleurs massiques des constituants (J/kg/K)
  94 : C AL      : Cste fonction de CP(i)
  95 : C EPS_MH2 : Seuil en deça duquel on suppose que la consommation d'H2 max
  96 : C           est mise à 0. (kg/s)
  97 : C EPS_DT  : Ecart entre la température des plaques et la température du
  98 : C           gaz (Tc-T) en deça duquel on suppose qu'il n'y a pas
  99 : C           d'échange convectif (K)
 100 : C EPS_CON : Critère de convergence
 101 : C U       : Vitesse minimale dans le PAR (= 0.01 m/s)
 102 : C
 103 :       segment trav
 104 :            integer iKALP,iMODEL
 105 :            real*8 e,L,Lch,Dh,S,sp,Ck
 106 :            real*8 mc,Cpc
 107 :            real*8 g,R,deltah
 108 :            real*8 M(nbesp),cstmod(ncst)
 109 :            real*8 Cpi(nbesp),al
 110 :            real*8 eps_mh2,eps_dt,eps_con,u
 111 :            real*8 XH2MOY,XO2MOY,XN2MOY,XH2OMOY,PRESSION,TEMPENT
 112 :            real*8 XHEMOY,XCO2MOY,XCOMOY
 113 :       endsegment
 114 : C
 115 : c      write(6,*) '************************ dans flamh : debut'
 116 :       IHI = 0
 117 :       MLREEL = ICST
 118 :       SEGACT MLREEL
 119 :       NCST = PROG(/1)
 120 :       NBESP = 7
 121 :       SEGINI TRAV
 122 : C
 123 : C------------------------------------ Remplissage du segment TRAV
 124 : C
 125 : C Gestion du HEATER
 126 :       DO 10 I1=1,NCST
 127 :          CSTMOD(I1) = PROG(I1)
 128 :  10   CONTINUE
 129 :       SEGDES MLREEL
 130 : C
 131 : C Paramètres dépendant de la géométrie
 132 : C (à changer si le PAR n'est pas un FR/1-150)
 133 :       IMODEL = IMOD
 134 :       e   = 0.01D0
 135 :       L   = 0.15D0
 136 :       Lch = 0.85D0
 137 :       Dh  = 0.01875D0
 138 :       S   = 0.675D0
 139 :       sp  = 0.0225D0
 140 :       Ck  = 1.5D0
 141 : C
 142 : C Paramètres physico-chimiques
 143 : C-> La capacité thermique des plaques du PAR est corrigée par CSTMOD(4).
 144 : C-> Comme on ne se sert que de mc*cpc on fait porter la correction sur mc
 145 : C-> (mc=5.D0 et Cpc=480.D0 soit cstmod(4)=136.0868234 ont permis de
 146 : C-> valider le modele sur la base de la maquette du heater pour ERCOSAM)
 147 :       mc  = 0.133D0 * cstmod(4) 
 148 :       Cpc = 132.6D0
 149 :       g      = 9.81D0
 150 :       R      = 8.3144621D0
 151 :       deltah = 1.2D8
 152 :       M(1) = 2.D0 * 0.0140067D0
 153 :       M(2) = 2.D0 * 0.0159994D0
 154 :       M(3) = 2.D0 * 0.00100794D0
 155 :       M(4) = 2.D0 * 0.00100794D0 + 0.0159994D0
 156 :       M(5) = 0.004002602D0
 157 :       M(6) = 2.D0 * 0.0159994D0 + 0.0120107D0
 158 :       M(7) = 0.0120107D0 + 0.0159994D0
 159 : C
 160 :       Cpi(1) = 1046.D0
 161 :       Cpi(2) = 942.D0
 162 :       Cpi(3) = 14490.D0
 163 :       Cpi(4) = 2014.D0
 164 :       Cpi(5) = 5192.D0
 165 :       Cpi(6) = 1117.D0
 166 :       Cpi(7) = 1042.D0
 167 : C
 168 : C Absence de réaction chimique
 169 :       al = 0.D0
 170 : C 
 171 : C Transformation des fractions massiques en fractions molaires
 172 :       OM(1) = YN2e 
 173 :       OM(2) = YO2e 
 174 :       OM(3) = YH2e 
 175 :       OM(4) = YH2Oe
 176 :       OM(5) = YHEe 
 177 :       OM(6) = YCO2e
 178 :       OM(7) = YCOe 
 179 : C      write(6,*) '************************ dans flamh : fla013'
 180 : c      write(6,*) 'om(1) ',om(1)
 181 : c      write(6,*) 'om(2) ',om(2)
 182 : c      write(6,*) 'om(3) ',om(3)
 183 : c      write(6,*) 'om(4) ',om(4)
 184 : c      write(6,*) 'om(5) ',om(5)
 185 : c      write(6,*) 'om(6) ',om(6)
 186 : c      write(6,*) 'om(7) ',om(7)
 186 :       CALL FLA013(xi,om,trav)
 187 : c      write(6,*) 'xi(1) ',xi(1)
 188 : c      write(6,*) 'xi(2) ',xi(2)
 189 : c      write(6,*) 'xi(3) ',xi(3)
 190 : c      write(6,*) 'xi(4) ',xi(4)
 191 : c      write(6,*) 'xi(5) ',xi(5)
 192 : c      write(6,*) 'xi(6) ',xi(6)
 193 : c      write(6,*) 'xi(7) ',xi(7)
 194 : C
 195 : C Fractions molaires, pression et température à l'entrée du HEATER
 196 :       XN2MOY   = xi(1)
 197 :       XO2MOY   = xi(2)
 198 :       XH2MOY   = xi(3)
 199 :       XH2OMOY  = xi(4)
 200 :       XHEMOY   = xi(5)
 201 :       XCO2MOY  = xi(6)
 202 :       XCOMOY   = xi(7)
 203 :       PRESSION = PRESe
 204 :       TEMPENT  = TEMPe
 205 : C
 206 :       iKALP    = iKA
 207 : C
 208 : C Critère de convergence et vitesse minimale dans le PAR
 209 :       eps_mh2 = 1.D-10
 210 :       eps_dt  = 1.D-3
 211 :       eps_con = 1.D-8
 212 :       u       = 0.01D0
 213 : C
 214 : C-------------------------------- Fin Remplissage du segment TRAV
 215 : C
 216 : C
 217 : C Limitation du pas de temps à 0.5s
 218 : C (Découpage du pas de temps en sous pas de temps si trop grand)
 219 :       t = 0.D0
 220 :       HEASTOT = 0.D0
 221 :       HEAFTOT = 0.D0
 222 : C      I = 1
 223 :       TMAX = DDT
 224 :       Tc   = TEMPPLA
 225 :       dt = 0.5D0
 226 :       IF (ddt .LT. dt) THEN
 227 :          dt = ddt
 228 :       ENDIF
 229 :  20   CONTINUE
 230 :       IF (.NOT.(t.lt.tmax)) GOTO 30
 231 : C
 232 : C Calcul de la temperature des plaques au temps t+dt
 233 :          IF ((t+dt) .GE. tmax) THEN
 234 :             dt = tmax - t
 235 :          ENDIF
 235 :          call HEA011(TC1,HEAS,HEAF,T,DT,TC,TRAV)
 236 :          IF (TC1 .LT. 0.D0) THEN
 237 :             IHI = -100
 238 :             RETURN
 239 :          ENDIF
 240 : C      write(6,*) 'heas heaf :',heas,heaf 
 241 : C
 242 : C Cumul de l'énergie transmise au fluide
 243 :          t  = t + dt
 244 :          Tc = Tc1
 245 :          HEASTOT = HEASTOT + HEAS*dt
 246 :          HEAFTOT = HEAFTOT + HEAF*dt
 247 :          GOTO 20
 248 :  30   CONTINUE
 249 :       HEASTOT = HEASTOT / ddt 
 250 :       HEAFTOT = HEAFTOT / ddt
 251 : C     
 252 : C Calcul du débit et des conditions de sortie 
 253 : C au temps t+dt pour la nouvelle temperature de plaques Tc
 254 : C (si pb de débit négatif on sort en erreur)
 255 :       xmh2 = heastot / deltah
 256 :       deb  = FLA015(T,TC,XMH2,TRAV)
 257 : C
 258 : C Température en sortie du PAR (bilan d'énergie du gaz)
 259 : C (si pb de température négative on sort en erreur)
 260 :       IF ((TC-TEMPe).LT.EPS_DT) THEN
 261 :          Tgaz = TEMPe
 262 :       ELSE
 263 :          CPE  = FLA003(OM,TRAV)
 264 :          Tgaz = TEMPe - heaftot/(cpe*deb)
 265 : c       write(6,*) 'tgaz tempe heaftot ',tgaz,tempe,heaftot
 266 : c       write(6,*) ' cpe deb           ',cpe,deb 
 267 :       ENDIF
 268 : C
 269 : cc      write(6,*) 'heastot heaftot :',heastot,heaftot 
 270 : cc      write(6,*) 'Tgaz Tpla       :',tgaz,tc
 271 :       ROE = FLA001(PRESe,TEMPe,Xi,TRAV)
 272 :       ROS = FLA001(PRESe,Tgaz,Xi,TRAV)
 273 :       velocin  = deb / (roe * sp)
 274 :       velocout = deb / (ros * sp)
 275 : ccc      write(6,*) 'deb velocity    :',deb,velocin,velocout
 276 : ccc      write(6,*) '********************** flamh'
 277 :       IF ((DEB .LT. 0.D0) .OR. (Tgaz .LT. 0.D0)) THEN
 278 :          IHI = -999
 279 :          RETURN
 280 :       ENDIF
 281 : C
 282 : C Sortie lorsque le temps final est atteint
 283 : c      write(6,*) '************************ dans flamh : fla012'
 284 : c      write(6,*) 'xi(1) ',xi(1)
 285 : c      write(6,*) 'xi(2) ',xi(2)
 286 : c      write(6,*) 'xi(3) ',xi(3)
 287 : c      write(6,*) 'xi(4) ',xi(4)
 288 : c      write(6,*) 'xi(5) ',xi(5)
 289 : c      write(6,*) 'xi(6) ',xi(6)
 290 : c      write(6,*) 'xi(7) ',xi(7)
 290 : C      CALL FLA012(xi,om,trav)
 291 : c      write(6,*) 'om(1) ',om(1)
 292 : c      write(6,*) 'om(2) ',om(2)
 293 : c      write(6,*) 'om(3) ',om(3)
 294 : c      write(6,*) 'om(4) ',om(4)
 295 : c      write(6,*) 'om(5) ',om(5)
 296 : c      write(6,*) 'om(6) ',om(6)
 297 : c      write(6,*) 'om(7) ',om(7)
 298 :       YN2SOR  = YN2e 
 299 :       YO2SOR  = YO2e 
 300 :       YH2SOR  = YH2e 
 301 :       YH2OSOR = YH2Oe
 302 :       YHESOR  = YHEe 
 303 :       YCO2SOR = YCO2e
 304 :       YCOSOR  = YCOe 
 305 :       TEMPPLA = Tc
 306 :       Q       = deb
 307 :       TEMPSOR = Tgaz
 308 : C
 309 :       SEGSUP trav
 310 :       RETURN
 311 :       END
 312 : 
 313 : 
 314 : 
 315 : 
 316 :  
 317 :  
 318 :  
 319 :  
 320 :  
 321 :  
 322 :  

© Cast3M 2003 - All rights reserved.
Disclaimer