Package with heat exchanger models
Extends from Modelica.Icons.VariantsPackage (Icon for package containing variants).
Name | Description |
---|---|
Boreholes | Package with borehole heat exchangers |
CoolingTowers | Package with cooling tower models |
DXCoils | DX(Direct Expansion) cooling coil models |
RadiantSlabs | Package with radiant slab models |
Radiators | Package with radiators models for hydronic space heating systems |
ConstantEffectiveness | Heat exchanger with constant effectiveness |
DryCoilCounterFlow | Counterflow coil with discretization along the flow paths and without humidity condensation |
DryCoilDiscretized | Coil with discretization along the flow paths and no humidity condensation |
DryEffectivenessNTU | Heat exchanger with effectiveness - NTU relation and no moisture condensation |
HeaterCoolerPrescribed | Heater or cooler with prescribed heat flow rate |
WetCoilCounterFlow | Counterflow coil with discretization along the flow paths and humidity condensation |
WetCoilDiscretized | Coil with discretization along the flow paths and humidity condensation |
Examples | Collection of models that illustrate model use and test models |
BaseClasses | Package with base classes for Buildings.Fluid.HeatExchangers |
Heat exchanger with constant effectiveness
Model for a heat exchanger with constant effectiveness.
This model transfers heat in the amount of
Q = Qmax ε,
where ε is a constant effectiveness and Qmax is the maximum heat that can be transferred.
For a heat and moisture exchanger, use Buildings.Fluid.MassExchangers.ConstantEffectiveness instead of this model.
Extends from Buildings.Fluid.HeatExchangers.BaseClasses.PartialEffectiveness (Partial model to implement heat exchangers based on effectiveness model).
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium1 | PartialMedium | Medium 1 in the component | |
replaceable package Medium2 | PartialMedium | Medium 2 in the component | |
HeatFlowRate | Q1_flow | eps*QMax_flow | Heat transfered into the medium 1 [W] |
MassFlowRate | mWat1_flow | 0 | Moisture mass flow rate added to the medium 1 [kg/s] |
HeatFlowRate | Q2_flow | -Q1_flow | Heat transfered into the medium 2 [W] |
MassFlowRate | mWat2_flow | 0 | Moisture mass flow rate added to the medium 2 [kg/s] |
Boolean | sensibleOnly1 | true | Set to true if sensible exchange only for medium 1 |
Boolean | sensibleOnly2 | true | Set to true if sensible exchange only for medium 2 |
Real | eps | 0.8 | Heat exchanger effectiveness [1] |
Nominal condition | |||
MassFlowRate | m1_flow_nominal | Nominal mass flow rate [kg/s] | |
MassFlowRate | m2_flow_nominal | Nominal mass flow rate [kg/s] | |
Pressure | dp1_nominal | Pressure [Pa] | |
Pressure | dp2_nominal | Pressure [Pa] | |
Initialization | |||
MassFlowRate | m1_flow.start | 0 | Mass flow rate from port_a1 to port_b1 (m1_flow > 0 is design flow direction) [kg/s] |
Pressure | dp1.start | 0 | Pressure difference between port_a1 and port_b1 [Pa] |
MassFlowRate | m2_flow.start | 0 | Mass flow rate from port_a2 to port_b2 (m2_flow > 0 is design flow direction) [kg/s] |
Pressure | dp2.start | 0 | Pressure difference between port_a2 and port_b2 [Pa] |
Assumptions | |||
Boolean | allowFlowReversal1 | system.allowFlowReversal | = true to allow flow reversal in medium 1, false restricts to design direction (port_a -> port_b) |
Boolean | allowFlowReversal2 | system.allowFlowReversal | = true to allow flow reversal in medium 2, false restricts to design direction (port_a -> port_b) |
Advanced | |||
Initialization | |||
SpecificEnthalpy | h_outflow_a1_start | Medium1.h_default | Start value for enthalpy flowing out of port a1 [J/kg] |
SpecificEnthalpy | h_outflow_b1_start | Medium1.h_default | Start value for enthalpy flowing out of port b1 [J/kg] |
SpecificEnthalpy | h_outflow_a2_start | Medium2.h_default | Start value for enthalpy flowing out of port a2 [J/kg] |
SpecificEnthalpy | h_outflow_b2_start | Medium2.h_default | Start value for enthalpy flowing out of port b2 [J/kg] |
MassFlowRate | m1_flow_small | 1E-4*abs(m1_flow_nominal) | Small mass flow rate for regularization of zero flow [kg/s] |
MassFlowRate | m2_flow_small | 1E-4*abs(m2_flow_nominal) | Small mass flow rate for regularization of zero flow [kg/s] |
Boolean | homotopyInitialization | true | = true, use homotopy method |
Diagnostics | |||
Boolean | show_T | false | = true, if actual temperature at port is computed |
Flow resistance | |||
Medium 1 | |||
Boolean | from_dp1 | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
Boolean | linearizeFlowResistance1 | false | = true, use linear relation between m_flow and dp for any flow rate |
Real | deltaM1 | 0.1 | Fraction of nominal flow rate where flow transitions to laminar |
Medium 2 | |||
Boolean | from_dp2 | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
Boolean | linearizeFlowResistance2 | false | = true, use linear relation between m_flow and dp for any flow rate |
Real | deltaM2 | 0.1 | Fraction of nominal flow rate where flow transitions to laminar |
Type | Name | Description |
---|---|---|
FluidPort_a | port_a1 | Fluid connector a1 (positive design flow direction is from port_a1 to port_b1) |
FluidPort_b | port_b1 | Fluid connector b1 (positive design flow direction is from port_a1 to port_b1) |
FluidPort_a | port_a2 | Fluid connector a2 (positive design flow direction is from port_a2 to port_b2) |
FluidPort_b | port_b2 | Fluid connector b2 (positive design flow direction is from port_a2 to port_b2) |
Counterflow coil with discretization along the flow paths and without humidity condensation
Model of a discretized coil without water vapor condensation.
The coil consists of two flow paths which are, at the design flow direction,
in opposite direction to model a counterflow heat exchanger.
The flow paths are discretized into nEle
elements.
Each element is modeled by an instance of
Buildings.Fluid.HeatExchangers.BaseClasses.HexElement.
Each element has a state variable for the metal. Depending
on the value of the boolean parameters steadyState_1
and
steadyState_2
, the fluid states are modeled dynamically or in steady
state.
The convective heat transfer coefficients can, for each fluid individually, be computed as a function of the flow rate and/or the temperature, or assigned to a constant. This computation is done using an instance of Buildings.Fluid.HeatExchangers.BaseClasses.HADryCoil.
To model humidity condensation, use the model Buildings.Fluid.HeatExchangers.WetCoilCounterFlow instead of this model, as this model computes only sensible heat transfer.
Extends from Fluid.Interfaces.PartialFourPortInterface (Partial model transporting fluid between two ports without storing mass or energy), Buildings.Fluid.Interfaces.FourPortFlowResistanceParameters (Parameters for flow resistance for models with four ports).
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium1 | PartialMedium | Medium 1 in the component | |
replaceable package Medium2 | PartialMedium | Medium 2 in the component | |
Nominal condition | |||
MassFlowRate | m1_flow_nominal | Nominal mass flow rate [kg/s] | |
MassFlowRate | m2_flow_nominal | Nominal mass flow rate [kg/s] | |
Pressure | dp1_nominal | Pressure [Pa] | |
Pressure | dp2_nominal | Pressure [Pa] | |
ThermalConductance | UA_nominal | Thermal conductance at nominal flow, used to compute heat capacity [W/K] | |
Real | r_nominal | 2/3 | Ratio between air-side and water-side convective heat transfer coefficient |
Time | tau1 | 20 | Time constant at nominal flow for medium 1 [s] |
Time | tau2 | 1 | Time constant at nominal flow for medium 2 [s] |
Time | tau_m | 20 | Time constant of metal at nominal UA value [s] |
Initialization | |||
MassFlowRate | m1_flow.start | 0 | Mass flow rate from port_a1 to port_b1 (m1_flow > 0 is design flow direction) [kg/s] |
Pressure | dp1.start | 0 | Pressure difference between port_a1 and port_b1 [Pa] |
MassFlowRate | m2_flow.start | 0 | Mass flow rate from port_a2 to port_b2 (m2_flow > 0 is design flow direction) [kg/s] |
Pressure | dp2.start | 0 | Pressure difference between port_a2 and port_b2 [Pa] |
Geometry | |||
Integer | nEle | 4 | Number of pipe segments used for discretization |
Assumptions | |||
Boolean | allowFlowReversal1 | system.allowFlowReversal | = true to allow flow reversal in medium 1, false restricts to design direction (port_a -> port_b) |
Boolean | allowFlowReversal2 | system.allowFlowReversal | = true to allow flow reversal in medium 2, false restricts to design direction (port_a -> port_b) |
Advanced | |||
Initialization | |||
SpecificEnthalpy | h_outflow_a1_start | Medium1.h_default | Start value for enthalpy flowing out of port a1 [J/kg] |
SpecificEnthalpy | h_outflow_b1_start | Medium1.h_default | Start value for enthalpy flowing out of port b1 [J/kg] |
SpecificEnthalpy | h_outflow_a2_start | Medium2.h_default | Start value for enthalpy flowing out of port a2 [J/kg] |
SpecificEnthalpy | h_outflow_b2_start | Medium2.h_default | Start value for enthalpy flowing out of port b2 [J/kg] |
MassFlowRate | m1_flow_small | 1E-4*abs(m1_flow_nominal) | Small mass flow rate for regularization of zero flow [kg/s] |
MassFlowRate | m2_flow_small | 1E-4*abs(m2_flow_nominal) | Small mass flow rate for regularization of zero flow [kg/s] |
Diagnostics | |||
Boolean | show_T | false | = true, if actual temperature at port is computed |
Flow resistance | |||
Medium 1 | |||
Boolean | computeFlowResistance1 | false | =true, compute flow resistance. Set to false to assume no friction |
Boolean | from_dp1 | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
Boolean | linearizeFlowResistance1 | false | = true, use linear relation between m_flow and dp for any flow rate |
Real | deltaM1 | 0.1 | Fraction of nominal flow rate where flow transitions to laminar |
Medium 2 | |||
Boolean | computeFlowResistance2 | false | =true, compute flow resistance. Set to false to assume no friction |
Boolean | from_dp2 | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
Boolean | linearizeFlowResistance2 | false | = true, use linear relation between m_flow and dp for any flow rate |
Real | deltaM2 | 0.1 | Fraction of nominal flow rate where flow transitions to laminar |
Dynamics | |||
Equations | |||
Dynamics | energyDynamics1 | Modelica.Fluid.Types.Dynamic... | Default formulation of energy balances for volume 1 |
Dynamics | energyDynamics2 | Modelica.Fluid.Types.Dynamic... | Default formulation of energy balances for volume 2 |
Heat transfer | |||
Boolean | waterSideFlowDependent | true | Set to false to make water-side hA independent of mass flow rate |
Boolean | airSideFlowDependent | true | Set to false to make air-side hA independent of mass flow rate |
Boolean | waterSideTemperatureDependent | false | Set to false to make water-side hA independent of temperature |
Boolean | airSideTemperatureDependent | false | Set to false to make air-side hA independent of temperature |
Type | Name | Description |
---|---|---|
FluidPort_a | port_a1 | Fluid connector a1 (positive design flow direction is from port_a1 to port_b1) |
FluidPort_b | port_b1 | Fluid connector b1 (positive design flow direction is from port_a1 to port_b1) |
FluidPort_a | port_a2 | Fluid connector a2 (positive design flow direction is from port_a2 to port_b2) |
FluidPort_b | port_b2 | Fluid connector b2 (positive design flow direction is from port_a2 to port_b2) |
Coil with discretization along the flow paths and no humidity condensation
Model of a discretized coil with no water vapor condensation.
The coil consists of nReg
registers
that are perpendicular to the air flow path. Each register consists of nPipPar
parallel pipes, and each pipe can be divided into nPipSeg
pipe segments along
the pipe length. Thus, the smallest element of the coil consists of a pipe
segment. Each pipe segment is modeled by an instance of
Buildings.Fluid.HeatExchangers.BaseClasses.HexElement.
Each element has a state variable for the metal. Depending
on the value of the boolean parameters steadyState_1
and
steadyState_2
, the fluid states are modeled dynamically or in steady
state.
If the parameter steadyStateDuctConnection
is set the false
, then
a mixing volume of length dl
is added to the duct connection. This can
help reducing the dimension of the nonlinear system of equations.
The convective heat transfer coefficients can, for each fluid individually, be computed as a function of the flow rate and/or the temperature, or assigned to a constant. This computation is done using an instance of Buildings.Fluid.HeatExchangers.BaseClasses.HADryCoil.
In this model, the water (or liquid) flow path
needs to be connected to port_a1
and port_b1
, and
the air flow path need to be connected to the other two ports.
To model humidity condensation, use the model Buildings.Fluid.HeatExchangers.WetCoilDiscretized instead of this model, as this model computes only sensible heat transfer.
Extends from Fluid.Interfaces.PartialFourPortInterface (Partial model transporting fluid between two ports without storing mass or energy), Buildings.Fluid.Interfaces.FourPortFlowResistanceParameters (Parameters for flow resistance for models with four ports).
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium1 | PartialMedium | Medium 1 in the component | |
replaceable package Medium2 | PartialMedium | Medium 2 in the component | |
Nominal condition | |||
MassFlowRate | m1_flow_nominal | Nominal mass flow rate [kg/s] | |
MassFlowRate | m2_flow_nominal | Nominal mass flow rate [kg/s] | |
Pressure | dp1_nominal | Pressure [Pa] | |
Pressure | dp2_nominal | Pressure [Pa] | |
ThermalConductance | UA_nominal | Thermal conductance at nominal flow, used to compute heat capacity [W/K] | |
Time | tau1 | 20 | Time constant at nominal flow for medium 1 [s] |
Time | tau2 | 1 | Time constant at nominal flow for medium 2 [s] |
Time | tau_m | 20 | Time constant of metal at nominal UA value [s] |
Initialization | |||
MassFlowRate | m1_flow.start | 0 | Mass flow rate from port_a1 to port_b1 (m1_flow > 0 is design flow direction) [kg/s] |
Pressure | dp1.start | 0 | Pressure difference between port_a1 and port_b1 [Pa] |
MassFlowRate | m2_flow.start | 0 | Mass flow rate from port_a2 to port_b2 (m2_flow > 0 is design flow direction) [kg/s] |
Pressure | dp2.start | 0 | Pressure difference between port_a2 and port_b2 [Pa] |
MassFlowRate | mStart_flow_a1 | m1_flow_nominal | Guess value for mass flow rate at port_a1 [kg/s] |
MassFlowRate | mStart_flow_a2 | m2_flow_nominal | Guess value for mass flow rate at port_a2 [kg/s] |
Geometry | |||
Integer | nReg | 2 | Number of registers |
Integer | nPipPar | 3 | Number of parallel pipes in each register |
Integer | nPipSeg | 4 | Number of pipe segments per register used for discretization |
Length | dh1 | 0.025 | Hydraulic diameter for a single pipe [m] |
Length | dh2 | 1 | Hydraulic diameter for duct [m] |
Assumptions | |||
Boolean | allowFlowReversal1 | system.allowFlowReversal | = true to allow flow reversal in medium 1, false restricts to design direction (port_a -> port_b) |
Boolean | allowFlowReversal2 | system.allowFlowReversal | = true to allow flow reversal in medium 2, false restricts to design direction (port_a -> port_b) |
Advanced | |||
Initialization | |||
SpecificEnthalpy | h_outflow_a1_start | Medium1.h_default | Start value for enthalpy flowing out of port a1 [J/kg] |
SpecificEnthalpy | h_outflow_b1_start | Medium1.h_default | Start value for enthalpy flowing out of port b1 [J/kg] |
SpecificEnthalpy | h_outflow_a2_start | Medium2.h_default | Start value for enthalpy flowing out of port a2 [J/kg] |
SpecificEnthalpy | h_outflow_b2_start | Medium2.h_default | Start value for enthalpy flowing out of port b2 [J/kg] |
MassFlowRate | m1_flow_small | 1E-4*abs(m1_flow_nominal) | Small mass flow rate for regularization of zero flow [kg/s] |
MassFlowRate | m2_flow_small | 1E-4*abs(m2_flow_nominal) | Small mass flow rate for regularization of zero flow [kg/s] |
Boolean | use_dh1 | false | Set to true to specify hydraulic diameter for pipe pressure drop |
Boolean | use_dh2 | false | Set to true to specify hydraulic diameter for duct pressure drop) |
Real | ReC_1 | 4000 | Reynolds number where transition to turbulent starts inside pipes |
Real | ReC_2 | 4000 | Reynolds number where transition to turbulent starts inside ducts |
Diagnostics | |||
Boolean | show_T | false | = true, if actual temperature at port is computed |
Flow resistance | |||
Medium 1 | |||
Boolean | computeFlowResistance1 | true | =true, compute flow resistance. Set to false to assume no friction |
Boolean | from_dp1 | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
Boolean | linearizeFlowResistance1 | false | = true, use linear relation between m_flow and dp for any flow rate |
Real | deltaM1 | 0.1 | Fraction of nominal flow rate where flow transitions to laminar |
Medium 2 | |||
Boolean | computeFlowResistance2 | true | =true, compute flow resistance. Set to false to assume no friction |
Boolean | from_dp2 | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
Boolean | linearizeFlowResistance2 | false | = true, use linear relation between m_flow and dp for any flow rate |
Real | deltaM2 | 0.1 | Fraction of nominal flow rate where flow transitions to laminar |
Dynamics | |||
Equations | |||
Dynamics | energyDynamics1 | Modelica.Fluid.Types.Dynamic... | Default formulation of energy balances for volume 1 |
Dynamics | energyDynamics2 | Modelica.Fluid.Types.Dynamic... | Default formulation of energy balances for volume 2 |
Dynamics | ductConnectionDynamics | Modelica.Fluid.Types.Dynamic... | Default formulation of energy balances for duct connection |
Length | dl | 0.3 | Length of mixing volume for duct connection [m] |
Heat transfer | |||
Boolean | waterSideFlowDependent | false | Set to false to make water-side hA independent of mass flow rate |
Boolean | airSideFlowDependent | false | Set to false to make air-side hA independent of mass flow rate |
Boolean | waterSideTemperatureDependent | false | Set to false to make water-side hA independent of temperature |
Type | Name | Description |
---|---|---|
FluidPort_a | port_a1 | Fluid connector a1 (positive design flow direction is from port_a1 to port_b1) |
FluidPort_b | port_b1 | Fluid connector b1 (positive design flow direction is from port_a1 to port_b1) |
FluidPort_a | port_a2 | Fluid connector a2 (positive design flow direction is from port_a2 to port_b2) |
FluidPort_b | port_b2 | Fluid connector b2 (positive design flow direction is from port_a2 to port_b2) |
Heat exchanger with effectiveness - NTU relation and no moisture condensation
Model of a heat exchanger without humidity condensation. This model transfers heat in the amount of
Q = Qmax ε
ε = f(NTU, Z, flowRegime),
where Qmax is the maximum heat that can be transferred, ε is the heat transfer effectiveness, NTU is the Number of Transfer Units, Z is the ratio of minimum to maximum capacity flow rate and flowRegime is the heat exchanger flow regime. such as parallel flow, cross flow or counter flow.
The flow regimes depend on the heat exchanger configuration. All configurations defined in Buildings.Fluid.Types.HeatExchangerConfiguration are supported.
For a heat and moisture exchanger, use Buildings.Fluid.MassExchangers.ConstantEffectiveness instead of this model.
Extends from Buildings.Fluid.HeatExchangers.BaseClasses.PartialEffectiveness (Partial model to implement heat exchangers based on effectiveness model).
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium1 | PartialMedium | Medium 1 in the component | |
replaceable package Medium2 | PartialMedium | Medium 2 in the component | |
HeatFlowRate | Q1_flow | eps*QMax_flow | Heat transfered into the medium 1 [W] |
MassFlowRate | mWat1_flow | 0 | Moisture mass flow rate added to the medium 1 [kg/s] |
HeatFlowRate | Q2_flow | -Q1_flow | Heat transfered into the medium 2 [W] |
MassFlowRate | mWat2_flow | 0 | Moisture mass flow rate added to the medium 2 [kg/s] |
Boolean | sensibleOnly1 | true | Set to true if sensible exchange only for medium 1 |
Boolean | sensibleOnly2 | true | Set to true if sensible exchange only for medium 2 |
HeatExchangerConfiguration | configuration | Heat exchanger configuration | |
Real | r_nominal | 2/3 | Ratio between air-side and water-side convective heat transfer (hA-value) at nominal condition |
Nominal condition | |||
MassFlowRate | m1_flow_nominal | Nominal mass flow rate [kg/s] | |
MassFlowRate | m2_flow_nominal | Nominal mass flow rate [kg/s] | |
Pressure | dp1_nominal | Pressure [Pa] | |
Pressure | dp2_nominal | Pressure [Pa] | |
HeatFlowRate | Q_flow_nominal | Nominal heat transfer [W] | |
Temperature | T_a1_nominal | Nominal temperature at port a1 [K] | |
Temperature | T_a2_nominal | Nominal temperature at port a2 [K] | |
Initialization | |||
MassFlowRate | m1_flow.start | 0 | Mass flow rate from port_a1 to port_b1 (m1_flow > 0 is design flow direction) [kg/s] |
Pressure | dp1.start | 0 | Pressure difference between port_a1 and port_b1 [Pa] |
MassFlowRate | m2_flow.start | 0 | Mass flow rate from port_a2 to port_b2 (m2_flow > 0 is design flow direction) [kg/s] |
Pressure | dp2.start | 0 | Pressure difference between port_a2 and port_b2 [Pa] |
Assumptions | |||
Boolean | allowFlowReversal1 | system.allowFlowReversal | = true to allow flow reversal in medium 1, false restricts to design direction (port_a -> port_b) |
Boolean | allowFlowReversal2 | system.allowFlowReversal | = true to allow flow reversal in medium 2, false restricts to design direction (port_a -> port_b) |
Advanced | |||
Initialization | |||
SpecificEnthalpy | h_outflow_a1_start | Medium1.h_default | Start value for enthalpy flowing out of port a1 [J/kg] |
SpecificEnthalpy | h_outflow_b1_start | Medium1.h_default | Start value for enthalpy flowing out of port b1 [J/kg] |
SpecificEnthalpy | h_outflow_a2_start | Medium2.h_default | Start value for enthalpy flowing out of port a2 [J/kg] |
SpecificEnthalpy | h_outflow_b2_start | Medium2.h_default | Start value for enthalpy flowing out of port b2 [J/kg] |
MassFlowRate | m1_flow_small | 1E-4*abs(m1_flow_nominal) | Small mass flow rate for regularization of zero flow [kg/s] |
MassFlowRate | m2_flow_small | 1E-4*abs(m2_flow_nominal) | Small mass flow rate for regularization of zero flow [kg/s] |
Boolean | homotopyInitialization | true | = true, use homotopy method |
Diagnostics | |||
Boolean | show_T | false | = true, if actual temperature at port is computed |
Flow resistance | |||
Medium 1 | |||
Boolean | from_dp1 | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
Boolean | linearizeFlowResistance1 | false | = true, use linear relation between m_flow and dp for any flow rate |
Real | deltaM1 | 0.1 | Fraction of nominal flow rate where flow transitions to laminar |
Medium 2 | |||
Boolean | from_dp2 | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
Boolean | linearizeFlowResistance2 | false | = true, use linear relation between m_flow and dp for any flow rate |
Real | deltaM2 | 0.1 | Fraction of nominal flow rate where flow transitions to laminar |
Type | Name | Description |
---|---|---|
FluidPort_a | port_a1 | Fluid connector a1 (positive design flow direction is from port_a1 to port_b1) |
FluidPort_b | port_b1 | Fluid connector b1 (positive design flow direction is from port_a1 to port_b1) |
FluidPort_a | port_a2 | Fluid connector a2 (positive design flow direction is from port_a2 to port_b2) |
FluidPort_b | port_b2 | Fluid connector b2 (positive design flow direction is from port_a2 to port_b2) |
Heater or cooler with prescribed heat flow rate
Model for an ideal heater or cooler with prescribed heat flow rate to the medium.
This model adds heat in the amount of Q_flow = u Q_flow_nominal
to the medium.
The input signal u
and the nominal heat flow rate Q_flow_nominal
can be positive or negative.
Extends from Buildings.Fluid.Interfaces.TwoPortHeatMassExchanger (Partial model transporting one fluid stream with storing mass or energy).
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium | PartialMedium | Medium in the component | |
HeatFlowRate | Q_flow_nominal | Heat flow rate at u=1, positive for heating [W] | |
Nominal condition | |||
MassFlowRate | m_flow_nominal | Nominal mass flow rate [kg/s] | |
Pressure | dp_nominal | Pressure [Pa] | |
Initialization | |||
MassFlowRate | m_flow.start | 0 | Mass flow rate from port_a to port_b (m_flow > 0 is design flow direction) [kg/s] |
Pressure | dp.start | 0 | Pressure difference between port_a and port_b [Pa] |
Assumptions | |||
Boolean | allowFlowReversal | system.allowFlowReversal | = true to allow flow reversal, false restricts to design direction (port_a -> port_b) |
Advanced | |||
MassFlowRate | m_flow_small | 1E-4*abs(m_flow_nominal) | Small mass flow rate for regularization of zero flow [kg/s] |
Boolean | homotopyInitialization | true | = true, use homotopy method |
Diagnostics | |||
Boolean | show_T | false | = true, if actual temperature at port is computed |
Flow resistance | |||
Boolean | from_dp | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
Boolean | linearizeFlowResistance | false | = true, use linear relation between m_flow and dp for any flow rate |
Real | deltaM | 0.1 | Fraction of nominal flow rate where flow transitions to laminar |
Dynamics | |||
Nominal condition | |||
Time | tau | 30 | Time constant at nominal flow (if energyDynamics <> SteadyState) [s] |
Equations | |||
Dynamics | energyDynamics | Modelica.Fluid.Types.Dynamic... | Formulation of energy balance |
Dynamics | massDynamics | energyDynamics | Formulation of mass balance |
Initialization | |||
AbsolutePressure | p_start | Medium.p_default | Start value of pressure [Pa] |
Temperature | T_start | Medium.T_default | Start value of temperature [K] |
MassFraction | X_start[Medium.nX] | Medium.X_default | Start value of mass fractions m_i/m [kg/kg] |
ExtraProperty | C_start[Medium.nC] | fill(0, Medium.nC) | Start value of trace substances |
Type | Name | Description |
---|---|---|
FluidPort_a | port_a | Fluid connector a (positive design flow direction is from port_a to port_b) |
FluidPort_b | port_b | Fluid connector b (positive design flow direction is from port_a to port_b) |
input RealInput | u | Control input |
Counterflow coil with discretization along the flow paths and humidity condensation
Model of a discretized coil with water vapor condensation.
The coil consists of two flow paths which are, at the design flow direction,
in opposite direction to model a counterflow heat exchanger.
The flow paths are discretized into nEle
elements.
Each element is modeled by an instance of
Buildings.Fluid.HeatExchangers.BaseClasses.HexElement.
Each element has a state variable for the metal. Depending
on the value of the boolean parameters steadyState_1
and
steadyState_2
, the fluid states are modeled dynamically or in steady
state.
The convective heat transfer coefficients can, for each fluid individually, be computed as a function of the flow rate and/or the temperature, or assigned to a constant. This computation is done using an instance of Buildings.Fluid.HeatExchangers.BaseClasses.HADryCoil.
In this model, the water (or liquid) flow path
needs to be connected to port_a1
and port_b1
, and
the air flow path needs to be connected to the other two ports.
The mass transfer from the fluid 2 to the metal is computed using a similarity law between heat and mass transfer, as implemented by the model Buildings.Fluid.HeatExchangers.BaseClasses.MassExchange.
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.PerfectGases.MoistAir and
Modelica.Media.Air.MoistAir.
To model this coil for conditions without humidity condensation, use the model Buildings.Fluid.HeatExchangers.DryCoilCounterFlow instead of this model.
Extends from Buildings.Fluid.HeatExchangers.DryCoilCounterFlow (Counterflow coil with discretization along the flow paths and without humidity condensation).
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium1 | PartialMedium | Medium 1 in the component | |
replaceable package Medium2 | PartialMedium | Medium 2 in the component | |
Nominal condition | |||
MassFlowRate | m1_flow_nominal | Nominal mass flow rate [kg/s] | |
MassFlowRate | m2_flow_nominal | Nominal mass flow rate [kg/s] | |
Pressure | dp1_nominal | Pressure [Pa] | |
Pressure | dp2_nominal | Pressure [Pa] | |
ThermalConductance | UA_nominal | Thermal conductance at nominal flow, used to compute heat capacity [W/K] | |
Real | r_nominal | 2/3 | Ratio between air-side and water-side convective heat transfer coefficient |
Time | tau1 | 20 | Time constant at nominal flow for medium 1 [s] |
Time | tau2 | 1 | Time constant at nominal flow for medium 2 [s] |
Time | tau_m | 20 | Time constant of metal at nominal UA value [s] |
Initialization | |||
MassFlowRate | m1_flow.start | 0 | Mass flow rate from port_a1 to port_b1 (m1_flow > 0 is design flow direction) [kg/s] |
Pressure | dp1.start | 0 | Pressure difference between port_a1 and port_b1 [Pa] |
MassFlowRate | m2_flow.start | 0 | Mass flow rate from port_a2 to port_b2 (m2_flow > 0 is design flow direction) [kg/s] |
Pressure | dp2.start | 0 | Pressure difference between port_a2 and port_b2 [Pa] |
Geometry | |||
Integer | nEle | 4 | Number of pipe segments used for discretization |
Assumptions | |||
Boolean | allowFlowReversal1 | system.allowFlowReversal | = true to allow flow reversal in medium 1, false restricts to design direction (port_a -> port_b) |
Boolean | allowFlowReversal2 | system.allowFlowReversal | = true to allow flow reversal in medium 2, false restricts to design direction (port_a -> port_b) |
Advanced | |||
Initialization | |||
SpecificEnthalpy | h_outflow_a1_start | Medium1.h_default | Start value for enthalpy flowing out of port a1 [J/kg] |
SpecificEnthalpy | h_outflow_b1_start | Medium1.h_default | Start value for enthalpy flowing out of port b1 [J/kg] |
SpecificEnthalpy | h_outflow_a2_start | Medium2.h_default | Start value for enthalpy flowing out of port a2 [J/kg] |
SpecificEnthalpy | h_outflow_b2_start | Medium2.h_default | Start value for enthalpy flowing out of port b2 [J/kg] |
MassFlowRate | m1_flow_small | 1E-4*abs(m1_flow_nominal) | Small mass flow rate for regularization of zero flow [kg/s] |
MassFlowRate | m2_flow_small | 1E-4*abs(m2_flow_nominal) | Small mass flow rate for regularization of zero flow [kg/s] |
Diagnostics | |||
Boolean | show_T | false | = true, if actual temperature at port is computed |
Flow resistance | |||
Medium 1 | |||
Boolean | from_dp1 | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
Boolean | linearizeFlowResistance1 | false | = true, use linear relation between m_flow and dp for any flow rate |
Real | deltaM1 | 0.1 | Fraction of nominal flow rate where flow transitions to laminar |
Medium 2 | |||
Boolean | from_dp2 | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
Boolean | linearizeFlowResistance2 | false | = true, use linear relation between m_flow and dp for any flow rate |
Real | deltaM2 | 0.1 | Fraction of nominal flow rate where flow transitions to laminar |
Dynamics | |||
Equations | |||
Dynamics | energyDynamics1 | Modelica.Fluid.Types.Dynamic... | Default formulation of energy balances for volume 1 |
Dynamics | energyDynamics2 | Modelica.Fluid.Types.Dynamic... | Default formulation of energy balances for volume 2 |
Heat transfer | |||
Boolean | waterSideFlowDependent | true | Set to false to make water-side hA independent of mass flow rate |
Boolean | airSideFlowDependent | true | Set to false to make air-side hA independent of mass flow rate |
Boolean | waterSideTemperatureDependent | false | Set to false to make water-side hA independent of temperature |
Boolean | airSideTemperatureDependent | false | Set to false to make air-side hA independent of temperature |
Type | Name | Description |
---|---|---|
FluidPort_a | port_a1 | Fluid connector a1 (positive design flow direction is from port_a1 to port_b1) |
FluidPort_b | port_b1 | Fluid connector b1 (positive design flow direction is from port_a1 to port_b1) |
FluidPort_a | port_a2 | Fluid connector a2 (positive design flow direction is from port_a2 to port_b2) |
FluidPort_b | port_b2 | Fluid connector b2 (positive design flow direction is from port_a2 to port_b2) |
Coil with discretization along the flow paths and humidity condensation
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.PerfectGases.MoistAir and
Modelica.Media.Air.MoistAir.
Extends from DryCoilDiscretized (Coil with discretization along the flow paths and no humidity condensation).
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium1 | PartialMedium | Medium 1 in the component | |
replaceable package Medium2 | PartialMedium | Medium 2 in the component | |
Nominal condition | |||
MassFlowRate | m1_flow_nominal | Nominal mass flow rate [kg/s] | |
MassFlowRate | m2_flow_nominal | Nominal mass flow rate [kg/s] | |
Pressure | dp1_nominal | Pressure [Pa] | |
Pressure | dp2_nominal | Pressure [Pa] | |
ThermalConductance | UA_nominal | Thermal conductance at nominal flow, used to compute heat capacity [W/K] | |
Time | tau1 | 20 | Time constant at nominal flow for medium 1 [s] |
Time | tau2 | 1 | Time constant at nominal flow for medium 2 [s] |
Time | tau_m | 20 | Time constant of metal at nominal UA value [s] |
Initialization | |||
MassFlowRate | m1_flow.start | 0 | Mass flow rate from port_a1 to port_b1 (m1_flow > 0 is design flow direction) [kg/s] |
Pressure | dp1.start | 0 | Pressure difference between port_a1 and port_b1 [Pa] |
MassFlowRate | m2_flow.start | 0 | Mass flow rate from port_a2 to port_b2 (m2_flow > 0 is design flow direction) [kg/s] |
Pressure | dp2.start | 0 | Pressure difference between port_a2 and port_b2 [Pa] |
MassFlowRate | mStart_flow_a1 | m1_flow_nominal | Guess value for mass flow rate at port_a1 [kg/s] |
MassFlowRate | mStart_flow_a2 | m2_flow_nominal | Guess value for mass flow rate at port_a2 [kg/s] |
Geometry | |||
Integer | nReg | 2 | Number of registers |
Integer | nPipPar | 3 | Number of parallel pipes in each register |
Integer | nPipSeg | 4 | Number of pipe segments per register used for discretization |
Length | dh1 | 0.025 | Hydraulic diameter for a single pipe [m] |
Length | dh2 | 1 | Hydraulic diameter for duct [m] |
Assumptions | |||
Boolean | allowFlowReversal1 | system.allowFlowReversal | = true to allow flow reversal in medium 1, false restricts to design direction (port_a -> port_b) |
Boolean | allowFlowReversal2 | system.allowFlowReversal | = true to allow flow reversal in medium 2, false restricts to design direction (port_a -> port_b) |
Advanced | |||
Initialization | |||
SpecificEnthalpy | h_outflow_a1_start | Medium1.h_default | Start value for enthalpy flowing out of port a1 [J/kg] |
SpecificEnthalpy | h_outflow_b1_start | Medium1.h_default | Start value for enthalpy flowing out of port b1 [J/kg] |
SpecificEnthalpy | h_outflow_a2_start | Medium2.h_default | Start value for enthalpy flowing out of port a2 [J/kg] |
SpecificEnthalpy | h_outflow_b2_start | Medium2.h_default | Start value for enthalpy flowing out of port b2 [J/kg] |
MassFlowRate | m1_flow_small | 1E-4*abs(m1_flow_nominal) | Small mass flow rate for regularization of zero flow [kg/s] |
MassFlowRate | m2_flow_small | 1E-4*abs(m2_flow_nominal) | Small mass flow rate for regularization of zero flow [kg/s] |
Boolean | use_dh1 | false | Set to true to specify hydraulic diameter for pipe pressure drop |
Boolean | use_dh2 | false | Set to true to specify hydraulic diameter for duct pressure drop) |
Real | ReC_1 | 4000 | Reynolds number where transition to turbulent starts inside pipes |
Real | ReC_2 | 4000 | Reynolds number where transition to turbulent starts inside ducts |
Diagnostics | |||
Boolean | show_T | false | = true, if actual temperature at port is computed |
Flow resistance | |||
Medium 1 | |||
Boolean | from_dp1 | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
Boolean | linearizeFlowResistance1 | false | = true, use linear relation between m_flow and dp for any flow rate |
Real | deltaM1 | 0.1 | Fraction of nominal flow rate where flow transitions to laminar |
Medium 2 | |||
Boolean | from_dp2 | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
Boolean | linearizeFlowResistance2 | false | = true, use linear relation between m_flow and dp for any flow rate |
Real | deltaM2 | 0.1 | Fraction of nominal flow rate where flow transitions to laminar |
Dynamics | |||
Equations | |||
Dynamics | energyDynamics1 | Modelica.Fluid.Types.Dynamic... | Default formulation of energy balances for volume 1 |
Dynamics | energyDynamics2 | Modelica.Fluid.Types.Dynamic... | Default formulation of energy balances for volume 2 |
Dynamics | ductConnectionDynamics | Modelica.Fluid.Types.Dynamic... | Default formulation of energy balances for duct connection |
Length | dl | 0.3 | Length of mixing volume for duct connection [m] |
Heat transfer | |||
Boolean | waterSideFlowDependent | false | Set to false to make water-side hA independent of mass flow rate |
Boolean | airSideFlowDependent | false | Set to false to make air-side hA independent of mass flow rate |
Boolean | waterSideTemperatureDependent | false | Set to false to make water-side hA independent of temperature |
Type | Name | Description |
---|---|---|
FluidPort_a | port_a1 | Fluid connector a1 (positive design flow direction is from port_a1 to port_b1) |
FluidPort_b | port_b1 | Fluid connector b1 (positive design flow direction is from port_a1 to port_b1) |
FluidPort_a | port_a2 | Fluid connector a2 (positive design flow direction is from port_a2 to port_b2) |
FluidPort_b | port_b2 | Fluid connector b2 (positive design flow direction is from port_a2 to port_b2) |