modelWetCoilDiscretized
Extends from DryCoilDiscretized (Coil with discretization along the flow paths and no humidity condensation).
Information
Model of a discretized coil with humidity condensation. This model is identical to Buildings.Fluid.HeatExchangers.DryCoilDiscretized but in addition, the mass transfer from fluid 2 to the metal is computed. The mass transfer is computed using a similarity law between heat and mass transfer, as implemented by the model Buildings.Fluid.HeatExchangers.BaseClasses.MassExchange. See this model for details.
This model can only be used with medium models that
implement the function enthalpyOfLiquid and that contain
an integer variable Water whose value is the element number where
the water vapor is stored in the species concentration vector. Examples for
such media are
Buildings.Media.Air and
Modelica.Media.Air.MoistAir.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Assumptions | |||
| Boolean | allowFlowReversal1 (from PartialFourPort) | true | = false to simplify equations, assuming, but not enforcing, no flow reversal for medium 1 |
| Boolean | allowFlowReversal2 (from PartialFourPort) | true | = false to simplify equations, assuming, but not enforcing, no flow reversal for medium 2 |
| Nominal condition | |||
| Modelica.Units.SI.MassFlowRate | m1_flow_nominal (from PartialFourPortInterface) | Nominal mass flow rate | |
| Modelica.Units.SI.MassFlowRate | m2_flow_nominal (from PartialFourPortInterface) | Nominal mass flow rate | |
| Modelica.Units.SI.PressureDifference | dp1_nominal (from FourPortFlowResistanceParameters) | Pressure difference | |
| Modelica.Units.SI.PressureDifference | dp2_nominal (from FourPortFlowResistanceParameters) | Pressure difference | |
| Boolean | use_dh1 (from DryCoilDiscretized) | false | Set to true to specify hydraulic diameter for pipe pressure drop |
| Boolean | use_dh2 (from DryCoilDiscretized) | false | Set to true to specify hydraulic diameter for duct pressure drop) |
| Advanced | |||
| Medium1.MassFlowRate | m1_flow_small (from PartialFourPortInterface) | 1E-4*abs(m1_flow_nominal) | Small mass flow rate for regularization of zero flow |
| Medium2.MassFlowRate | m2_flow_small (from PartialFourPortInterface) | 1E-4*abs(m2_flow_nominal) | Small mass flow rate for regularization of zero flow |
| Boolean | initialize_p1 (from DryCoilDiscretized) | not Medium1.singleState | Set to true to initialize the pressure of volume 1 |
| Boolean | initialize_p2 (from DryCoilDiscretized) | not Medium2.singleState | Set to true to initialize the pressure of volume 2 |
| Advanced › Diagnostics | |||
| Boolean | show_T (from PartialFourPortInterface) | false | = true, if actual temperature at port is computed |
| Flow resistance › Medium 1 | |||
| Boolean | computeFlowResistance1 (from FourPortFlowResistanceParameters) | true | =true, compute flow resistance. Set to false to assume no friction |
| Boolean | from_dp1 (from FourPortFlowResistanceParameters) | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
| Real | n1 (from FourPortFlowResistanceParameters) | 2 | Flow exponent for side 1, n=1 for laminar, n=2 for turbulent |
| Boolean | linearizeFlowResistance1 (from FourPortFlowResistanceParameters) | false | = true, use linear relation between m_flow and dp for any flow rate |
| Real | deltaM1 (from FourPortFlowResistanceParameters) | 0.1 | Fraction of nominal flow rate where flow transitions to laminar |
| Real | ReC_1 (from DryCoilDiscretized) | 4000 | Reynolds number where transition to turbulence starts inside pipes |
| Flow resistance › Medium 2 | |||
| Boolean | computeFlowResistance2 (from FourPortFlowResistanceParameters) | true | =true, compute flow resistance. Set to false to assume no friction |
| Boolean | from_dp2 (from FourPortFlowResistanceParameters) | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
| Real | n2 (from FourPortFlowResistanceParameters) | 2 | Flow exponent for side 2, n=1 for laminar, n=2 for turbulent |
| Boolean | linearizeFlowResistance2 (from FourPortFlowResistanceParameters) | false | = true, use linear relation between m_flow and dp for any flow rate |
| Real | deltaM2 (from FourPortFlowResistanceParameters) | 0.1 | Fraction of nominal flow rate where flow transitions to laminar |
| Real | ReC_2 (from DryCoilDiscretized) | 4000 | Reynolds number where transition to turbulence starts inside ducts |
| Heat transfer | |||
| Boolean | airSideTemperatureDependent (from DryCoilDiscretized) | false | Set to false to make air-side hA independent of temperature |
| Boolean | waterSideFlowDependent (from DryCoilDiscretized) | false | Set to false to make water-side hA independent of mass flow rate |
| Boolean | airSideFlowDependent (from DryCoilDiscretized) | false | Set to false to make air-side hA independent of mass flow rate |
| Boolean | waterSideTemperatureDependent (from DryCoilDiscretized) | false | Set to false to make water-side hA independent of temperature |
| Real | n_w (from DryCoilDiscretized) | 0.85 | Water-side exponent for convective heat transfer coefficient, h~m_flow^n_w |
| Real | n_a (from DryCoilDiscretized) | 0.8 | Air-side exponent for convective heat transfer coefficient, h~m_flow^n_a |
| General › Nominal condition | |||
| Modelica.Units.SI.ThermalConductance | UA_nominal (from DryCoilDiscretized) | Thermal conductance at nominal flow, used to compute heat capacity | |
| Geometry | |||
| Integer | nReg (from DryCoilDiscretized) | 2 | Number of registers |
| Integer | nPipPar (from DryCoilDiscretized) | 3 | Number of parallel pipes in each register |
| Integer | nPipSeg (from DryCoilDiscretized) | 4 | Number of pipe segments per register used for discretization |
| Modelica.Units.SI.Length | dh1 (from DryCoilDiscretized) | 0.025 | Hydraulic diameter for a single pipe |
| Modelica.Units.SI.Length | dh2 (from DryCoilDiscretized) | 1 | Hydraulic diameter for duct |
| Dynamics › Conservation equations | |||
| Modelica.Fluid.Types.Dynamics | energyDynamics (from DryCoilDiscretized) | Modelica.Fluid.Types.Dynamics.DynamicFreeInitial | Formulation of energy balance |
| Modelica.Units.SI.Time | tau1 (from DryCoilDiscretized) | 20 | Time constant at nominal flow for medium 1 |
| Modelica.Units.SI.Time | tau2 (from DryCoilDiscretized) | 10 | Time constant at nominal flow for medium 2 |
| Modelica.Units.SI.Time | tau_m (from DryCoilDiscretized) | 20 | Time constant of metal at nominal UA value |
| Heat transfer › Nominal condition | |||
| Real | r_nominal (from DryCoilDiscretized) | 0.5 | Ratio between air-side and water-side convective heat transfer coefficient |
| General › Initialization | |||
| Modelica.Units.SI.MassFlowRate | mStart_flow_a1 (from DryCoilDiscretized) | m1_flow_nominal | Guess value for mass flow rate at port_a1 |
| Modelica.Units.SI.MassFlowRate | mStart_flow_a2 (from DryCoilDiscretized) | m2_flow_nominal | Guess value for mass flow rate at port_a2 |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Fluid.Interfaces.FluidPort_a | port_a1 (from PartialFourPort) | Fluid connector a1 (positive design flow direction is from port_a1 to port_b1) | |
| Modelica.Fluid.Interfaces.FluidPort_b | port_b1 (from PartialFourPort) | Fluid connector b1 (positive design flow direction is from port_a1 to port_b1) | |
| Modelica.Fluid.Interfaces.FluidPort_a | port_a2 (from PartialFourPort) | Fluid connector a2 (positive design flow direction is from port_a2 to port_b2) | |
| Modelica.Fluid.Interfaces.FluidPort_b | port_b2 (from PartialFourPort) | Fluid connector b2 (positive design flow direction is from port_a2 to port_b2) |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Medium1.MassFlowRate | m1_flow (from PartialFourPortInterface) | port_a1.m_flow | Mass flow rate from port_a1 to port_b1 (m1_flow > 0 is design flow direction) |
| Modelica.Units.SI.PressureDifference | dp1 (from PartialFourPortInterface) | port_a1.p - port_b1.p | Pressure difference between port_a1 and port_b1 |
| Medium2.MassFlowRate | m2_flow (from PartialFourPortInterface) | port_a2.m_flow | Mass flow rate from port_a2 to port_b2 (m2_flow > 0 is design flow direction) |
| Modelica.Units.SI.PressureDifference | dp2 (from PartialFourPortInterface) | port_a2.p - port_b2.p | Pressure difference between port_a2 and port_b2 |
| Medium1.ThermodynamicState | sta_a1 (from PartialFourPortInterface) | if allowFlowReversal1 then Medium1.setState_phX(port_a1.p, noEvent(actualStream(port_a1.h_outflow)), noEvent(actualStream(port_a1.Xi_outflow))) else Medium1.setState_phX(port_a1.p, inStream(port_a1.h_outflow), inStream(port_a1.Xi_outflow)) | Medium properties in port_a1 |
| Medium1.ThermodynamicState | sta_b1 (from PartialFourPortInterface) | if allowFlowReversal1 then Medium1.setState_phX(port_b1.p, noEvent(actualStream(port_b1.h_outflow)), noEvent(actualStream(port_b1.Xi_outflow))) else Medium1.setState_phX(port_b1.p, port_b1.h_outflow, port_b1.Xi_outflow) | Medium properties in port_b1 |
| Medium2.ThermodynamicState | sta_a2 (from PartialFourPortInterface) | if allowFlowReversal2 then Medium2.setState_phX(port_a2.p, noEvent(actualStream(port_a2.h_outflow)), noEvent(actualStream(port_a2.Xi_outflow))) else Medium2.setState_phX(port_a2.p, inStream(port_a2.h_outflow), inStream(port_a2.Xi_outflow)) | Medium properties in port_a2 |
| Medium2.ThermodynamicState | sta_b2 (from PartialFourPortInterface) | if allowFlowReversal2 then Medium2.setState_phX(port_b2.p, noEvent(actualStream(port_b2.h_outflow)), noEvent(actualStream(port_b2.Xi_outflow))) else Medium2.setState_phX(port_b2.p, port_b2.h_outflow, port_b2.Xi_outflow) | Medium properties in port_b2 |
| Modelica.Units.SI.HeatFlowRate | Q1_flow (from DryCoilDiscretized) | sum(hexReg[i].Q1_flow for i in 1:nReg) | Heat transferred from solid into medium 1 |
| Modelica.Units.SI.HeatFlowRate | Q2_flow (from DryCoilDiscretized) | sum(hexReg[i].Q2_flow for i in 1:nReg) | Heat transferred from solid into medium 2 |
| Buildings.Fluid.HeatExchangers.BaseClasses.CoilRegister[nReg] | hexReg (from DryCoilDiscretized) | Heat exchanger register | |
| Buildings.Fluid.HeatExchangers.BaseClasses.PipeManifoldFixedResistance | pipMan_a (from DryCoilDiscretized) | Pipe manifold at port a | |
| Buildings.Fluid.HeatExchangers.BaseClasses.PipeManifoldNoResistance | pipMan_b (from DryCoilDiscretized) | Pipe manifold at port b | |
| Buildings.Fluid.HeatExchangers.BaseClasses.DuctManifoldNoResistance | ducMan_b (from DryCoilDiscretized) | Duct manifold at port b | |
| Buildings.Fluid.HeatExchangers.BaseClasses.DuctManifoldFixedResistance | ducMan_a (from DryCoilDiscretized) | Duct manifold at port a | |
| BaseClasses.HADryCoil | hA (from DryCoilDiscretized) | Model for convective heat transfer coefficient | |
| Modelica.Units.SI.HeatFlowRate | QSen2_flow | Q2_flow - QLat2_flow | Sensible heat input into air stream (negative if air is cooled) |
| Modelica.Units.SI.HeatFlowRate | QLat2_flow | Buildings.Utilities.Psychrometrics.Constants.h_fg*mWat_flow | Latent heat input into air (negative if air is dehumidified) |
| Real | SHR | QSen2_flow/noEvent(if (Q2_flow > 1E-6 or Q2_flow < -1E-6) then Q2_flow else 1) | Sensible to total heat ratio |
| Modelica.Units.SI.MassFlowRate | mWat_flow | sum(hexReg[:].ele[:, :].vol2.mWat_flow) | Water flow rate |
Revisions
-
June 22, 2026, by Michael Wetter:
Updated Dialog annotations, and revised heat exchanger models to consistently expose parametersr_nominal,n_wandn_a.
This is for #4620. -
July 5, 2022, by Antoine Gautier:
Restored the addition of heat tomas.Tin Buildings.Fluid.HeatExchangers.BaseClasses.HexElementLatent.
This is for #3065. -
May 26, 2022, by Michael Wetter:
Removed addition of heat tomas.Tin Buildings.Fluid.HeatExchangers.BaseClasses.HexElementLatent to correct latent heat exchange calculation.
This is for #3027. -
January 12, 2019, by Michael Wetter:
Corrected wrong use ofeach. -
April 14, 2017, by David Blum:
Added heat of condensation to coil surface heat balance and removed it from the air stream. This gives higher coil surface temperature and avoids overestimating the latent heat ratio that was observed in the previous implementation. The code change was in Buildings.Fluid.HeatExchangers.BaseClasses.HexElementLatent.
This is for #711. -
April 12, 2017, by Michael Wetter:
Added new variablesQSen2_flow,QLat2_flowandSHR. -
July 29, 2016, by Michael Wetter:
RedeclaredMedium2to beModelica.Media.Interfaces.PartialCondensingGasesbecause it is used invol2, which requires the medium to extend from this subclass.
See also issue 547. -
June 29, 2014, by Michael Wetter:
Removed parameterdlwhich is no longer needed. -
December 13, 2013, by Michael Wetter:
Corrected wrong connectionconnect(hexReg[nReg].port_b1, pipMan_b.port_b)toconnect(hexReg[nReg].port_a1, pipMan_b.port_b)in the base class Buildings.Fluid.HeatExchangers.DryCoilDiscretized. This closes issue https://github.com/lbl-srg/modelica-buildings/issues/194, which caused the last register to have no liquid flow. -
September 10, 2008 by Michael Wetter:
Added values forstateSelectattributes. -
August 13, 2008 by Michael Wetter:
First implementation.