modelSubstationCascade

Extends from DisHeatLib.Substations.BaseClasses.SubstationCascadeInterface.

Information

This is a model for a district heating substation with a single subtation together with an optional bypass valve. The bypass valve can be used to ensure a minimum supply temperature at the connection point at the primary side.

Care must be taken when chosing the nominal values for differential presure, mass flow and/or heat load, as different issues might occure:

  • In cases where the differential pressure is below its nominal value, the nominal mass flow is not reached. Thus, in times of high heat demand, not enough heat might be delivered to the individual stations.
  • For differential pressure above the nominal value, the mass flow through the valve might be quite high. This, can lead to a flicker in the valve controllers in the base stations.
  • Nominal values of mass flow should be chosen such that the heat load can be satisfied (maybe even with supply and return temperatures away from their nominal value).
  • Nominal heat load should not be set too strict, as nominal values for supply and return temperature are used to derive nominal mass flow values.

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
Modelica.SIunits.MassFlowRatem1_flow_nominal_supply (from SubstationCascadeInterface)Q1_flow_nominal_supply/((TemSup1_nominal - TemRet1_nominal)*cp_default)Nominal mass flow rate (port_c1)
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 SubstationCascadeInterface)false= true, use m_flow = f(dp) else dp = f(m_flow)
BooleanlinearizeFlowResistance (from SubstationCascadeInterface)false= true, use linear relation between m_flow and dp for any flow rate
Primary side
Modelica.SIunits.PowerQ1_flow_nominal (from SubstationCascadeInterface)m1_flow_nominal*(TemRet1_supply_nominal - TemRet1_nominal)*cp_defaultNominal heat flow rate at primary side
Modelica.SIunits.PowerQ1_flow_nominal_supply (from SubstationCascadeInterface)m1_flow_nominal_supply*(TemSup1_nominal - TemRet1_nominal)*cp_defaultNominal heat flow rate at primary side taken from supply line
Modelica.SIunits.TemperatureTemSup1_nominal (from SubstationCascadeInterface)80.0 + 273.15Nominal supply temperature
Modelica.SIunits.TemperatureTemRet1_supply_nominal (from SubstationCascadeInterface)45.0 + 273.15Nominal return temperature
Modelica.SIunits.TemperatureTemRet1_nominal (from SubstationCascadeInterface)35.0 + 273.15Nominal return temperature after cascading
Modelica.SIunits.PressureDifferencedp1_nominal (from SubstationCascadeInterface)dp_hex_nominal + dpCheckValve_nominalNominal pressure difference of pump (port_a1 to port_b1)
Modelica.SIunits.PressureDifferencedp1_nominal_supply (from SubstationCascadeInterface)Nominal pressure difference of valve (port_c1 to port_b1)
Modelica.SIunits.PressureDifferencedpCheckValve_nominal (from SubstationCascadeInterface)5000Nominal pressure drop of fully open check valve, used if CvData=IBPSA.Fluid.Types.CvTypes.OpPoint
Modelica.SIunits.TemperatureDifferenceTemSupMargin (from SubstationCascadeInterface)5.0Temperature difference of primary supply inlet and secondary supply setpoint
Secondary side
Modelica.SIunits.PowerQ2_flow_nominal (from SubstationCascadeInterface)m2_flow_nominal*(TemSup2_nominal - TemRet2_nominal)*cp_defaultNominal heat flow rate at primary side
Modelica.SIunits.TemperatureTemSup2_nominal (from SubstationCascadeInterface)60.0 + 273.15Nominal supply temperature
Modelica.SIunits.TemperatureTemRet2_nominal (from SubstationCascadeInterface)35.0 + 273.15Nominal return temperature
BooleanOutsideDependent (from SubstationCascadeInterface)falseOutside temperature dependent secondary supply temperature
Temperature control secondary side
Modelica.SIunits.TemperatureTemOut_max (from SubstationCascadeInterface)15.0 + 273.15Outdoor temperature where minimum secondary supply temperature is needed
Modelica.SIunits.TemperatureTemOut_min (from SubstationCascadeInterface)-5.0 + 273.15Outdoor temperature where maximum secondary supply temperature is needed
Modelica.SIunits.TemperatureTemSup2_min (from SubstationCascadeInterface)50.0 + 273.15Secondary supply temperature where maximum outdoor temperature is reached
Modelica.SIunits.TemperatureTemSup2_max (from SubstationCascadeInterface)60.0 + 273.15Secondary supply temperature where minimum outdoor temperature is reached
Heat exchanger
Modelica.SIunits.Efficiencyhex_efficiency (from SubstationCascadeInterface)0.90Constant efficiency of the heat exchanger
Modelica.SIunits.PressureDifferencedp_hex_nominal (from SubstationCascadeInterface)0Nominal pressure difference at the heat exchanger at primary side
Pump control
Realk (from SubstationCascadeInterface)0.01Gain of flow controller
Modelica.SIunits.TimeTi (from SubstationCascadeInterface)120Time constant of Integrator block of flow controller
Valve control
Realk_valve (from SubstationCascadeInterface)0.01Gain of controller
Modelica.SIunits.TimeTi_valve (from SubstationCascadeInterface)30Time constant of Integrator block

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.Fluid.Interfaces.FluidPort_aport_c1 (from SubstationCascadeInterface)Fluid connector c1 (positive design flow direction is from port_c1 to port_b1)
Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_aport_htOutside temperature port

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
Medium1.MassFlowRatem1_flow_supply (from SubstationCascadeInterface)port_c1.m_flowMass flow rate from port_a1 to port_b1 (m1_flow > 0 is design flow direction)
Modelica.SIunits.PressureDifferencedp1_supply (from SubstationCascadeInterface)port_c1.p - port_b1.pPressure difference between port_c1 and port_b1
Medium1.ThermodynamicStatesta_c1 (from SubstationCascadeInterface)Medium1.setState_phX(port_c1.p, noEvent(actualStream(port_c1.h_outflow)), noEvent(actualStream(port_c1.Xi_outflow)))Medium properties in port_c1
IBPSA.Fluid.HeatExchangers.ConstantEffectivenesshex
IBPSA.Fluid.Sensors.TemperatureTwoPortsenTem2
DisHeatLib.Controls.TemSup_controlTemSup_controlleroutside temperature dependent supply temperature set-point
Modelica.Blocks.Sources.RealExpressionTConst
DisHeatLib.Controls.flow_controlpump_control
DisHeatLib.BaseClasses.FlowUnitflowUnit
IBPSA.Fluid.FixedResistances.CheckValvecheVal
IBPSA.Fluid.Movers.FlowControlled_dppump
Modelica.Blocks.Math.Gaingain
DisHeatLib.Controls.flow_controlvalve_control
IBPSA.Fluid.Sensors.TemperatureTwoPortsenTem1
Modelica.Blocks.Sources.RealExpressionTConst1
IBPSA.Fluid.FixedResistances.Junctionjun

Revisions

  • Feburary 27, 2019, by Benedikt Leitner:
    Implementation and added User's guide.