modelBaseColumn

Gesamtmolbilanz, x, h, Ndot im Konnektor

Information

General

Stages are counted from the bottom (n=1: lowest stage). The minimum number of stages is n=1.

Startup operation

If a rectification column at time t = 0s shall be empty and cold and the starup operation from such an empty and cold state shall be modeled, the boolean parameter "considerStartUp" has to be set to true (default value = false). An initial pressure has to be provided.

During start-up the inert gas in the column is not modelled. A variable "startUp" is used in order to determine wether the switching condition on a stage is already fulfilled or not. The switching condition is fulfilled, when the bubble pressure of the mixture attains the initial pressure specified by the user. At this time instant the variable "startUp" is set to false, vapour is leaving the stage and the equilibrium condition at the phase boundary is valid.

The equations for the liquid phase for start up have to be provided in the extending classes.

Medium Models

The liquid medium models and the vapour medium models can differ both in the number of mediums they contain as well as in the substance types. The parameter nSL is the number of substances in the liquid and nSV is the number of substances in the vapour. The parameter nS is the number of substances which are in the liquid as well as in the vapour phase. This parameter has to be supplied by the user. The arrangement of the different substances in the medium models in in theory arbitrary. The parameter mapping has to be used to map the different vectors one to another.

Example: Vapour = {N2, H2O, CO2}, Liquid = {N2, H+, HCO3- H2O, CO2} , mapping = {{1,1},{2,4},{3,5}}.

Mole Balances

The mole balances are written separately for vapour and liquid. There exist one mole balance for each component of each stage. The vapour balance is of the following structure:

Mole storage = convective molar flow rate in - convective molar flow rate out + molar flow rate over phase boundary + feed molar flow rate

The liquid balance is of the following structure:

Mole storage = convective molar flow rate in - convective molar flow rate out + molar flow rate over phase boundary + molar flow rate due to reaction + feed molar flow rate

Energy Balances

The energy balances are also written separately for vapour and liquid. There exist one energy balance for each stage. The vapour balance is of the following structure:

Energy storage of the vapour = convective enthaply flow rate in - convective enthalpy flow rate out + heat transfer between the phases + enthalpy flow rate from the liquid to the vapour phase - enthalpy flow rate from the vapour to the liquid phase + enthalpy flow rate of the feed

The liquid balance is of the following structure:

Energy storage of the vapour + energy storage of the solid material = convective enthaply flow rate in - convective enthalpy flow rate out + heat transfer to the wall + heat transfer between the phases + enthalpy flow rate from the liquid to the vapour phase - enthalpy flow rate from the vapour to the liquid phase + enthalpy flow rate of the feed

Mass Transfer and thermodynamic equilibrium

The mass transfer equations and the equations for the thermodynamic equilibrium are provided in the film model, which is instantiated in the column specific classes StructuredPackedColumn, RandomPackedColumn, TrayColumn and SprayColumn.

Parameters

