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
| Type | Name | Default | Description |
|---|---|---|---|
| Assumptions | |||
| Boolean | allowFlowReversal1 (from PartialFourPort) | true | = false to simplify equations, assuming, but not enforcing, no flow reversal for medium 1 |
| Boolean | allowFlowReversal2 (from PartialFourPort) | true | = false to simplify equations, assuming, but not enforcing, no flow reversal for medium 2 |
| Nominal condition | |||
| Modelica.SIunits.MassFlowRate | m1_flow_nominal (from PartialFourPortInterface) | Nominal mass flow rate | |
| Modelica.SIunits.MassFlowRate | m2_flow_nominal (from PartialFourPortInterface) | Nominal mass flow rate | |
| Advanced | |||
| Medium1.MassFlowRate | m1_flow_small (from PartialFourPortInterface) | 1E-4*abs(m1_flow_nominal) | Small mass flow rate for regularization of zero flow |
| Medium2.MassFlowRate | m2_flow_small (from PartialFourPortInterface) | 1E-4*abs(m2_flow_nominal) | Small mass flow rate for regularization of zero flow |
| Advanced › Diagnostics | |||
| Boolean | show_T (from PartialFourPortInterface) | false | = true, if actual temperature at port is computed |
| Flow resistance › Primary side | |||
| Boolean | from_dp (from BaseStation) | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
| Boolean | linearizeFlowResistance (from BaseStation) | false | = true, use linear relation between m_flow and dp for any flow rate |
| Primary side | |||
| Modelica.SIunits.Power | Q1_flow_nominal (from BaseStation) | m1_flow_nominal*(TemSup1_nominal - TemRet1_nominal)*cp_default | Nominal heat flow rate at primary side |
| Modelica.SIunits.Temperature | TemSup1_nominal (from BaseStation) | 80.0 + 273.15 | Nominal supply temperature |
| Modelica.SIunits.Temperature | TemRet1_nominal (from BaseStation) | 45.0 + 273.15 | Nominal return temperature |
| Modelica.SIunits.PressureDifference | dp1_nominal (from BaseStation) | Nominal pressure difference | |
| Secondary side | |||
| Modelica.SIunits.Power | Q2_flow_nominal (from BaseStation) | m2_flow_nominal*(TemSup2_nominal - TemRet2_nominal)*cp_default | Nominal heat flow rate at primary side |
| Modelica.SIunits.Temperature | TemSup2_nominal (from BaseStation) | 60.0 + 273.15 | Nominal supply temperature |
| Modelica.SIunits.Temperature | TemRet2_nominal (from BaseStation) | 35.0 + 273.15 | Nominal return temperature |
| Boolean | OutsideDependent (from BaseStation) | false | Outside temperature dependent secondary supply temperature |
| Storage tank | |||
| Modelica.SIunits.Volume | VTan (from StorageTankHex) | Tank volume | |
| Modelica.SIunits.Length | hTan (from StorageTankHex) | Height of tank (without insulation) | |
| Modelica.SIunits.Length | dIns (from StorageTankHex) | 0.2 | Thickness of insulation |
| Modelica.SIunits.ThermalConductivity | kIns (from StorageTankHex) | 0.04 | Specific heat conductivity of insulation |
| Integer | nSeg (from StorageTankHex) | 4 | Number of volume segments |
| Modelica.SIunits.Temperature | TemRoom (from StorageTankHex) | 20.0 + 273.15 | Constant temperature surrounding the storage tank |
| Integer | nInit (from StorageTankHex) | nSeg | Number of volume segments initialized with TemSup2_nominal |
| Modelica.SIunits.PressureDifference | dp_hex_nominal (from StorageTankHex) | 0 | Nominal pressure difference at the heat exchanger at primary side |
| Modelica.SIunits.Height | hHex_a (from StorageTankHex) | storageTankHex.hTan/2 | Height of portHex_a of the heat exchanger, measured from tank bottom |
| Modelica.SIunits.Height | hHex_b (from StorageTankHex) | 0 | Height of portHex_b of the heat exchanger, measured from tank bottom |
| Integer | hexSegMult (from StorageTankHex) | 2 | Number of heat exchanger segments in each tank segment |
| Modelica.SIunits.Diameter | dExtHex (from StorageTankHex) | 0.025 | Exterior diameter of the heat exchanger pipe |
| Real | r_nominal (from StorageTankHex) | 0.5 | Ratio between coil inside and outside convective heat transfer at nominal heat transfer conditions |
| Flow controller | |||
| Modelica.SIunits.Temperature | T_const (from StorageTankHex) | TemSup2_nominal | Constant temperature setpoint |
| Modelica.SIunits.Time | Ti (from StorageTankHex) | 120 | Time constant of Integrator block |
| Real | k (from StorageTankHex) | 0.01 | Gain of controller |
| Integer | nSegMeasure (from StorageTankHex) | 1 | Volume segment to take temperature from |
| Electric booster heater | |||
| Modelica.SIunits.Power | Q_flow_nominal_EBH | Q2_flow_nominal | Heat capacity of EBH |
| Modelica.SIunits.Temperature | T_min_EBH | TemSup2_nominal + T_bandwidth_EBH/2.0 | Reference temperature of EBH |
| Modelica.SIunits.TemperatureDifference | T_bandwidth_EBH | 4.0 | Temperature bandwidth of EBH |
| Integer | nSegEBH | 1 | Number of top tank segments heated by EBH |
| Modelica.SIunits.Efficiency | eff_EBH | 0.97 | Power-to-heat efficiency of EBH |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Fluid.Interfaces.FluidPort_a | port_a1 (from PartialFourPort) | Fluid connector a1 (positive design flow direction is from port_a1 to port_b1) | |
| Modelica.Fluid.Interfaces.FluidPort_b | port_b1 (from PartialFourPort) | Fluid connector b1 (positive design flow direction is from port_a1 to port_b1) | |
| Modelica.Fluid.Interfaces.FluidPort_a | port_a2 (from PartialFourPort) | Fluid connector a2 (positive design flow direction is from port_a2 to port_b2) | |
| Modelica.Fluid.Interfaces.FluidPort_b | port_b2 (from PartialFourPort) | Fluid connector b2 (positive design flow direction is from port_a2 to port_b2) | |
| Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a | port_ht (from BaseStation) | Outside temperature port | |
| Modelica.Blocks.Interfaces.RealOutput | P (from BaseStation) | Electric power |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Medium1.MassFlowRate | m1_flow (from PartialFourPortInterface) | port_a1.m_flow | Mass flow rate from port_a1 to port_b1 (m1_flow > 0 is design flow direction) |
| Modelica.SIunits.PressureDifference | dp1 (from PartialFourPortInterface) | port_a1.p - port_b1.p | Pressure difference between port_a1 and port_b1 |
| Medium2.MassFlowRate | m2_flow (from PartialFourPortInterface) | port_a2.m_flow | Mass flow rate from port_a2 to port_b2 (m2_flow > 0 is design flow direction) |
| Modelica.SIunits.PressureDifference | dp2 (from PartialFourPortInterface) | port_a2.p - port_b2.p | Pressure difference between port_a2 and port_b2 |
| Medium1.ThermodynamicState | sta_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.ThermodynamicState | sta_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.ThermodynamicState | sta_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.ThermodynamicState | sta_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.RealExpression | total_power (from BaseStation) | sum of all power consumption/generation in component | |
| Storage.StorageTankHex | storageTankHex (from StorageTankHex) | ||
| DisHeatLib.Controls.flow_control | storage_control (from StorageTankHex) | ||
| DisHeatLib.BaseClasses.FlowUnit | flowUnit (from StorageTankHex) | ||
| Storage.BaseClasses.ThermostatMixer | thermostatMixer (from StorageTankHex) | ||
| Supply.BaseClasses.ElectricHeatingRod | EBH |