Buildings.Experimental.DHC.Examples.Combined

Package of example models for DHC systems

Information

This package contains example models for district heating and cooling systems.

Extends from Modelica.Icons.VariantsPackage (Icon for package containing variants).

Package Content

Name Description
Buildings.Experimental.DHC.Examples.Combined.SeriesConstantFlow SeriesConstantFlow Example of series connection with constant district water mass flow rate
Buildings.Experimental.DHC.Examples.Combined.SeriesVariableFlow SeriesVariableFlow Example of series connection with variable district water mass flow rate
Buildings.Experimental.DHC.Examples.Combined.BaseClasses BaseClasses Package with base classes that are used by multiple models

Buildings.Experimental.DHC.Examples.Combined.SeriesConstantFlow Buildings.Experimental.DHC.Examples.Combined.SeriesConstantFlow

Example of series connection with constant district water mass flow rate

Buildings.Experimental.DHC.Examples.Combined.SeriesConstantFlow

Information

This is a model of a so-called "reservoir network" (Sommer 2020), i.e., a fifth generation district system with unidirectional mass flow rate in the district loop, and energy transfer stations connected in series. In this model, the temperature of the district loop is stabilized through the operation of the plant and the borefield. The main circulation pump has a constant mass flow rate. Each substation takes water from the main district loop and feeds its return water back into the main district loop downstream from the intake. The pipes of the main loop are designed for a pressure drop of dpDis_length_nominal=250 Pa/m at the design flow rate.

References

Sommer T., Sulzer M., Wetter M., Sotnikov A., Mennel S., Stettler C. The reservoir network: A new network topology for district heating and cooling. Energy, Volume 199, 15 May 2020, 117418.

Extends from Buildings.Experimental.DHC.Examples.Combined.BaseClasses.PartialSeries (Partial model for series network).

Parameters