TypeNameDefaultDescription
Integern1packed column: number of discrete elements in the section; plate column: number of trays in one section
SI.Pressure[n]p_v_startif n == 1 then {p_v_start_outlet} else linspace(p_v_start_inlet, p_v_start_outlet, n)
SI.Pressure[n + 1]p_v_start_compcat(1, p_v_start, {p_v_start[n]})
SI.MoleFraction[n,nSL]x_l_start
SI.MoleFraction[n,nSV]x_v_start
SI.Temperature[n]T_v_startif (T_v_profile and not n == 1) then linspace(T_vap_start_bottom, T_vap_start_top, n) else (if (T_v_profile and n == 1) then ones(n)*(T_vap_start_bottom + T_vap_start_top)/2 else ones(n)*T_vapour_start)
SI.Temperature[n]T_l_startif (T_l_profile and not n == 1) then linspace(T_liq_start_bottom, T_liq_start_top, n) else (if (T_l_profile and n == 1) then ones(n)*(T_liq_start_bottom + T_liq_start_top)/2 else ones(n)*T_liquid_start)
BooleanEQfalseequilibrium model is used, no mass transfer, value provided by film model
Integer[nS,2]mapping{{i, i} for i in 1:nS}parameter to map the different medium vectors one to another
Boolean[nSV]inertVapourfill(false, nSV)true for each component which is inert in the vapour phase
Boolean[nSL]inertLiquidfill(false, nSL)true for each component which is inert in the liquid phase
Booleanh_evap_mediumMediumVapour.delta_hv_medium
IntegernSnumber of species which are equal in vapour and liquid phase
IntegernLMediumLiquid.nSubstance - nSnumber of additional substances which are only in liquid phase
IntegernVMediumVapour.nSubstance - nSnumber of additional substances which are only in the vapour phase
IntegernSLMediumLiquid.nSubstance
IntegernSVMediumVapour.nSubstance
Advanced
SI.TemperatureT_refsystemTS.T_refreference temperature
Initialization
SI.Pressurep_v_start_inlet1.9e5
SI.Pressurep_v_start_outlet1.8e5
Booleanx_l_profilefalse
Booleanx_v_profilefalse
SI.MoleFraction[nSL]x_l_start_constfill(1/nSL, nSL)
SI.MoleFraction[nSV]x_v_start_constfill(1/nSV, nSV)
SI.MoleFraction[nSL]x_l_start_infill(1/nSL, nSL)
SI.MoleFraction[nSL]x_l_start_outfill(1/nSL, nSL)
SI.MoleFraction[nSV]x_v_start_infill(1/nSV, nSV)
SI.MoleFraction[nSV]x_v_start_outfill(1/nSV, nSV)
Real[nSV]x_total_startfill(1/nSV, nSV)total mole fraction in system (vapour and liquid), component ordering as in vapour medium
BooleanT_l_profilefalse
BooleanT_v_profilefalse
SI.TemperatureT_vap_start_bottom300
SI.TemperatureT_vap_start_top300
SI.TemperatureT_liq_start_bottom300
SI.TemperatureT_liq_start_top300
SI.TemperatureT_vapour_start300
SI.TemperatureT_liquid_start300
StartUp
BooleanconsiderStartUpfalsetrue if StartUp is to be considered
Realfriggelfaktor0.0002e5
Realk0.2e-3large value for steep omega
BooleanStartUp_CCSfalsetrue if StartUp of carbon capture plant is to be considered
BooleanswitchingCondition_Boilingtruetrue if boiling state is switching condition
BooleanswitchingCondition_Absorber_x_vfalsetrue if vapour composition is switching condition
Realx_v_switch0.05vapour mole fraction value which is to be achieved
IntegercomponentNumber3number of vapour component number in model
Realgain0.01controler gain to maintain initial pressure before switch
Boolean[nSV]lowBoilingPointfill(false, nSV)true if substance has low boiling point
Realy_PID10maximal value for supply startUp PID controller
RealVdot_startUp_pressure0.005value when supply PID controller is switched off
ShutDown
BooleanconsiderShutDownfalsetrue if ShutDown is to be considered
StartUp › Smooth Start-Up
Booleansmooth_startUpfalsetrue if smooth switching is to be considered
Realdelay_startUp200time delay for smooth startUp
Initialization › Initial liquid content
Realeps_liq_start0.06start value for liquid content if it is not exactly wetted but with more or less liquid

Connectors

TypeNameDefaultDescription
ThermalSeparation.Interfaces.GasPortInupStreamIn
ThermalSeparation.Interfaces.GasPortOutupStreamOut
ThermalSeparation.Interfaces.LiquidPortIndownStreamIn
ThermalSeparation.Interfaces.LiquidPortOutdownStreamOut

Components

