modelDH_dhc2021_example
Example used in DHC 2021 conference
Extends from dhcSim.DHC.Networks.BaseClasses.BaseGrid (Base class for grid module).
Information
This network can be characterized as a three-level district heating network with decentralized feed-in. A graphical scheme of this network is shown in the figure (a) and (b) below. The horizontal structure of the district heating (DH) network from Figure (a) represents the geographical alignment of the network. It shows a simple branch structure without loops, to which four consumers (C1-C4), two central producers (P1, P2) and two decentral producers (DP1 and DP2) are connected. The vertical network structure of the used example from Figure (b) represents a vertical plane perspective of the network in which the multiple network levels and their interaction with consumers and producers can be identified. Within the vertical network structure three network levels called L1, L2 and L3 are available. It is assumed that the network set temperatures decrease from L1 to L3. This network concept can be advantageous in areas with existing and new buildings and several available heat sources. Consumers C1 and C4 can be characterized as high temperature consumers which are located between L1 and L2. These types of consumers are assumed to meet their space heating demand through radiators with system design temperatures of 70/50 °C and their domestic hot water (DHW) demand through storage tank charging systems. This limits the lowest possible supply temperature on the building side to 60 °C due to thermal disinfection requirements for DHW. Therefore, the set temperature of L1 varies within a temperature range between 80-65 °C with regards to the ambient temperature. Consumer C2 and C3 can be characterized as low temperature consumer types which are located between L2 and L3. These types of consumers are assumed to meet their space heating demands by floor heating systems with design temperatures of 45/35 °C. It is assumed that these consumer types cover their space heating demands through floor heating systems with design temperatures of 45/35 °C and their hot water demand through freshwater stations. Thus, supply temperatures can be significantly lower than 60 °C. Based on this characterization, the set temperature of L2 is defined to be constant at 50 °C throughout the year. The resulting nominal temperature of L3 is 37 °C. It is assumed that all consumers are designed passively, i.e., the load control is realized by valves. This requires a sufficient pressure difference between supply and return at each consumer substation. Heat production in the network is realized by two central producer units P1 and P2 which are located between L1 and L2 as well as L2 and L3. Furthermore, two decentralized producer units DP1 and DP2 are located between L2 and L3 and provide a constant heat flow to the network. Centralized and decentralized producer types are actively designed, i.e., their individual pumps ensure a sufficient pressure difference to feed the network.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Integer | nLev (from LumpedMultiVolumeDeclarations) | 2 | Number of grid levels |
| Medium.SpecificEnthalpy | h_start (from LumpedMultiVolumeDeclarations) | Medium.specificEnthalpy(state = Medium.setState_pTX(p = p_start, T = T_start, X = X_start)) | |
| Integer | nMix (from BaseGrid) | Number of mixing connection points | |
| Integer | nPip (from BaseGrid) | Number of pipes | |
| Modelica.SIunits.Pressure | pAbs (from BaseGrid) | p_start[1] | Absolute pressure level of grid in pressure point |
| Integer | nSeg (from BaseGrid) | fill(1, nPip) | Number of volume segments |
| Modelica.SIunits.Length | diameter (from BaseGrid) | fill(0.1, nPip, nLev) | Pipe diameter |
| Modelica.SIunits.Length | length (from BaseGrid) | fill(10, nPip) | Length of the pipe |
| Modelica.SIunits.Velocity | v_nominal_pip (from BaseGrid) | fill(2, nPip, nLev) | Velocity at m_flow_nominal (used to compute default diameter) |
| Modelica.SIunits.PressureDifference | dp_fixed_nominal_pip (from BaseGrid) | zeros(nPip, nLev) | Additional nominal pressure drop of pipes |
| Modelica.SIunits.Length | roughness (from BaseGrid) | 2.5e-5 | Absolute roughness of pipe, with a default for a smooth steel pipe (dummy if use_roughness = false) |
| Modelica.SIunits.PressureDifference | dp_nominal_pip (from BaseGrid) | fill(10, nPip, nLev) | Pressure difference |
| Modelica.SIunits.MassFlowRate | m_flow_nominal_pip (from BaseGrid) | fill(1, nPip, nLev) | Pressure difference |
| Integer[nMix] | MixNPrt (from BaseGrid) | ones(nMix) | Number of connection ports for each mixing volume |
| Modelica.SIunits.MassFlowRate | m_flow_nominal_conPoi (from BaseGrid) | 1 | Nominal mass flow rate for connection points |
| Modelica.SIunits.Time | tau (from BaseGrid) | 10 | Time constant at nominal flow for dynamic energy and momentum balance |
| Modelica.SIunits.Length | diameter_input | {{0.0703, 0.0431, 0.0545}, {0.0545, 0.0545, 0.0372}, {0.0545, 0.0545, 0.0372}, {0.0545, 0.0545, 0.0285}} | Input parameter diameter |
| Modelica.SIunits.Length | length_input | fill(100, nPip) | Input parameter of pipe length |
| Modelica.SIunits.MassFlowRate | m_flow_nominal_pip_input | {{2.7, 1.2, 2.2}, {1.6, 1.4, 0.7}, {1.6, 2.1, 0.6}, {1.6, 1.8, 0.35}} | Input parameter nominal mass flow rate of pipes |
| Modelica.SIunits.Length | thicknessIns_input | {{0.042, 0.038, 0.040}, {0.040, 0.040, 0.041}, {0.040, 0.040, 0.041}, {0.040, 0.040, 0.038}} | Input parameter of pipe insulation thickness |
| Modelica.SIunits.Temperature | T_nominal | {273.15 + 80, 273.15 + 50, 273.15 + 35} | Nominal network temperature |
| Integer | nProCen | 2 | Number of central producers |
| Integer | nProDec | 2 | Number of decentral producers |
| Integer | nCon | 4 | Number of consumer |
| String | fileNameCon | {gp("modelica://dhcSim/Resources/LoadProf/NomNet/dynamic/con_1.txt"), gp("modelica://dhcSim/Resources/LoadProf/NomNet/dynamic/con_1.txt"), gp("modelica://dhcSim/Resources/LoadProf/NomNet/dynamic/con_2.txt"), gp("modelica://dhcSim/Resources/LoadProf/NomNet/dynamic/con_1.txt")} | location of consumer profiles |
| Dynamics › Equations | |||
| Modelica.Fluid.Types.Dynamics | energyDynamics (from LumpedMultiVolumeDeclarations) | Modelica.Fluid.Types.Dynamics.DynamicFreeInitial | Type of energy balance: dynamic (3 initialization options) or steady state |
| Modelica.Fluid.Types.Dynamics | massDynamics (from LumpedMultiVolumeDeclarations) | energyDynamics | Type of mass balance: dynamic (3 initialization options) or steady state |
| Modelica.Fluid.Types.Dynamics | substanceDynamics (from LumpedMultiVolumeDeclarations) | energyDynamics | Type of independent mass fraction balance: dynamic (3 initialization options) or steady state |
| Modelica.Fluid.Types.Dynamics | traceDynamics (from LumpedMultiVolumeDeclarations) | energyDynamics | Type of trace substance balance: dynamic (3 initialization options) or steady state |
| Initialization | |||
| Modelica.SIunits.AbsolutePressure | p_start (from LumpedMultiVolumeDeclarations) | fill(Medium.p_default, nLev) | Start value of pressure |
| Modelica.SIunits.Temperature | T_start (from LumpedMultiVolumeDeclarations) | fill(Medium.T_default, nLev) | Start value of temperature |
| Medium.MassFraction | X_start (from LumpedMultiVolumeDeclarations) | fill(Medium.X_default, nLev) | Start value of mass fractions m_i/m |
| Medium.ExtraProperty | C_start (from LumpedMultiVolumeDeclarations) | fill(0, nLev, Medium.nC) | Start value of trace substances |
| Medium.ExtraProperty | C_nominal (from LumpedMultiVolumeDeclarations) | fill(1E-2, nLev, Medium.nC) | Nominal value of trace substances. (Set to typical order of magnitude.) |
| Dynamics | |||
| Real | mSenFac (from LumpedMultiVolumeDeclarations) | 1 | Factor for scaling the sensible thermal mass of the volume |
| Pressure drop | |||
| dhcSim.DHC.Submodules.TwoPortModules.Pipe.Types.dpTypes | dpType (from BaseGrid) | dhcSim.DHC.Submodules.TwoPortModules.Pipe.Types.dpTypes.dp_nominal | Define pressure drop calculation |
| Assumptions | |||
| Boolean | allowFlowReversal (from BaseGrid) | true | = true to allow flow reversal, false restricts to design direction (port_a -> port_b) |
| Advanced | |||
| Medium.MassFlowRate | m_flow_small_pip (from BaseGrid) | 1E-4.*abs(m_flow_nominal_pip) | Small mass flow rate for regularization of zero flow |
| Advanced › Diagnostics | |||
| Boolean | show_T (from BaseGrid) | false | = true, if actual temperature at port is computed |
| Flow resistance | |||
| Real | ReC (from BaseGrid) | 4000 | Reynolds number where transition to turbulent starts |
| Boolean | from_dp (from BaseGrid) | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
| Boolean | linearizeFlowResistance (from BaseGrid) | false | = true, use linear relation between m_flow and dp for any flow rate |
| Real | deltaM (from BaseGrid) | 0.1 | Fraction of nominal flow rate where flow transitions to laminar |
| Heat losses | |||
| Modelica.SIunits.Length | disPip (from BaseGrid) | 10 | Fictive pipe distance, used to calculate fictive Resistance |
| Modelica.SIunits.Length | uniWidth (from BaseGrid) | 1 | Universal width |
| Initialization › Heat losses | |||
| Modelica.SIunits.Temperature | T_surf_a_start (from BaseGrid) | 293.15 | Initial temperature at surf_a, used if steadyStateInitial = false |
| Modelica.SIunits.Temperature | T_surf_b_start (from BaseGrid) | 283.15 | Initial temperature at surf_b, used if steadyStateInitial = false |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Buildings.Fluid.Storage.ExpansionVessel | expansionVessel (from BaseGrid) | ||
| dhcSim.Fluid.Delays.MultipleDelays | mix (from BaseGrid) | ||
| dhcSim.DHC.Submodules.MultiPortModules.Pipe.AdiabatePipe | pipe (from BaseGrid) | ||
| dhcSim.Data.SysTemp_70_55_20 | sysTem_70_55_20 | ||
| dhcSim.Data.SysTemp_45_35_20 | sysTem_45_35_20 | ||
| Submodules.MultiPortModules.DistrictHeating.Producer.DH_ActiveDirectProducer | centralProducer | ||
| Submodules.MultiPortModules.DistrictHeating.Consumer.DH_DirectConsumer | consumer | ||
| Modelica.Blocks.Sources.RealExpression | pressureDiffExp | ||
| Submodules.MultiPortModules.DistrictHeating.Producer.DH_PrescribedDirectProducer | decentralProducer | ||
| ControlSystems.decentralNetController | decentralNetController | ||
| dhcSim.Weather.CombinedWeather | combinedWeather | ||
| Modelica.Blocks.Sources.RealExpression | T_0 | ||
| Modelica.Blocks.Math.Add | add | ||
| Modelica.Blocks.Tables.CombiTable1Ds | combiTable1Ds | ||
| Modelica.Blocks.Sources.RealExpression | TNominalExp |