modelLoad

Model of a load on a hydronic circuit

Extends from Buildings.Fluid.Interfaces.PartialTwoPortInterface (Partial model with two ports and declaration of quantities that are used by many models).

Information

This model represents a thermal load on a hydronic circuit, typically a terminal unit with recirculating air such as a fan coil unit. It takes the fraction of the design load u as input and returns the control valve demand signal yVal as output. In steady-state conditions, the model provides zero load for u=0 and the design load for u=1. However, for a cooling load with condensation, the relationship between u and the load is not linear. The main modeling assumptions are described below.

  • The heat exchanger is modeled in steady-state by default (dynamics may be reintroduced with the parameter energyDynamics).
  • No pressure drop is considered, neither on the load side, nor on the source side (the design pressure drop on the source side may be reset with the parameter dpLiq_nominal).
  • The mass flow rate and the inlet conditions on the load side are constant. The load is modulated by varying the supply temperature set point.

Parameters

TypeNameDefaultDescription
Buildings.Fluid.HydronicConfigurations.Types.ControltypLoad type
Modelica.Units.SI.MassFlowRatemLiq_flow_nominal1Liquid mass flow rate at design conditions
Modelica.Units.SI.PressureDifferencedpLiq_nominal0Liquid pressure drop at design conditions
Modelica.Units.SI.MassFlowRatemAir_flow_nominalabs(Q_flow_nominal)/10/cpAir_nominalAir mass flow rate at design conditions
Modelica.Units.SI.TemperatureTAirEnt_nominalif typ == Buildings.Fluid.HydronicConfigurations.Types.Control.Heating then 20 + 273.15 else 26 + 273.15Air entering temperature at design conditions
Modelica.Units.SI.TemperatureTAirEntChg_nominal20 + 273.15Air entering temperature in change-over mode
Modelica.Units.SI.MassFractionphiAirEnt_nominal0.5Air entering relative humidity at design conditions
Modelica.Units.SI.MassFractionXAirEnt_nominalBuildings.Utilities.Psychrometrics.Functions.X_pTphi(MediumAir.p_default, TAirEnt_nominal, phiAirEnt_nominal)Air entering water mass fraction at design conditions (kg/kg air)
Modelica.Units.SI.MassFractionxAirEnt_nominalXAirEnt_nominal/(1 - XAirEnt_nominal)Air entering humidity ratio at design conditions (kg/kg dry air)
Modelica.Units.SI.TemperatureTLiqEnt_nominalif typ == Buildings.Fluid.HydronicConfigurations.Types.Control.Heating then 60 + 273.15 else 7 + 273.15Liquid entering temperature at design conditions
Modelica.Units.SI.TemperatureTLiqLvg_nominalTLiqEnt_nominal + (if typ == Buildings.Fluid.HydronicConfigurations.Types.Control.Heating then -10 else +5)Liquid leaving temperature at design conditions
Modelica.Units.SI.TemperatureTLiqEntChg_nominal60 + 273.15Liquid entering temperature in change-over mode
Modelica.Units.SI.HeatFlowRateQ_flow_nominal(MediumLiq.specificEnthalpy_pTX(MediumLiq.p_default, TLiqEnt_nominal, X = MediumLiq.X_default) - MediumLiq.specificEnthalpy_pTX(MediumLiq.p_default, TLiqLvg_nominal, X = MediumLiq.X_default))*mLiq_flow_nominalTransmitted heat flow rate at design conditions
Modelica.Units.SI.HeatFlowRateQChg_flow_nominaleps_nominal*min({mLiq_flow_nominal*cpLiq_nominal, mAir_flow_nominal*cpAirChg_nominal})*(TLiqEntChg_nominal - TAirEntChg_nominal)Transmitted heat flow rate in change-over mode
Modelica.Units.SI.TemperatureTAirLvgChg_nominalTAirEntChg_nominal + QChg_flow_nominal/cpAirChg_nominal/mAir_flow_nominalAir leaving temperature in change-over mode
Buildings.Controls.OBC.CDL.Types.SimpleControllercontrollerTypeBuildings.Controls.OBC.CDL.Types.SimpleController.PIType of controller
Assumptions
BooleanallowFlowReversal (from PartialTwoPort)true= false to simplify equations, assuming, but not enforcing, no flow reversal
Nominal condition
Modelica.Units.SI.MassFlowRatem_flow_nominal (from PartialTwoPortInterface)Nominal mass flow rate
Advanced
Modelica.Units.SI.MassFlowRatem_flow_small (from PartialTwoPortInterface)1E-4*abs(m_flow_nominal)Small mass flow rate for regularization of zero flow
Advanced › Diagnostics
Booleanshow_T (from PartialTwoPortInterface)false= true, if actual temperature at port is computed
Control gains
Realk0.1Gain of controller
RealTi60Time constant of integrator block
Dynamics › Conservation equations
Modelica.Fluid.Types.DynamicsenergyDynamicsModelica.Fluid.Types.Dynamics.SteadyStateType of energy balance: dynamic (3 initialization options) or steady state