TypeNameDefaultDescription
ThermalSeparation.SystemTSsystemTS
BooleanuseHomotopyfalse
HomotopyMethodhomotopyMethod
Resultsresults
MediumVapour.BaseProperties[n]mediumVapour
MediumVapour.BasePropertiesmediumVapourIn
MediumLiquid.BaseProperties[n]mediumLiquid
MediumLiquid.BasePropertiesmediumLiquidIn
MediumLiquid.ActivityCoefficient[n]activityCoeff
MediumVapour.EvaporationEnthalpy[n]evapEnthalpy
ThermalSeparation.Units.MolarEnthalpy[n,nSV]delta_hvif h_evap_medium then zeros(n, nSV) else evapEnthalpy.h
SI.Density[n]rho_vif homotopyMethod.bool_rho and homotopyMethod.useHomotopy then homotopy(actual = mediumVapour.d, simplified = fill(homotopyMethod.rho_vap, n)) else mediumVapour.dmixture vapour density
SI.Densityrho_v_inmediumVapourIn.d
SI.MolarMass[n]MM_vmediumVapour.MMmolar mass of the vapour mixture
SI.MolarMassMM_v_inmediumVapourIn.MM
ThermalSeparation.Units.MolarEnthalpy[n]h_vif homotopyMethod.bool_h and homotopyMethod.useHomotopy then homotopy(actual = mediumVapour.h, simplified = fill(homotopyMethod.h_vap, n)) else mediumVapour.h
ThermalSeparation.Units.MolarEnthalpyh_v_inmediumVapourIn.h
SI.MolarInternalEnergy[n]u_vmediumVapour.u
MediumVapour.ThermodynamicPropertiespropsVapmediumVapour.properties
MediumVapour.ThermodynamicPropertiespropsVapInmediumVapourIn.properties
SI.Density[n]rho_lif homotopyMethod.bool_rho and homotopyMethod.useHomotopy then homotopy(actual = mediumLiquid.d, simplified = fill(homotopyMethod.rho_liq, n)) else mediumLiquid.dmixture liquid density
SI.Densityrho_l_inmediumLiquidIn.d
SI.MolarMass[n]MM_lmediumLiquid.MMmolar mass of the liquid mixture
SI.MolarMassMM_l_inmediumLiquidIn.MM
ThermalSeparation.Units.MolarEnthalpy[n]h_l
ThermalSeparation.Units.MolarEnthalpyh_l_in
SI.MolarInternalEnergy[n]u_lmediumLiquid.u
MediumLiquid.ThermodynamicPropertiespropsLiqmediumLiquid.properties
MediumLiquid.ThermodynamicPropertiespropsLiqInmediumLiquidIn.properties
SI.Concentration[nSV]c_v_in
SI.Concentration[n,nSV]c_v
SI.MoleFraction[nSV]x_v_in
SI.MoleFraction[n,nSV]x_v
SI.VolumeFlowRateVdot_v_in
SI.VolumeFlowRate[n]Vdot_v
SI.TemperatureT_v_in
SI.MoleFraction[nSV]x_upStreamIn_act
SI.MoleFraction[nSV]x_upStreamOut_act
ThermalSeparation.Units.MolarEnthalpyh_upStreamIn_act
ThermalSeparation.Units.MolarEnthalpyh_upStreamOut_act
SI.Pressure[n + 1]p_vp_v[j] = pressure on the j-th stage, p_v[n+1] is the pressure in the first element of the sucesseding component
SI.Temperature[n]T_v
SI.Concentration[nSL]c_l_inmolar concentration in the liquid at the liquid outlet of each stage
SI.Concentration[n,nSL]c_l
SI.MoleFraction[nSL]x_l_in
SI.MoleFraction[n,nSL]x_l
SI.VolumeFlowRateVdot_l_in
SI.VolumeFlowRate[n]Vdot_l
SI.TemperatureT_l_in
SI.Temperature[n]T_l
SI.MoleFraction[nSL]x_downStreamIn_act
SI.MoleFraction[nSL]x_downStreamOut_act
ThermalSeparation.Units.MolarEnthalpyh_downStreamIn_act
ThermalSeparation.Units.MolarEnthalpyh_downStreamOut_act
SI.MolarFlowRate[n,nSL]Ndot_reac
SI.HeatFlowRate[n]Qdot_reac
SI.VolumeFraction[n]eps_liqliquid volume fraction
SI.VolumeFraction[n]eps_vapvapour volume fraction
SI.Temperature[n]T
SI.HeatFlowRate[n]Qdot_wallheat flow rate to wall
SI.MolarFlowRate[n,nSV]Ndot_v_transfer
SI.MolarFlowRate[n,nSL]Ndot_l_transfer
SI.HeatFlowRate[n]Edot_l_transfer
SI.HeatFlowRate[n]Edot_v_transfer
SI.Temperature[n]T_star
SI.Pressurep_v_in
SI.Pressure[n,nSL]p_sat_bulk
SI.VolumeFlowRate[n]Vdot_v_feed
SI.Concentration[n,nSV]c_v_feed
SI.SpecificEnthalpy[n]h_v_feed
SI.VolumeFlowRate[n]Vdot_l_feed
SI.Concentration[n,nSL]c_l_feed
SI.SpecificEnthalpy[n]h_l_feed
SI.Density[n]rho_l_feed
SI.Density[n]rho_v_feed
SI.MolarMass[n]MM_l_feed
SI.MolarMass[n]MM_v_feed
SI.MoleFraction[n,nSL]x_l_star
SI.MoleFraction[n,nSV]x_v_star
SI.MoleFraction[n,nS]x_vap_liqtotal molar fractions
Real[n,nS]n_tot
ThermoEquilibrium[n]bubblePressure
Boolean[n]bool_eps
SI.VolumeFlowRate[n]Vdot_leliquid volume flow entrained by vapour
Boolean[n]before_transitionfill(false, n)
SI.Pressurep_initial1e5
SI.Pressure[n]p_bubbubblePressure.p_bubblemixture bubble pressure
SI.Pressure[n + 1]p_hydhydraulic pressure
Real[n]omega
Boolean[n]startUp
Real[n]Ndot_source_startUpdummy molar flow rate to account for discharge of inert gas during startUp
Real[n]sum_xlsum(x_l[:, i] for i in 1:nSL)
Real[n]sum_xvsum(x_v[:, i] for i in 1:nSV)
SI.MolarFlowRate[nSL]Ndot_transsum(Ndot_l_transfer[j, :] for j in 1:n)
SI.MolarFlowRate[nSV]Ndot_trans_vapsum(Ndot_v_transfer[j, :] for j in 1:n)
RealEdot_lsum(Edot_l_transfer)
RealEdot_vsum(Edot_v_transfer)
SI.MassFlowRate[n]mdot_vVdot_v.*rho_v
SI.MassFlowRate[n]mdot_lVdot_l.*rho_l
Real[n,nSV]X_vmass fraction vapour
Real[n,nSL]X_lmass fraction liquid
SI.VolumeV_liqsum(A*H/n*eps*eps_liq)
SI.MolarFlowRate[n]Ndot_vtotal molar flow rate vapour
SI.MolarFlowRateNdot_v_intotal molar flow rate vapour
SI.MolarFlowRate[n]Ndot_ltotal molar flow rate liquid
SI.MolarFlowRateNdot_l_intotal molar flow rate vapour
Real[n,nSL]n_i_liq
Real[n,nSV]n_i_vap
Real[n]n_liqsum(n_i_liq[:, i] for i in 1:nSL)
Real[n]n_vapsum(n_i_vap[:, i] for i in 1:nSV)
Real[n]n_totaln_liq + n_vap
Real[n]n_mol_L
Real[n]n_mol_V
Real[n,nSL]n_mol_L_i
Real[n,nSV]n_mol_V_i
ThermalSeparation.Utilities.LimPID_Input[n]PID

Contents

NameDescription
HomotopyMethod
MediumVapourmedium to be used in vapour phase
MediumLiquidmedium to be used in liquid phase
ThermoEquilibrium

Revisions

created by

Karin Dietl & Andreas Joos

creation date

01.01.2009

revised by

nobody so far

last revision

this is an alpha version...

based on




Documentation last revised: 18.7.2011