modelPartialHydronicConfiguration
Information
This is the interface class for all models of hydronic configurations in Buildings.Fluid.HydronicConfigurations.ActiveNetworks and Buildings.Fluid.HydronicConfigurations.PassiveNetworks.
This interface class (conditionally) instantiates all possible outside connectors that any derived class may use. This provides plug-compatibility across all the models extending this class.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Real | n | 2 | Flow exponent, n1=1 for laminar, n1=2 for turbulent |
| Movers.Data.Generic | perPum | ||
| Configuration | |||
| Boolean | use_siz | true | Set to true for built-in sizing of control valve and optional pump |
| Boolean | use_dp1 | Set to true to enable dp1_nominal | |
| Boolean | use_dp2 | Set to true to enable dp2_nominal | |
| Buildings.Fluid.HydronicConfigurations.Types.Valve | typVal | Type of control valve | |
| Boolean | have_typVar | true | Set to true to enable the choice of the controlled variable |
| Nominal condition | |||
| Modelica.Units.SI.MassFlowRate | m1_flow_nominal | Mass flow rate in primary circuit at design conditions | |
| Modelica.Units.SI.MassFlowRate | m2_flow_nominal | Mass flow rate in consumer circuit at design conditions | |
| Modelica.Units.SI.PressureDifference | dp1_nominal | Primary circuit pressure differential at design conditions | |
| Modelica.Units.SI.PressureDifference | dp2_nominal | Consumer circuit pressure differential at design conditions | |
| Control valve | |||
| Buildings.Fluid.HydronicConfigurations.Types.ValveCharacteristic | typCha | Buildings.Fluid.HydronicConfigurations.Types.ValveCharacteristic.EqualPercentage | Control valve characteristic |
| Modelica.Units.SI.PressureDifference | dpValve_nominal | Control valve pressure drop at design conditions | |
| Actuators.Valves.Data.Generic | flowCharacteristics | Table with flow characteristics | |
| Actuators.Valves.Data.Generic | flowCharacteristics1 | Table with flow characteristics for direct flow path at port_1 | |
| Actuators.Valves.Data.Generic | flowCharacteristics3 | Table with flow characteristics for bypass flow path at port_3 | |
| Pump | |||
| Buildings.Fluid.HydronicConfigurations.Types.Pump | typPum | Buildings.Fluid.HydronicConfigurations.Types.Pump.VariableInput | Type of secondary pump |
| Buildings.Fluid.HydronicConfigurations.Types.PumpModel | typPumMod | Buildings.Fluid.HydronicConfigurations.Types.PumpModel.Speed | Type of pump model |
| Modelica.Units.SI.MassFlowRate | mPum_flow_nominal | m2_flow_nominal | Pump head at design conditions |
| Modelica.Units.SI.PressureDifference | dpPum_nominal | dp2_nominal + dpBal2_nominal | Pump head at design conditions |
| Controls | |||
| Buildings.Fluid.HydronicConfigurations.Types.Control | typCtl | Buildings.Fluid.HydronicConfigurations.Types.Control.None | Type of built-in controls |
| Buildings.Fluid.HydronicConfigurations.Types.ControlVariable | typVar | Buildings.Fluid.HydronicConfigurations.Types.ControlVariable.SupplyTemperature | Controlled variable |
| Buildings.Controls.OBC.CDL.Types.SimpleController | controllerType | Buildings.Controls.OBC.CDL.Types.SimpleController.PI | Type of controller |
| Real | k | 0.1 | Gain of controller |
| Real | Ti | 120 | Time constant of integrator block |
| Assumptions | |||
| Boolean | use_lumFloRes | true | Set to true to use a lumped flow resistance when possible |
| Boolean | allowFlowReversal | true | = false to simplify equations, assuming, but not enforcing, no flow reversal for medium 1 |
| Balancing valves | |||
| Modelica.Units.SI.PressureDifference | dpBal1_nominal | 0 | Primary balancing valve pressure drop at design conditions |
| Modelica.Units.SI.PressureDifference | dpBal2_nominal | 0 | Secondary balancing valve pressure drop at design conditions |
| Modelica.Units.SI.PressureDifference | dpBal3_nominal | 0 | Bypass balancing valve pressure drop at design conditions |
| Dynamics › Conservation equations | |||
| Modelica.Fluid.Types.Dynamics | energyDynamics | Modelica.Fluid.Types.Dynamics.FixedInitial | Type of energy balance: dynamic (3 initialization options) or steady state |
| Advanced › Diagnostics | |||
| Boolean | show_T | false | = true, if actual temperature at port is computed |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Fluid.Interfaces.FluidPort_a | port_a1 | Primary supply port | |
| Modelica.Fluid.Interfaces.FluidPort_b | port_b1 | Primary return port | |
| Modelica.Fluid.Interfaces.FluidPort_a | port_a2 | Secondary return port | |
| Modelica.Fluid.Interfaces.FluidPort_b | port_b2 | Secondary supply port | |
| Buildings.Controls.OBC.CDL.Interfaces.RealInput | yVal | Valve control signal | |
| Buildings.Controls.OBC.CDL.Interfaces.RealInput | set | Set point | |
| Buildings.Controls.OBC.CDL.Interfaces.RealInput | yPum | Pump control signal (variable speed) | |
| Buildings.Controls.OBC.CDL.Interfaces.IntegerInput | mode | Operating mode | |
| Buildings.Controls.OBC.CDL.Interfaces.RealOutput | yVal_actual | Valve position feedback | |
| Buildings.Controls.OBC.CDL.Interfaces.RealOutput | yPum_actual | Actual pump input value that is used for computations | |
| Buildings.Controls.OBC.CDL.Interfaces.RealOutput | PPum | Pump electrical power |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Medium.MassFlowRate | m1_flow | port_a1.m_flow | Mass flow rate from port_a1 to port_b1 (m1_flow > 0 is design flow direction) |
| Modelica.Units.SI.PressureDifference | dp1 | port_a1.p - port_b1.p | Pressure difference between port_a1 and port_b1 |
| Medium.MassFlowRate | m2_flow | port_a2.m_flow | Mass flow rate from port_a2 to port_b2 (m2_flow > 0 is design flow direction) |
| Modelica.Units.SI.PressureDifference | dp2 | port_a2.p - port_b2.p | Pressure difference between port_a2 and port_b2 |
| Medium.ThermodynamicState | sta_a1 | if allowFlowReversal then Medium.setState_phX(port_a1.p, noEvent(actualStream(port_a1.h_outflow)), noEvent(actualStream(port_a1.Xi_outflow))) else Medium.setState_phX(port_a1.p, inStream(port_a1.h_outflow), inStream(port_a1.Xi_outflow)) | Medium properties in port_a1 |
| Medium.ThermodynamicState | sta_b1 | if allowFlowReversal then Medium.setState_phX(port_b1.p, noEvent(actualStream(port_b1.h_outflow)), noEvent(actualStream(port_b1.Xi_outflow))) else Medium.setState_phX(port_b1.p, port_b1.h_outflow, port_b1.Xi_outflow) | Medium properties in port_b1 |
| Medium.ThermodynamicState | sta_a2 | if allowFlowReversal then Medium.setState_phX(port_a2.p, noEvent(actualStream(port_a2.h_outflow)), noEvent(actualStream(port_a2.Xi_outflow))) else Medium.setState_phX(port_a2.p, inStream(port_a2.h_outflow), inStream(port_a2.Xi_outflow)) | Medium properties in port_a2 |
| Medium.ThermodynamicState | sta_b2 | if allowFlowReversal then Medium.setState_phX(port_b2.p, noEvent(actualStream(port_b2.h_outflow)), noEvent(actualStream(port_b2.Xi_outflow))) else Medium.setState_phX(port_b2.p, port_b2.h_outflow, port_b2.Xi_outflow) | Medium properties in port_b2 |
Contents
| Name | Description |
|---|---|
| Medium in the component |
Revisions
-
June 17, 2026, by Michael Wetter:
Updated implementation to allow a flow coefficientnthat is different from2. This allows use of the model for not fully turbulent flow.
This is for Buildings, #4620.