modelStratifiedEnhancedInternalHex

A model of a water storage tank with a secondary loop and intenral heat exchanger

Extends from StratifiedEnhanced.

Information

This is a model of a stratified storage tank for thermal energy storage with built-in heat exchanger.

See the IDEAS.Fluid.Storage.UsersGuide for more information.

Limitations

The model requires at least 4 fluid segments. Hence, set nSeg to 4 or higher.

Parameters

TypeNameDefaultDescription
General › Heat exchanger
Modelica.Units.SI.HeighthHex_aHeight of portHex_a of the heat exchanger, measured from tank bottom
Modelica.Units.SI.HeighthHex_bHeight of portHex_b of the heat exchanger, measured from tank bottom
IntegerhexSegMult2Number of heat exchanger segments in each tank segment
Modelica.Units.SI.HeatFlowRateQ_flow_nominalHeat transfer at nominal conditions
Modelica.Units.SI.TemperatureTTan_nominalTemperature of fluid inside the tank at nominal heat transfer conditions
Modelica.Units.SI.TemperatureTHex_nominalTemperature of fluid inside the heat exchanger at nominal heat transfer conditions
Realr_nominal0.5Ratio between coil inside and outside convective heat transfer at nominal heat transfer conditions
Heat exchanger
Modelica.Units.SI.DiameterdExtHex0.025Exterior diameter of the heat exchanger pipe
Modelica.Units.SI.MassFlowRatemHex_flow_nominalNominal mass flow rate through the heat exchanger
Modelica.Units.SI.PressureDifferencedpHex_nominal2500Pressure drop across the heat exchanger at nominal conditions
Flow resistance heat exchanger
BooleancomputeFlowResistancetrue=true, compute flow resistance. Set to false to assume no friction
Booleanfrom_dpfalse= true, use m_flow = f(dp) else dp = f(m_flow)
BooleanlinearizeFlowResistancefalse= true, use linear relation between m_flow and dp for any flow rate
RealdeltaM0.1Fraction of nominal flow rate where flow transitions to laminar
Dynamics heat exchanger › Conservation equations
Modelica.Fluid.Types.DynamicsenergyDynamicsHexModelica.Fluid.Types.Dynamics.DynamicFreeInitialFormulation of energy balance for heat exchanger internal fluid mass
Modelica.Fluid.Types.DynamicsenergyDynamicsHexSolidenergyDynamicsHexFormulation of energy balance for heat exchanger solid mass
Modelica.Units.SI.LengthlHexrTan*abs(segHex_a - segHex_b)*Modelica.Constants.piApproximate length of the heat exchanger
Modelica.Units.SI.AreaACroHex(dExtHex^2 - (0.8*dExtHex)^2)*Modelica.Constants.pi/4Cross sectional area of the heat exchanger
Modelica.Units.SI.SpecificHeatCapacitycHex490Specific heat capacity of the heat exchanger material
Modelica.Units.SI.DensitydHex8000Density of the heat exchanger material
Modelica.Units.SI.HeatCapacityCHexACroHex*lHex*dHex*cHexCapacitance of the heat exchanger without the fluid
Assumptions › Heat exchanger
BooleanallowFlowReversalHextrue= true to allow flow reversal in heat exchanger, false restricts to design direction (portHex_a -> portHex_b)

Components

TypeNameDefaultDescription
Modelica.Fluid.Interfaces.FluidPort_aportHex_aHeat exchanger inlet
Modelica.Fluid.Interfaces.FluidPort_bportHex_bHeat exchanger outlet
BaseClasses.IndirectTankHeatExchangerindTanHexHeat exchanger inside the tank
Modelica.Units.SI.HeatFlowRateQHex_flow-sum(indTanHex.port.Q_flow)Heat transferred from the heat exchanger to the tank

Contents

NameDescription
MediumHexMedium in the heat exchanger

Revisions

  • March 7, 2022, by Michael Wetter:
    Removed massDynamics and massDynamicsHex.
    This is for #1542.
  • June 7, 2018 by Filip Jorissen:
    Copied model from Buildings and update the model accordingly. This is for #314.
  • June 23, 2016, by Michael Wetter:
    Corrected computation of the heat exchanger location which was wrong if hHex_a < hHex_b, e.g., the port a of the heat exchanger is below the port b. This closes issue 531.
  • January 22, 2016, by Michael Wetter:
    Corrected type declaration of pressure difference. This is for #404.
  • July 2, 2015, by Michael Wetter:
    Set the default value energyDynamicsHexSolid=energyDynamicsHex rather than energyDynamicsHexSolid=Modelica.Fluid.Types.Dynamics.DynamicFreeInitial as users are not likely to want different settings.
  • July 1, 2015, by Filip Jorissen:
    Added parameter energyDynamicsHexSolid. This is for #434.
  • March 28, 2015, by Filip Jorissen:
    Propagated allowFlowReversal and m_flow_small.
  • September 2, 2014 by Michael Wetter:
    Replaced the abs() function in the assignment of the parameter nSegHexTan as the return value of abs() is a Real which causes a type error during model check.
  • August 29, 2014 by Michael Wetter:
    Corrected issue #271 which led to a compilation error if the heat exchanger and the tank had different media.
  • April 18, 2014 by Michael Wetter:
    Added missing ceiling function in computation of botHexSeg. Without this function, this parameter can take on zero, which is wrong because the Modelica uses one-based arrays. Revised the model as the old version required the porta of the heat exchanger to be located higher than portb. This makes sense if the heat exchanger is used to heat up the tank, but not if it is used to cool down a tank, such as in a cooling plant. The following parameters were changed:
    1. Changed hexTopHeight to hHex_a.
    2. Changed hexBotHeight to hHex_b.
    3. Changed topHexSeg to segHex_a, and made it protected as this is deduced from hHex_a.
    4. Changed botHexSeg to segHex_b, and made it protected as this is deduced from hHex_b.
    The names of the following ports have been changed:
    1. Changed port_a1 to portHex_a.
    2. Changed port_b1 to portHex_b.
    The conversion script should update old instances of this model automatically in Dymola for all of the above changes.
  • May 10, 2013 by Michael Wetter:
    Removed m_flow_nominal_tank which was not used.
  • January 29, 2013 by Peter Grant:
    First implementation.