Changeset 522 for trunk/eml/stage_separators
- Timestamp:
- May 21, 2008, 8:21:12 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/eml/stage_separators/tray.mso
r513 r522 532 532 hl = (12*miL*a^2*uL/rhoL/g)^1/3; 533 533 end 534 535 #*------------------------------------- 536 * Nonequilibrium Model 537 -------------------------------------*# 538 Model interface 539 540 ATTRIBUTES 541 Pallete = false; 542 Icon = "icon/Tray"; 543 Brief = "Descrition of variables of the equilibrium interface."; 544 Info = 545 "This model contains only the variables of the equilibrium interface."; 546 547 PARAMETERS 548 outer PP as Plugin(Brief = "External Physical Properties", Type="PP"); 549 outer NComp as Integer; 550 outer NC1 as Integer; 551 552 VARIABLES 553 NL(NComp) as flow_mol_delta (Brief = "Stream Molar Rate on Liquid Phase"); 554 NV(NComp) as flow_mol_delta (Brief = "Stream Molar Rate on Vapour Phase"); 555 T as temperature (Brief = "Stream Temperature"); 556 P as pressure (Brief = "Stream Pressure"); 557 x(NComp) as fraction (Brief = "Stream Molar Fraction on Liquid Phase"); 558 y(NComp) as fraction (Brief = "Stream Molar Fraction on Vapour Phase"); 559 a as area (Brief = "Interface Area"); 560 htL as heat_trans_coeff (Brief = "Heat Transference Coefficient on Liquid Phase"); 561 htV as heat_trans_coeff (Brief = "Heat Transference Coefficient on Vapour Phase"); 562 E_liq as heat_rate (Brief = "Liquid Energy Rate at interface"); 563 E_vap as heat_rate (Brief = "Vapour Energy Rate at interface"); 564 hL as enth_mol (Brief = "Liquid Molar Enthalpy"); 565 hV as enth_mol (Brief = "Vapour Molar Enthalpy"); 566 kL(NC1,NC1) as velocity (Brief = "Mass Transfer Coefficients"); 567 kV(NC1,NC1) as velocity (Brief = "Mass Transfer Coefficients"); 568 569 EQUATIONS 570 "Liquid Enthalpy" 571 hL = PP.LiquidEnthalpy(T, P, x); 572 573 "Vapour Enthalpy" 574 hV = PP.VapourEnthalpy(T, P, y); 575 576 end 577 578 Model trayRateBasic 579 ATTRIBUTES 580 Pallete = false; 581 Icon = "icon/Tray"; 582 Brief = "Basic equations of a tray rate column model."; 583 Info = 584 "This model contains only the main equations of a column tray nonequilibrium model without 585 the hidraulic equations. 586 587 == Assumptions == 588 * both phases (liquid and vapour) exists all the time; 589 * no entrainment of liquid or vapour phase; 590 * no weeping; 591 * the dymanics in the downcomer are neglected. 592 "; 593 594 PARAMETERS 595 outer PP as Plugin(Brief = "External Physical Properties", Type="PP"); 596 outer NComp as Integer; 597 NC1 as Integer; 598 V as volume(Brief="Total Volume of the tray"); 599 Q as heat_rate (Brief="Rate of heat supply"); 600 Ap as area (Brief="Plate area = Atray - Adowncomer"); 601 602 VARIABLES 603 in Inlet as stream (Brief="Feed stream", PosX=0, PosY=0.4932, Symbol="_{in}"); 604 in InletFV as stream (Brief="Feed stream", PosX=0, PosY=0.4932, Symbol="_{in}"); 605 in InletL as stream (Brief="Inlet liquid stream", PosX=0.5195, PosY=0, Symbol="_{inL}"); 606 in InletV as stream (Brief="Inlet vapour stream", PosX=0.4994, PosY=1, Symbol="_{inV}"); 607 out OutletL as liquid_stream (Brief="Outlet liquid stream", PosX=0.8277, PosY=1, Symbol="_{outL}"); 608 out OutletV as vapour_stream (Brief="Outlet vapour stream", PosX=0.8043, PosY=0, Symbol="_{outV}"); 609 610 M_liq(NComp) as mol (Brief="Liquid Molar Holdup in the tray"); 611 M_vap(NComp) as mol (Brief="Vapour Molar Holdup in the tray"); 612 ML as mol (Brief="Molar liquid holdup"); 613 MV as mol (Brief="Molar vapour holdup"); 614 E_liq as energy (Brief="Total Liquid Energy Holdup on tray"); 615 E_vap as energy (Brief="Total Vapour Energy Holdup on tray"); 616 vL as volume_mol (Brief="Liquid Molar Volume"); 617 vV as volume_mol (Brief="Vapour Molar volume"); 618 Level as length (Brief="Height of clear liquid on plate"); 619 interf as interface; 620 621 SET 622 NC1=NComp-1; 623 624 EQUATIONS 625 "Component Molar Balance" 626 diff(M_liq)=Inlet.F*Inlet.z + InletL.F*InletL.z 627 - OutletL.F*OutletL.z + interf.NL; 628 629 diff(M_vap)=InletFV.F*InletFV.z + InletV.F*InletV.z 630 - OutletV.F*OutletV.z - interf.NV; 631 632 "Energy Balance" 633 diff(E_liq) = Inlet.F*Inlet.h + InletL.F*InletL.h 634 - OutletL.F*OutletL.h + Q + interf.E_liq; 635 636 diff(E_vap) = InletFV.F*InletFV.h + InletV.F*InletV.h 637 - OutletV.F*OutletV.h - interf.E_vap; 638 639 "Molar Holdup" 640 M_liq = ML*OutletL.z; 641 642 M_vap = MV*OutletV.z; 643 644 "Energy Holdup" 645 E_liq = ML*(OutletL.h - OutletL.P*vL); 646 647 E_vap = MV*(OutletV.h - OutletV.P*vV); 648 649 "Energy Rate through the interface" 650 interf.E_liq = interf.htL*interf.a*(interf.T-OutletL.T)+sum(interf.NL)*interf.hL; 651 652 interf.E_vap = interf.htV*interf.a*(OutletV.T-interf.T)+sum(interf.NV)*interf.hV; 653 654 "Mass Conservation" 655 interf.NL = interf.NV; 656 657 "Energy Conservation" 658 interf.E_liq = interf.E_vap; 659 660 "Mol fraction normalisation" 661 sum(OutletL.z)= 1.0; 662 sum(OutletL.z)= sum(OutletV.z); 663 sum(interf.x)=1.0; 664 sum(interf.x)=sum(interf.y); 665 666 "Liquid Volume" 667 vL = PP.LiquidVolume(OutletL.T, OutletL.P, OutletL.z); 668 "Vapour Volume" 669 vV = PP.VapourVolume(OutletV.T, OutletV.P, OutletV.z); 670 671 "Chemical Equilibrium" 672 PP.LiquidFugacityCoefficient(interf.T, interf.P, interf.x)*interf.x = 673 PP.VapourFugacityCoefficient(interf.T, interf.P, interf.y)*interf.y; 674 675 "Geometry Constraint" 676 V = ML*vL + MV*vV; 677 678 "Level of clear liquid over the weir" 679 Level = ML*vL/Ap; 680 681 "Total Mass Transfer Rates" 682 interf.NL(1:NC1)=interf.a*sumt(interf.kL*(interf.x(1:NC1)-OutletL.z(1:NC1)))/vL+ 683 OutletL.z(1:NC1)*sum(interf.NL); 684 685 # interf.NL(1:NC1)=0.01*'kmol/s'; 686 687 interf.NV(1:NC1)=interf.a*sumt(interf.kV*(OutletV.z(1:NC1)-interf.y(1:NC1)))/vV+ 688 OutletV.z(1:NC1)*sum(interf.NV); 689 690 "Mechanical Equilibrium" 691 OutletV.P = OutletL.P; 692 interf.P=OutletL.P; 693 end 694 695 Model trayRate as trayRateBasic 696 ATTRIBUTES 697 Pallete = false; 698 Icon = "icon/Tray"; 699 Brief = "Complete rate model of a column tray."; 700 Info = 701 "== Specify == 702 * the Feed stream 703 * the Liquid inlet stream 704 * the Vapour inlet stream 705 * the Vapour outlet flow (OutletV.F) 706 707 == Initial == 708 * the plate temperature of both phases (OutletL.T and OutletV.T) 709 * the liquid height (Level) OR the liquid flow holdup (ML) 710 * the vapor holdup (MV) 711 * (NoComps - 1) OutletL compositions 712 "; 713 714 PARAMETERS 715 Ah as area (Brief="Total holes area"); 716 lw as length (Brief="Weir length"); 717 g as acceleration (Default=9.81); 718 hw as length (Brief="Weir height"); 719 beta as fraction (Brief="Aeration fraction"); 720 alfa as fraction (Brief="Dry pressure drop coefficient"); 721 722 VapourFlow as Switcher(Valid = ["on", "off"], Default = "on"); 723 LiquidFlow as Switcher(Valid = ["on", "off"], Default = "on"); 724 725 VARIABLES 726 rhoL as dens_mass; 727 rhoV as dens_mass; 728 729 EQUATIONS 730 "Liquid Density" 731 rhoL = PP.LiquidDensity(OutletL.T, OutletL.P, OutletL.z); 732 "Vapour Density" 733 rhoV = PP.VapourDensity(InletV.T, InletV.P, InletV.z); 734 735 switch LiquidFlow 736 case "on": 737 "Francis Equation" 738 # OutletL.F*vL = 1.84*'m^0.5/s'*lw*((Level-(beta*hw))/(beta))^1.5; 739 OutletL.F*vL = 1.84*'1/s'*lw*((Level-(beta*hw))/(beta))^2; 740 when Level < (beta * hw) switchto "off"; 741 742 case "off": 743 "Low level" 744 OutletL.F = 0 * 'mol/h'; 745 when Level > (beta * hw) + 1e-6*'m' switchto "on"; 746 end 747 748 switch VapourFlow 749 case "on": 750 InletV.F*vV = sqrt((InletV.P - OutletV.P)/(rhoV*alfa))*Ah; 751 when InletV.F < 1e-6 * 'kmol/h' switchto "off"; 752 753 case "off": 754 InletV.F = 0 * 'mol/s'; 755 when InletV.P > OutletV.P + Level*g*rhoL + 1e-1 * 'atm' switchto "on"; 756 end 757 end
Note: See TracChangeset
for help on using the changeset viewer.