modelInjectionTwoWayConstant

Model illustrating the operation of an inversion circuit with two-way valve and constant secondary

Extends from Fluid.HydronicConfigurations.ActiveNetworks.Examples.BaseClasses.PartialInjectionTwoWay (Partial model of primary variable circuit serving an inversion circuit with two-way valve).

Information

This model represents a heating system where the configuration Buildings.Fluid.HydronicConfigurations.ActiveNetworks.InjectionTwoWay serves as the interface between a variable flow primary circuit and a constant flow secondary circuit. Two identical terminal units are served by the secondary circuit. Each terminal unit has its own hourly load profile. The main assumptions are enumerated below.

  • The design conditions are defined without considering any load diversity.
  • Each circuit is balanced at design conditions.
  • The pump dissipated heat is not added to the fluid.
  • The consumer circuit has either a constant (supply or return) temperature set point if have_resT2=false or a temperature reset if have_resT2=true. The reset logic is based on the terminal valve opening, with the most open valve being kept 90% open.

Without temperature reset (have_resT2=false), the primary flow variation with the load is not optimal (see plot #8): for a load fraction of 30% the normalized primary flow rate is about 60%.

The flow reduction is enhanced when using a reset based on the maximum valve demand: for a load fraction of 30% the normalized primary flow rate is now close to 30%. (Also note the setting of the controller resT2 which ensures a reset at design value when the control loop is enabled).

The flow reduction is further enhanced when using a control based on the return temperature (have_resT2 = false and con(typVar=Types.ControlVariable.ReturnTemperature)): the normalized primary flow rate varies close to linearly with the load fraction. This explains why this control strategy is often adopted as it brings a good flow rate variation with the load at a first cost lower than the previous reset option based on the valve demand. However, it also brings some additional constraints on the sizing of the terminal units. The load diversity must indeed be accounted for. When tracking the return temperature of a constant flow consumer circuit, the supply temperature will vary with the aggregated load. In our example, the actual value of the secondary supply temperature is lower than its design value at partial load, which yields unmet loads (see plot #4). The terminal units should be sized accordingly, based on the lowest possible ΔT when one terminal unit may still be at peak load. Additional caveats speak against the use of return temperature control with this hydronic configuration in the case of variable flow consumer circuits, see Buildings.Fluid.HydronicConfigurations.ActiveNetworks.Examples.InjectionTwoWayVariableReturn.

Parameters

TypeNameDefaultDescription
Buildings.Fluid.HydronicConfigurations.Types.Controltyp (from PartialActivePrimary)Buildings.Fluid.HydronicConfigurations.Types.Control.HeatingLoad type
IntegernTer (from PartialActivePrimary)2Number of terminal units
RealkSizPum (from PartialActivePrimary)1.0Pump oversizing coefficient
Modelica.Units.SI.Pressurep_min (from PartialActivePrimary)200000Circuit minimum pressure
Modelica.Units.SI.TemperatureTLiqEnt_nominal (from PartialActivePrimary)if typ == Buildings.Fluid.HydronicConfigurations.Types.Control.Heating then 60 + 273.15 else 7 + 273.15Liquid entering temperature at design conditions
Modelica.Units.SI.TemperatureTLiqLvg_nominal (from PartialActivePrimary)TLiqEnt_nominal + (if typ == Buildings.Fluid.HydronicConfigurations.Types.Control.Heating then -10 else +5)Liquid leaving temperature at design conditions
Modelica.Units.SI.TemperatureTLiqEntChg_nominal (from PartialActivePrimary)60 + 273.15Liquid entering temperature in change-over mode
Modelica.Units.SI.TemperatureTLiqSup_nominal (from PartialActivePrimary)TLiqEnt_nominalLiquid primary supply temperature at design conditions
Modelica.Units.SI.TemperatureTLiqSupChg_nominal (from PartialActivePrimary)TLiqEntChg_nominalLiquid primary supply temperature in change-over mode
Nominal condition
Modelica.Units.SI.MassFlowRatemTer_flow_nominal (from PartialActivePrimary)1Terminal unit mass flow rate at design conditions
Modelica.Units.SI.MassFlowRatem1_flow_nominal (from PartialActivePrimary)m2_flow_nominalMass flow rate in primary branch at design conditions
Modelica.Units.SI.MassFlowRatem2_flow_nominal (from PartialActivePrimary)nTer*mTer_flow_nominalMass flow rate in consumer circuit at design conditions
Modelica.Units.SI.PressureDifferencedpTer_nominal (from PartialActivePrimary)3E4Terminal unit pressure drop at design conditions
Modelica.Units.SI.PressureDifferencedpPip_nominal (from PartialActivePrimary)0.5E4Pipe section pressure drop at design conditions
Modelica.Units.SI.PressureDifferencedpPum_nominal (from PartialActivePrimary)Pump head at design conditions
Modelica.Units.SI.MassFlowRatemPum_flow_nominal (from PartialActivePrimary)m1_flow_nominalPrimary pump mass flow rate at design conditions
Modelica.Units.SI.PressureDifferencedp2_nominal (from PartialInjectionTwoWay)Consumer circuit pressure differential at design conditions
Modelica.Units.SI.TemperatureT2Set_nominalif con.typVar == Buildings.Fluid.HydronicConfigurations.Types.ControlVariable.SupplyTemperature then TLiqEnt_nominal else TLiqLvg_nominalConsumer circuit design temperature set point
Modelica.Units.SI.TemperatureTAirEnt_nominal293.15Air entering temperature at design conditions
Modelica.Units.SI.MassFractionphiAirEnt_nominal0.5Air entering relative humidity at design conditions
Dynamics › Conservation equations
Modelica.Fluid.Types.DynamicsenergyDynamics (from PartialActivePrimary)Modelica.Fluid.Types.Dynamics.FixedInitialType of energy balance: dynamic (3 initialization options) or steady state
Configuration
Booleanis_bal (from PartialInjectionTwoWay)falseSet to true for balanced primary branch
Booleanhave_resT2falseSet to true for consumer circuit temperature reset, false for constant set point
Controls
Modelica.Units.SI.PressureDifferencedp1Set (from PartialInjectionTwoWay)1e4Pressure differential set point

Components

TypeNameDefaultDescription
Sources.Boundary_pTref (from PartialActivePrimary)Pressure and temperature boundary condition
Buildings.Fluid.HydronicConfigurations.Components.Pumppum (from PartialActivePrimary)Circulation pump
FixedResistances.PressureDropres1 (from PartialActivePrimary)Pipe pressure drop
Sensors.TemperatureTwoPortT1Ret (from PartialActivePrimary)Return temperature sensor
Sensors.TemperatureTwoPortT1Sup (from PartialActivePrimary)Supply temperature sensor
Buildings.Controls.OBC.CDL.Reals.SubtractdT1 (from PartialActivePrimary)Primary Delta-T
Delays.DelayFirstOrderdel1 (from PartialActivePrimary)Fluid transport delay
Sensors.RelativePressuredp1 (from PartialInjectionTwoWay)Differential pressure
Buildings.Controls.OBC.CDL.Integers.Sources.TimeTablemode (from PartialInjectionTwoWay)Operating mode (time schedule)
InjectionTwoWaycon (from PartialInjectionTwoWay)Hydronic connection
FixedResistances.PressureDropresEnd1 (from PartialInjectionTwoWay)Pipe pressure drop
Buildings.Controls.OBC.CDL.Reals.PIDWithResetctlPum1 (from PartialInjectionTwoWay)Primary pump controller
Buildings.Controls.OBC.CDL.Reals.Sources.Constantdp1SetVal (from PartialInjectionTwoWay)Pressure differential set point
Delays.DelayFirstOrderdel2 (from PartialInjectionTwoWay)Fluid transport delay
Buildings.Controls.OBC.CDL.Integers.GreaterThresholdisEna (from PartialInjectionTwoWay)Returns true if enabled
BaseClasses.LoadThreeWayValveControlloa
BaseClasses.LoadThreeWayValveControlloa1
FixedResistances.PressureDropres2Pipe pressure drop
Buildings.Controls.OBC.CDL.Reals.Sources.ConstantT2SetLim1Consumer circuit temperature design set point
Buildings.Controls.OBC.CDL.Reals.Sources.TimeTablefraLoaLoad modulating signal
Controls.PIDWithOperatingModeresT2PI controller for consumer circuit temperature reset
Buildings.Controls.OBC.CDL.Reals.LineT2SetVarConsumer circuit temperature set point (reset)
Buildings.Controls.OBC.CDL.Reals.MaxyValMaxMaximum valve opening
Buildings.Controls.OBC.CDL.Reals.Sources.ConstantyValSetValve opening set point
Buildings.Controls.OBC.CDL.Reals.Sources.ConstantoneOne
Buildings.Controls.OBC.CDL.Reals.Sources.ConstantzerZero
Buildings.Controls.OBC.CDL.Reals.Sources.ConstantT2SetLim0Consumer circuit temperature limiting set point
Modelica.Blocks.Routing.RealPassThroughT2SetCstConsumer circuit temperature set point (constant)
Modelica.Blocks.Routing.RealPassThroughT2SetConsumer circuit temperature set point

Revisions

  • June 30, 2022, by Antoine Gautier:
    First implementation.