modelActiveStorage

Active storage in district heating grid

Extends from Buildings.Fluid.Interfaces.PartialTwoPortInterface (Partial model with two ports and declaration of quantities that are used by many models), Buildings.Fluid.Interfaces.TwoPortFlowResistanceParameters (Parameters for flow resistance for models with two ports), Buildings.Fluid.Interfaces.LumpedVolumeDeclarations (Declarations for lumped volumes).

Parameters

TypeNameDefaultDescription
IntegernSeg10Number of volume segments
Modelica.SIunits.LengththicknessIns0.1Thickness of insulation
Modelica.SIunits.ThermalConductivitylambdaIns0.05Heat conductivity of insulation
Modelica.SIunits.Lengthdiameter1Pipe diameter (without insulation)
Modelica.SIunits.Volumevolume1Volume of storage tank
Modelica.SIunits.TemperatureDifferencedT_up_min5Discharging: minimum temperature difference between supply set temperature and actual supply temperature were discharging is still possible
Modelica.SIunits.TemperatureDifferencedT_lo_min5Charging: minimum temperature difference between incomming temperature and lower storage temperature until discharging is still possible
Modelica.SIunits.TemperatureDifferencedT_small0.5Minimum temperature difference to compute storage mass flow rate. Used to negleced deviation by zero
Assumptions
BooleanallowFlowReversal (from PartialTwoPort)true= false to simplify equations, assuming, but not enforcing, no flow reversal
Nominal condition
Modelica.Units.SI.MassFlowRatem_flow_nominal (from PartialTwoPortInterface)Nominal mass flow rate
Modelica.Units.SI.PressureDifferencedp_nominal (from TwoPortFlowResistanceParameters)Pressure difference
Advanced
Modelica.Units.SI.MassFlowRatem_flow_small (from PartialTwoPortInterface)1E-4*abs(m_flow_nominal)Small mass flow rate for regularization of zero flow
Advanced › Diagnostics
Booleanshow_T (from PartialTwoPortInterface)false= true, if actual temperature at port is computed
Flow resistance
BooleancomputeFlowResistance (from TwoPortFlowResistanceParameters)true=true, compute flow resistance. Set to false to assume no friction
Booleanfrom_dp (from TwoPortFlowResistanceParameters)false= true, use m_flow = f(dp) else dp = f(m_flow)
BooleanlinearizeFlowResistance (from TwoPortFlowResistanceParameters)false= true, use linear relation between m_flow and dp for any flow rate
RealdeltaM (from TwoPortFlowResistanceParameters)0.1Fraction of nominal flow rate where flow transitions to laminar
Dynamics › Conservation equations
Modelica.Fluid.Types.DynamicsenergyDynamics (from LumpedVolumeDeclarations)Modelica.Fluid.Types.Dynamics.DynamicFreeInitialType of energy balance: dynamic (3 initialization options) or steady state
Modelica.Fluid.Types.DynamicssubstanceDynamics (from LumpedVolumeDeclarations)energyDynamicsType of independent mass fraction balance: dynamic (3 initialization options) or steady state
Modelica.Fluid.Types.DynamicstraceDynamics (from LumpedVolumeDeclarations)energyDynamicsType of trace substance balance: dynamic (3 initialization options) or steady state
Advanced › Dynamics
Modelica.Fluid.Types.DynamicsmassDynamics (from LumpedVolumeDeclarations)energyDynamicsType of mass balance: dynamic (3 initialization options) or steady state, must be steady state if energyDynamics is steady state
Initialization
Medium.AbsolutePressurep_start (from LumpedVolumeDeclarations)Medium.p_defaultStart value of pressure
Medium.TemperatureT_start (from LumpedVolumeDeclarations)Medium.T_defaultStart value of temperature
Medium.MassFraction[Medium.nX]X_start (from LumpedVolumeDeclarations)Medium.X_defaultStart value of mass fractions m_i/m
Medium.ExtraProperty[Medium.nC]C_start (from LumpedVolumeDeclarations)fill(0, Medium.nC)Start value of trace substances
Medium.ExtraProperty[Medium.nC]C_nominal (from LumpedVolumeDeclarations)fill(1E-2, Medium.nC)Nominal value of trace substances. (Set to typical order of magnitude.)
Dynamics
RealmSenFac (from LumpedVolumeDeclarations)1Factor for scaling the sensible thermal mass of the volume
Dynamics › Nominal condition
Modelica.SIunits.Timetau1Time constant at nominal flow for dynamic energy and momentum balance

