modelStoragePlantDualSource

Idealised district system model with two sources and three users

Extends from Modelica.Icons.Example (Icon for runnable examples).

Information

The modelled system is described in the documentation of Buildings.DHC.Plants.Cooling.StoragePlant.

The source blocks give the system the following operation schedule during simulation:

  • At time = 0, the system is all off.
  • At time = 200, the system is commanded to charge the tank. The chiller is available and charges the tank locally. After some time, the charging stops when the tank status signal returns that the tank is charged.
  • At time = 1800, load appears at the district network. The storage plant starts producing CHW to the system. Currently the tank is not commanded to charge or discharge, therefore it functions like a common pipe and the CHW is supplied by the chiller.
  • At time = 3500, the load increases and there is no more overflow through the tank.
  • At time = 4000, the system is commanded to have the tank take priority for CHW production. After some time, the cooling in the tank is empty and the tank stops producing. Now the chiller takes over.
  • At time = 7000, there is no longer load in the district system. The system is back to the all-off state.
  • At time = 7500, the system is once again commanded to charge the tank, but the chiller in the storage plant is not enabled. The tank is therefore charged remotely by the district. This stops once the tank is charged again.

Implementation

The chiller is implemented as an ideal temperature source using Buildings.Fluid.Sources.PropertySource_T. Its outlet temperature is always at the prescribed value.

Parameters

TypeNameDefaultDescription
Modelica.Units.SI.MassFlowRatem_flow_nominal1Nominal mass flow rate, slightly larger than needed by one user load
Modelica.Units.SI.PressureDifferencedp_nominal300000Nominal pressure difference
Modelica.Units.SI.TemperatureT_CHWR_nominal12 + 273.15Nominal temperature of CHW return
Modelica.Units.SI.TemperatureT_CHWS_nominal7 + 273.15Nominal temperature of CHW supply
Nominal values
Modelica.Units.SI.MassFlowRatemTan_flow_nominal1Nominal mass flow rate for CHW tank branch
Modelica.Units.SI.MassFlowRatemChi_flow_nominal1Nominal mass flow rate for CHW chiller branch

Components

TypeNameDefaultDescription
Buildings.Fluid.Sources.PropertySource_Tchi1Chiller 1 represented by an ideal temperature source
Modelica.Blocks.Sources.ConstantTSet1Constant CHW leaving temperature
Buildings.Fluid.Movers.Preconfigured.SpeedControlled_ypumSup1CHW supply pump for chi1
Buildings.Controls.Continuous.LimPIDconPI_pumChi1PI controller
Buildings.DHC.Plants.Cooling.Controls.SelectMinselMin_dpMin of pressure heads with the signal from storage plant optionally used
Buildings.DHC.Plants.Cooling.StoragePlantstoPlaStorage plant
Buildings.Fluid.Sources.Boundary_pTbouPressure boundary
Buildings.Fluid.Sources.PropertySource_Tchi2Chiller represented by an ideal temperature source
Modelica.Blocks.Sources.ConstantTSet2Constant CHW leaving temperature
Modelica.Blocks.Math.GaingaiStoPlaGain to normalise dp measurement
Buildings.DHC.Plants.Cooling.BaseClasses.IdealUserideUse1Ideal user
Buildings.DHC.Plants.Cooling.BaseClasses.IdealUserideUse2Ideal user
Buildings.DHC.Plants.Cooling.BaseClasses.IdealUserideUse3Ideal user
Modelica.Blocks.Sources.Constantset_dpUseNormalized consumer differential pressure setpoint
Modelica.Blocks.Sources.TimeTablemLoa1_flowCooling load of user 1 represented by flow rate
Modelica.Blocks.Sources.TimeTablemLoa2_flowCooling load of user 2 represented by flow rate
Modelica.Blocks.Sources.TimeTablemLoa3_flowCooling load of user 3 represented by flow rate
Modelica.Blocks.Math.GaingaiUse1Gain to normalise dp measurement
Modelica.Blocks.Math.GaingaiUse2Gain to normalise dp measurement
Modelica.Blocks.Math.GaingaiUse3Gain to normalise dp measurement
Buildings.DHC.Plants.Cooling.BaseClasses.ParallelJunctionsparJunPla1Parallel junctions for breaking algebraic loops
Buildings.DHC.Plants.Cooling.BaseClasses.ParallelJunctionsparJunUse2Parallel junctions for breaking algebraic loops
Buildings.DHC.Plants.Cooling.BaseClasses.ParallelJunctionsparJunPla2Parallel junctions for breaking algebraic loops
Buildings.DHC.Plants.Cooling.BaseClasses.ParallelPipesparPipS1U1Parallel pipes
Buildings.DHC.Plants.Cooling.BaseClasses.ParallelPipesparPipS1U2Parallel pipes
Buildings.DHC.Plants.Cooling.BaseClasses.ParallelPipesparPipS2U2Parallel pipes
Buildings.DHC.Plants.Cooling.BaseClasses.ParallelPipesparPipS2U3Parallel pipes
Modelica.Blocks.Routing.MultiplexmuxDpMultiplexer block for routing
Buildings.Controls.OBC.CDL.Reals.MultiMaxmulMax_yVal_actualPosition of the most open user control valve
Modelica.Blocks.Sources.IntegerTablecomCommand: 1 = charge tank, 2 = no command, 3 = discharge from tank
Modelica.Blocks.Sources.BooleanTablechiEnaStaChiller enable status, true if chiller is enabled
Buildings.Controls.OBC.CDL.Reals.Hysteresishys_yVal_actualHysteresis for user control valve position

Contents

NameDescription
MediumMedium model for CHW

Revisions

  • July 31, 2023, by Michael Wetter:
    Revised implementation, removed unused parameter.
  • January 11, 2023 by Hongxiang Fu:
    First implementation. This is for #2859.