modelStorageTankHexEBH

Extends from BaseStations.StorageTankHex.

Information

This is a model for a district heating substation storage tank with an internal heat exchanger and an electric booster heater. Its main components are the storage tank with internal heat exchanger and an electric booster heater, a flow regulating valve/pump, an expansion vessel, a controller that maintains the temperature in the selected tank layer by setting the position of the flow regulating valve/pump to open or closed and a controller that activates the electric booster heater in case the temperature of the standby volume in the tank is too low.

A mismatch between the setpoint and the actual value of the secondary supply temperature can have different reasons:

  • The differential pressure at the station is too low, resulting in a too low mass flow at the primary side even if the valve is completely open.
  • The nominal mass flow rate at the primary side is too low, leading to a too low secondary supply temperature even with a fully opend valve.
  • The supply temperature at the primary side is too low, i.e., lower than the tank temperature setpoint, leading to a fully opened valve

Parameters

TypeNameDefaultDescription
Assumptions
BooleanallowFlowReversal1 (from PartialFourPort)true= false to simplify equations, assuming, but not enforcing, no flow reversal for medium 1
BooleanallowFlowReversal2 (from PartialFourPort)true= false to simplify equations, assuming, but not enforcing, no flow reversal for medium 2
Nominal condition
Modelica.SIunits.MassFlowRatem1_flow_nominal (from PartialFourPortInterface)Nominal mass flow rate
Modelica.SIunits.MassFlowRatem2_flow_nominal (from PartialFourPortInterface)Nominal mass flow rate
Advanced
Medium1.MassFlowRatem1_flow_small (from PartialFourPortInterface)1E-4*abs(m1_flow_nominal)Small mass flow rate for regularization of zero flow
Medium2.MassFlowRatem2_flow_small (from PartialFourPortInterface)1E-4*abs(m2_flow_nominal)Small mass flow rate for regularization of zero flow
Advanced › Diagnostics
Booleanshow_T (from PartialFourPortInterface)false= true, if actual temperature at port is computed
Flow resistance › Primary side
Booleanfrom_dp (from BaseStation)false= true, use m_flow = f(dp) else dp = f(m_flow)
BooleanlinearizeFlowResistance (from BaseStation)false= true, use linear relation between m_flow and dp for any flow rate
Primary side
Modelica.SIunits.PowerQ1_flow_nominal (from BaseStation)m1_flow_nominal*(TemSup1_nominal - TemRet1_nominal)*cp_defaultNominal heat flow rate at primary side
Modelica.SIunits.TemperatureTemSup1_nominal (from BaseStation)80.0 + 273.15Nominal supply temperature
Modelica.SIunits.TemperatureTemRet1_nominal (from BaseStation)45.0 + 273.15Nominal return temperature
Modelica.SIunits.PressureDifferencedp1_nominal (from BaseStation)Nominal pressure difference
Secondary side
Modelica.SIunits.PowerQ2_flow_nominal (from BaseStation)m2_flow_nominal*(TemSup2_nominal - TemRet2_nominal)*cp_defaultNominal heat flow rate at primary side
Modelica.SIunits.TemperatureTemSup2_nominal (from BaseStation)60.0 + 273.15Nominal supply temperature
Modelica.SIunits.TemperatureTemRet2_nominal (from BaseStation)35.0 + 273.15Nominal return temperature
BooleanOutsideDependent (from BaseStation)falseOutside temperature dependent secondary supply temperature
Storage tank
Modelica.SIunits.VolumeVTan (from StorageTankHex)Tank volume
Modelica.SIunits.LengthhTan (from StorageTankHex)Height of tank (without insulation)
Modelica.SIunits.LengthdIns (from StorageTankHex)0.2Thickness of insulation
Modelica.SIunits.ThermalConductivitykIns (from StorageTankHex)0.04Specific heat conductivity of insulation
IntegernSeg (from StorageTankHex)4Number of volume segments
Modelica.SIunits.TemperatureTemRoom (from StorageTankHex)20.0 + 273.15Constant temperature surrounding the storage tank
IntegernInit (from StorageTankHex)nSegNumber of volume segments initialized with TemSup2_nominal
Modelica.SIunits.PressureDifferencedp_hex_nominal (from StorageTankHex)0Nominal pressure difference at the heat exchanger at primary side
Modelica.SIunits.HeighthHex_a (from StorageTankHex)storageTankHex.hTan/2Height of portHex_a of the heat exchanger, measured from tank bottom
Modelica.SIunits.HeighthHex_b (from StorageTankHex)0Height of portHex_b of the heat exchanger, measured from tank bottom
IntegerhexSegMult (from StorageTankHex)2Number of heat exchanger segments in each tank segment
Modelica.SIunits.DiameterdExtHex (from StorageTankHex)0.025Exterior diameter of the heat exchanger pipe
Realr_nominal (from StorageTankHex)0.5Ratio between coil inside and outside convective heat transfer at nominal heat transfer conditions
Flow controller
Modelica.SIunits.TemperatureT_const (from StorageTankHex)TemSup2_nominalConstant temperature setpoint
Modelica.SIunits.TimeTi (from StorageTankHex)120Time constant of Integrator block
Realk (from StorageTankHex)0.01Gain of controller
IntegernSegMeasure (from StorageTankHex)1Volume segment to take temperature from
Electric booster heater
Modelica.SIunits.PowerQ_flow_nominal_EBHQ2_flow_nominalHeat capacity of EBH
Modelica.SIunits.TemperatureT_min_EBHTemSup2_nominal + T_bandwidth_EBH/2.0Reference temperature of EBH
Modelica.SIunits.TemperatureDifferenceT_bandwidth_EBH4.0Temperature bandwidth of EBH
IntegernSegEBH1Number of top tank segments heated by EBH
Modelica.SIunits.Efficiencyeff_EBH0.97Power-to-heat efficiency of EBH

