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