Télécharger retsat.procedur

Retour à la liste

Numérotation des lignes :

  1. * RETSAT PROCEDUR MAGN 09/09/02 21:15:03 6480
  2. 'DEBPROC' retsat ;
  3. 'ARGU' tic*'TABLE' ndl*'ENTIER' $mod*'MMODEL' TBT*'TABLE'
  4. wz*'FLOTTANT' alfa*'FLOTTANT' Rho*'CHPOINT' tfmi*'FLOTTANT'
  5. Cvmnm*'FLOTTANT' ;
  6. *-----------------------------------------------------------------------
  7. * tic. objet de type TABLE
  8. * tic.'PT' objet de type LISTREEL contient la pression
  9. *
  10. * objets de type CHPOINT SCAL SOMMET
  11. * tic.'RHO' contient la densité du mélange
  12. * tic.'RVP' contient la densité de vapeur + brouillard
  13. * tic.'RBRO' contient la densité de brouillard
  14. * tic.'RAIR' contient la densité de l'air
  15. * tic.'TF' contient la température du mélange
  16. *
  17. * wz : coefficient de relaxation
  18. * alfa : fraction massique de brouillard autorisée
  19. *
  20. *
  21. *-----------------------------------------------------------------------
  22.  
  23. mess ;
  24. mess '...............................................................';
  25. Mess ' Procédure RETSAT' ;
  26. Mess ' Version V1 ==> Loi d état gaz réel pour la vapeur ';
  27. *-----------------------------------------------------------------------
  28. *
  29. Diag = doma $mod 'XXDIAGSI' ;
  30. Vtotal= somt Diag ;
  31. Pt = extr tic.'PT' ndl ;
  32. Ptc = kcht $mod scal sommet Pt ;
  33. Rovp = tic.'RVP' - tic.'RBRO' ;
  34. Rbro = tic.'RBRO' ;
  35. Rair = tic.'RAIR' ;
  36.  
  37. Tfm = 'EXTR' (tic.'Tfm') ndl ;
  38. Tf = tic.'TF' ;
  39. mess '%$$ Mini/Maxi Tf' (mini Tf) (Maxi Tf) ;
  40.  
  41. Si ((Maxi Tf) > 300.);
  42. mess ' Attention La température dépasse 300°C : On sort des tables';
  43. * La température est limitée à 300°C pour rester dans les tables !!
  44. a = 300.; al=0.99; ala=al*a ;
  45. * b=ala*al*((1.-al)**(-1.));
  46. * b2=ala*(1.+ (ala*al) - ala)*((1.-al)**(-1.));
  47. b3 = ala*(1.+ (ala*ala*al) - (ala*ala))*((1.-al)**(-1.));
  48. ik=masq Tf 'INFERIEUR' ala ;
  49. *Tf=(ik*Tf)+((1.-ik)*a*(Tf+b)*(inve(a+Tf+b)));
  50. *Tf=(ik*Tf)+((1.-ik)*a*((Tf*Tf+b2)*(inve(a+(Tf*Tf+b2)))));
  51. Tf=(ik*Tf)+((1.-ik)*a*((Tf*Tf*Tf+b3)*(inve(a+(Tf*Tf*Tf+b3)))));
  52. mess '%$$ Mini/Maxi Tf' (mini Tf) (Maxi Tf) ;
  53. Finsi;
  54.  
  55.  
  56. mtot = somt (Diag * Rho);
  57. mair = somt (Diag * Rair);
  58. mrvp = somt (Diag * tic.'RVP');
  59. mrovp= somt (Diag * (tic.'RVP' - tic.'RBRO')) ;
  60. mbro = somt (Diag * tic.'RBRO') ;
  61.  
  62. mess '%$$ RETSAT AVANT: Mrhot=' mtot 'Mair=' mair 'Mrovp=' mrovp ;
  63. mess '%$$ RETSAT AVANT Mbrou=' Mbro ' Mrvp=' Mrvp ' Mliq=' 0. ;
  64.  
  65. * On remet le brouillard en vapeur pour éventuellement
  66. * l'évaporer si les conditions sont réunies
  67. Rho = Rho + Rbro ;
  68. Rovp = tic.'RVP' ;
  69. Mgini = somt (Diag*Rho) ;
  70.  
  71. dmt=(somt (Diag * Rho)) - mtot ;
  72. mtot = somt (Diag * Rho);
  73. mess '%$$ On remet le brouillard en suspension Mrhot='mtot
  74. ' dmt='dmt;
  75.  
  76.  
  77. *2/ On calcule la part d'incondensable : Pinc et Rginc
  78.  
  79. Roinc = tic.'RAIR' ;
  80. Rginc = TBT.'Rgair'*tic.'YAIR' ;
  81. Pinc = Roinc*Rginc ;
  82. sy = tic.'YAIR' ;
  83.  
  84. Si TBT.'TO2' ;
  85. Roinc = Roinc + tic.'RO2' ;
  86. Pinc = Pinc + (tic.'RO2'*TBT.'Rgo2') ;
  87. sy = sy + tic.'YO2' ;
  88. Rginc = Rginc + (TBT.'Rgo2'*tic.'YO2') ;
  89. Finsi ;
  90. Si TBT.'TN2' ;
  91. Roinc = Roinc + tic.'RN2' ;
  92. Pinc = Pinc + (tic.'RN2'*TBT.'Rgn2') ;
  93. sy = sy + tic.'YN2' ;
  94. Rginc = Rginc + (TBT.'Rgn2'*tic.'YN2') ;
  95. Finsi ;
  96. Si TBT.'TH2' ;
  97. Roinc = Roinc + tic.'RH2' ;
  98. Pinc = Pinc + (tic.'RH2'*TBT.'Rgh2') ;
  99. sy = sy + tic.'YH2' ;
  100. Rginc = Rginc + (TBT.'Rgh2'*tic.'YH2') ;
  101. Finsi ;
  102. Si TBT.'THE' ;
  103. Roinc = Roinc + tic.'RHE' ;
  104. Pinc = Pinc + (tic.'RHE'*TBT.'Rghe') ;
  105. sy = sy + tic.'YHE' ;
  106. Rginc = Rginc + (TBT.'Rghe'*tic.'YHE') ;
  107. Finsi ;
  108. Si TBT.'TCO' ;
  109. Roinc = Roinc + tic.'RCO' ;
  110. Pinc = Pinc + (tic.'RCO'*TBT.'Rgco') ;
  111. sy = sy + tic.'YCO' ;
  112. Rginc = Rginc + (TBT.'Rgco'*tic.'YCO') ;
  113. Finsi ;
  114. Si TBT.'TCO2' ;
  115. Roinc = Roinc + tic.'RCO2' ;
  116. Pinc = Pinc + (tic.'RCO2'*TBT.'Rgco2') ;
  117. sy = sy + tic.'YCO2' ;
  118. Rginc = Rginc + (TBT.'Rgco2'*tic.'YCO2') ;
  119. Finsi ;
  120. sy = kops sy '|<' 1.e-10 ;
  121. Rginc = Rginc * (INVE sy) ;
  122.  
  123. Pinc = Pinc*(Tf + 273.15) ;
  124.  
  125. *--------------------------------------------------------------
  126. *3/ Retour à la saturation
  127.  
  128. * RSTF : Ro vapeur à saturation
  129. PSTF = VARI 'PSATT' (Tf + 273.15) ;
  130. RSTF = Rovp ;
  131. Rstfm= ('SOMT' (Diag '*' rstf))/Vtotal ;
  132.  
  133. Tg = kcht $mod scal sommet Tfm ;
  134. Tg = Tf ;
  135.  
  136. nbzv=100 ;
  137. REPETER BLOC nbzv ;
  138. Zv = (VARI 'ZVAP' rstf (Tg + 273.15)) 'ABS' ;
  139. a = PSTF * (INVE (Zv * TBT.'Rgvap' * (Tg + 273.15)));
  140. a = (wz*a) + ((1. - wz)*RSTF) ;
  141. da = 'MAXI' (a - RSTF) 'ABS' ;
  142. RSTF = a ;
  143. *mess ' RSTF ' (mini rstf) (maxi rstf) ' da=' da ' iter' &bloc;
  144. Si (da < 1.e-5); QUITTER BLOC ; Finsi ;
  145. Si ((da > 0.1) et (&bloc >EG nbzv)) ;
  146. Mess '***** ERREUR *****' ;
  147. Mess ' Procédure RETSAT : Non Convergence' ;
  148. ERREUR 21 ;
  149. Finsi ;
  150. FIN BLOC ;
  151. mess ' RSTF ' (mini rstf) (maxi rstf) ' da=' da ' iter' &bloc;
  152.  
  153. * ROVP : Ro vapeur borné par la saturation
  154.  
  155. ROVP = 'KOPS' ROVP '>|' RSTF ;
  156. ROVP = 'KOPS' ROVP '|<' 1.e-10 ;
  157. Zv = (VARI 'ZVAP' ROVP (Tf + 273.15)) 'ABS' ;
  158.  
  159. rhot = ROVP + ROINC ;
  160. Rhomt= ('SOMT' (Diag '*' rhot))/Vtotal ;
  161.  
  162. * On sépare vapeur + brouillard (tic.'RVP') et liquide
  163. * (tic.'RLIQ')
  164.  
  165. RDIF = (tic.'RVP' - ROVP) + 1.e-10 ;
  166. RBRO = RBRO + RDIF ;
  167. YBRO = RBRO * (INVE rhot) ;
  168. YBRO = 'KOPS' YBRO '>|' alfa ;
  169. RLIQ = (RDIF - (YBRO*rhot)) ;
  170. RBRO = YBRO*rhot ;
  171.  
  172. * On remet la chaleur latente de condensation dans le mélange
  173. * gazeux. On considère que le brouillard ou l'eau liquide se
  174. * mettent rapidement en équilibre thermique avec le gaz.
  175.  
  176. REPETER BLOC 10 ;
  177. PSTF = VARI 'PSATT' (Tf + 273.15) ;
  178. Lvv= vari 'LATENT' PSTF ;
  179. Cpvap='VARI' 'DHVDT' Ptc (Tf + 273.15) ;
  180.  
  181. Tf=Tic.'TF' + ((RDIF*Lvv)*(inve (RDIF*Lvv + (Cpvap*ROVP))));
  182.  
  183. Si ((Maxi Tf) > 300.);
  184. mess ' Attention La température dépasse 300°C : On sort des tables';
  185. * La température est limitée à 300°C pour rester dans les tables !!
  186. a = 300.; al=0.99; ala=al*a ;
  187. * b=ala*al*((1.-al)**(-1.));
  188. * b2=ala*(1.+ (ala*al) - ala)*((1.-al)**(-1.));
  189. b3 = ala*(1.+ (ala*ala*al) - (ala*ala))*((1.-al)**(-1.));
  190. ik=masq Tf 'INFERIEUR' ala ;
  191. *Tf=(ik*Tf)+((1.-ik)*a*(Tf+b)*(inve(a+Tf+b)));
  192. *Tf=(ik*Tf)+((1.-ik)*a*((Tf*Tf+b2)*(inve(a+(Tf*Tf+b2)))));
  193. Tf=(ik*Tf)+((1.-ik)*a*((Tf*Tf*Tf+b3)*(inve(a+(Tf*Tf*Tf+b3)))));
  194. mess '%$$ Mini/Maxi Tf' (mini Tf) (Maxi Tf) ;
  195. Finsi;
  196.  
  197. tic.'TF'=Tf;
  198.  
  199. * On recalcule la pression
  200. Zv = (VARI 'ZVAP' ROVP (Tf + 273.15)) 'ABS' ;
  201. sr = (Zv*ROVP*TBT.'Rgvap')+(Roinc*Rginc) ;
  202. sr = 'SOMT' (sr * Diag * (Tf + 273.15)) ;
  203. a = sr *(1./Vtotal) ;
  204. da = (Pt - a)/a 'ABS' ;
  205. Pt = a;
  206. Ptc = kcht $mod scal sommet a ;
  207.  
  208. mess 'Itér ' &bloc ' da=' da ' Pt=' Pt (mini Tf) (maxi Tf);
  209. Si(da < 1.e-2);quitter BLOC; finsi;
  210. FIN BLOC ;
  211.  
  212. * On s'occupe des pressions partielles
  213. Pvap = (Zv * ROVP * TBT.'Rgvap' * Diag * (Tf + 273.15));
  214. Pvap = ('SOMT' Pvap) * (1./Vtotal) ;
  215.  
  216. Pinc = 'SOMT' (Roinc * Rginc * Diag * (Tf + 273.15)) ;
  217. Pinc = Pinc *(1./Vtotal) ;
  218.  
  219. Mliq = Mgini - (Rhomt*Vtotal) ;
  220. *Mliq = Mgini - (somt(Diag*Rhot)) ;
  221. *Mliq = 'SOMT' (Diag*Rliq) ;
  222. Mess 'Mgini=' Mgini ' rotfinal=' (somt(Diag*Rhot)) ' Mliq2=' mliq
  223. 'DT=' tic.'DT' ;
  224. Rliqm = Mliq / Vtotal ;
  225.  
  226. * On est obligé de reprendre la densité moyenne Rhom, la densité moyenne
  227. * de vapeur Rhomvn et la densité moyenne vapeur + gouttes et lui enlever
  228. * le drainage du liquide sans oublier bien sur l'énergie
  229.  
  230. Rhomn = ( somt (Diag * Rhot)) / Vtotal ;
  231. tic.'Rhom' = ('ENLEV' (tic.'Rhom') (dime tic.'Rhom'))
  232. 'ET' ('PROG' Rhomn) ;
  233.  
  234. Rhomvn = ( somt (Diag * Rovp)) / Vtotal ;
  235. tic.'Rhomv' = ('ENLEV' (tic.'Rhomv') (dime tic.'Rhomv'))
  236. 'ET' ('PROG' Rhomvn) ;
  237.  
  238. Rhomvg = ( somt (Diag * (Rovp+Rbro))) / Vtotal ;
  239. tic.'Rhomvg' = ('ENLEV' (tic.'Rhomvg') (dime tic.'Rhomvg'))
  240. 'ET' ('PROG' Rhomvg) ;
  241.  
  242. *------------------------
  243. reliq = Cvmnm '*' ( 'SOMT' (Diag '*' RLIQ '*' (Tf '+' 273.15))) ;
  244. reliq = reliq + ('SOMT' (Lvv*Diag*tic.'RLIQ')) ;
  245. * reliq = somt (Diag*reliq) ;
  246. rebro = 0. ;
  247. *------------------------
  248.  
  249. Remncm = 'SOMT' (Cvmnm '*' Diag '*' Rliq '*' (Tf '+' 273.15)) ;
  250. Remn = ('EXTR' tic.'Remn' (dime tic.'Remn'))
  251. - (Remncm '/' Vtotal * 0. ) ;
  252. tic.'Remn' = ('ENLEV' (tic.'Remn') (dime tic.'Remn'))
  253. 'ET' ('PROG' Remn) ;
  254.  
  255. Mbro = somt (Diag * RBRO) ;
  256. Mvp = somt (Diag * ROVP) ;
  257. Rbrom = Mbro / Vtotal ;
  258.  
  259.  
  260. Cpvap ='VARI' 'DHVDT' Ptc (Tf + 273.15) ;
  261. Cvvap = Cpvap '-' TBT.'Rgvap' ;
  262. Qcm = Mliq / (tic.'DT') ;
  263. tic.'Qcm'= tic.'Qcm' 'ET' ('PROG' Qcm) ;
  264. *Econdm = Cvvap * (SOMT (Diag*RLIQ*(tic.'TF' + 273.15)))/tic.'DT' ;
  265. *Hcondm = Cpvap * (SOMT (Diag*RLIQ*(tic.'TF' + 273.15)))/tic.'DT' ;
  266.  
  267. * Détermination de la masse volumique moyenne de liquide en suspension :
  268. tic.'Rliqm' = tic.'Rliqm' et ('PROG' Rliqm) ;
  269. tic.'Rbrom' = tic.'Rbrom' et ('PROG' Rbrom) ;
  270. tic.'Mcondm'= tic.'Mcondm' 'ET' ('PROG' Mliq) ;
  271.  
  272.  
  273. mtot = somt (Diag * Rhot);
  274. mair = somt (Diag * Rair);
  275. mrvp = somt (Diag * tic.'RVP');
  276. mrovp= somt (Diag * (tic.'RVP' - tic.'RBRO')) ;
  277. mbro = somt (Diag * tic.'RBRO') ;
  278. mdif = somt (Diag * RDIF) ;
  279.  
  280. mess '%$$ RETSAT Masse totale (Rhot) APRES ' mtot
  281. 'Mair=' mair 'Mrovp=' mrovp ;
  282. mess '%$$ RETSAT APRES Mbrot=' Mbro ' Mrvp=' Mrvp ' Mdif='mdif;
  283.  
  284. mess '%$$ RETSAT Pression ' Pt ' Reliq=' reliq
  285. ' Flux condensés en Masse' Qcm 'Kg/s' ;
  286.  
  287. *-----------------------------------------------------------------------
  288. tic.'RHO' = Rhot ;
  289. tic.'RBRO' = Rbro ;
  290. tic.'RVP' = Rovp + Rbro ;
  291. tic.'ROVP' = ELNO (NOEL Rvp $mod) $mod ;
  292. tic.'YVAP' = Rovp * (inve Rhot) ;
  293. tic.'YAIR' = tic.'RAIR' * (inve Rhot) ;
  294. Sy=tic.'YVAP'+tic.'YAIR' ;
  295.  
  296. Si TBT.'TO2' ;
  297. tic.'YO2' = tic.'RO2' * (inve Rhot) ;
  298. Finsi ;
  299. Si TBT.'TN2' ;
  300. tic.'YN2' = tic.'RN2' * (inve Rhot) ;
  301. Finsi ;
  302. Si TBT.'TH2' ;
  303. tic.'YH2' = tic.'RH2' * (inve Rhot) ;
  304. Finsi ;
  305. Si TBT.'THE' ;
  306. tic.'YHE' = tic.'RHE' * (inve Rhot) ;
  307. Finsi ;
  308. Si TBT.'TCO' ;
  309. tic.'YCO' = tic.'RCO' * (inve Rhot) ;
  310. Finsi ;
  311. Si TBT.'TCO2' ;
  312. tic.'YCO2' = tic.'RCO2' * (inve Rhot) ;
  313. Finsi ;
  314.  
  315. * mess '%$$ Somme des Y ' (mini sy)(maxi sy) ;
  316. mess '...............................................................';
  317. mess ;
  318.  
  319. RESPROC Qcm Pt Yvap Cpvap Rhot Mliq Rebro ;
  320.  
  321. *-----------------------------------------------------------------------
  322. * Fin du traitement condensation en masse
  323. *-----------------------------------------------------------------------
  324.  
  325. FINPROC;
  326.  
  327.  

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