Changeset 493 for branches/packed
- Timestamp:
- Apr 4, 2008, 3:03:40 PM (15 years ago)
- Location:
- branches/packed
- Files:
-
- 1 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/packed/eml/stage_separators/tray.mso
r477 r493 169 169 end 170 170 171 #*------------------------------------------------------------------- 172 * Model of a tray with reaction 173 *------------------------------------------------------------------*# 174 Model trayReact 175 ATTRIBUTES 176 Pallete = false; 177 Icon = "icon/Tray"; 178 Brief = "Model of a tray with reaction."; 179 Info = 180 "== Assumptions == 181 * both phases (liquid and vapour) exists all the time; 182 * thermodymanic equilibrium with Murphree plate efficiency; 183 * no entrainment of liquid or vapour phase; 184 * no weeping; 185 * the dymanics in the downcomer are neglected. 186 187 == Specify == 188 * the Feed stream; 189 * the Liquid inlet stream; 190 * the Vapour inlet stream; 191 * the Vapour outlet flow (OutletV.F); 192 * the reaction related variables. 193 194 == Initial == 195 * the plate temperature (OutletL.T) 196 * the liquid height (Level) OR the liquid flow OutletL.F 197 * (NoComps - 1) OutletL compositions 198 "; 199 200 PARAMETERS 201 outer PP as Plugin(Type="PP"); 202 outer NComp as Integer; 203 V as volume(Brief="Total Volume of the tray"); 204 Q as power (Brief="Rate of heat supply"); 205 Ap as area (Brief="Plate area = Atray - Adowncomer"); 206 207 Ah as area (Brief="Total holes area"); 208 lw as length (Brief="Weir length"); 209 g as acceleration (Default=9.81); 210 hw as length (Brief="Weir height"); 211 beta as fraction (Brief="Aeration fraction"); 212 alfa as fraction (Brief="Dry pressure drop coefficient"); 213 214 stoic(NComp) as Real(Brief="Stoichiometric matrix"); 215 Hr as energy_mol; 216 Pstartup as pressure; 217 218 VapourFlow as Switcher(Valid = ["on", "off"], Default = "off"); 219 LiquidFlow as Switcher(Valid = ["on", "off"], Default = "off"); 220 221 VARIABLES 222 in Inlet as stream (Brief="Feed stream", PosX=0, PosY=0.4932, Symbol="_{in}"); 223 in InletL as stream (Brief="Inlet liquid stream", PosX=0.5195, PosY=0, Symbol="_{inL}"); 224 in InletV as stream (Brief="Inlet vapour stream", PosX=0.4994, PosY=1, Symbol="_{inV}"); 225 out OutletL as liquid_stream (Brief="Outlet liquid stream", PosX=0.8277, PosY=1, Symbol="_{outL}"); 226 out OutletV as vapour_stream (Brief="Outlet vapour stream", PosX=0.8043, PosY=0, Symbol="_{outV}"); 227 228 yideal(NComp) as fraction; 229 Emv as Real (Brief = "Murphree efficiency"); 230 231 M(NComp) as mol (Brief="Molar Holdup in the tray"); 232 ML as mol (Brief="Molar liquid holdup"); 233 MV as mol (Brief="Molar vapour holdup"); 234 E as energy (Brief="Total Energy Holdup on tray"); 235 vL as volume_mol (Brief="Liquid Molar Volume"); 236 vV as volume_mol (Brief="Vapour Molar volume"); 237 Level as length (Brief="Height of clear liquid on plate"); 238 Vol as volume; 239 240 rhoL as dens_mass; 241 rhoV as dens_mass; 242 r3 as reaction_mol (Brief = "Reaction resulting ethyl acetate", DisplayUnit = 'mol/l/s'); 243 C(NComp) as conc_mol (Brief = "Molar concentration", Lower = -1); #, Unit = "mol/l"); 244 245 EQUATIONS 246 "Molar Concentration" 247 OutletL.z = vL * C; 248 249 "Reaction" 250 r3 = exp(-7150*'K'/OutletL.T)*(4.85e4*C(1)*C(2) - 1.23e4*C(3)*C(4))*'l/mol/s'; 251 252 "Component Molar Balance" 253 diff(M)=Inlet.F*Inlet.z + InletL.F*InletL.z + InletV.F*InletV.z 254 - OutletL.F*OutletL.z - OutletV.F*OutletV.z + stoic*r3*ML*vL; 255 256 "Energy Balance" 257 diff(E) = ( Inlet.F*Inlet.h + InletL.F*InletL.h + InletV.F*InletV.h 258 - OutletL.F*OutletL.h - OutletV.F*OutletV.h + Q ) + Hr * r3 * vL*ML; 259 260 "Molar Holdup" 261 M = ML*OutletL.z + MV*OutletV.z; 262 263 "Energy Holdup" 264 E = ML*OutletL.h + MV*OutletV.h - OutletL.P*V; 265 266 "Mol fraction normalisation" 267 sum(OutletL.z)= 1.0; 268 269 "Liquid Volume" 270 vL = PP.LiquidVolume(OutletL.T, OutletL.P, OutletL.z); 271 "Vapour Volume" 272 vV = PP.VapourVolume(OutletV.T, OutletV.P, OutletV.z); 273 274 "Thermal Equilibrium" 275 OutletV.T = OutletL.T; 276 277 "Mechanical Equilibrium" 278 OutletV.P = OutletL.P; 279 280 "Level of clear liquid over the weir" 281 Level = ML*vL/Ap; 282 283 Vol = ML*vL; 284 285 "Liquid Density" 286 rhoL = PP.LiquidDensity(OutletL.T, OutletL.P, OutletL.z); 287 "Vapour Density" 288 rhoV = PP.VapourDensity(InletV.T, InletV.P, InletV.z); 289 290 switch LiquidFlow 291 case "on": 292 "Francis Equation" 293 OutletL.F*vL = 1.84*'1/s'*lw*((Level-(beta*hw)+1e-6*'m')/(beta))^2; 294 when Level < (beta * hw) switchto "off"; 295 296 case "off": 297 "Low level" 298 OutletL.F = 0 * 'mol/h'; 299 when Level > (beta * hw) + 1e-6*'m' switchto "on"; 300 end 301 302 switch VapourFlow 303 case "on": 304 #InletV.P = OutletV.P + Level*g*rhoL + rhoV*alfa*(InletV.F*vV/Ah)^2; 305 InletV.F*vV = sqrt((InletV.P - OutletV.P - Level*g*rhoL + 1e-8 * 'atm')/(rhoV*alfa))*Ah; 306 when InletV.P < OutletV.P + Level*g*rhoL switchto "off"; 307 308 case "off": 309 InletV.F = 0 * 'mol/s'; 310 when InletV.P > OutletV.P + Level*g*rhoL + 3e-2 * 'atm' switchto "on"; 311 #when InletV.P > OutletV.P + Level*beta*g*rhoL + 1e-2 * 'atm' switchto "on"; 312 end 313 314 "Chemical Equilibrium" 315 PP.LiquidFugacityCoefficient(OutletL.T, OutletL.P, OutletL.z)*OutletL.z = 316 PP.VapourFugacityCoefficient(OutletV.T, OutletV.P, yideal)*yideal; 317 318 OutletV.z = Emv * (yideal - InletV.z) + InletV.z; 319 320 sum(OutletL.z)= sum(OutletV.z); 321 322 "Geometry Constraint" 323 V = ML* vL + MV*vV; 324 end 325 171 326 Model packedStage_Navaes as trayBasic 172 327 PARAMETERS … … 416 571 end 417 572 418 #*------------------------------------------------------------------- 419 * Model of a tray with reaction 420 *------------------------------------------------------------------*# 421 Model trayReact 422 ATTRIBUTES 423 Pallete = false; 424 Icon = "icon/Tray"; 425 Brief = "Model of a tray with reaction."; 426 Info = 427 "== Assumptions == 428 * both phases (liquid and vapour) exists all the time; 429 * thermodymanic equilibrium with Murphree plate efficiency; 430 * no entrainment of liquid or vapour phase; 431 * no weeping; 432 * the dymanics in the downcomer are neglected. 433 434 == Specify == 435 * the Feed stream; 436 * the Liquid inlet stream; 437 * the Vapour inlet stream; 438 * the Vapour outlet flow (OutletV.F); 439 * the reaction related variables. 440 441 == Initial == 442 * the plate temperature (OutletL.T) 443 * the liquid height (Level) OR the liquid flow OutletL.F 444 * (NoComps - 1) OutletL compositions 445 "; 446 573 Model packedStage 447 574 PARAMETERS 448 outer PP as Plugin(Type="PP"); 449 outer NComp as Integer; 575 outer PP as Plugin(Brief = "External Physical Properties", Type="PP"); 576 outer NComp as Integer; 577 PPwater as Plugin(Brief="Physical Properties", 578 Type="PP", 579 Components = [ "water" ], 580 LiquidModel = "PR", 581 VapourModel = "PR" 582 ); 583 450 584 V as volume(Brief="Total Volume of the tray"); 451 Q as power(Brief="Rate of heat supply");585 Q as heat_rate (Brief="Rate of heat supply"); 452 586 Ap as area (Brief="Plate area = Atray - Adowncomer"); 453 454 Ah as area (Brief="Total holes area"); 455 lw as length (Brief="Weir length"); 456 g as acceleration (Default=9.81); 457 hw as length (Brief="Weir height"); 458 beta as fraction (Brief="Aeration fraction"); 459 alfa as fraction (Brief="Dry pressure drop coefficient"); 460 461 stoic(NComp) as Real(Brief="Stoichiometric matrix"); 462 Hr as energy_mol; 463 Pstartup as pressure; 464 465 VapourFlow as Switcher(Valid = ["on", "off"], Default = "off"); 466 LiquidFlow as Switcher(Valid = ["on", "off"], Default = "off"); 467 587 588 a as Real (Brief="surface area per packing volume", Unit='m^2/m^3'); 589 g as acceleration; 590 e as Real (Brief="Void fraction of packing, m^3/m^3"); 591 ds as length (Brief="Column diameter"); 592 Cpo as Real (Brief="Constant for resitance equation"); # Billet and Schultes, 1999. 593 Mw(NComp) as molweight (Brief = "Component Mol Weight"); 594 hs as length (Brief="Height of the packing stage"); 595 468 596 VARIABLES 469 597 in Inlet as stream (Brief="Feed stream", PosX=0, PosY=0.4932, Symbol="_{in}"); … … 473 601 out OutletV as vapour_stream (Brief="Outlet vapour stream", PosX=0.8043, PosY=0, Symbol="_{outV}"); 474 602 475 yideal(NComp) as fraction;476 Emv as Real (Brief = "Murphree efficiency");477 478 603 M(NComp) as mol (Brief="Molar Holdup in the tray"); 479 604 ML as mol (Brief="Molar liquid holdup"); … … 482 607 vL as volume_mol (Brief="Liquid Molar Volume"); 483 608 vV as volume_mol (Brief="Vapour Molar volume"); 484 Level as length (Brief="Height of clear liquid on plate");485 Vol as volume;486 609 610 miL as viscosity (Brief="Liquid dynamic viscosity", DisplayUnit='kg/m/s'); 611 miV as viscosity (Brief="Vapor dynamic viscosity", DisplayUnit='kg/m/s'); 487 612 rhoL as dens_mass; 488 613 rhoV as dens_mass; 489 r3 as reaction_mol (Brief = "Reaction resulting ethyl acetate", DisplayUnit = 'mol/l/s'); 490 C(NComp) as conc_mol (Brief = "Molar concentration", Lower = -1); #, Unit = "mol/l"); 491 614 615 deltaP as pressure; 616 617 uL as velocity (Brief="volume flow rate of liquid, m^3/m^2/s", Lower = -10, Default = 0.007); 618 uV as velocity (Brief="volume flow rate of vapor, m^3/m^2/s", Lower = -10, Default = 1.14); 619 dp as length (Brief="Particle diameter", Default=1e-3); 620 invK as Real (Brief="Wall factor"); 621 Rev as Real (Brief="Reynolds number of the vapor stream", Lower = 0, Default=100); 622 Al as area; 623 hl as Real (Brief="Column holdup", Unit='m^3/m^3'); 624 Qsil as Real (Brief="Resistance coefficient on the liquid load", Lower = 0); 625 626 SET 627 Mw = PP.MolecularWeight(); 628 492 629 EQUATIONS 493 "Molar Concentration"494 OutletL.z = vL * C;495 496 "Reaction"497 r3 = exp(-7150*'K'/OutletL.T)*(4.85e4*C(1)*C(2) - 1.23e4*C(3)*C(4))*'l/mol/s';498 499 630 "Component Molar Balance" 500 631 diff(M)=Inlet.F*Inlet.z + InletL.F*InletL.z + InletV.F*InletV.z 501 - OutletL.F*OutletL.z - OutletV.F*OutletV.z + stoic*r3*ML*vL;502 632 - OutletL.F*OutletL.z - OutletV.F*OutletV.z; 633 503 634 "Energy Balance" 504 635 diff(E) = ( Inlet.F*Inlet.h + InletL.F*InletL.h + InletV.F*InletV.h 505 - OutletL.F*OutletL.h - OutletV.F*OutletV.h + Q ) + Hr * r3 * vL*ML;636 - OutletL.F*OutletL.h - OutletV.F*OutletV.h + Q ); 506 637 507 638 "Molar Holdup" … … 518 649 "Vapour Volume" 519 650 vV = PP.VapourVolume(OutletV.T, OutletV.P, OutletV.z); 520 651 652 "Chemical Equilibrium" 653 PP.LiquidFugacityCoefficient(OutletL.T, OutletL.P, OutletL.z)*OutletL.z = 654 PP.VapourFugacityCoefficient(OutletV.T, OutletV.P, OutletV.z)*OutletV.z; 655 521 656 "Thermal Equilibrium" 522 657 OutletV.T = OutletL.T; 523 658 524 659 "Mechanical Equilibrium" 525 OutletV.P = OutletL.P; 526 527 "Level of clear liquid over the weir" 528 Level = ML*vL/Ap; 529 530 Vol = ML*vL; 660 OutletL.P = OutletV.P; 661 662 "Geometry Constraint" 663 V*e = ML*vL + MV*vV; 531 664 532 665 "Liquid Density" … … 534 667 "Vapour Density" 535 668 rhoV = PP.VapourDensity(InletV.T, InletV.P, InletV.z); 536 537 switch LiquidFlow 538 case "on": 539 "Francis Equation" 540 OutletL.F*vL = 1.84*'1/s'*lw*((Level-(beta*hw)+1e-6*'m')/(beta))^2; 541 when Level < (beta * hw) switchto "off"; 542 543 case "off": 544 "Low level" 545 OutletL.F = 0 * 'mol/h'; 546 when Level > (beta * hw) + 1e-6*'m' switchto "on"; 669 "Liquid viscosity" 670 miL = PP.LiquidViscosity(OutletL.T, OutletL.P, OutletL.z); 671 "Vapour viscosity" 672 miV = PP.VapourViscosity(InletV.T, InletV.P, InletV.z); 673 674 "Area occupied by the liquid" 675 Al = ML*vL/hs; 676 677 "Volume flow rate of liquid, m^3/m^2/s" 678 uL * Al = OutletL.F * vL; 679 "Volume flow rate of vapor, m^3/m^2/s" 680 uV * (Ap*e - Al) = OutletV.F * vV; 681 682 "Liquid holdup" 683 hl = ML*vL/V/e; 684 685 "Particle diameter" 686 dp = 6 * (1-e)/a; 687 688 "Wall Factor" 689 invK = (1 + (2*dp/(3*ds*(1-e)))); 690 691 "Reynolds number of the vapor stream" 692 Rev*invK = dp*uV*rhoV / (miV*(1-e)); 693 694 deltaP = InletV.P - OutletV.P; 695 696 "Pressure drop and Vapor flow" 697 deltaP/hs = Qsil*a*uV^2*rhoV*invK / (2*(e-hl)^3); 698 699 "Liquid holdup" 700 hl = (12*miL*a^2*uL/rhoL/g)^1/3; 701 end 702 703 Model packedStage_old 704 PARAMETERS 705 outer PP as Plugin(Brief = "External Physical Properties", Type="PP"); 706 outer NComp as Integer; 707 V as volume(Brief="Total Volume of the tray"); 708 Q as heat_rate (Brief="Rate of heat supply"); 709 Ap as area (Brief="Plate area = Atray - Adowncomer"); 710 711 a as Real (Brief="surface area per packing volume", Unit='m^2/m^3'); 712 g as acceleration; 713 e as Real (Brief="Void fraction of packing, m^3/m^3"); 714 ds as length (Brief="Column diameter"); 715 Cpo as Real (Brief="Constant for resitance equation"); # Billet and Schultes, 1999. 716 Mw(NComp) as molweight (Brief = "Component Mol Weight"); 717 hs as length (Brief="Height of the packing stage"); 718 Qsio as Real (Brief="Resistance coefficient", Lower = 0); 719 720 VARIABLES 721 in Inlet as stream (Brief="Feed stream", PosX=0, PosY=0.4932, Symbol="_{in}"); 722 in InletL as stream (Brief="Inlet liquid stream", PosX=0.5195, PosY=0, Symbol="_{inL}"); 723 in InletV as stream (Brief="Inlet vapour stream", PosX=0.4994, PosY=1, Symbol="_{inV}"); 724 out OutletL as liquid_stream (Brief="Outlet liquid stream", PosX=0.8277, PosY=1, Symbol="_{outL}"); 725 out OutletV as vapour_stream (Brief="Outlet vapour stream", PosX=0.8043, PosY=0, Symbol="_{outV}"); 726 727 M(NComp) as mol (Brief="Molar Holdup in the tray"); 728 ML as mol (Brief="Molar liquid holdup"); 729 MV as mol (Brief="Molar vapour holdup"); 730 E as energy (Brief="Total Energy Holdup on tray"); 731 vL as volume_mol (Brief="Liquid Molar Volume"); 732 vV as volume_mol (Brief="Vapour Molar volume"); 733 734 miL as viscosity (Brief="Liquid dynamic viscosity", DisplayUnit='kg/m/s'); 735 miV as viscosity (Brief="Vapor dynamic viscosity", DisplayUnit='kg/m/s'); 736 rhoL as dens_mass; 737 rhoV as dens_mass; 738 uL as velocity (Brief="volume flow rate of liquid, m^3/m^2/s", Lower = -10, Default = 0.007); 739 uV as velocity (Brief="volume flow rate of vapor, m^3/m^2/s", Lower = -10, Default = 1.14); 740 dp as length (Brief="Particle diameter", Default=1e-3); 741 invK as Real (Brief="Wall factor"); 742 Rev as Real (Brief="Reynolds number of the vapor stream", Lower = 0, Default=100); 743 # Qsio as Real (Brief="Resistance coefficient", Lower = 0, Default=100); 744 # Qsil as Real; 745 Al as area; 746 hl as Real (Brief="Column holdup", Unit='m^3/m^3'); 747 # hls as Real (Brief="Column holdup at loading point", Unit='m^3/m^3'); 748 749 SET 750 Mw = PP.MolecularWeight(); 751 752 EQUATIONS 753 "Component Molar Balance" 754 diff(M)=Inlet.F*Inlet.z + InletL.F*InletL.z + InletV.F*InletV.z 755 - OutletL.F*OutletL.z - OutletV.F*OutletV.z; 756 # diff(sum(M))=Inlet.F + InletL.F + InletV.F - OutletL.F - OutletV.F; 757 # OutletL.z = OutletV.z; 758 759 "Energy Balance" 760 diff(E) = ( Inlet.F*Inlet.h + InletL.F*InletL.h + InletV.F*InletV.h 761 - OutletL.F*OutletL.h - OutletV.F*OutletV.h + Q ); 762 763 "Molar Holdup" 764 M = ML*OutletL.z + MV*OutletV.z; 765 766 "Energy Holdup" 767 E = ML*OutletL.h + MV*OutletV.h - OutletL.P*V; 768 769 "Mol fraction normalisation" 770 sum(OutletL.z)= 1.0; 771 #sum(OutletL.z)=sum(OutletV.z); 772 773 "Liquid Volume" 774 vL = PP.LiquidVolume(OutletL.T, OutletL.P, OutletL.z); 775 "Vapour Volume" 776 vV = PP.VapourVolume(OutletV.T, OutletV.P, OutletV.z); 777 778 "Chemical Equilibrium" 779 # OutletV.z = OutletL.z; 780 PP.LiquidFugacityCoefficient(OutletL.T, OutletL.P, OutletL.z)*OutletL.z = 781 PP.VapourFugacityCoefficient(OutletV.T, OutletV.P, OutletV.z)*OutletV.z; 782 783 "Thermal Equilibrium" 784 OutletV.T = OutletL.T; 785 786 "Mechanical Equilibrium" 787 OutletL.P = OutletV.P; 788 789 "Geometry Constraint" 790 V*e = ML*vL + MV*vV; 791 792 "Liquid Density" 793 rhoL = PP.LiquidDensity(OutletL.T, OutletL.P, OutletL.z); 794 "Vapour Density" 795 rhoV = PP.VapourDensity(InletV.T, InletV.P, InletV.z); 796 "Liquid viscosity" 797 miL = PP.LiquidViscosity(OutletL.T, OutletL.P, OutletL.z); 798 "Vapour viscosity" 799 miV = PP.VapourViscosity(InletV.T, InletV.P, InletV.z); 800 801 Al = ML*vL/hs; 802 803 "Volume flow rate of liquid, m^3/m^2/s" 804 uL * Al = OutletL.F * vL; 805 "Volume flow rate of vapor, m^3/m^2/s" 806 uV * (Ap*e - Al) = OutletV.F * vV; 807 808 "Liquid holdup and Liquid flow" 809 hl = (12*miL*a^2*uL/rhoL/g)^1/3; 810 811 "Liquid holdup" 812 hl = ML*vL/V/e; 813 814 "Particle diameter" 815 dp = 6 * (1-e)/a; 816 817 "Wall Factor" 818 invK = (1 + (2*dp/(3*ds*(1-e)))); 819 820 "Reynolds number of the vapor stream" 821 Rev*invK = dp*uV*rhoV / (miV*(1-e)); 822 823 #* if Rev > 1e-4 then 824 "Resistance Coefficient" 825 Qsio = Cpo * (64/Rev + 1.8/Rev^0.08); 826 else 827 Qsio = 1; 547 828 end 548 549 switch VapourFlow 550 case "on": 551 #InletV.P = OutletV.P + Level*g*rhoL + rhoV*alfa*(InletV.F*vV/Ah)^2; 552 InletV.F*vV = sqrt((InletV.P - OutletV.P - Level*g*rhoL + 1e-8 * 'atm')/(rhoV*alfa))*Ah; 553 when InletV.P < OutletV.P + Level*g*rhoL switchto "off"; 554 555 case "off": 556 InletV.F = 0 * 'mol/s'; 557 when InletV.P > OutletV.P + Level*g*rhoL + 3e-2 * 'atm' switchto "on"; 558 #when InletV.P > OutletV.P + Level*beta*g*rhoL + 1e-2 * 'atm' switchto "on"; 829 830 # "Liquid Holdup at loading point" 831 # hls = (12*a^2*miL*uL/g/rhoL)^0.333; 832 833 if e-hl < 1e-4 then 834 Qsil = 1e-3; 835 else 836 Qsil = Qsio * ((e-hl)/e)^1.5 * (hl/hl)^0.3 * exp(13300/'m^1.5'/a^1.5 * sqrt(uL^2*a/g)); 559 837 end 560 838 *# 839 "Pressure drop and Vapor flow" 840 (InletV.P - OutletV.P)/hs = Qsio*a*uV^2*rhoV*invK / (2*e^3); 841 #(InletV.P - OutletV.P)/hs = Qsil*a*uV^2*rhoV*invK / (2*(e-hl)^3); 842 end 843 844 # component #1 = nitrogen; #2 = water 845 Model packedStage_AirWater 846 PARAMETERS 847 outer PP as Plugin(Brief = "External Physical Properties", Type="PP"); 848 outer NComp as Integer; 849 V as volume(Brief="Total Volume of the tray"); 850 Q as heat_rate (Brief="Rate of heat supply"); 851 Ap as area (Brief="Plate area = Atray - Adowncomer"); 852 853 a as Real (Brief="surface area per packing volume", Unit='m^2/m^3'); 854 g as acceleration; 855 e as Real (Brief="Void fraction of packing, m^3/m^3"); 856 ds as length (Brief="Column diameter"); 857 Cpo as Real (Brief="Constant for resitance equation"); # Billet and Schultes, 1999. 858 Ch as Real (Brief="Constant for ah equation"); # Billet and Schultes, 1999. 859 Mw(NComp) as molweight (Brief = "Component Mol Weight"); 860 hs as length (Brief="Height of the packing stage"); 861 #Qsio as Real (Brief="Resistance coefficient", Lower = 0); 862 863 VARIABLES 864 in Inlet as stream (Brief="Feed stream", PosX=0, PosY=0.4932, Symbol="_{in}"); 865 in InletL as stream (Brief="Inlet liquid stream", PosX=0.5195, PosY=0, Symbol="_{inL}"); 866 in InletV as stream (Brief="Inlet vapour stream", PosX=0.4994, PosY=1, Symbol="_{inV}"); 867 out OutletL as liquid_stream (Brief="Outlet liquid stream", PosX=0.8277, PosY=1, Symbol="_{outL}"); 868 out OutletV as vapour_stream (Brief="Outlet vapour stream", PosX=0.8043, PosY=0, Symbol="_{outV}"); 869 870 M(NComp) as mol (Brief="Molar Holdup in the tray"); 871 ML as mol (Brief="Molar liquid holdup"); 872 MV as mol (Brief="Molar vapour holdup"); 873 E as energy (Brief="Total Energy Holdup on tray"); 874 vL as volume_mol (Brief="Liquid Molar Volume"); 875 vV as volume_mol (Brief="Vapour Molar volume"); 876 877 miL as viscosity (Brief="Liquid dynamic viscosity", DisplayUnit='kg/m/s'); 878 miV as viscosity (Brief="Vapor dynamic viscosity", DisplayUnit='kg/m/s'); 879 rhoL as dens_mass; 880 rhoV as dens_mass; 881 uL as velocity (Brief="volume flow rate of liquid, m^3/m^2/s", Lower = -10, Default = 0.007); 882 uV as velocity (Brief="volume flow rate of vapor, m^3/m^2/s", Lower = -10, Default = 1.14); 883 dp as length (Brief="Particle diameter", Default=1e-3); 884 invK as Real (Brief="Wall factor"); 885 Rev as Real (Brief="Reynolds number of the vapor stream", Lower = 0, Default=100); 886 # Rel as Real (Brief="Reynolds number of the liquid stream", Lower = 0, Default=100); 887 # ah as Real (Brief="Hydraulic surface area", Unit='m^2/m^3'); 888 Qsio as Real (Brief="Resistance coefficient", Lower = 0, Default=100); 889 # Qsil as Real; 890 Al as area; 891 # hls as Real (Brief="Column holdup at loading point", Unit='m^3/m^3'); 892 hl as Real (Brief="Column holdup", Unit='m^3/m^3'); 893 894 SET 895 Mw = PP.MolecularWeight(); 896 897 EQUATIONS 898 "Component Molar Balance" 899 diff(sum(M))=Inlet.F + InletL.F + InletV.F - OutletL.F - OutletV.F; 900 901 "Energy Balance" 902 diff(E) = ( Inlet.F*Inlet.h + InletL.F*InletL.h + InletV.F*InletV.h 903 - OutletL.F*OutletL.h - OutletV.F*OutletV.h + Q ); 904 905 "Molar Holdup" 906 M = ML*OutletL.z + MV*OutletV.z; 907 908 "Energy Holdup" 909 E = ML*OutletL.h + MV*OutletV.h - OutletV.P*(V*e); 910 561 911 "Chemical Equilibrium" 562 PP.LiquidFugacityCoefficient(OutletL.T, OutletL.P, OutletL.z)*OutletL.z = 563 PP.VapourFugacityCoefficient(OutletV.T, OutletV.P, yideal)*yideal; 564 565 OutletV.z = Emv * (yideal - InletV.z) + InletV.z; 566 567 sum(OutletL.z)= sum(OutletV.z); 912 OutletV.z = [1 0]; 913 OutletL.z = [0 1]; 914 915 "Thermal Equilibrium" 916 OutletV.T = OutletL.T; 917 918 "Mechanical Equilibrium" 919 OutletL.P = OutletV.P; 568 920 569 921 "Geometry Constraint" 570 V = ML* vL + MV*vV; 922 V*e = ML*vL + MV*vV; 923 924 "Liquid Density" 925 rhoL = 999 * 'kg/m^3';#PP.LiquidDensity(OutletL.T, OutletL.P, OutletL.z); # 926 "Vapour Density" 927 rhoV = 1.19 * 'kg/m^3'; #PP.VapourDensity(InletV.T, InletV.P, InletV.z); # 928 "Liquid viscosity" 929 miL = 0.001 * 'kg/m/s' ; #PP.LiquidViscosity(OutletL.T, OutletL.P, OutletL.z); # 930 "Vapour viscosity" 931 miV = 1.86e-5 * 'kg/m/s'; #PP.VapourViscosity(InletV.T, InletV.P, InletV.z); 932 "Liquid Volume" 933 vL = 18 * 'g/mol' / rhoL; #PP.LiquidVolume(OutletL.T, OutletL.P, OutletL.z); # 934 "Vapour Volume" 935 vV = 28 * 'g/mol' / rhoV; #PP.VapourVolume(OutletV.T, OutletV.P, OutletV.z); # 936 937 "Cross section area ocupied by the liquid" 938 Al = ML*vL/hs; 939 940 "Volume flow rate of liquid, m^3/m^2/s" 941 uL * Al = OutletL.F * vL; 942 943 "Volume flow rate of vapor, m^3/m^2/s" 944 uV * (Ap*e - Al) = OutletV.F * vV; 945 946 "Particle diameter" 947 dp = 6 * (1-e)/a; 948 949 "Wall Factor" 950 invK = (1 + (2*dp/(3*ds*(1-e)))); 951 952 "Reynolds number of the vapor stream" 953 Rev*invK = dp*uV*rhoV / (miV*(1-e)); 954 955 "Liquid Holdup" 956 hl = vL * ML / (V*e); 957 958 # "Liquid Holdup at loading point" 959 # hls = (12*a^2*miL*uL/g/rhoL)^0.333; 960 961 "Liquid holdup and Liquid flow" 962 hl = (12*miL*a^2*uL/rhoL/g)^1/3; # * (ah/a)^1; 963 964 if Rev < 1e-4 then 965 Qsio = 1; 966 else 967 "Resistance Coefficient" 968 Qsio = Cpo * (64/Rev + 1.8/Rev^0.08); 969 end 970 971 #* if e-hl < 1e-4 then 972 Qsil = 1e-3; 973 else 974 Qsil = Qsio * ((e-hl)/e)^1.5 * (hl/hl)^0.3 * exp(13300/'m^1.5'/a^1.5 * sqrt(uL^2*a/g)); 975 end 976 *# 977 "Pressure drop and Vapor flow" 978 #(InletV.P - OutletV.P)/hs = Qsio*a*uV^2*rhoV*invK / (2*e^3); 979 #(InletV.P - OutletV.P)/hs = Qsil*a*uV^2*rhoV*invK / (2*(e-hl)^3); 980 (InletV.P - OutletV.P)/hs = Qsio*a*uV^2*rhoV*invK / (2*(e-hl)^3); 571 981 end 572 982 … … 656 1066 # N = 6400 * '1/m^3'; 657 1067 658 OPTIONS659 GuessFile = "/home/paula/test.rlt";660 661 1068 end 662 1069 663 Model packedStage 664 PARAMETERS 665 outer PP as Plugin(Brief = "External Physical Properties", Type="PP"); 666 outer NComp as Integer; 667 V as volume(Brief="Total Volume of the tray"); 668 Q as heat_rate (Brief="Rate of heat supply"); 669 Ap as area (Brief="Plate area = Atray - Adowncomer"); 670 671 a as Real (Brief="surface area per packing volume", Unit='m^2/m^3'); 672 g as acceleration; 673 e as Real (Brief="Void fraction of packing, m^3/m^3"); 674 ds as length (Brief="Column diameter"); 675 Cpo as Real (Brief="Constant for resitance equation"); # Billet and Schultes, 1999. 676 Mw(NComp) as molweight (Brief = "Component Mol Weight"); 677 hs as length (Brief="Height of the packing stage"); 678 Qsio as Real (Brief="Resistance coefficient", Lower = 0); 679 680 VARIABLES 681 in Inlet as stream (Brief="Feed stream", PosX=0, PosY=0.4932, Symbol="_{in}"); 682 in InletL as stream (Brief="Inlet liquid stream", PosX=0.5195, PosY=0, Symbol="_{inL}"); 683 in InletV as stream (Brief="Inlet vapour stream", PosX=0.4994, PosY=1, Symbol="_{inV}"); 684 out OutletL as liquid_stream (Brief="Outlet liquid stream", PosX=0.8277, PosY=1, Symbol="_{outL}"); 685 out OutletV as vapour_stream (Brief="Outlet vapour stream", PosX=0.8043, PosY=0, Symbol="_{outV}"); 686 687 M(NComp) as mol (Brief="Molar Holdup in the tray"); 688 ML as mol (Brief="Molar liquid holdup"); 689 MV as mol (Brief="Molar vapour holdup"); 690 E as energy (Brief="Total Energy Holdup on tray"); 691 vL as volume_mol (Brief="Liquid Molar Volume"); 692 vV as volume_mol (Brief="Vapour Molar volume"); 693 694 miL as viscosity (Brief="Liquid dynamic viscosity", DisplayUnit='kg/m/s'); 695 miV as viscosity (Brief="Vapor dynamic viscosity", DisplayUnit='kg/m/s'); 696 rhoL as dens_mass; 697 rhoV as dens_mass; 698 uL as velocity (Brief="volume flow rate of liquid, m^3/m^2/s", Lower = -10, Default = 0.007); 699 uV as velocity (Brief="volume flow rate of vapor, m^3/m^2/s", Lower = -10, Default = 1.14); 700 dp as length (Brief="Particle diameter", Default=1e-3); 701 invK as Real (Brief="Wall factor"); 702 # Rev as Real (Brief="Reynolds number of the vapor stream", Lower = 0, Default=100); 703 # Qsio as Real (Brief="Resistance coefficient", Lower = 0, Default=100); 704 Al as area; 705 706 SET 707 Mw = PP.MolecularWeight(); 708 709 EQUATIONS 710 "Component Molar Balance" 711 diff(M)=Inlet.F*Inlet.z + InletL.F*InletL.z + InletV.F*InletV.z 712 - OutletL.F*OutletL.z - OutletV.F*OutletV.z; 713 # diff(sum(M))=Inlet.F + InletL.F + InletV.F - OutletL.F - OutletV.F; 714 # OutletL.z = OutletV.z; 715 716 "Energy Balance" 717 diff(E) = ( Inlet.F*Inlet.h + InletL.F*InletL.h + InletV.F*InletV.h 718 - OutletL.F*OutletL.h - OutletV.F*OutletV.h + Q ); 719 720 "Molar Holdup" 721 M = ML*OutletL.z + MV*OutletV.z; 722 723 "Energy Holdup" 724 E = ML*OutletL.h + MV*OutletV.h - OutletL.P*V; 725 726 "Mol fraction normalisation" 727 sum(OutletL.z)= 1.0; 728 sum(OutletL.z)=sum(OutletV.z); 729 730 "Liquid Volume" 731 vL = PP.LiquidVolume(OutletL.T, OutletL.P, OutletL.z); 732 "Vapour Volume" 733 vV = PP.VapourVolume(OutletV.T, OutletV.P, OutletV.z); 734 735 "Chemical Equilibrium" 736 # OutletV.z = OutletL.z; 737 PP.LiquidFugacityCoefficient(OutletL.T, OutletL.P, OutletL.z)*OutletL.z = 738 PP.VapourFugacityCoefficient(OutletV.T, OutletV.P, OutletV.z)*OutletV.z; 739 740 "Thermal Equilibrium" 741 OutletV.T = OutletL.T; 742 743 "Mechanical Equilibrium" 744 OutletL.P = OutletV.P; 745 746 "Geometry Constraint" 747 V*e = ML*vL + MV*vV; 748 749 "Liquid Density" 750 rhoL = PP.LiquidDensity(OutletL.T, OutletL.P, OutletL.z); 751 "Vapour Density" 752 rhoV = PP.VapourDensity(InletV.T, InletV.P, InletV.z); 753 "Liquid viscosity" 754 miL = PP.LiquidViscosity(OutletL.T, OutletL.P, OutletL.z); 755 "Vapour viscosity" 756 miV = PP.VapourViscosity(InletV.T, InletV.P, InletV.z); 757 758 Al = ML*vL/hs; 759 760 "Volume flow rate of liquid, m^3/m^2/s" 761 uL * Al = OutletL.F * vL; 762 "Volume flow rate of vapor, m^3/m^2/s" 763 uV * (Ap*e - Al) = OutletV.F * vV; 764 765 "Liquid holdup and Liquid flow" 766 vL * ML = (12*miL*a^2*uL/rhoL/g)^1/3 * hs * Ap; 767 768 "Particle diameter" 769 dp = 6 * (1-e)/a; 770 771 "Wall Factor" 772 invK = (1 + (2*dp/(3*ds*(1-e)))); 773 774 #* "Reynolds number of the vapor stream" 775 Rev*invK = dp*uV*rhoV / (miV*(1-e)); 776 777 Qsio = Cpo * (64/Rev + 1.8/Rev^0.08); 778 if Rev > 1e-4 then 779 "Resistance Coefficient" 780 Qsio = Cpo * (64/Rev + 1.8/Rev^0.08); 781 else 782 Qsio = 1; 783 end 784 *# 785 "Pressure drop and Vapor flow" 786 (InletV.P - OutletV.P)/hs = Qsio*a*uV^2*rhoV*invK / (2*e^3); 787 end 788 789 # component #1 = nitrogen; #2 = water 790 Model packedStage_AirWater 791 PARAMETERS 792 outer PP as Plugin(Brief = "External Physical Properties", Type="PP"); 793 outer NComp as Integer; 794 V as volume(Brief="Total Volume of the tray"); 795 Q as heat_rate (Brief="Rate of heat supply"); 796 Ap as area (Brief="Plate area = Atray - Adowncomer"); 797 798 a as Real (Brief="surface area per packing volume", Unit='m^2/m^3'); 799 g as acceleration; 800 e as Real (Brief="Void fraction of packing, m^3/m^3"); 801 ds as length (Brief="Column diameter"); 802 Cpo as Real (Brief="Constant for resitance equation"); # Billet and Schultes, 1999. 803 Ch as Real (Brief="Constant for ah equation"); # Billet and Schultes, 1999. 804 Mw(NComp) as molweight (Brief = "Component Mol Weight"); 805 hs as length (Brief="Height of the packing stage"); 806 #Qsio as Real (Brief="Resistance coefficient", Lower = 0); 807 808 VARIABLES 809 in Inlet as stream (Brief="Feed stream", PosX=0, PosY=0.4932, Symbol="_{in}"); 810 in InletL as stream (Brief="Inlet liquid stream", PosX=0.5195, PosY=0, Symbol="_{inL}"); 811 in InletV as stream (Brief="Inlet vapour stream", PosX=0.4994, PosY=1, Symbol="_{inV}"); 812 out OutletL as liquid_stream (Brief="Outlet liquid stream", PosX=0.8277, PosY=1, Symbol="_{outL}"); 813 out OutletV as vapour_stream (Brief="Outlet vapour stream", PosX=0.8043, PosY=0, Symbol="_{outV}"); 814 815 M(NComp) as mol (Brief="Molar Holdup in the tray"); 816 ML as mol (Brief="Molar liquid holdup"); 817 MV as mol (Brief="Molar vapour holdup"); 818 E as energy (Brief="Total Energy Holdup on tray"); 819 vL as volume_mol (Brief="Liquid Molar Volume"); 820 vV as volume_mol (Brief="Vapour Molar volume"); 821 822 miL as viscosity (Brief="Liquid dynamic viscosity", DisplayUnit='kg/m/s'); 823 miV as viscosity (Brief="Vapor dynamic viscosity", DisplayUnit='kg/m/s'); 824 rhoL as dens_mass; 825 rhoV as dens_mass; 826 uL as velocity (Brief="volume flow rate of liquid, m^3/m^2/s", Lower = -10, Default = 0.007); 827 uV as velocity (Brief="volume flow rate of vapor, m^3/m^2/s", Lower = -10, Default = 1.14); 828 dp as length (Brief="Particle diameter", Default=1e-3); 829 invK as Real (Brief="Wall factor"); 830 Rev as Real (Brief="Reynolds number of the vapor stream", Lower = 0, Default=100); 831 # Rel as Real (Brief="Reynolds number of the liquid stream", Lower = -10, Default=100); 832 # ah as Real (Brief="Hydraulic surface area", Unit='m^2/m^3'); 833 Qsio as Real (Brief="Resistance coefficient", Lower = 0, Default=100); 834 Al as area; 835 836 SET 837 Mw = PP.MolecularWeight(); 838 839 EQUATIONS 840 "Component Molar Balance" 841 # diff(M)=Inlet.F*Inlet.z + InletL.F*InletL.z + InletV.F*InletV.z 842 # - OutletL.F*OutletL.z - OutletV.F*OutletV.z; 843 diff(sum(M))=Inlet.F + InletL.F + InletV.F - OutletL.F - OutletV.F; 844 845 "Energy Balance" 846 diff(E) = ( Inlet.F*Inlet.h + InletL.F*InletL.h + InletV.F*InletV.h 847 - OutletL.F*OutletL.h - OutletV.F*OutletV.h + Q ); 848 849 "Molar Holdup" 850 M = ML*OutletL.z + MV*OutletV.z; 851 852 "Energy Holdup" 853 E = ML*OutletL.h + MV*OutletV.h - OutletL.P*V; 854 855 # "Mol fraction normalisation" 856 # sum(OutletL.z)= 1.0; 857 # sum(OutletL.z)=sum(OutletV.z); 858 859 "Chemical Equilibrium" 860 OutletV.z = [1 0]; 861 OutletL.z = [0 1]; 862 # PP.LiquidFugacityCoefficient(OutletL.T, OutletL.P, OutletL.z)*OutletL.z = 863 # PP.VapourFugacityCoefficient(OutletV.T, OutletV.P, OutletV.z)*OutletV.z; 864 865 "Thermal Equilibrium" 866 OutletV.T = OutletL.T; 867 868 "Mechanical Equilibrium" 869 OutletL.P = OutletV.P; 870 871 "Geometry Constraint" 872 V*e = ML*vL + MV*vV; 873 874 "Liquid Density" 875 rhoL = 999 * 'kg/m^3';#PP.LiquidDensity(OutletL.T, OutletL.P, OutletL.z); 876 "Vapour Density" 877 rhoV = 1.19 * 'kg/m^3'; #PP.VapourDensity(InletV.T, InletV.P, InletV.z); 878 "Liquid viscosity" 879 miL = 0.001 * 'kg/m/s' ; #PP.LiquidViscosity(OutletL.T, OutletL.P, OutletL.z); 880 "Vapour viscosity" 881 miV = PP.VapourViscosity(InletV.T, InletV.P, InletV.z); 882 "Liquid Volume" 883 vL = 18 * 'g/mol' / rhoV; #PP.LiquidVolume(OutletL.T, OutletL.P, OutletL.z); 884 "Vapour Volume" 885 vV = 28 * 'g/mol' / rhoL; #PP.VapourVolume(OutletV.T, OutletV.P, OutletV.z); 886 887 "Cross section area ocupied by the liquid" 888 Al = ML*vL/hs; 889 890 "Volume flow rate of liquid, m^3/m^2/s" 891 uL * Al = OutletL.F * vL; 892 893 "Volume flow rate of vapor, m^3/m^2/s" 894 uV * (Ap*e - Al) = OutletV.F * vV; 895 896 "Particle diameter" 897 dp = 6 * (1-e)/a; 898 899 "Wall Factor" 900 invK = (1 + (2*dp/(3*ds*(1-e)))); 901 902 "Reynolds number of the vapor stream" 903 Rev*invK = dp*uV*rhoV / (miV*(1-e)); 904 #* "Reynolds number of the liquid stream" 1070 #* 1071 "Reynolds number of the liquid stream" 905 1072 Rel = uL*rhoL / (a*miL); 906 1073 … … 915 1082 ah = a * Ch * 0.85 * Rel^0.25 * (uL^2*a/g)^0.1; #(Rel^2*a^3*miL^2/rhoL^2/g)^0.1; # 916 1083 end 1084 1085 917 1086 *# 918 # if ah equal 0 then919 # uL = 0 * 'm/s';920 # else921 "Liquid holdup and Liquid flow"922 vL * ML = V * (12*miL*a^2*uL/rhoL/g)^1/3; # * (ah/a)^1;923 # end924 925 "Resistance Coefficient"926 Qsio = Cpo * (64/Rev + 1.8/Rev^0.08);927 928 "Pressure drop and Vapor flow"929 (InletV.P - OutletV.P)/hs = 3*Qsio*a*uV^2*rhoV*invK / (2*e^3);930 end -
branches/packed/sample/stage_separators/sample_column.mso
r477 r493 554 554 reb.T = 325 * 'K'; 555 555 reb.z = [0.16, 0.542, 0.013, 0.008, 0.277]; 556 556 557 sec.stage.Qsil = 0.1; 558 #sec.stage(1).OutletV.F = 150 * 'kmol/h'; 559 sec.stage.deltaP = 0.0001 * 'atm'; 560 557 561 SET 558 562 sec.H = 4 * 'm'; … … 564 568 sec.stage.e = 0.951; 565 569 sec.stage.a = 112.6 * 'm^2/m^3'; 566 sec.stage.Qsio = 0.8;567 570 568 571 INITIAL -
branches/packed/sample/stage_separators/sample_tray.mso
r477 r493 369 369 inV.z = [0.0584, 0.9416];#[0.5, 0.5];# 370 370 371 t1.OutletV.P = 145 * 'kPa'; 371 #t1.OutletV.P = 145 * 'kPa'; 372 t1.OutletV.F = 190 * 'kmol/h'; 373 t1.Qsil = 10; 372 374 373 375 SET … … 381 383 t1.a = 112.6 * 'm^2/m^3'; 382 384 t1.hs = 0.4 * 'm'; 383 t1.Qsio = 1;384 385 385 386 INITIAL … … 410 411 411 412 VARIABLES 412 deltaP as Real (Unit=' inH2O/m*mm/in');413 deltaP as Real (Unit='atm/m'); #(Unit='inH2O/m*mm/in'); 413 414 phiL as Real; 414 415 … … 444 445 inV.z = [0.265, 0.233, 0.150, 0.014, 0.338]; 445 446 446 #t1.OutletV.P = 2.305 * 'atm'; 447 #t1.OutletV.F = 165 * 'kmol/h'; 447 #t1.deltaP = 0.01 * 'atm'; 448 t1.OutletV.F = 165 * 'kmol/h'; 449 t1.Qsil = 10; 448 450 449 451 SET … … 462 464 t1.hs = 1 * 'ft'; 463 465 t1.ds = 2.26 * 'ft'; 464 t1.Qsio = 100;465 466 466 467 INITIAL … … 472 473 DAESolver(File="sundials"); 473 474 #InitialFile = "/home/paula/tray_Test_2.rlt"; 474 TimeStep = 0.01;475 TimeEnd = 10 ;475 TimeStep = 10; 476 TimeEnd = 100; 476 477 end 477 478 … … 491 492 VARIABLES 492 493 deltaP as Real (Unit='inH2O/m*mm/in'); 493 phiL as Real;494 494 495 495 DEVICES … … 506 506 EQUATIONS 507 507 deltaP = (t1.InletV.P - t1.OutletV.P)/t1.hs; 508 phiL = t1.vL * t1.ML/t1.V;509 508 510 509 SPECIFY 511 510 feed.Outlet.F = 0 * 'kmol/h'; 512 feed.Outlet.T = 300* 'K';511 feed.Outlet.T = 293 * 'K'; 513 512 feed.Outlet.P = 1 * 'atm'; 514 513 feed.Outlet.z = [0 1]; 515 514 516 inL.F = 71.21 * 'kmol/h';515 inL.F = 100 * 'kmol/h'; #71.21 * 'kmol/h'; 517 516 inL.P = 1 * 'atm'; 518 517 inL.T = 293 * 'K'; … … 520 519 521 520 inV.F = 175.3 * 'kmol/h'; 522 inV.P = 1. 06* 'atm';521 inV.P = 1.1 * 'atm'; 523 522 inV.T = 295 * 'K'; 524 523 inV.z = [1 0]; 525 524 526 t1.OutletV.P = 1.0 5* 'atm';525 t1.OutletV.P = 1.08 * 'atm'; 527 526 528 527 SET … … 540 539 541 540 INITIAL 542 t1.OutletL.T = 294 *'K'; 543 t1.ML = 0.0002 * 'kmol'; 544 t1.OutletL.z(1) = 0.01; 541 t1.OutletL.T = 293 *'K'; 542 t1.ML = 0.002 * 'kmol'; 545 543 546 544 OPTIONS
Note: See TracChangeset
for help on using the changeset viewer.