Télécharger flamr.eso

Retour à la liste

Numérotation des lignes :

flamr
  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)
  177. CALL FLA013(xi,om,trav)
  178. c write(6,*) 'xi(1) ',xi(1)
  179. c write(6,*) 'xi(2) ',xi(2)
  180. c write(6,*) 'xi(3) ',xi(3)
  181. c write(6,*) 'xi(4) ',xi(4)
  182. c write(6,*) 'xi(5) ',xi(5)
  183. c write(6,*) 'xi(6) ',xi(6)
  184. c write(6,*) 'xi(7) ',xi(7)
  185. C
  186. C Données d'entrée dans TRAV
  187. XN2MOY = xi(1)
  188. XO2MOY = xi(2)
  189. XH2MOY = xi(3)
  190. XH2OMOY = xi(4)
  191. XHEMOY = xi(5)
  192. XCO2MOY = xi(6)
  193. XCOMOY = xi(7)
  194. PRESSION = PRESe
  195. TEMPENT = TEMPe
  196. iKALP = iKA
  197. C
  198. C Gestion du FR/1-150
  199. C
  200. C
  201. C Efficacite du recombineur
  202. IF (XH2MOY .LE. XO2MOY) THEN
  203. EFF = 1.D0
  204. ELSE
  205. EFF = 0.6D0
  206. ENDIF
  207. C
  208. C Allumage du recombineur
  209. XH2ONF = PROG(3)
  210. cc write(6,*) 'XH2ON XH2MOY',xh2onf,xh2moy
  211. IF (XH2ONF .LE. 0.D0) THEN
  212. CHI = 1.D0
  213. ELSE
  214. IF (XH2MOY .GE. XH2ONF) THEN
  215. CHI = 1.D0
  216. XH2ONF = -XH2ONF
  217. ELSE
  218. CHI = 0.D0
  219. ENDIF
  220. ENDIF
  221. C
  222. C Extinction du recombineur
  223. XH2OFF = PROG(4)
  224. IF (XH2ONF .LE. 0.D0) THEN
  225. IF (XH2MOY .LE. XH2OFF) THEN
  226. CHI = 0.D0
  227. XH2ONF = -XH2ONF
  228. ENDIF
  229. ENDIF
  230. cc write(6,*) 'XH2ON chi ',xh2onf,chi
  231. PROG(1) = PROG(1) * EFF * CHI
  232. PROG(2) = PROG(2) * EFF * CHI
  233. C
  234. DO 10 I1=1,NCST
  235. CSTMOD(I1) = PROG(I1)
  236. 10 CONTINUE
  237. SEGDES MLREEL
  238. C
  239. C Critère de convergence et vitesse minimale dans le PAR
  240. eps_mh2 = 1.D-10
  241. eps_dt = 1.D-3
  242. eps_con = 1.D-8
  243. u = 0.01D0
  244. C
  245. C Limitation du pas de temps à 0.5s
  246. C (Découpage du pas de temps en sous pas de temps si trop grand)
  247. t = 0.0D0
  248. I = 1
  249. TMAX = DDT
  250. Tc = TEMPPLA
  251. dt = 0.5D0
  252. IF (ddt .LT. dt) THEN
  253. dt = ddt
  254. ENDIF
  255. 20 CONTINUE
  256. IF (.NOT.(t.lt.tmax)) GOTO 30
  257. C
  258. C Calcul de la temperature des plaques au temps t+dt
  259. IF ((t+dt) .GT. tmax) THEN
  260. dt = tmax - t
  261. ENDIF
  262. call fla011(Tc1,t,dt,Tc,trav)
  263. IF (TC1 .LT. 0.D0) THEN
  264. IHI = -100
  265. GOTO 30
  266. ENDIF
  267. C
  268. C Calcul du débit et des conditions de sortie
  269. C au temps t+dt pour la nouvelle temperature de plaques Tc
  270. C (si pb de débit négatif on sort en erreur)
  271. t = t + dt
  272. Tc = Tc1
  273. call fla019(t,Tc,deb,Tgaz,xi,ihi,trav)
  274. IF ((DEB .LT. 0.D0) .OR. (Tgaz .LT. 0.D0)) THEN
  275. IHI = -1 * IHI
  276. GOTO 30
  277. ENDIF
  278. GOTO 20
  279. 30 CONTINUE
  280. C
  281. C Sortie lorsque le temps final est atteint
  282. c write(6,*) '************************ dans flamr : fla012'
  283. c write(6,*) 'xi(1) ',xi(1)
  284. c write(6,*) 'xi(2) ',xi(2)
  285. c write(6,*) 'xi(3) ',xi(3)
  286. c write(6,*) 'xi(4) ',xi(4)
  287. c write(6,*) 'xi(5) ',xi(5)
  288. c write(6,*) 'xi(6) ',xi(6)
  289. c write(6,*) 'xi(7) ',xi(7)
  290. 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 = om(1)
  299. YO2SOR = om(2)
  300. YH2SOR = om(3)
  301. YH2OSOR = om(4)
  302. YHESOR = om(5)
  303. YCO2SOR = om(6)
  304. YCOSOR = om(7)
  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.  
  323.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales