modelInjectionTwoWayVariable

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

Extends from InjectionTwoWayConstantReturn.

Information

This model is almost similar to Buildings.Fluid.HydronicConfigurations.ActiveNetworks.Examples.InjectionTwoWayConstant except that a cooling system is represented, and the consumer circuit is a variable flow circuit with a variable speed pump and two-way valves. The pump speed is modulated to track a constant pressure differential at the boundaries of the remote terminal unit.

For this circuit to operate as intended, it is critical that the secondary supply temperature set point be different from the primary supply temperature. Otherwise, the tracking error does not change sign and there is no overshoot that can desaturate the integral term of the PI controller. In other words, the controller output is fixed as soon as the measured value equals the set point. Therefore, the equilibrium point typically differs from the control intent which is a primary flow rate varying with the load. One can observe that behavior by setting TLiqSup_nominal=TLiqEnt_nominal and have_resT2=false. Such setting yields a fixed valve position with a primary recirculation and a flow reversal in the bypass whereas the control intent would be a slightly closer position ensuring a positive flow in the bypass. Note that this is nearly invisible from an operating standpoint since the set point and the loads are met. However, this is definitely detrimental to the overall performance as the primary circuit is operated at a higher flow rate and lower ΔT than needed. The system practically behaves as there was no control valve installed on the primary return line.

The fact that the load seems unmet at partial load (see plot #4) is due to the load model that does not guarantee a linear variation of the load with the input signal in cooling mode, see Buildings.Fluid.HydronicConfigurations.ActiveNetworks.Examples.BaseClasses.Load.

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.PressureDifferencedp2Setloa1.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.RelativePressuredp2Differential pressure
FixedResistances.PressureDropresEnd2Pipe pressure drop
Buildings.Controls.OBC.CDL.Reals.Sources.Constantdp2SetValPressure differential set point
Controls.PIDWithOperatingModectlPum2Pump controller

Revisions

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