Connectors

TypeNameDefaultDescription
Modelica.Fluid.Interfaces.FluidPort_aport_a (from PartialTwoPort)Fluid connector a (positive design flow direction is from port_a to port_b)
Modelica.Fluid.Interfaces.FluidPort_bport_b (from PartialTwoPort)Fluid connector b (positive design flow direction is from port_a to port_b)
Modelica.Blocks.Interfaces.RealOutputT_sto_upper_out
Modelica.Fluid.Interfaces.HeatPorts_a[nSeg]heatPortsMultiple heat ports that connect to outside of storage wall
Modelica.Blocks.Interfaces.RealOutputT_sto_lower_out
Modelica.Blocks.Interfaces.RealInputQ_flow_sto_inHeat flow input (pos: charge, neg: discharge)
Modelica.Blocks.Interfaces.RealInputT_sup_inSupply temperature

Components

TypeNameDefaultDescription
Modelica.Units.SI.MassFlowRatem_flow (from PartialTwoPortInterface)port_a.m_flowMass flow rate from port_a to port_b (m_flow > 0 is design flow direction)
Modelica.Units.SI.PressureDifferencedp (from PartialTwoPortInterface)port_a.p - port_b.pPressure difference between port_a and port_b
Medium.ThermodynamicStatesta_a (from PartialTwoPortInterface)if allowFlowReversal then Medium.setState_phX(port_a.p, noEvent(actualStream(port_a.h_outflow)), noEvent(actualStream(port_a.Xi_outflow))) else Medium.setState_phX(port_a.p, noEvent(inStream(port_a.h_outflow)), noEvent(inStream(port_a.Xi_outflow)))Medium properties in port_a
Medium.ThermodynamicStatesta_b (from PartialTwoPortInterface)if allowFlowReversal then Medium.setState_phX(port_b.p, noEvent(actualStream(port_b.h_outflow)), noEvent(actualStream(port_b.Xi_outflow))) else Medium.setState_phX(port_b.p, noEvent(port_b.h_outflow), noEvent(port_b.Xi_outflow))Medium properties in port_b
Modelica.SIunits.TemperatureT_sto_upUpper storage temperature
Modelica.SIunits.TemperatureT_sto_loLower storage temperature
Modelica.SIunits.TemperatureT_sto_up_inUpper incomming storage temperature (charging)
Modelica.SIunits.TemperatureT_sto_lo_inLower incomming storage temperature (discharging)
Modelica.SIunits.MassFlowRatem_flow_stoMass flow rate of storage
Modelica.SIunits.HeatFlowRateQ_flow_actualActual heat flow rate of storage
Modelica.SIunits.HeatFlowRateQ_flow_residualResidual heat flow rate of storage (Q_flow_sto_in - Q_flow_actual)
Buildings.Fluid.Movers.BaseClasses.IdealSourceideSou
Buildings.Fluid.FixedResistances.PressureDropres
Buildings.Fluid.FixedResistances.Pipesto
Modelica.Blocks.Sources.RealExpressionrealExpression_m_flow_sto
Modelica.Blocks.Sources.RealExpressionrealExpression_T_sto_upper
Modelica.Blocks.Sources.RealExpressionrealExpression_T_sto_lower
Buildings.Fluid.Sensors.TemperatureTwoPortsenTem_in_up
Buildings.Fluid.Sensors.TemperatureTwoPortsenTem_in_lo