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