modelSteamHumidifier_X
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
| Type | Name | Default | Description |
|---|---|---|---|
| Boolean | homotopyInitialization (from PartialPrescribedOutlet) | true | = true, use homotopy method |
| Modelica.Units.SI.MassFlowRate | mWatMax_flow | Modelica.Constants.inf | Maximum water mass flow rate addition (positive) |
| Assumptions | |||
| Boolean | allowFlowReversal (from PartialTwoPort) | true | = false to simplify equations, assuming, but not enforcing, no flow reversal |
| Nominal condition | |||
| Modelica.Units.SI.MassFlowRate | m_flow_nominal (from PartialTwoPortInterface) | Nominal mass flow rate | |
| Modelica.Units.SI.PressureDifference | dp_nominal (from TwoPortFlowResistanceParameters) | Pressure difference | |
| Advanced | |||
| Modelica.Units.SI.MassFlowRate | m_flow_small (from PartialTwoPortInterface) | 1E-4*abs(m_flow_nominal) | Small mass flow rate for regularization of zero flow |
| Advanced › Diagnostics | |||
| Boolean | show_T (from PartialTwoPortInterface) | false | = true, if actual temperature at port is computed |
| Flow resistance | |||
| Boolean | computeFlowResistance (from TwoPortFlowResistanceParameters) | true | =true, compute flow resistance. Set to false to assume no friction |
| Boolean | from_dp (from TwoPortFlowResistanceParameters) | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
| Real | n (from TwoPortFlowResistanceParameters) | 2 | Flow exponent, n=1 for laminar, n=2 for turbulent |
| Boolean | linearizeFlowResistance (from TwoPortFlowResistanceParameters) | false | = true, use linear relation between m_flow and dp for any flow rate |
| Real | deltaM (from TwoPortFlowResistanceParameters) | 0.1 | Fraction of nominal flow rate where flow transitions to laminar |
| Dynamics › Conservation equations | |||
| Modelica.Fluid.Types.Dynamics | energyDynamics (from PartialPrescribedOutlet) | Modelica.Fluid.Types.Dynamics.SteadyState | Type of energy balance: dynamic (3 initialization options) or steady state |
| Dynamics | |||
| Modelica.Units.SI.Time | tau (from PartialPrescribedOutlet) | 10 | Time constant at nominal flow rate (used if energyDynamics not equal Modelica.Fluid.Types.Dynamics.SteadyState) |
| Initialization | |||
| Modelica.Units.SI.MassFraction[Medium.nX] | X_start | Medium.X_default | Start value of mass fractions m_i/m |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Fluid.Interfaces.FluidPort_a | port_a (from PartialTwoPort) | Fluid connector a (positive design flow direction is from port_a to port_b) | |
| Modelica.Fluid.Interfaces.FluidPort_b | port_b (from PartialTwoPort) | Fluid connector b (positive design flow direction is from port_a to port_b) | |
| Modelica.Blocks.Interfaces.RealInput | X_w | Set point for water vapor mass fraction in kg/kg total air of the fluid that leaves port_b | |
| Modelica.Blocks.Interfaces.RealOutput | mWat_flow | Water added to the fluid (if flow is from port_a to port_b) | |
| Modelica.Blocks.Interfaces.RealOutput | Q_flow | Heat flow rate added to the fluid (if flow is from port_a to port_b) |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Units.SI.MassFlowRate | m_flow (from PartialTwoPortInterface) | port_a.m_flow | Mass flow rate from port_a to port_b (m_flow > 0 is design flow direction) |
| Modelica.Units.SI.PressureDifference | dp (from PartialTwoPortInterface) | port_a.p - port_b.p | Pressure difference between port_a and port_b |
| Medium.ThermodynamicState | sta_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.ThermodynamicState | sta_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 parametermassDynamicstoenergyDynamicsfor consistency with other models. -
May 10, 2017, by Michael Wetter:
First implementation.