Package with base classes for Buildings.Fluid.HeatExchangers
This package contains base classes that are used to construct the models in Buildings.Fluid.HeatExchangers.
Extends from Modelica.Icons.BasesPackage (Icon for packages containing base classes).
Name | Description |
---|---|
CoilHeader | Header for a heat exchanger register |
CoilRegister | Register for a heat exchanger |
DuctManifoldFixedResistance | Manifold for a heat exchanger air duct connection |
DuctManifoldFlowDistributor | Manifold for duct inlet that distributes the mass flow rate equally |
DuctManifoldNoResistance | Duct manifold without resistance |
HACoilInside | Calculates the hA value for water inside a coil |
HADryCoil | Sensible convective heat transfer model for air to water coil |
HANaturalCylinder | Calculates an hA value for natural convection around a cylinder |
HexElementLatent | Element of a heat exchanger |
HexElementSensible | Element of a heat exchanger with humidity condensation of fluid 2 |
Internal | Solve f(x, data) for x with given f |
MassExchange | Block to compute the latent heat transfer based on the Lewis number |
PartialDuctManifold | Partial manifold for heat exchanger duct connection |
PartialDuctPipeManifold | Partial heat exchanger duct and pipe manifold |
PartialEffectiveness | Partial model to implement heat exchangers based on effectiveness model |
PartialHexElement | Element of a heat exchanger 2 |
PartialPipeManifold | Partial pipe manifold for a heat exchanger |
PipeManifoldFixedResistance | Pipe manifold for a heat exchanger connection |
PipeManifoldFlowDistributor | Manifold for heat exchanger register that distributes the mass flow rate equally |
PipeManifoldNoResistance | Manifold for heat exchanger register |
RayleighNumber | Calculates the Rayleigh number for a given fluid and characteristic length |
appartusDewPoint | Computes the apparatus dewpoint temperature |
dynamicViscosityWater | Returns the dynamic viscosity for water |
epsilon_C | Computes heat exchanger effectiveness for given capacity flow rates and heat exchanger flow regime |
epsilon_ntuZ | Computes heat exchanger effectiveness for given number of transfer units and heat exchanger flow regime |
isobaricExpansionCoefficientWater | Returns the isobaric expansion coefficient for water |
lmtd | Log-mean temperature difference |
ntu_epsilonZ | Computes number of transfer units for given heat exchanger effectiveness and heat exchanger flow regime |
prandtlNumberWater | Returns the Prandtl number for water |
Examples | Collection of models that illustrate model use and test models |
Header for a heat exchanger register
Header for a heat exchanger coil.
This model connects the flow between its ports without modeling flow friction. Currently, the ports are connected without redistributing the flow. In latter versions, the model may be changed to define different flow reroutings in the coil header.
Extends from Buildings.BaseClasses.BaseIcon (Base icon).
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium | Modelica.Media.Interfaces.Pa... | Medium in the component | |
Integer | nPipPar | Number of parallel pipes in each register | |
Initialization | |||
MassFlowRate | mStart_flow_a | Guess value for mass flow rate at port_a [kg/s] | |
Assumptions | |||
Boolean | allowFlowReversal | true | = true to allow flow reversal, false restricts to design direction (port_a -> port_b) |
Type | Name | Description |
---|---|---|
replaceable package Medium | Medium in the component | |
FluidPort_a | port_a[nPipPar] | Fluid connector a for medium (positive design flow direction is from port_a to port_b) |
FluidPort_b | port_b[nPipPar] | Fluid connector b for medium (positive design flow direction is from port_a to port_b) |
Register for a heat exchanger
Register of a heat exchanger with dynamics on the fluids and the solid. The register represents one array of pipes that are perpendicular to the air stream. The hA value for both fluids is an input. The driving force for the heat transfer is the temperature difference between the fluid volumes and the solid in each heat exchanger element.
Extends from Buildings.Fluid.Interfaces.FourPortFlowResistanceParameters (Parameters for flow resistance for models with four ports).
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium1 | Modelica.Media.Interfaces.Pa... | Medium 1 in the component | |
replaceable package Medium2 | Modelica.Media.Interfaces.Pa... | Medium 2 in the component | |
Integer | nPipPar | 2 | Number of parallel pipes in each register |
Integer | nPipSeg | 3 | Number of pipe segments per register used for discretization |
HexElementSensible | ele[nPipPar, nPipSeg] | redeclare Buildings.Fluid.He... | Element of a heat exchanger |
Nominal condition | |||
Pressure | dp1_nominal | Pressure difference [Pa] | |
Pressure | dp2_nominal | Pressure difference [Pa] | |
ThermalConductance | UA_nominal | Thermal conductance at nominal flow, used to compute time constant [W/K] | |
MassFlowRate | m1_flow_nominal | Mass flow rate medim 1 [kg/s] | |
MassFlowRate | m2_flow_nominal | Mass flow rate medium 2 [kg/s] | |
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 | 60 | Time constant of metal at nominal UA value [s] |
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 |
Assumptions | |||
Boolean | allowFlowReversal1 | true | = true to allow flow reversal in medium 1, false restricts to design direction (port_a -> port_b) |
Boolean | allowFlowReversal2 | true | = true to allow flow reversal in medium 2, false restricts to design direction (port_a -> port_b) |
Dynamics | |||
Equations | |||
Dynamics | energyDynamics | Modelica.Fluid.Types.Dynamic... | Default formulation of energy balances |
Type | Name | Description |
---|---|---|
replaceable package Medium1 | Medium 1 in the component | |
replaceable package Medium2 | Medium 2 in the component | |
FluidPort_a | port_a1[nPipPar] | Fluid connector a for medium 1 (positive design flow direction is from port_a1 to port_b1) |
FluidPort_b | port_b1[nPipPar] | Fluid connector b for medium 1 (positive design flow direction is from port_a to port_b) |
FluidPort_a | port_a2[nPipPar, nPipSeg] | Fluid connector a for medium 2 (positive design flow direction is from port_a2 to port_b2) |
FluidPort_b | port_b2[nPipPar, nPipSeg] | Fluid connector b for medium 2 (positive design flow direction is from port_a to port_b) |
input RealInput | Gc_2 | Signal representing the convective thermal conductance medium 2 in [W/K] |
input RealInput | Gc_1 | Signal representing the convective thermal conductance medium 1 in [W/K] |
Manifold for a heat exchanger air duct connection
Duct manifold with a fixed flow resistance.
This model is composed of a pressure drop calculation, and
a flow distributor. The flow distributor distributes the
mass flow rate equally to each instance of port_b
,
without having to compute a pressure drop in each flow leg.
Note: It is important that there is an equal pressure drop in each flow leg between this model, and the model that collects the flows. Otherwise, no solution may exist, and therefore the simulation may stop with an error.
Extends from PartialDuctManifold (Partial manifold for heat exchanger duct connection).
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium | PartialMedium | Medium in the component | |
Integer | nPipPar | Number of parallel pipes in each register | |
Integer | nPipSeg | Number of pipe segments per register used for discretization | |
Boolean | use_dh | false | Set to true to specify hydraulic diameter |
Length | dh | 1 | Hydraulic diameter of duct [m] |
Real | ReC | 4000 | Reynolds number where transition to turbulent starts |
Real | deltaM | 0.3 | Fraction of nominal mass flow rate where transition to turbulent occurs |
Initialization | |||
MassFlowRate | mStart_flow_a | Guess value for mass flow rate at port_a [kg/s] | |
Nominal Condition | |||
MassFlowRate | m_flow_nominal | Mass flow rate at port_a [kg/s] | |
Pressure | dp_nominal | Pressure [Pa] | |
Assumptions | |||
Boolean | allowFlowReversal | true | = true to allow flow reversal, false restricts to design direction (port_a -> port_b) |
Advanced | |||
Boolean | linearized | false | = true, use linear relation between m_flow and dp for any flow rate |
Boolean | from_dp | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
Type | Name | Description |
---|---|---|
FluidPort_a | port_a | Fluid connector a for medium (positive design flow direction is from port_a to port_b) |
FluidPort_b | port_b[nPipPar, nPipSeg] | Fluid connector b for medium (positive design flow direction is from port_a to port_b) |
Manifold for duct inlet that distributes the mass flow rate equally
This model distributes the mass flow rates equally between all instances
of port_b
.
The model connects the flows between the ports without modeling flow friction. The model is used in conjunction with a manifold that is added to the other side of the heat exchanger registers.
Note: It is important that there is an equal pressure drop in each flow leg between this model, and the model that collects the flows. Otherwise, no solution may exist. Hence, only use this model if you know what you are doing.
Extends from PartialDuctManifold (Partial manifold for heat exchanger duct connection).
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium | PartialMedium | Medium in the component | |
Integer | nPipPar | Number of parallel pipes in each register | |
Integer | nPipSeg | Number of pipe segments per register used for discretization | |
Initialization | |||
MassFlowRate | mStart_flow_a | Guess value for mass flow rate at port_a [kg/s] | |
Nominal Condition | |||
MassFlowRate | m_flow_nominal | Mass flow rate at port_a [kg/s] | |
Assumptions | |||
Boolean | allowFlowReversal | true | = true to allow flow reversal, false restricts to design direction (port_a -> port_b) |
Type | Name | Description |
---|---|---|
FluidPort_a | port_a | Fluid connector a for medium (positive design flow direction is from port_a to port_b) |
FluidPort_b | port_b[nPipPar, nPipSeg] | Fluid connector b for medium (positive design flow direction is from port_a to port_b) |
Duct manifold without resistance
Duct manifold without flow resistance.
This model connects the flows between the ports without modeling flow friction. The model is used in conjunction with a manifold which contains pressure drop elements and that is added to the other side of the heat exchanger registers.
Extends from PartialDuctManifold (Partial manifold for heat exchanger duct connection).
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium | PartialMedium | Medium in the component | |
Integer | nPipPar | Number of parallel pipes in each register | |
Integer | nPipSeg | Number of pipe segments per register used for discretization | |
Initialization | |||
MassFlowRate | mStart_flow_a | Guess value for mass flow rate at port_a [kg/s] | |
Assumptions | |||
Boolean | allowFlowReversal | true | = true to allow flow reversal, false restricts to design direction (port_a -> port_b) |
Type | Name | Description |
---|---|---|
FluidPort_a | port_a | Fluid connector a for medium (positive design flow direction is from port_a to port_b) |
FluidPort_b | port_b[nPipPar, nPipSeg] | Fluid connector b for medium (positive design flow direction is from port_a to port_b) |
Calculates the hA value for water inside a coil
Model for convective heat transfer coefficients inside a coil. Optionally, the convective heat transfer coefficient can be computed as a function of temperature and mass flow rate.
Extends from Buildings.BaseClasses.BaseIcon (Base icon).
Type | Name | Default | Description |
---|---|---|---|
Real | n | 0.85 | Water-side exponent for convective heat transfer coefficient, h proportional to m_flow^n |
Nominal condition | |||
MassFlowRate | m_flow_nominal | Water mass flow rate [kg/s] | |
ThermalConductance | hA_nominal | Convective heat transfer coefficient [W/K] | |
Temperature | T_nominal | Modelica.SIunits.Conversions... | Nominal water temperature [K] |
Advanced | |||
Modeling detail | |||
Boolean | flowDependent | true | Set to false to make hA independent of mass flow rate |
Boolean | temperatureDependent | true | Set to false to make hA independent of temperature |
Type | Name | Description |
---|---|---|
input RealInput | m_flow | Mass flow rate [kg/s] |
input RealInput | T | Temperature [K] |
output RealOutput | hA | Inside convective heat transfer [W/K] |
Sensible convective heat transfer model for air to water coil
Model for sensible convective heat transfer coefficients for an air to water coil.
This model computes the convective heat transfer coefficient for an air to water coil. The parameters allow a user to enable or disable, individually for each medium, the mass flow and/or the temperature dependence of the convective heat transfer coefficients. For a detailed explanation of the equation, see the references below.
Extends from Buildings.BaseClasses.BaseIcon (Base icon).
Type | Name | Default | Description |
---|---|---|---|
Real | n_w | 0.85 | Water-side exponent for convective heat transfer coefficient, h~m_flow^n |
Real | n_a | 0.8 | Air-side exponent for convective heat transfer coefficient, h~m_flow^n |
Nominal condition | |||
ThermalConductance | UA_nominal | Thermal conductance at nominal flow [W/K] | |
MassFlowRate | m_flow_nominal_w | Water mass flow rate [kg/s] | |
MassFlowRate | m_flow_nominal_a | Air mass flow rate [kg/s] | |
Real | r_nominal | 0.5 | Ratio between air-side and water-side convective heat transfer coefficient |
ThermalConductance | hA_nominal_w | UA_nominal*(r_nominal + 1)/r... | Water side convective heat transfer coefficient [W/K] |
ThermalConductance | hA_nominal_a | r_nominal*hA_nominal_w | Air side convective heat transfer coefficient, including fin resistance [W/K] |
Temperature | T0_w | Modelica.SIunits.Conversions... | Water temperature [K] |
Temperature | T0_a | Modelica.SIunits.Conversions... | Air temperature [K] |
Advanced | |||
Modeling detail | |||
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 | true | Set to false to make water-side hA independent of temperature |
Boolean | airSideTemperatureDependent | true | Set to false to make air-side hA independent of temperature |
Type | Name | Description |
---|---|---|
input RealInput | m1_flow | Mass flow rate medium 1 |
input RealInput | m2_flow | Mass flow rate medium 2 |
input RealInput | T_1 | Temperature medium 1 |
input RealInput | T_2 | Temperature medium 2 |
output RealOutput | hA_1 | Convective heat transfer medium 1 |
output RealOutput | hA_2 | Convective heat transfer medium 2 |
Calculates an hA value for natural convection around a cylinder
This model calculates the convection coefficient h for natural convection from a cylinder submerged in fluid. h is calcualted using Eq 9.34 from Incropera and DeWitt (1996). Output of the block is the hA value.
The Nusselt number is computed as
NuD = (0.6 + (0.387 RaD(1/6))/(1+(0.559 Pr) (9/16))(8/27))2);
where NuD is the Nusselt number, RaD is the
Rayleigh number and
Pr is the Prandtl number.
This correclation is accurate for RaD less than 1012.
h is then calculated from the Nusselt number. The equation is
h = NuD k/D
where k is the thermal conductivity of the fluid and D is the diameter of the submerged cylinder.
Fundamentals of Heat and Mass Transfer (Fourth Edition), Frank Incropera and David DeWitt, John Wiley and Sons, 1996
Extends from Modelica.Blocks.Icons.Block (Basic graphical layout of input/output block).
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium | Modelica.Media.Interfaces.Pa... | Medium inside the tank | |
Diameter | ChaLen | Characteristic length of the cylinder [m] | |
Nominal condition | |||
ThermalConductance | hA_nominal | Convective heat transfer coefficient [W/K] | |
Temperature | TFlu_nominal | Fluid temperature at hA_nominal [K] | |
Temperature | TSur_nominal | Surface temperature at hA_nominal [K] |
Type | Name | Description |
---|---|---|
replaceable package Medium | Medium inside the tank | |
input RealInput | TSur | Temperature of the external surface of the heat exchanger [K] |
input RealInput | TFlu | Temperature of the fluid in the heat exchanger [K] |
output RealOutput | hA | hA-value of the heat exchanger [W/K] |
Element of a heat exchanger
Element of a heat exchanger with humidity condensation of fluid 2 and with dynamics of the fluids and the solid.
See Buildings.Fluid.HeatExchangers.BaseClasses.PartialHexElement for a description of the physics.
Extends from Buildings.Fluid.HeatExchangers.BaseClasses.PartialHexElement (Element of a heat exchanger 2).
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium1 | PartialMedium | Medium 1 in the component | |
replaceable package Medium2 | PartialMedium | Medium 2 in the component | |
HeatCapacity | C | 2*UA_nominal*tau_m | Heat capacity of metal (= cp*m) [J/K] |
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 difference [Pa] | |
Pressure | dp2_nominal | Pressure difference [Pa] | |
ThermalConductance | UA_nominal | Thermal conductance at nominal flow, used to compute time constant [W/K] | |
Time | tau_m | 60 | 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] |
Assumptions | |||
Boolean | allowFlowReversal1 | true | = true to allow flow reversal in medium 1, false restricts to design direction (port_a -> port_b) |
Boolean | allowFlowReversal2 | true | = true to allow flow reversal in medium 2, false restricts to design direction (port_a -> port_b) |
Advanced | |||
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 |
Dynamics | |||
Nominal condition | |||
Time | tau1 | 30 | Time constant at nominal flow [s] |
Time | tau2 | 30 | Time constant at nominal flow [s] |
Equations | |||
Dynamics | energyDynamics | Modelica.Fluid.Types.Dynamic... | Formulation of energy balance |
Dynamics | massDynamics | energyDynamics | Formulation of mass balance |
Initialization | |||
Medium 1 | |||
AbsolutePressure | p1_start | Medium1.p_default | Start value of pressure [Pa] |
Temperature | T1_start | Medium1.T_default | Start value of temperature [K] |
MassFraction | X1_start[Medium1.nX] | Medium1.X_default | Start value of mass fractions m_i/m [kg/kg] |
ExtraProperty | C1_start[Medium1.nC] | fill(0, Medium1.nC) | Start value of trace substances |
ExtraProperty | C1_nominal[Medium1.nC] | fill(1E-2, Medium1.nC) | Nominal value of trace substances. (Set to typical order of magnitude.) |
Medium 2 | |||
AbsolutePressure | p2_start | Medium2.p_default | Start value of pressure [Pa] |
Temperature | T2_start | Medium2.T_default | Start value of temperature [K] |
MassFraction | X2_start[Medium2.nX] | Medium2.X_default | Start value of mass fractions m_i/m [kg/kg] |
ExtraProperty | C2_start[Medium2.nC] | fill(0, Medium2.nC) | Start value of trace substances |
ExtraProperty | C2_nominal[Medium2.nC] | fill(1E-2, Medium2.nC) | Nominal value of trace substances. (Set to typical order of magnitude.) |
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) |
input RealInput | Gc_1 | Signal representing the convective thermal conductance medium 1 in [W/K] |
input RealInput | Gc_2 | Signal representing the convective thermal conductance medium 2 in [W/K] |
Element of a heat exchanger with humidity condensation of fluid 2
Element of a heat exchanger with humidity condensation and with dynamics of the fluids and the solid.
See Buildings.Fluid.HeatExchangers.BaseClasses.PartialHexElement for a description of the physics.
Extends from Buildings.Fluid.HeatExchangers.BaseClasses.PartialHexElement (Element of a heat exchanger 2).
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium1 | PartialMedium | Medium 1 in the component | |
replaceable package Medium2 | PartialMedium | Medium 2 in the component | |
HeatCapacity | C | 2*UA_nominal*tau_m | Heat capacity of metal (= cp*m) [J/K] |
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 difference [Pa] | |
Pressure | dp2_nominal | Pressure difference [Pa] | |
ThermalConductance | UA_nominal | Thermal conductance at nominal flow, used to compute time constant [W/K] | |
Time | tau_m | 60 | 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] |
Assumptions | |||
Boolean | allowFlowReversal1 | true | = true to allow flow reversal in medium 1, false restricts to design direction (port_a -> port_b) |
Boolean | allowFlowReversal2 | true | = true to allow flow reversal in medium 2, false restricts to design direction (port_a -> port_b) |
Advanced | |||
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 |
Dynamics | |||
Nominal condition | |||
Time | tau1 | 30 | Time constant at nominal flow [s] |
Time | tau2 | 30 | Time constant at nominal flow [s] |
Equations | |||
Dynamics | energyDynamics | Modelica.Fluid.Types.Dynamic... | Formulation of energy balance |
Dynamics | massDynamics | energyDynamics | Formulation of mass balance |
Initialization | |||
Medium 1 | |||
AbsolutePressure | p1_start | Medium1.p_default | Start value of pressure [Pa] |
Temperature | T1_start | Medium1.T_default | Start value of temperature [K] |
MassFraction | X1_start[Medium1.nX] | Medium1.X_default | Start value of mass fractions m_i/m [kg/kg] |
ExtraProperty | C1_start[Medium1.nC] | fill(0, Medium1.nC) | Start value of trace substances |
ExtraProperty | C1_nominal[Medium1.nC] | fill(1E-2, Medium1.nC) | Nominal value of trace substances. (Set to typical order of magnitude.) |
Medium 2 | |||
AbsolutePressure | p2_start | Medium2.p_default | Start value of pressure [Pa] |
Temperature | T2_start | Medium2.T_default | Start value of temperature [K] |
MassFraction | X2_start[Medium2.nX] | Medium2.X_default | Start value of mass fractions m_i/m [kg/kg] |
ExtraProperty | C2_start[Medium2.nC] | fill(0, Medium2.nC) | Start value of trace substances |
ExtraProperty | C2_nominal[Medium2.nC] | fill(1E-2, Medium2.nC) | Nominal value of trace substances. (Set to typical order of magnitude.) |
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) |
input RealInput | Gc_1 | Signal representing the convective thermal conductance medium 1 in [W/K] |
input RealInput | Gc_2 | Signal representing the convective thermal conductance medium 2 in [W/K] |
Block to compute the latent heat transfer based on the Lewis number
This model computes the mass transfer based on similarity laws between the convective sensible heat transfer coefficient and the mass transfer coefficient.
Using the Lewis number which is defined as the ratio between the heat and mass diffusion coefficients, one can obtain the ratio between convection heat transfer coefficient h in (W/(m^2*K)) and mass transfer coefficient hm in (m/s) as follows:
h ⁄ hm = ρ cp Le(1-n) ⁄ hm
where ρ is the mass density, cp is the specific heat capacity of the bulk medium and n is a coefficient from the boundary layer analysis, which is typically n=1/3. From this equation, we can compute the water vapor mass flow rate nA in (kg/s) as
nA = Gc ⁄ (cp Le(1-n)) (Xs - X∞),
where Gc is the sensible heat conductivity in (W/K) and Xs and X∞ are the water vapor mass per unit volume in the boundary layer and in the bulk of the medium. In this model, Xs is the saturation water vapor pressure corresponding to the temperature Tsur which is an input.
Extends from Buildings.BaseClasses.BaseIcon (Base icon).
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium | Modelica.Media.Interfaces.Pa... | Fluid medium model | |
Real | Le | 1 | Lewis number (around 1 for water vapor in air) |
Real | n | 1/3 | Exponent in bondary layer ratio, delta/delta_t = Pr^n |
Type | Name | Description |
---|---|---|
replaceable package Medium | Fluid medium model | |
input RealInput | XInf | Water mass fraction of medium |
input RealInput | TSur | Surface temperature [K] |
output RealOutput | mWat_flow | Water flow rate [kg/s] |
output RealOutput | TLiq | Temperature at which condensate drains from system [K] |
input RealInput | Gc | Signal representing the convective (sensible) thermal conductance in [W/K] |
Partial manifold for heat exchanger duct connection
Partial duct manifold for a heat exchanger.
This model defines the duct connection to a heat exchanger. It is extended by other models that model the flow connection between the ports with and without flow friction.
Extends from PartialDuctPipeManifold (Partial heat exchanger duct and pipe manifold).
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium | PartialMedium | Medium in the component | |
Integer | nPipPar | Number of parallel pipes in each register | |
Integer | nPipSeg | Number of pipe segments per register used for discretization | |
Initialization | |||
MassFlowRate | mStart_flow_a | Guess value for mass flow rate at port_a [kg/s] | |
Assumptions | |||
Boolean | allowFlowReversal | true | = true to allow flow reversal, false restricts to design direction (port_a -> port_b) |
Type | Name | Description |
---|---|---|
FluidPort_a | port_a | Fluid connector a for medium (positive design flow direction is from port_a to port_b) |
FluidPort_b | port_b[nPipPar, nPipSeg] | Fluid connector b for medium (positive design flow direction is from port_a to port_b) |
Partial heat exchanger duct and pipe manifold
Partial heat exchanger manifold. This partial model defines ports and parameters that are used for air-side and water-side heat exchanger manifolds.
Extends from Buildings.BaseClasses.BaseIcon (Base icon).
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium | Modelica.Media.Interfaces.Pa... | Medium in the component | |
Integer | nPipPar | Number of parallel pipes in each register | |
Initialization | |||
MassFlowRate | mStart_flow_a | Guess value for mass flow rate at port_a [kg/s] | |
Assumptions | |||
Boolean | allowFlowReversal | true | = true to allow flow reversal, false restricts to design direction (port_a -> port_b) |
Type | Name | Description |
---|---|---|
replaceable package Medium | Medium in the component | |
FluidPort_a | port_a | Fluid connector a for medium (positive design flow direction is from port_a to port_b) |
Partial model to implement heat exchangers based on effectiveness model
Partial model to implement heat exchanger models.
Classes that extend this model need to implement heat and mass balance equations in a form like
// transferred heat Q1_flow = eps * QMax_flow; // no heat loss to ambient 0 = Q1_flow + Q2_flow; // no mass exchange mXi1_flow = zeros(Medium1.nXi); mXi2_flow = zeros(Medium2.nXi);
Thus, if medium 1 is heated in this device, then Q1_flow > 0
and QMax_flow > 0
.
Extends from Fluid.Interfaces.StaticFourPortHeatMassExchanger (Partial model transporting two fluid streams between four ports without storing mass or energy).
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium1 | PartialMedium | Medium 1 in the component | |
replaceable package Medium2 | PartialMedium | Medium 2 in the component | |
Boolean | sensibleOnly1 | Set to true if sensible exchange only for medium 1 | |
Boolean | sensibleOnly2 | Set to true if sensible exchange only for medium 2 | |
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 difference [Pa] | |
Pressure | dp2_nominal | Pressure difference [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 | true | = true to allow flow reversal in medium 1, false restricts to design direction (port_a -> port_b) |
Boolean | allowFlowReversal2 | true | = 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) |
Element of a heat exchanger 2
Element of a heat exchanger with dynamics of the fluids and the solid. The hA value for both fluids is an input. The driving force for the heat transfer is the temperature difference between the fluid volumes and the solid.
The heat capacity C of the metal is assigned as follows. Suppose the metal temperature is governed by
C dT ⁄ dt = (hA)1 (T1 - T) + (hA)2 (T2 - T)
where hA are the convective heat transfer coefficients times heat transfer area that also take into account heat conduction in the heat exchanger fins and T1 and T2 are the medium temperatures. Assuming (hA)1=(hA)2, this equation can be rewritten as
C dT ⁄ dt = 2 (UA)0 ( (T1 - T) + (T2 - T) )
where (UA)0 is the UA value at nominal conditions. Hence we set the heat capacity of the metal to
C = 2 (UA)0 τm
where τm is the time constant that the metal of the heat exchanger has if the metal is approximated by a lumped thermal mass.
Note: This model is introduced to allow the instances
Buildings.Fluid.HeatExchangers.BaseClasses.HexElementLatent
and
Buildings.Fluid.HeatExchangers.BaseClasses.HexElementSensible
to redeclare the volume as final
, thereby avoiding
that a GUI displays the volume as a replaceable component.
Extends from Buildings.Fluid.Interfaces.FourPortHeatMassExchanger (Model transporting two fluid streams between four ports with storing mass or energy).
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium1 | PartialMedium | Medium 1 in the component | |
replaceable package Medium2 | PartialMedium | Medium 2 in the component | |
MixingVolume | vol2 | redeclare Buildings.Fluid.Mi... | Volume for fluid 2 |
HeatCapacity | C | 2*UA_nominal*tau_m | Heat capacity of metal (= cp*m) [J/K] |
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 difference [Pa] | |
Pressure | dp2_nominal | Pressure difference [Pa] | |
ThermalConductance | UA_nominal | Thermal conductance at nominal flow, used to compute time constant [W/K] | |
Time | tau_m | 60 | 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] |
Assumptions | |||
Boolean | allowFlowReversal1 | true | = true to allow flow reversal in medium 1, false restricts to design direction (port_a -> port_b) |
Boolean | allowFlowReversal2 | true | = true to allow flow reversal in medium 2, false restricts to design direction (port_a -> port_b) |
Advanced | |||
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 |
Dynamics | |||
Nominal condition | |||
Time | tau1 | 30 | Time constant at nominal flow [s] |
Time | tau2 | 30 | Time constant at nominal flow [s] |
Equations | |||
Dynamics | energyDynamics | Modelica.Fluid.Types.Dynamic... | Formulation of energy balance |
Dynamics | massDynamics | energyDynamics | Formulation of mass balance |
Initialization | |||
Medium 1 | |||
AbsolutePressure | p1_start | Medium1.p_default | Start value of pressure [Pa] |
Temperature | T1_start | Medium1.T_default | Start value of temperature [K] |
MassFraction | X1_start[Medium1.nX] | Medium1.X_default | Start value of mass fractions m_i/m [kg/kg] |
ExtraProperty | C1_start[Medium1.nC] | fill(0, Medium1.nC) | Start value of trace substances |
ExtraProperty | C1_nominal[Medium1.nC] | fill(1E-2, Medium1.nC) | Nominal value of trace substances. (Set to typical order of magnitude.) |
Medium 2 | |||
AbsolutePressure | p2_start | Medium2.p_default | Start value of pressure [Pa] |
Temperature | T2_start | Medium2.T_default | Start value of temperature [K] |
MassFraction | X2_start[Medium2.nX] | Medium2.X_default | Start value of mass fractions m_i/m [kg/kg] |
ExtraProperty | C2_start[Medium2.nC] | fill(0, Medium2.nC) | Start value of trace substances |
ExtraProperty | C2_nominal[Medium2.nC] | fill(1E-2, Medium2.nC) | Nominal value of trace substances. (Set to typical order of magnitude.) |
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) |
input RealInput | Gc_1 | Signal representing the convective thermal conductance medium 1 in [W/K] |
input RealInput | Gc_2 | Signal representing the convective thermal conductance medium 2 in [W/K] |
Partial pipe manifold for a heat exchanger
Partial pipe manifold for a heat exchanger.
This model defines the pipe connection to a heat exchanger. It is extended by other models that model the flow connection between the ports with and without flow friction.
Extends from PartialDuctPipeManifold (Partial heat exchanger duct and pipe manifold).
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium | PartialMedium | Medium in the component | |
Integer | nPipPar | Number of parallel pipes in each register | |
Initialization | |||
MassFlowRate | mStart_flow_a | Guess value for mass flow rate at port_a [kg/s] | |
Assumptions | |||
Boolean | allowFlowReversal | true | = true to allow flow reversal, false restricts to design direction (port_a -> port_b) |
Type | Name | Description |
---|---|---|
FluidPort_a | port_a | Fluid connector a for medium (positive design flow direction is from port_a to port_b) |
FluidPort_b | port_b[nPipPar] | Fluid connector b for medium (positive design flow direction is from port_a to port_b) |
Pipe manifold for a heat exchanger connection
Pipe manifold with a fixed flow resistance.
This model is composed of a pressure drop calculation, and
a flow distributor. The flow distributor distributes the
mass flow rate equally to each instance of port_b
,
without having to compute a pressure drop in each flow leg.
Note: It is important that there is an equal pressure drop in each flow leg between this model, and the model that collects the flows. Otherwise, no solution may exist, and therefore the simulation may stop with an error.
Extends from PartialPipeManifold (Partial pipe manifold for a heat exchanger).
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium | PartialMedium | Medium in the component | |
Integer | nPipPar | Number of parallel pipes in each register | |
Boolean | use_dh | false | Set to true to specify hydraulic diameter |
Length | dh | 0.025 | Hydraulic diameter for each pipe [m] |
Real | ReC | 4000 | Reynolds number where transition to turbulent starts |
Real | deltaM | 0.3 | Fraction of nominal mass flow rate where transition to turbulent occurs |
Initialization | |||
MassFlowRate | mStart_flow_a | Guess value for mass flow rate at port_a [kg/s] | |
Nominal Condition | |||
MassFlowRate | m_flow_nominal | Mass flow rate at port_a [kg/s] | |
Pressure | dp_nominal | Pressure [Pa] | |
Assumptions | |||
Boolean | allowFlowReversal | true | = true to allow flow reversal, false restricts to design direction (port_a -> port_b) |
Advanced | |||
Boolean | linearized | false | = true, use linear relation between m_flow and dp for any flow rate |
Boolean | from_dp | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
Type | Name | Description |
---|---|---|
FluidPort_a | port_a | Fluid connector a for medium (positive design flow direction is from port_a to port_b) |
FluidPort_b | port_b[nPipPar] | Fluid connector b for medium (positive design flow direction is from port_a to port_b) |
Manifold for heat exchanger register that distributes the mass flow rate equally
This model distributes the mass flow rates equally between all instances
of port_b
.
This model connects the flows between the ports without
modeling flow friction.
The model assigns an equal mass flow rate to each element of
port_b
.
The model is used in conjunction with
a manifold that
is added to the other side of the heat exchanger registers.
Note: It is important that there is an equal pressure drop in each flow leg between this model, and the model that collects the flows. Otherwise, no solution may exist, and therefore the simulation may stop with an error.
Extends from PartialPipeManifold (Partial pipe manifold for a heat exchanger).
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium | PartialMedium | Medium in the component | |
Integer | nPipPar | Number of parallel pipes in each register | |
Initialization | |||
MassFlowRate | mStart_flow_a | Guess value for mass flow rate at port_a [kg/s] | |
Assumptions | |||
Boolean | allowFlowReversal | true | = true to allow flow reversal, false restricts to design direction (port_a -> port_b) |
Type | Name | Description |
---|---|---|
FluidPort_a | port_a | Fluid connector a for medium (positive design flow direction is from port_a to port_b) |
FluidPort_b | port_b[nPipPar] | Fluid connector b for medium (positive design flow direction is from port_a to port_b) |
Manifold for heat exchanger register
Pipe manifold without flow resistance.
This model connects the flows between the ports without modeling flow friction. The model is used in conjunction with a manifold which contains pressure drop elements and that is added to the other side of the heat exchanger registers.
Extends from PartialPipeManifold (Partial pipe manifold for a heat exchanger).
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium | PartialMedium | Medium in the component | |
Integer | nPipPar | Number of parallel pipes in each register | |
Boolean | connectAllPressures | true | |
Initialization | |||
MassFlowRate | mStart_flow_a | Guess value for mass flow rate at port_a [kg/s] | |
Assumptions | |||
Boolean | allowFlowReversal | true | = true to allow flow reversal, false restricts to design direction (port_a -> port_b) |
Type | Name | Description |
---|---|---|
FluidPort_a | port_a | Fluid connector a for medium (positive design flow direction is from port_a to port_b) |
FluidPort_b | port_b[nPipPar] | Fluid connector b for medium (positive design flow direction is from port_a to port_b) |
Calculates the Rayleigh number for a given fluid and characteristic length
This model calculates the rayleigh number for a given fluid and characteristic length. It is calculated using Eq 9.25 in Incropera and DeWitt (1996). The equation is:
RaL = GrL Pr (g B (TS - TF) L3) /(ν*α)
where:
RaL is the Rayleigh number, GrL is the Grashof number, Pr
is the Prandtl number, g is gravity, B is the isobaric expansion coefficient,
TS is the temperature of the surface, TF is the temperature of the
fluid, L is the characteristic length, ν is the kinematic viscosity and α
is the thermal diffusivity.
This model is currently only used in natural convection calculations for water. As a result, the calculations reference functions to identify properties of water instead of a medium model.
Fundamentals of Heat and Mass Transfer (Fourth Edition), Frank Incropera and David DeWitt, John Wiley and Sons, 1996
Extends from Modelica.Blocks.Icons.Block (Basic graphical layout of input/output block).
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium | Modelica.Media.Interfaces.Pa... | Fluid medium model | |
Diameter | ChaLen | Characteristic length [m] |
Type | Name | Description |
---|---|---|
replaceable package Medium | Fluid medium model | |
input RealInput | TSur | Surface temperature of the HX [K] |
output RealOutput | Ra | Rayleigh number |
output RealOutput | Pr | Prandlt number |
input RealInput | TFlu | Temperature of the surrounding fluid [K] |
Computes the apparatus dewpoint temperature
This function computes iteratively the apparatus dew point temperature for a cooling coil. The apparatus dew point temperature is defined as in the HVAC2 Toolkit (Brandemuehl et al. 1993), namely as the intersection of the line between coil air inlet state (T,X) and outlet state, and the saturation line.
This function does its own iterations to find a solution because a solution may not exist or not be unique because the saturation line is convex. Therefore, this function searches for the solution starting at the air inlet temperature and progressively reduces the guess value for the apparatus dew point temperature. When a temperature below the apparatus dew point temperature has been found, it is rejected, and the search continues with a smaller step until the step size is smaller than a prescribed value. This ensures that the solution corresponding to the higher temperature is found. If no solution can be found, the function stops the simulation.
Brandemuehl, Michael, Shauna Gabel and Inger Andresen. HVAC2 Toolkit, A toolkit for secondary HVAC system energy calculations. ASHRAE, Atlanta. 1993.
Type | Name | Default | Description |
---|---|---|---|
Temperature | TAir_in | Air inlet temperature at design condition [K] | |
Temperature | TAir_out | Air inlet temperature at design condition [K] | |
MassFraction | XW_in | Water vapor concentration at coil inlet at design condition [1] | |
MassFraction | XW_out | Water vapor concentration at coil outlet at design condition [1] |
Type | Name | Description |
---|---|---|
Temperature | T_dp | Apparatus dew point temperature [K] |
MassFraction | XW_dp | Water vapor concentration at apparatus dew point [1] |
Real | m | Slope, used to compute apparatus dewpoint temperature [1/K] |
Returns the dynamic viscosity for water
This function is used to identify the dynamic viscosity of water at a given temperature. The function used is a fourth order polynomial fit to data from Incropera and Dewitt (1996).
Fundamentals of Heat and Mass Transfer (Fourth Edition), Frank Incropera and David P. Dewitt, John Wiley & Sons, 1996
Type | Name | Default | Description |
---|---|---|---|
Temperature | T | Thermodynamic state record [K] |
Type | Name | Description |
---|---|---|
DynamicViscosity | mu | Dynamic viscosity [Pa.s] |
Computes heat exchanger effectiveness for given capacity flow rates and heat exchanger flow regime
This function computes the heat exchanger effectiveness, the Number of Transfer Units, and the capacity flow ratio for given capacity flow rates.
The implementation allows for zero flow rate.
As CMin_flow
crosses delta*CMin_flow_nominal
from above,
the Number of Transfer Units and the heat exchanger effectiveness go to zero.
The different options for the flow regime are declared in Buildings.Fluid.Types.HeatExchangerFlowRegime.
Type | Name | Default | Description |
---|---|---|---|
ThermalConductance | UA | UA value [W/K] | |
ThermalConductance | C1_flow | Enthalpy flow rate medium 1 [W/K] | |
ThermalConductance | C2_flow | Enthalpy flow rate medium 2 [W/K] | |
Integer | flowRegime | Heat exchanger flow regime, see Buildings.Fluid.Types.HeatExchangerFlowRegime | |
ThermalConductance | CMin_flow_nominal | Minimum enthalpy flow rate at nominal condition [W/K] | |
ThermalConductance | CMax_flow_nominal | Maximum enthalpy flow rate at nominal condition [W/K] | |
Real | delta | 1E-3 | Small value used for smoothing |
Type | Name | Description |
---|---|---|
Real | eps | Heat exchanger effectiveness |
Real | NTU | Number of transfer units |
Real | Z | Ratio of capacity flow rate (CMin/CMax) |
Computes heat exchanger effectiveness for given number of transfer units and heat exchanger flow regime
This function computes the heat exchanger effectiveness for a given number of transfer units, capacity flow ratio and heat exchanger flow regime. The different options for the flow regime are declared in Buildings.Fluid.Types.HeatExchangerFlowRegime.
Type | Name | Default | Description |
---|---|---|---|
Real | NTU | Number of transfer units | |
Real | Z | Ratio of capacity flow rate (CMin/CMax) | |
Integer | flowRegime | Heat exchanger flow regime, see Buildings.Fluid.Types.HeatExchangerFlowRegime |
Type | Name | Description |
---|---|---|
Real | eps | Heat exchanger effectiveness |
Returns the isobaric expansion coefficient for water
This function is used to identify the isobaric expansion coefficient of water at a given temperature. The function used is a fourth order polynomial fit to data from Incropera and Dewitt (1996).
Fundamentals of Heat and Mass Transfer (Fourth Edition), Frank Incropera and David P. Dewitt, John Wiley & Sons, 1996
Type | Name | Default | Description |
---|---|---|---|
Temperature | T | Thermodynamic state record [K] |
Type | Name | Description |
---|---|---|
Real | beta | Dynamic viscosity [1/K] |
Log-mean temperature difference
This function computes the log mean temperature difference of a heat exchanger.
Note that the implementation requires the temperature differences to be non-zero.
Type | Name | Default | Description |
---|---|---|---|
Temperature | T_a1 | Temperature at port a1 [K] | |
Temperature | T_b1 | Temperature at port b1 [K] | |
Temperature | T_a2 | Temperature at port a2 [K] | |
Temperature | T_b2 | Temperature at port b2 [K] |
Type | Name | Description |
---|---|---|
TemperatureDifference | lmtd | Log-mean temperature difference [K] |
Computes number of transfer units for given heat exchanger effectiveness and heat exchanger flow regime
This function computes the number of transfer units for a given heat exchanger effectiveness, capacity flow ratio and heat exchanger flow regime. The different options for the flow regime are declared in Buildings.Fluid.Types.HeatExchangerFlowRegime.
Note that for the flow regime CrossFlowUnmixed
, computing the
function requires the numerical solution of an equation in one variable.
This is handled internally and not exposed to the global solver.
Type | Name | Default | Description |
---|---|---|---|
Real | eps | Heat exchanger effectiveness | |
Real | Z | Ratio of capacity flow rate (CMin/CMax) | |
Integer | flowRegime | Heat exchanger flow regime |
Type | Name | Description |
---|---|---|
Real | NTU | Number of transfer units |
Returns the Prandtl number for water
This function is used to identify the Prandtl number of water at a given temperature. The function used is a fourth order polynomial fit to data from Incropera and Dewitt (1996).
Fundamentals of Heat and Mass Transfer (Fourth Edition), Frank Incropera and David P. Dewitt, John Wiley & Sons, 1996
Type | Name | Default | Description |
---|---|---|---|
Temperature | T | Thermodynamic state record [K] |
Type | Name | Description |
---|---|---|
Real | Pr | Prandtl number |