modelInjectionTwoWayVariableReturn

Model illustrating the operation of an inversion circuit with two-way valve and variable secondary with return temperature control

Extends from InjectionTwoWayVariable (Model illustrating the operation of an inversion circuit with two-way valve and variable secondary).

Information

This model illustrates a configuration that is not recommended, that is an injection circuit with a two-way valve serving a variable flow consumer circuit, and controlled based on the return temperature. When comparing this model to Buildings.Fluid.HydronicConfigurations.ActiveNetworks.Examples.InjectionTwoWayConstantReturn one can notice that the design load is not met (see plot #4 between 6h and 8h) despite the return temperature set point being met (see plot #1) and the consumer circuit being operated at design flow rate (see plot #2). This is because, for the specific sizing of the cooling coil and for certain operating conditions the "process characteristic" is not monotonously decreasing as expected. This is illustrated by the simulation of the load model with open loop control (see plot #9). That simulation shows that for a constant load, an increasing supply temperature yields a decreasing return temperature. However, the control logic is based on the consideration that a decreasing return temperature is the signature of a decreasing load. It thus triggers the closing of the control valve, which in turn yields an increasing secondary flow recirculation, so an increasing supply temperature that further decreases the return temperature. The result is that the equilibrium point differs from the control intent, here with a supply temperature much higher than the design value (6.6 °C instead of 4.4 °C).

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_nominal (from InjectionTwoWayConstant)if con.typVar == Buildings.Fluid.HydronicConfigurations.Types.ControlVariable.SupplyTemperature then TLiqEnt_nominal else TLiqLvg_nominalConsumer circuit design temperature set point
Modelica.Units.SI.TemperatureTAirEnt_nominal (from InjectionTwoWayConstant)293.15Air entering temperature at design conditions
Modelica.Units.SI.MassFractionphiAirEnt_nominal (from InjectionTwoWayConstant)0.5Air entering relative humidity at design conditions
Modelica.Units.SI.MassFlowRatemAir_flow_nominal (from InjectionTwoWayConstantReturn)6.8Air mass flow rate 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_resT2 (from InjectionTwoWayConstant)falseSet to true for consumer circuit temperature reset, false for constant set point
Controls
Modelica.Units.SI.PressureDifferencedp1Set (from PartialInjectionTwoWay)1e4Pressure differential set point
Modelica.Units.SI.PressureDifferencedp2Set (from InjectionTwoWayVariable)loa1.dpTer_nominal + loa1.dpValve_nominalSecondary pressure 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 (from InjectionTwoWayConstant)
BaseClasses.LoadThreeWayValveControlloa1 (from InjectionTwoWayConstant)
FixedResistances.PressureDropres2 (from InjectionTwoWayConstant)Pipe pressure drop
Buildings.Controls.OBC.CDL.Reals.Sources.ConstantT2SetLim1 (from InjectionTwoWayConstant)Consumer circuit temperature design set point
Buildings.Controls.OBC.CDL.Reals.Sources.TimeTablefraLoa (from InjectionTwoWayConstant)Load modulating signal
Controls.PIDWithOperatingModeresT2 (from InjectionTwoWayConstant)PI controller for consumer circuit temperature reset
Buildings.Controls.OBC.CDL.Reals.LineT2SetVar (from InjectionTwoWayConstant)Consumer circuit temperature set point (reset)
Buildings.Controls.OBC.CDL.Reals.MaxyValMax (from InjectionTwoWayConstant)Maximum valve opening
Buildings.Controls.OBC.CDL.Reals.Sources.ConstantyValSet (from InjectionTwoWayConstant)Valve opening set point
Buildings.Controls.OBC.CDL.Reals.Sources.Constantone (from InjectionTwoWayConstant)One
Buildings.Controls.OBC.CDL.Reals.Sources.Constantzer (from InjectionTwoWayConstant)Zero
Buildings.Controls.OBC.CDL.Reals.Sources.ConstantT2SetLim0 (from InjectionTwoWayConstant)Consumer circuit temperature limiting set point
Modelica.Blocks.Routing.RealPassThroughT2SetCst (from InjectionTwoWayConstant)Consumer circuit temperature set point (constant)
Modelica.Blocks.Routing.RealPassThroughT2Set (from InjectionTwoWayConstant)Consumer circuit temperature set point
Sensors.RelativePressuredp2 (from InjectionTwoWayVariable)Differential pressure
FixedResistances.PressureDropresEnd2 (from InjectionTwoWayVariable)Pipe pressure drop
Buildings.Controls.OBC.CDL.Reals.Sources.Constantdp2SetVal (from InjectionTwoWayVariable)Pressure differential set point
Controls.PIDWithOperatingModectlPum2 (from InjectionTwoWayVariable)Pump controller
BaseClasses.LoadTwoWayValveControlloaOpeLoad with open loop control
Buildings.Controls.OBC.CDL.Reals.Sources.RampTSupVal1Supply temperature
Sources.Boundary_pTrefOpePressure and temperature boundary condition
Sources.Boundary_pTrefOpe1Pressure and temperature boundary condition
Sensors.TemperatureTwoPortTSupOpeSupply temperature sensor
Sensors.TemperatureTwoPortTRetOpeReturn temperature sensor
Buildings.Controls.OBC.CDL.Reals.Sources.ConstantfraLoa1Load modulating signal
Buildings.Controls.OBC.CDL.Integers.Sources.ConstantmodOpeOperating mode

Revisions

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