TypeNameDefaultDescription
RealdpDis_length_nominal250Pressure drop per pipe length at nominal flow rate - Distribution line [Pa/m]
RealdpCon_length_nominal250Pressure drop per pipe length at nominal flow rate - Connection line [Pa/m]
IntegernBuidatDes.nBuiNumber of buildings connected to DHC system
StringfilNam[nBui]{"modelica://Buildings/Resou...Library paths of the files with thermal loads as time series
Assumptions
BooleanallowFlowReversalSertrueSet to true to allow flow reversal in the service lines
BooleanallowFlowReversalBuifalseSet to true to allow flow reversal for in-building systems

Modelica definition

model SeriesConstantFlow "Example of series connection with constant district water mass flow rate" extends Buildings.Experimental.DHC.Examples.Combined.BaseClasses.PartialSeries ( redeclare Buildings.Experimental.DHC.Loads.Combined.BuildingTimeSeriesWithETS bui[nBui](final filNam=filNam), datDes( mPumDis_flow_nominal=95, mPipDis_flow_nominal=95, dp_length_nominal=250, epsPla=0.935)); parameter String filNam[nBui]={ "modelica://Buildings/Resources/Data/Experimental/DHC/Loads/Examples/SwissOffice_20190916.mos", "modelica://Buildings/Resources/Data/Experimental/DHC/Loads/Examples/SwissResidential_20190916.mos", "modelica://Buildings/Resources/Data/Experimental/DHC/Loads/Examples/SwissHospital_20190916.mos"} "Library paths of the files with thermal loads as time series"; Modelica.Blocks.Sources.Constant masFloMaiPum( k=datDes.mPumDis_flow_nominal) "Distribution pump mass flow rate"; Modelica.Blocks.Sources.Constant masFloDisPla( k=datDes.mPla_flow_nominal) "District water flow rate to plant"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant THotWatSupSet[nBui]( k=fill(63 + 273.15, nBui)) "Hot water supply temperature set point"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant TColWat[nBui]( k=fill(15 + 273.15, nBui)) "Cold water temperature"; equation connect(masFloMaiPum.y, pumDis.m_flow_in); connect(pumSto.m_flow_in, masFloMaiPum.y); connect(masFloDisPla.y, pla.mPum_flow); connect(THotWatSupSet.y, bui.THotWatSupSet); connect(TColWat.y, bui.TColWat); end SeriesConstantFlow;

Buildings.Experimental.DHC.Examples.Combined.SeriesVariableFlow Buildings.Experimental.DHC.Examples.Combined.SeriesVariableFlow

Example of series connection with variable district water mass flow rate

Buildings.Experimental.DHC.Examples.Combined.SeriesVariableFlow

Information

This model is identical to Buildings.Experimental.DHC.Examples.Combined.SeriesConstantFlow except for the pipe diameter and the control of the main circulation pump. Rather than having a constant mass flow rate, the mass flow rate is varied based on the mixing temperatures after each agent. If these mixing temperatures are sufficiently far away from the minimum or maximum allowed loop temperature, then the mass flow rate is reduced to save pump energy.

Extends from Buildings.Experimental.DHC.Examples.Combined.BaseClasses.PartialSeries (Partial model for series network).

Parameters

TypeNameDefaultDescription
RealdpDis_length_nominal250Pressure drop per pipe length at nominal flow rate - Distribution line [Pa/m]
RealdpCon_length_nominal250Pressure drop per pipe length at nominal flow rate - Connection line [Pa/m]
IntegernBuidatDes.nBuiNumber of buildings connected to DHC system
StringfilNam[nBui]{"modelica://Buildings/Resou...Library paths of the files with thermal loads as time series
Assumptions
BooleanallowFlowReversalSertrueSet to true to allow flow reversal in the service lines
BooleanallowFlowReversalBuifalseSet to true to allow flow reversal for in-building systems

Modelica definition

model SeriesVariableFlow "Example of series connection with variable district water mass flow rate" extends Buildings.Experimental.DHC.Examples.Combined.BaseClasses.PartialSeries ( redeclare Buildings.Experimental.DHC.Loads.Combined.BuildingTimeSeriesWithETS bui[nBui](final filNam=filNam), datDes( mPumDis_flow_nominal=97.3, mPipDis_flow_nominal=69.5, dp_length_nominal=250, epsPla=0.91)); parameter String filNam[nBui]={ "modelica://Buildings/Resources/Data/Experimental/DHC/Loads/Examples/SwissOffice_20190916.mos", "modelica://Buildings/Resources/Data/Experimental/DHC/Loads/Examples/SwissResidential_20190916.mos", "modelica://Buildings/Resources/Data/Experimental/DHC/Loads/Examples/SwissHospital_20190916.mos"} "Library paths of the files with thermal loads as time series"; Modelica.Blocks.Sources.Constant masFloDisPla( k=datDes.mPla_flow_nominal) "District water flow rate to plant"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant THotWatSupSet[nBui]( k=fill(63 + 273.15, nBui)) "Hot water supply temperature set point"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant TColWat[nBui]( k=fill(15 + 273.15, nBui)) "Cold water temperature"; Buildings.Experimental.DHC.Networks.Controls.MainPump conPum( nMix=nBui, nSou=2, TMin=279.15, TMax=290.15, use_temperatureShift=false) "Main pump controller"; Buildings.Controls.OBC.CDL.Reals.MultiplyByParameter gai(k=datDes.mPumDis_flow_nominal) "Scale with nominal mass flow rate"; equation connect(masFloDisPla.y, pla.mPum_flow); connect(THotWatSupSet.y, bui.THotWatSupSet); connect(TColWat.y, bui.TColWat); connect(pumDis.m_flow_in, gai.y); connect(conPum.y, gai.u); connect(dis.TOut, conPum.TMix); connect(TDisWatRet.T, conPum.TSouIn[1]); connect(TDisWatBorLvg.T, conPum.TSouIn[2]); connect(TDisWatBorLvg.T, conPum.TSouOut[1]); connect(TDisWatSup.T, conPum.TSouOut[2]); connect(gai.y, pumSto.m_flow_in); end SeriesVariableFlow;