Ignore:
Timestamp:
Aug 17, 2009, 5:29:32 PM (13 years ago)
Author:
gerson bicca
Message:

packed column section

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/gui/eml/stage_separators/column.mso

    r832 r833  
    23832383end
    23842384
     2385*#
     2386
    23852387Model Packed_Section_ColumnBasic
    2386         ATTRIBUTES
     2388
     2389ATTRIBUTES
    23872390        Pallete         = false;
    23882391        Icon            = "icon/PackedSectionColumn";
     
    24062409PARAMETERS
    24072410
    2408         outer PP                as Plugin(Brief = "External Physical Properties", Type="PP");
    2409         outer NComp     as Integer;
    2410        
    2411         NumberOfStages                                  as Integer      (Brief="Number of Stages", Default=3);
    2412         FeedStageIndex(NumberOfStages)  as Integer      (Brief="Number of Stages", Default=0,Hidden=true);
    2413         FeedStageLocation                               as Integer      (Brief="Feed Stage Location", Default=2);
     2411        outer PP                as Plugin       (Brief = "External Physical Properties", Type="PP");
     2412        outer NComp     as Integer      (Brief="Number of components");
     2413       
     2414        NumberOfFeeds                                           as Integer      (Brief="Number of Feed Stages",Default=3,Protected=true);
     2415        NumberOfStages                                          as Integer      (Brief="Number of Stages", Default=3);
     2416        FeedStageLocation(NumberOfFeeds)        as Integer      (Brief="Feed Stage Location",Default=2);
    24142417       
    24152418        PackingHeight           as length               (Brief="Height of packing");
     
    24202423        AreaPerPackingVol       as Real                 (Brief="surface area per packing volume", Unit='m^2/m^3');
    24212424       
    2422         V                               as volume               (Brief="Total Volume of the tray",Hidden=true);
    2423         g                               as acceleration (Brief="Gravity Acceleration",Default=9.81,Hidden=true);
    2424         hs                              as length               (Brief="Height of the packing stage",Hidden=true);
    2425         ColumnArea              as area                 (Brief="Column Sectional Cross Area",Hidden=true);
     2425        V                               as volume                       (Brief="Total Volume of the tray",Protected=true);
     2426        Pi                              as constant             (Brief="Pi Number",Default=3.14159265, Symbol = "\pi",Hidden=true);
     2427        Gconst                  as acceleration         (Brief="Gravity Acceleration",Default=9.81,Hidden=true);
     2428        hs                              as length                       (Brief="Height of the packing stage",Protected=true);
     2429        ColumnArea              as area                         (Brief="Column Sectional Cross Area",Protected=true);
    24262430
    24272431VARIABLES
    2428 #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    2429 # Stages Initialization For the Whole Column Section
    2430 #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    2431         INITIALIZATION          as InitializeStage      (Brief = "Column Model Initialization");
    2432         in      FeedStage       as stream               (Brief="Feed stream", PosX=0, PosY=0.55);
     2432
     2433        INITIALIZATION  as InitializeStage      (Brief = "Column Model Initialization");
     2434       
     2435        in      LiquidInlet             as      stream                          (Brief="Liquid Inlet in the section", PosX=0.70, PosY=0);
     2436        out     VapourOutlet            as vapour_stream        (Brief="Vapour Outlet in the section", PosX=0.30, PosY=0);
     2437       
     2438        in              VapourInlet             as stream                               (Brief="Vapour Inlet in the section", PosX=0.30, PosY=1);
     2439        out     LiquidOutlet            as liquid_stream                (Brief="Liquid Outlet in the section", PosX=0.70, PosY=1);
     2440       
     2441        LiquidConnector as stream       (Brief="Liquid connection at the middle STAGES", PosX=0.75, PosY=1,Hidden=true);
     2442        VapourConnector as stream       (Brief="Vapour connection at the middle STAGES", PosX=0.55, PosY=0,Hidden=true);
    24332443       
    24342444        STAGES(NumberOfStages) as packedStage;
     
    24362446       
    24372447SET
    2438         FeedStageIndex(FeedStageLocation) =1;
    2439        
    2440         ColumnArea = ColumnDiameter^2*3.14159*0.25;
     2448       
     2449        ColumnArea = 0.25*Pi*ColumnDiameter^2;
    24412450        hs =PackingHeight/NumberOfStages;       
    24422451        V = hs * ColumnArea;
     
    24462455        STAGES([2:NumberOfStages]).OutletVapour                 to STAGES([1:NumberOfStages-1]).InletVapour;
    24472456        STAGES([1:NumberOfStages-1]).OutletLiquid       to STAGES([2:NumberOfStages]).InletLiquid;
     2457        LiquidConnector to STAGES(1).InletLiquid;
     2458        VapourConnector to STAGES(NumberOfStages).InletVapour;
    24482459
    24492460EQUATIONS
    2450 # Connecting STAGES
    2451         FeedStage.F*FeedStageIndex= STAGES.Inlet.F;
    2452         FeedStage.T = STAGES.Inlet.T;
    2453         FeedStage.P = STAGES.Inlet.P;
    2454         FeedStage.z = STAGES.Inlet.z;
    2455         FeedStage.v = STAGES.Inlet.v;
    2456         FeedStage.h = STAGES.Inlet.h;
    2457 
     2461
     2462"PresureDrop"
    24582463        STAGES.deltaP = PressureDrop/NumberOfStages;
     2464
     2465        LiquidConnector.F= LiquidInlet.F;
     2466        LiquidConnector.T = LiquidInlet.T;
     2467        LiquidConnector.P = LiquidInlet.P;
     2468        LiquidConnector.z = LiquidInlet.z;
     2469        LiquidConnector.v = LiquidInlet.v;
     2470        LiquidConnector.h = LiquidInlet.h;
     2471       
     2472        VapourConnector.F= VapourInlet.F;
     2473        VapourConnector.T = VapourInlet.T;
     2474        VapourConnector.P = VapourInlet.P;
     2475        VapourConnector.z = VapourInlet.z;
     2476        VapourConnector.v = VapourInlet.v;
     2477        VapourConnector.h = VapourInlet.h;
     2478       
     2479        LiquidOutlet.F= STAGES(NumberOfStages).OutletLiquid.F;
     2480        LiquidOutlet.T = STAGES(NumberOfStages).OutletLiquid.T;
     2481        LiquidOutlet.P = STAGES(NumberOfStages).OutletLiquid.P;
     2482        LiquidOutlet.z = STAGES(NumberOfStages).OutletLiquid.z;
     2483       
     2484        VapourOutlet.F= STAGES(1).OutletVapour.F;
     2485        VapourOutlet.T = STAGES(1).OutletVapour.T;
     2486        VapourOutlet.P = STAGES(1).OutletVapour.P;
     2487        VapourOutlet.z = STAGES(1).OutletVapour.z;
    24592488
    24602489for i in [1:NumberOfStages] do
     
    24712500       
    24722501"Volume flow rate of vapor, m^3/m^2/s"
    2473         STAGES(i).uV * ((ColumnArea)*VoidFraction - STAGES(i).Al) = STAGES(i).OutletVapour.F * STAGES(i).vV;
     2502        #STAGES(i).uV * ((ColumnArea)*VoidFraction - STAGES(i).Al) = STAGES(i).OutletVapour.F * STAGES(i).vV;
     2503        STAGES(i).uV * ((ColumnArea)*VoidFraction - STAGES(i).Al) = STAGES(i).InletVapour.F * STAGES(i).vV;
    24742504       
    24752505"Liquid holdup"
     
    24892519
    24902520"Liquid holdup"
    2491         STAGES(i).hl = (12*STAGES(i).miL*AreaPerPackingVol^2*STAGES(i).uL/STAGES(i).rhoL/g)^1/3;
     2521        STAGES(i).hl = (12*STAGES(i).miL*AreaPerPackingVol^2*STAGES(i).uL/STAGES(i).rhoL/Gconst)^1/3;
    24922522
    24932523"Area occupied by the liquid"
     
    25432573";
    25442574
     2575SET
     2576        NumberOfFeeds = 1;
     2577
    25452578VARIABLES
    2546 
    2547         in              LiquidInlet             as      stream                          (Brief="Liquid Inlet in the section", PosX=0.70, PosY=0);
    2548         out     VapourOutlet            as vapour_stream        (Brief="Vapour Outlet in the section", PosX=0.30, PosY=0);
    2549        
    2550         in              VapourInlet             as stream                               (Brief="Vapour Inlet in the section", PosX=0.30, PosY=1);
    2551         out     LiquidOutlet            as liquid_stream                (Brief="Liquid Outlet in the section", PosX=0.70, PosY=1);
    2552        
    2553         LiquidConnector as stream       (Brief="Liquid connection at the middle STAGES", PosX=0.75, PosY=1,Hidden=true);
    2554         VapourConnector as stream       (Brief="Vapour connection at the middle STAGES", PosX=0.55, PosY=0,Hidden=true);
    2555 
    2556 CONNECTIONS
    2557 
    2558         LiquidConnector to STAGES(1).InletLiquid;
    2559         VapourConnector to STAGES(NumberOfStages).InletVapour;
    2560        
     2579       
     2580        in      FeedStage       as stream               (Brief="Feed stream", PosX=0, PosY=0.55);
     2581
    25612582EQUATIONS
    2562 
    2563         LiquidConnector.F= LiquidInlet.F;
    2564         LiquidConnector.T = LiquidInlet.T;
    2565         LiquidConnector.P = LiquidInlet.P;
    2566         LiquidConnector.z = LiquidInlet.z;
    2567         LiquidConnector.v = LiquidInlet.v;
    2568         LiquidConnector.h = LiquidInlet.h;
    2569        
    2570         VapourConnector.F= VapourInlet.F;
    2571         VapourConnector.T = VapourInlet.T;
    2572         VapourConnector.P = VapourInlet.P;
    2573         VapourConnector.z = VapourInlet.z;
    2574         VapourConnector.v = VapourInlet.v;
    2575         VapourConnector.h = VapourInlet.h;
    2576        
    2577         LiquidOutlet.F= STAGES(NumberOfStages).OutletLiquid.F;
    2578         LiquidOutlet.T = STAGES(NumberOfStages).OutletLiquid.T;
    2579         LiquidOutlet.P = STAGES(NumberOfStages).OutletLiquid.P;
    2580         LiquidOutlet.z = STAGES(NumberOfStages).OutletLiquid.z;
    2581        
    2582         VapourOutlet.F= STAGES(1).OutletVapour.F;
    2583         VapourOutlet.T = STAGES(1).OutletVapour.T;
    2584         VapourOutlet.P = STAGES(1).OutletVapour.P;
    2585         VapourOutlet.z = STAGES(1).OutletVapour.z;
     2583#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
     2584# Equating Feed Tray Variables to Trays Variables
     2585#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
     2586for i in 1:NumberOfStages do
     2587
     2588if   i equal FeedStageLocation(1) then   
     2589
     2590"FeedTrayTop Inlet Flow"       
     2591        FeedStage.F= STAGES(i).Inlet.F;
     2592
     2593"FeedTrayTop Inlet Temperature"
     2594        FeedStage.T = STAGES(i).Inlet.T;
     2595
     2596"FeedTrayTop Inlet Pressure"
     2597        FeedStage.P = STAGES(i).Inlet.P;
     2598
     2599"FeedTrayTop Inlet Composition"
     2600        FeedStage.z = STAGES(i).Inlet.z;
     2601
     2602"FeedTrayTop Inlet Vapour Fraction"
     2603        FeedStage.v = STAGES(i).Inlet.v;
     2604
     2605"FeedTrayTop Inlet Enthalpy"
     2606        FeedStage.h = STAGES(i).Inlet.h;
     2607
     2608else
     2609
     2610"Inlet Tray - Flow Sealed"
     2611    0*'mol/h'= STAGES(i).Inlet.F;
     2612       
     2613"Inlet Tray -  Temperature"
     2614    300*'K' = STAGES(i).Inlet.T;
     2615       
     2616"Inlet Tray -  Pressure"
     2617    1*'atm' = STAGES(i).Inlet.P;
     2618       
     2619"Inlet Tray -  Composition"
     2620    0.1 = STAGES(i).Inlet.z;
     2621       
     2622"Inlet Tray -  Vapour Fraction"
     2623    0 = STAGES(i).Inlet.v;
     2624       
     2625"Inlet Tray -  Enthalpy"
     2626    0*'J/mol' = STAGES(i).Inlet.h;
     2627
     2628end
     2629
     2630end
    25862631
    25872632end
     
    26902735        ConnectorReboilerLout.z = BottomProduct.z;
    26912736
    2692 switch VapourFlow
    2693         case "on":
    2694                 STAGES(NumberOfStages).InletVapour.F*STAGES(NumberOfStages).vV = sqrt((REBOILER.OutletVapour.P - STAGES(NumberOfStages).OutletVapour.P)/
    2695                                         (STAGES(NumberOfStages).rhoV*ResistanceCoeff*20))*(ColumnArea*VoidFraction - STAGES(NumberOfStages).Al);
    2696                 when STAGES(NumberOfStages).InletVapour.F < 1e-6 * 'kmol/h' switchto "off";
    2697 
    2698         case "off":
    2699                 STAGES(NumberOfStages).InletVapour.F = 0 * 'mol/s';
    2700                 when REBOILER.OutletVapour.P > STAGES(NumberOfStages).OutletVapour.P + 1e-1 * 'atm' switchto "on";
    2701 end
    2702 
    2703 end
    2704 
    2705 *#
     2737end
     2738
Note: See TracChangeset for help on using the changeset viewer.