Connectors

TypeNameDefaultDescription
Modelica.Fluid.Interfaces.FluidPort_aport_a (from PartialTwoPort)Fluid connector a (positive design flow direction is from port_a to port_b)
Modelica.Fluid.Interfaces.FluidPort_bport_b (from PartialTwoPort)Fluid connector b (positive design flow direction is from port_a to port_b)
Buildings.Controls.OBC.CDL.Interfaces.RealInputuLoad modulating signal
Buildings.Controls.OBC.CDL.Interfaces.IntegerInputmodeOperating mode
Buildings.Controls.OBC.CDL.Interfaces.RealOutputyValValve demand signal
Buildings.Controls.OBC.CDL.Interfaces.RealOutputu_sController set point
Buildings.Controls.OBC.CDL.Interfaces.RealOutputu_mController measured value
Buildings.Controls.OBC.CDL.Interfaces.RealOutputdTLiqLiquid deltaT
Buildings.Controls.OBC.CDL.Interfaces.RealOutputQ_flowTotal heat flow rate transferred to the load
Buildings.Controls.OBC.CDL.Interfaces.RealOutputyLoa_actualActual load fraction met

Components

TypeNameDefaultDescription
Modelica.Units.SI.MassFlowRatem_flow (from PartialTwoPortInterface)port_a.m_flowMass flow rate from port_a to port_b (m_flow > 0 is design flow direction)
Modelica.Units.SI.PressureDifferencedp (from PartialTwoPortInterface)port_a.p - port_b.pPressure difference between port_a and port_b
Medium.ThermodynamicStatesta_a (from PartialTwoPortInterface)if allowFlowReversal then Medium.setState_phX(port_a.p, noEvent(actualStream(port_a.h_outflow)), noEvent(actualStream(port_a.Xi_outflow))) else Medium.setState_phX(port_a.p, noEvent(inStream(port_a.h_outflow)), noEvent(inStream(port_a.Xi_outflow)))Medium properties in port_a
Medium.ThermodynamicStatesta_b (from PartialTwoPortInterface)if allowFlowReversal then Medium.setState_phX(port_b.p, noEvent(actualStream(port_b.h_outflow)), noEvent(actualStream(port_b.Xi_outflow))) else Medium.setState_phX(port_b.p, noEvent(port_b.h_outflow), noEvent(port_b.Xi_outflow))Medium properties in port_b
Sources.Boundary_pToutAirPressure boundary condition at coil outlet
Sensors.TemperatureTwoPortTAirLvgLeaving air temperature sensor
HeatExchangers.WetCoilEffectivenessNTUcoiCoil
Sources.MassFlowSource_TsouAirSource for entering air
Controls.PIDWithOperatingModectlController for supply air temperature
Buildings.Controls.OBC.CDL.Reals.AddTAirSupSetCompute set point as TAirEnt_nominal + u * (TAirLvg_nominal - TAirEnt_nominal)
HeatExchangers.WetCoilEffectivenessNTUcoiNomCoil operating at design conditions (used for model parameterization)
Sources.MassFlowSource_TsouAirNomSource for entering air
Sources.MassFlowSource_TsouLiqSource for entering liquid
Sources.Boundary_pToutLiqPressure boundary condition at liquid outlet
Sensors.TemperatureTwoPortTLiqEntEntering liquid temperature sensor
Sensors.TemperatureTwoPortTLiqLvgLeaving liquid temperature sensor
Buildings.Controls.OBC.CDL.Reals.SubtractdTCompute deltaT
Modelica.Blocks.Sources.RealExpressionheaFloAccess coil heat flow rate
Modelica.Blocks.Sources.RealExpressionloaFraCompute actual load fraction
Sensors.TemperatureTwoPortTAirLvgNomLeaving air temperature sensor
Buildings.Controls.OBC.CDL.Reals.SubtractsubCompute TAirLvg_nominal - TAirEnt_nominal
Buildings.Controls.OBC.CDL.Reals.MultiplyproCompute u * (TAirLvg_nominal - TAirEnt_nominal)
Buildings.Controls.OBC.CDL.Reals.Sources.Constant[3]TAirEntValValues of entering air temperature
Buildings.Controls.OBC.CDL.Routing.RealExtractorTAirEnt_actualSelect design value of entering air temperature depending on mode
Buildings.Controls.OBC.CDL.Routing.RealExtractorTAirLvg_actualSelect design value of leaving air temperature depending on mode
Buildings.Controls.OBC.CDL.Reals.Sources.ConstantTAirLvgValValues of leaving air temperature
Buildings.Controls.OBC.CDL.Integers.AddParameteraddParConvert mode index to array index
Buildings.Controls.OBC.CDL.Routing.RealScalarReplicatorreaScaRepReplicate

Contents

NameDescription
MediumAirMedium model for air
MediumLiqMedium model for liquid (CHW or HHW)

Revisions

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