Download retsat.procedur

Back to the list

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

© Cast3M 2003 - All rights reserved.
Disclaimer