modelInjectionTwoWayVariableReturn
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
| Type | Name | Default | Description |
|---|---|---|---|
| Buildings.Fluid.HydronicConfigurations.Types.Control | typ (from PartialActivePrimary) | Buildings.Fluid.HydronicConfigurations.Types.Control.Heating | Load type |
| Integer | nTer (from PartialActivePrimary) | 2 | Number of terminal units |
| Real | kSizPum (from PartialActivePrimary) | 1.0 | Pump oversizing coefficient |
| Modelica.Units.SI.Pressure | p_min (from PartialActivePrimary) | 200000 | Circuit minimum pressure |
| Modelica.Units.SI.Temperature | TLiqEnt_nominal (from PartialActivePrimary) | if typ == Buildings.Fluid.HydronicConfigurations.Types.Control.Heating then 60 + 273.15 else 7 + 273.15 | Liquid entering temperature at design conditions |
| Modelica.Units.SI.Temperature | TLiqLvg_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.Temperature | TLiqEntChg_nominal (from PartialActivePrimary) | 60 + 273.15 | Liquid entering temperature in change-over mode |
| Modelica.Units.SI.Temperature | TLiqSup_nominal (from PartialActivePrimary) | TLiqEnt_nominal | Liquid primary supply temperature at design conditions |
| Modelica.Units.SI.Temperature | TLiqSupChg_nominal (from PartialActivePrimary) | TLiqEntChg_nominal | Liquid primary supply temperature in change-over mode |
| Nominal condition | |||
| Modelica.Units.SI.MassFlowRate | mTer_flow_nominal (from PartialActivePrimary) | 1 | Terminal unit mass flow rate at design conditions |
| Modelica.Units.SI.MassFlowRate | m1_flow_nominal (from PartialActivePrimary) | m2_flow_nominal | Mass flow rate in primary branch at design conditions |
| Modelica.Units.SI.MassFlowRate | m2_flow_nominal (from PartialActivePrimary) | nTer*mTer_flow_nominal | Mass flow rate in consumer circuit at design conditions |
| Modelica.Units.SI.PressureDifference | dpTer_nominal (from PartialActivePrimary) | 3E4 | Terminal unit pressure drop at design conditions |
| Modelica.Units.SI.PressureDifference | dpPip_nominal (from PartialActivePrimary) | 0.5E4 | Pipe section pressure drop at design conditions |
| Modelica.Units.SI.PressureDifference | dpPum_nominal (from PartialActivePrimary) | Pump head at design conditions | |
| Modelica.Units.SI.MassFlowRate | mPum_flow_nominal (from PartialActivePrimary) | m1_flow_nominal | Primary pump mass flow rate at design conditions |
| Modelica.Units.SI.PressureDifference | dp2_nominal (from PartialInjectionTwoWay) | Consumer circuit pressure differential at design conditions | |
| Modelica.Units.SI.Temperature | T2Set_nominal (from InjectionTwoWayConstant) | if con.typVar == Buildings.Fluid.HydronicConfigurations.Types.ControlVariable.SupplyTemperature then TLiqEnt_nominal else TLiqLvg_nominal | Consumer circuit design temperature set point |
| Modelica.Units.SI.Temperature | TAirEnt_nominal (from InjectionTwoWayConstant) | 293.15 | Air entering temperature at design conditions |
| Modelica.Units.SI.MassFraction | phiAirEnt_nominal (from InjectionTwoWayConstant) | 0.5 | Air entering relative humidity at design conditions |
| Modelica.Units.SI.MassFlowRate | mAir_flow_nominal (from InjectionTwoWayConstantReturn) | 6.8 | Air mass flow rate at design conditions |
| Dynamics › Conservation equations | |||
| Modelica.Fluid.Types.Dynamics | energyDynamics (from PartialActivePrimary) | Modelica.Fluid.Types.Dynamics.FixedInitial | Type of energy balance: dynamic (3 initialization options) or steady state |
| Configuration | |||
| Boolean | is_bal (from PartialInjectionTwoWay) | false | Set to true for balanced primary branch |
| Boolean | have_resT2 (from InjectionTwoWayConstant) | false | Set to true for consumer circuit temperature reset, false for constant set point |
| Controls | |||
| Modelica.Units.SI.PressureDifference | dp1Set (from PartialInjectionTwoWay) | 1e4 | Pressure differential set point |
| Modelica.Units.SI.PressureDifference | dp2Set (from InjectionTwoWayVariable) | loa1.dpTer_nominal + loa1.dpValve_nominal | Secondary pressure differential set point |
Components
Revisions
-
June 30, 2022, by Antoine Gautier:
First implementation.