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