Download flamr.eso

Back to the list

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

© Cast3M 2003 - All rights reserved.
Disclaimer