Changeset 660 for trunk/eml


Ignore:
Timestamp:
Oct 6, 2008, 10:34:37 PM (14 years ago)
Author:
gerson bicca
Message:

added column model

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/eml/UserModels/UserColumn.mso

    r658 r660  
    560560end
    561561
     562
     563#* -------------------------------------------------------------------
     564* Distillation Column model with:
     565*
     566*       - NumberOfTrays like tray;
     567*       - a vessel in the bottom of column;
     568*       - a splitter who separate the bottom product and the stream to reboiler;
     569*       - steady state reboiler (thermosyphon);
     570*       - a dynamic condenser without subcooling;
     571*       - a splitter which separate reflux and distillate;
     572*       - a pump in reflux stream.
     573*
     574* ------------------------------------------------------------------*#
     575Model User_Distillation_thermosyphon_cond as User_Section_ColumnBasic
     576       
     577        ATTRIBUTES
     578        Pallete         = true;
     579        Icon            = "icon/DistillationThermosyphonCond";
     580        Brief           = "Model of a distillation column with dynamic condenser and steady reboiler.";
     581        Info            =
     582"== Specify ==
     583* the feed stream of each tray (Inlet);
     584* the Murphree eficiency for each tray Emv;
     585* the pump head;
     586* the condenser vapor outlet flow (OutletV.F);
     587* the heat supllied in bottom tank;
     588* the heat supllied in condenser and reboiler;
     589* the Outlet1 flow in the bottom splitter (spbottom.Outlet1.F) that corresponds to the bottom product;
     590       
     591== Initial Conditions ==
     592* the trays temperature (OutletL.T);
     593* the trays liquid level (Level) OR the trays liquid flow (OutletL.F);
     594* (NoComps - 1) OutletL (OR OutletV) compositions for each tray;
     595       
     596* the condenser temperature (OutletL.T);
     597* the condenser liquid level (Level);
     598* (NoComps - 1) OutletL (OR OutletV) compositions;
     599       
     600* the bottom tank temperature (OutletL.T);
     601* the bottom tank liquid level (Level);
     602* (NoComps - 1) OutletL (OR OutletV) compositions.
     603";
     604
     605PARAMETERS
     606        CondenserVapourFlow     as Switcher     (Valid = ["on", "off"], Default = "on",Hidden=true);
     607
     608VARIABLES
     609
     610        CondenserUnity as condenser;
     611        SplitterTop             as splitter;
     612        PumpUnity               as pump;
     613        BottomVessel    as tank;
     614        SplitterBottom  as splitter;
     615        ReboilerUnity   as reboilerSteady;
     616        alfaTopo                        as Real;
     617
     618out             HeatToCondenser         as energy_stream                                (Brief="Heat supplied to Condenser",Hidden=true);
     619out             HeatToReboiler                  as energy_stream                                (Brief="Heat supplied to Reboiler",Hidden=true);
     620out             HeatToBottomVessel      as energy_stream                                (Brief="Heat supplied to Bottom Vessel",Hidden=true);
     621
     622out     VapourDistillate                                as vapour_stream        (Brief="Vapour outlet stream From Top Condenser", PosX=0.73, PosY=0);
     623in              ConnectorCondenserVout  as stream                               (Brief="Connector for Vapour outlet stream From Top Condenser", Hidden=true);
     624
     625out     LiquidDistillate                                as liquid_stream        (Brief="Liquid outlet stream From Top Splitter", PosX=1, PosY=0.45);
     626in              ConnectorSplitterTop    as stream                       (Brief="Connector for Liquid outlet stream From Top Splitter", Hidden=true);
     627
     628out     BottomProduct                                   as liquid_stream        (Brief="Liquid outlet stream From Bottom Splitter", PosX=1, PosY=1);
     629in              ConnectorSplitterBottom         as stream                       (Brief="Connector for Liquid outlet stream From Reboiler", Hidden=true);
     630
     631EQUATIONS
     632
     633# Condenser Connector Equations
     634        ConnectorCondenserVout.T = VapourDistillate.T;
     635        ConnectorCondenserVout.P = VapourDistillate.P;
     636        ConnectorCondenserVout.F = VapourDistillate.F;
     637        ConnectorCondenserVout.z = VapourDistillate.z;
     638
     639# Top Splitter Connector Equations
     640        ConnectorSplitterTop.T = LiquidDistillate.T;
     641        ConnectorSplitterTop.P = LiquidDistillate.P;
     642        ConnectorSplitterTop.F = LiquidDistillate.F;
     643        ConnectorSplitterTop.z = LiquidDistillate.z;
     644
     645# Bottom Splitter Connector Equations
     646        ConnectorSplitterBottom.T = BottomProduct.T;
     647        ConnectorSplitterBottom.P = BottomProduct.P;
     648        ConnectorSplitterBottom.F = BottomProduct.F;
     649        ConnectorSplitterBottom.z = BottomProduct.z;
     650
     651switch CondenserVapourFlow
     652                case "on":
     653                CondenserUnity.InletV.F*trays(1).vV = alfaTopo * Ah * sqrt(2*(trays(1).OutletV.P -
     654                CondenserUnity.OutletL.P + 1e-8 * 'atm') / (alfa*trays(1).rhoV));
     655                when CondenserUnity.InletV.F < 1e-6 * 'kmol/h' switchto "off";
     656               
     657                case "off":
     658                CondenserUnity.InletV.F = 0 * 'mol/s';
     659                when trays(1).OutletV.P > CondenserUnity.OutletL.P + 1e-1 * 'atm' switchto "on";
     660end     
     661
     662CONNECTIONS
     663#vapor
     664        ReboilerUnity.OutletV   to trays(NumberOfTrays).InletV;
     665        trays(1).OutletV                                to CondenserUnity.InletV;
     666
     667#liquid
     668        CondenserUnity.OutletL          to SplitterTop.Inlet;   
     669        SplitterTop.Outlet2                             to PumpUnity.Inlet;
     670        PumpUnity.Outlet                                        to trays(1).InletL;
     671        trays(NumberOfTrays).OutletL    to BottomVessel.Inlet;
     672        BottomVessel.Outlet                             to SplitterBottom.Inlet;
     673        SplitterBottom.Outlet2                  to ReboilerUnity.InletL;
     674
     675#Connectors
     676HeatToCondenser                         to CondenserUnity.InletQ;
     677HeatToReboiler                          to ReboilerUnity.InletQ;
     678HeatToBottomVessel      to BottomVessel.InletQ;
     679CondenserUnity.OutletV to ConnectorCondenserVout;
     680SplitterTop.Outlet1             to ConnectorSplitterTop;
     681SplitterBottom.Outlet1  to ConnectorSplitterBottom;
     682
     683end
Note: See TracChangeset for help on using the changeset viewer.