Connectors

TypeNameDefaultDescription
Modelica.Fluid.Interfaces.FluidPort_aport_a1 (from PartialFourPort)Fluid connector a1 (positive design flow direction is from port_a1 to port_b1)
Modelica.Fluid.Interfaces.FluidPort_bport_b1 (from PartialFourPort)Fluid connector b1 (positive design flow direction is from port_a1 to port_b1)
Modelica.Fluid.Interfaces.FluidPort_aport_a2 (from PartialFourPort)Fluid connector a2 (positive design flow direction is from port_a2 to port_b2)
Modelica.Fluid.Interfaces.FluidPort_bport_b2 (from PartialFourPort)Fluid connector b2 (positive design flow direction is from port_a2 to port_b2)
Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_aport_ht (from BaseStation)Outside temperature port
Modelica.Blocks.Interfaces.RealOutputP (from BaseStation)Electric power

Components

TypeNameDefaultDescription
Medium1.MassFlowRatem1_flow (from PartialFourPortInterface)port_a1.m_flowMass flow rate from port_a1 to port_b1 (m1_flow > 0 is design flow direction)
Modelica.SIunits.PressureDifferencedp1 (from PartialFourPortInterface)port_a1.p - port_b1.pPressure difference between port_a1 and port_b1
Medium2.MassFlowRatem2_flow (from PartialFourPortInterface)port_a2.m_flowMass flow rate from port_a2 to port_b2 (m2_flow > 0 is design flow direction)
Modelica.SIunits.PressureDifferencedp2 (from PartialFourPortInterface)port_a2.p - port_b2.pPressure difference between port_a2 and port_b2
Medium1.ThermodynamicStatesta_a1 (from PartialFourPortInterface)Medium1.setState_phX(port_a1.p, noEvent(actualStream(port_a1.h_outflow)), noEvent(actualStream(port_a1.Xi_outflow)))Medium properties in port_a1
Medium1.ThermodynamicStatesta_b1 (from PartialFourPortInterface)Medium1.setState_phX(port_b1.p, noEvent(actualStream(port_b1.h_outflow)), noEvent(actualStream(port_b1.Xi_outflow)))Medium properties in port_b1
Medium2.ThermodynamicStatesta_a2 (from PartialFourPortInterface)Medium2.setState_phX(port_a2.p, noEvent(actualStream(port_a2.h_outflow)), noEvent(actualStream(port_a2.Xi_outflow)))Medium properties in port_a2
Medium2.ThermodynamicStatesta_b2 (from PartialFourPortInterface)Medium2.setState_phX(port_b2.p, noEvent(actualStream(port_b2.h_outflow)), noEvent(actualStream(port_b2.Xi_outflow)))Medium properties in port_b2
Modelica.Blocks.Sources.RealExpressiontotal_power (from BaseStation)sum of all power consumption/generation in component
Storage.StorageTankHexstorageTankHex (from StorageTankHex)
DisHeatLib.Controls.flow_controlstorage_control (from StorageTankHex)
DisHeatLib.BaseClasses.FlowUnitflowUnit (from StorageTankHex)
Storage.BaseClasses.ThermostatMixerthermostatMixer (from StorageTankHex)
Supply.BaseClasses.ElectricHeatingRodEBH