modelSteamHumidifier_X

Steam humidifier with leaving water mass fraction as input

Extends from Buildings.Fluid.HeatExchangers.BaseClasses.PartialPrescribedOutlet (Ideal heater, cooler, humidifier or dehumidifier with prescribed outlet conditions).

Information

Model for a steam humidifier with a prescribed outlet water vapor mass fraction in kg/kg total air.

This model forces the outlet water mass fraction at port_b to be no lower than the input signal X_wSet, subject to optional limits on the maximum water vapor mass flow rate that is added, as described by the parameter mWatMax_flow. By default, the model has unlimited capacity.

The output signal mWat_flow ≥ 0 is the moisture added to the medium if the flow rate is from port_a to port_b. If the flow is reversed, then mWat_flow = 0. The outlet specific enthalpy at port_b is increased by the enthalpy of steam at 100°C times the mass of steam that was added. Therefore, the temperature of the leaving fluid is slightly above the inlet temperature.

The outlet conditions at port_a are not affected by this model, other than for a possible pressure difference due to flow friction.

If the parameter energyDynamics is different from Modelica.Fluid.Types.Dynamics.SteadyState, the component models the dynamic response using a first order differential equation. The time constant of the component is equal to the parameter tau. This time constant is adjusted based on the mass flow rate using

τeff = τ |ṁ| ⁄ ṁnom

where τeff is the effective time constant for the given mass flow rate and τ is the time constant at the nominal mass flow rate nom. This type of dynamics is equal to the dynamics that a completely mixed control volume would have.

Optionally, this model can have a flow resistance. Set dp_nominal = 0 to disable the flow friction calculation.

For a model that uses a control signal u ∈ [0, 1] and multiplies this with the nominal water mass flow rate, use Buildings.Fluid.Humidifiers.Humidifier_u

Limitations

This model only adds water vapor for the flow from port_a to port_b. The water vapor of the reverse flow is not affected by this model.

Parameters

TypeNameDefaultDescription
BooleanhomotopyInitialization (from PartialPrescribedOutlet)true= true, use homotopy method
Modelica.Units.SI.MassFlowRatemWatMax_flowModelica.Constants.infMaximum water mass flow rate addition (positive)
Assumptions
BooleanallowFlowReversal (from PartialTwoPort)true= false to simplify equations, assuming, but not enforcing, no flow reversal
Nominal condition
Modelica.Units.SI.MassFlowRatem_flow_nominal (from PartialTwoPortInterface)Nominal mass flow rate
Modelica.Units.SI.PressureDifferencedp_nominal (from TwoPortFlowResistanceParameters)Pressure difference
Advanced
Modelica.Units.SI.MassFlowRatem_flow_small (from PartialTwoPortInterface)1E-4*abs(m_flow_nominal)Small mass flow rate for regularization of zero flow
Advanced › Diagnostics
Booleanshow_T (from PartialTwoPortInterface)false= true, if actual temperature at port is computed
Flow resistance
BooleancomputeFlowResistance (from TwoPortFlowResistanceParameters)true=true, compute flow resistance. Set to false to assume no friction
Booleanfrom_dp (from TwoPortFlowResistanceParameters)false= true, use m_flow = f(dp) else dp = f(m_flow)
Realn (from TwoPortFlowResistanceParameters)2Flow exponent, n=1 for laminar, n=2 for turbulent
BooleanlinearizeFlowResistance (from TwoPortFlowResistanceParameters)false= true, use linear relation between m_flow and dp for any flow rate
RealdeltaM (from TwoPortFlowResistanceParameters)0.1Fraction of nominal flow rate where flow transitions to laminar
Dynamics › Conservation equations
Modelica.Fluid.Types.DynamicsenergyDynamics (from PartialPrescribedOutlet)Modelica.Fluid.Types.Dynamics.SteadyStateType of energy balance: dynamic (3 initialization options) or steady state
Dynamics
Modelica.Units.SI.Timetau (from PartialPrescribedOutlet)10Time constant at nominal flow rate (used if energyDynamics not equal Modelica.Fluid.Types.Dynamics.SteadyState)
Initialization
Modelica.Units.SI.MassFraction[Medium.nX]X_startMedium.X_defaultStart value of mass fractions m_i/m

Connectors

TypeNameDefaultDescription
Modelica.Fluid.Interfaces.FluidPort_aport_a (from PartialTwoPort)Fluid connector a (positive design flow direction is from port_a to port_b)
Modelica.Fluid.Interfaces.FluidPort_bport_b (from PartialTwoPort)Fluid connector b (positive design flow direction is from port_a to port_b)
Modelica.Blocks.Interfaces.RealInputX_wSet point for water vapor mass fraction in kg/kg total air of the fluid that leaves port_b
Modelica.Blocks.Interfaces.RealOutputmWat_flowWater added to the fluid (if flow is from port_a to port_b)
Modelica.Blocks.Interfaces.RealOutputQ_flowHeat flow rate added to the fluid (if flow is from port_a to port_b)

Components

TypeNameDefaultDescription
Modelica.Units.SI.MassFlowRatem_flow (from PartialTwoPortInterface)port_a.m_flowMass flow rate from port_a to port_b (m_flow > 0 is design flow direction)
Modelica.Units.SI.PressureDifferencedp (from PartialTwoPortInterface)port_a.p - port_b.pPressure difference between port_a and port_b
Medium.ThermodynamicStatesta_a (from PartialTwoPortInterface)if allowFlowReversal then Medium.setState_phX(port_a.p, noEvent(actualStream(port_a.h_outflow)), noEvent(actualStream(port_a.Xi_outflow))) else Medium.setState_phX(port_a.p, noEvent(inStream(port_a.h_outflow)), noEvent(inStream(port_a.Xi_outflow)))Medium properties in port_a
Medium.ThermodynamicStatesta_b (from PartialTwoPortInterface)if allowFlowReversal then Medium.setState_phX(port_b.p, noEvent(actualStream(port_b.h_outflow)), noEvent(actualStream(port_b.Xi_outflow))) else Medium.setState_phX(port_b.p, noEvent(port_b.h_outflow), noEvent(port_b.Xi_outflow))Medium properties in port_b

Revisions

  • March 8, 2022, by Michael Wetter:
    Renamed parameter massDynamics to energyDynamics for consistency with other models.
  • May 10, 2017, by Michael Wetter:
    First implementation.