modelConstantEffectiveness
Extends from Buildings.Fluid.HeatExchangers.BaseClasses.PartialEffectiveness (Partial model to implement heat exchangers based on effectiveness model).
Information
Model for a heat and moisture exchanger with constant effectiveness.
This model transfers heat and moisture in the amount of
QSen = epsS * Q_max, m = epsL * mWat_max,
where epsS and epsL are constant effectiveness
for the sensible and latent heat transfer,
Q_max is the maximum sensible heat that can be transferred and
mWat_max is the maximum moisture that can be transferred.
For a sensible heat exchanger, use Buildings.Fluid.HeatExchangers.ConstantEffectiveness instead of this model.
This model can only be used with medium models that define the integer constant
Water which needs to be equal to the index of the water mass fraction
in the species vector.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Boolean | prescribedHeatFlowRate1 (from StaticFourPortHeatMassExchanger) | false | Set to true if the heat flow rate into fluid 1 is not a function of the component temperature |
| Boolean | prescribedHeatFlowRate2 (from StaticFourPortHeatMassExchanger) | false | Set to true if the heat flow rate into fluid 2 is not a function of the component temperature |
| Boolean | homotopyInitialization (from StaticFourPortHeatMassExchanger) | true | = true, use homotopy method |
| Boolean | sensibleOnly1 (from StaticFourPortHeatMassExchanger) | Set to true if sensible exchange only for medium 1 | |
| Boolean | sensibleOnly2 (from StaticFourPortHeatMassExchanger) | Set to true if sensible exchange only for medium 2 | |
| Modelica.Units.SI.Efficiency | epsS | 0.8 | Sensible heat exchanger effectiveness |
| Modelica.Units.SI.Efficiency | epsL | 0.8 | Latent heat exchanger effectiveness |
| 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 | |
| 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 |
| 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 |
| 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 |
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 StaticFourPortHeatMassExchanger) | Heat transferred into the medium 1 | |
| Medium1.MassFlowRate | mWat1_flow (from StaticFourPortHeatMassExchanger) | Moisture mass flow rate added to the medium 1 | |
| Modelica.Units.SI.HeatFlowRate | Q2_flow (from StaticFourPortHeatMassExchanger) | Heat transferred into the medium 2 | |
| Medium2.MassFlowRate | mWat2_flow (from StaticFourPortHeatMassExchanger) | Moisture mass flow rate added to the medium 2 | |
| Medium1.Temperature | T_in1 (from PartialEffectiveness) | if allowFlowReversal1 then fra_a1*Medium1.temperature(state_a1_inflow) + fra_b1*Medium1.temperature(state_b1_inflow) else Medium1.temperature(state_a1_inflow) | Inlet temperature medium 1 |
| Medium2.Temperature | T_in2 (from PartialEffectiveness) | if allowFlowReversal2 then fra_a2*Medium2.temperature(state_a2_inflow) + fra_b2*Medium2.temperature(state_b2_inflow) else Medium2.temperature(state_a2_inflow) | Inlet temperature medium 2 |
| Modelica.Units.SI.ThermalConductance | C1_flow (from PartialEffectiveness) | abs(m1_flow)*(if allowFlowReversal1 then fra_a1*Medium1.specificHeatCapacityCp(state_a1_inflow) + fra_b1*Medium1.specificHeatCapacityCp(state_b1_inflow) else Medium1.specificHeatCapacityCp(state_a1_inflow)) | Heat capacity flow rate medium 1 |
| Modelica.Units.SI.ThermalConductance | C2_flow (from PartialEffectiveness) | abs(m2_flow)*(if allowFlowReversal2 then fra_a2*Medium2.specificHeatCapacityCp(state_a2_inflow) + fra_b2*Medium2.specificHeatCapacityCp(state_b2_inflow) else Medium2.specificHeatCapacityCp(state_a2_inflow)) | Heat capacity flow rate medium 2 |
| Modelica.Units.SI.ThermalConductance | CMin_flow (from PartialEffectiveness) | min(C1_flow, C2_flow) | Minimum heat capacity flow rate |
| Modelica.Units.SI.HeatFlowRate | QMax_flow (from PartialEffectiveness) | CMin_flow*(T_in2 - T_in1) | Maximum heat flow rate into medium 1 |
| Modelica.Units.SI.HeatFlowRate | QLat_flow | Latent heat exchange from medium 2 to medium 1 | |
| Medium1.MassFraction | X_w_in1 | Inlet water mass fraction of medium 1 | |
| Medium2.MassFraction | X_w_in2 | Inlet water mass fraction of medium 2 | |
| Modelica.Units.SI.MassFlowRate | mWat_flow | Water flow rate from medium 2 to medium 1 | |
| Modelica.Units.SI.MassFlowRate | mMax_flow | Maximum water flow rate from medium 2 to medium 1 |
Revisions
-
April 30, 2018, by Filip Jorissen:
Setfinal prescribedHeatFlowRate1=trueandfinal prescribedHeatFlowRate2=true.
See #907. -
April 11, 2017, by Michael Wetter:
Corrected bug asQ1_flowdid not include latent heat flow rate.
This is for issue Buildings #704. -
October 14, 2013 by Michael Wetter:
Replaced access to constantMedium1.Waterby introducing the parameteri1_w, and used a similar construct forMedium2. This avoids an error during model check as these constants are not known in the partial medium model. -
August 13, 2013 by Michael Wetter:
Corrected error in the documentation. -
July 30, 2013 by Michael Wetter:
Updated model to use new variablemWat_flowin the base class. -
January 28, 2010, by Michael Wetter:
Added regularization near zero flow. -
October 21, 2008, by Michael Wetter:
First implementation, based on Buildings.Fluid.HeatExchangers.ConstantEffectiveness.