modelRadiatorEN442_2
Extends from Buildings.Fluid.Interfaces.PartialTwoPortInterface (Partial model with two ports and declaration of quantities that are used by many models), Buildings.Fluid.Interfaces.LumpedVolumeDeclarations (Declarations for lumped volumes).
Information
This is a model of a radiator that can be used as a dynamic or steady-state model. The required parameters are data that are typically available from manufacturers that follow the European Norm EN 442-2.
However, to allow for varying mass flow rates, the transferred heat is computed using a discretization along the water flow path, and heat is exchanged between each compartment and a uniform room air and radiation temperature. This discretization is different from the computation in EN 442-2, which may yield water outlet temperatures that are below the room temperature at low mass flow rates. Furthermore, rather than using only one room temperature, this model uses a room air and room radiation temperature.
The transferred heat is modeled as follows: Let N denote the number of elements used to discretize the radiator model. For each element i ∈ {1, … , N}, the convective and radiative heat transfer Qic and Qir from the radiator to the room is
Qic = sign(Ti-Ta)
(1-fr) UA ⁄ N |Ti-Ta|n
Qir = sign(Ti-Tr)
fr UA ⁄ N |Ti-Tr|n
where Ti is the water temperature of the element, Ta is the temperature of the room air, Tr is the radiative temperature, 0 < fr < 1 is the fraction of radiant to total heat transfer, UA is the UA-value of the radiator, and n is an exponent for the heat transfer. The model computes the UA-value by numerically solving the above equations for given nominal heating power, nominal temperatures, fraction radiant to total heat transfer and exponent for heat transfer.
The parameter energyDynamics (in the Assumptions tab),
determines whether the model computes the dynamic or the steady-state response.
For the transient response, heat storage is computed using a
finite volume approach for the
water and the metal mass, which are both assumed to be at the same
temperature.
The default parameters for the heat capacities are valid for a flat plate radiator without fins, with one plate of water carying fluid, and a height of 0.42 meters.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Boolean | homotopyInitialization | true | = true, use homotopy method |
| Integer | nEle | 5 | Number of elements used in the discretization |
| Real | fraRad | 0.35 | Fraction radiant heat transfer |
| Real | n | 1.24 | Exponent for heat transfer |
| Assumptions | |||
| Boolean | allowFlowReversal (from PartialTwoPort) | true | = false to simplify equations, assuming, but not enforcing, no flow reversal |
| Nominal condition | |||
| Modelica.Units.SI.MassFlowRate | m_flow_nominal (from PartialTwoPortInterface) | Nominal mass flow rate | |
| Modelica.Units.SI.Power | Q_flow_nominal | Nominal heating power (positive for heating) | |
| Modelica.Units.SI.Temperature | T_a_nominal | Water inlet temperature at nominal condition | |
| Modelica.Units.SI.Temperature | T_b_nominal | Water outlet temperature at nominal condition | |
| Modelica.Units.SI.Temperature | TAir_nominal | 293.15 | Air temperature at nominal condition |
| Modelica.Units.SI.Temperature | TRad_nominal | TAir_nominal | Radiative temperature at nominal condition |
| Modelica.Units.SI.PressureDifference | dp_nominal | 0 | Pressure drop at nominal mass flow rate |
| Advanced | |||
| Modelica.Units.SI.MassFlowRate | m_flow_small (from PartialTwoPortInterface) | 1E-4*abs(m_flow_nominal) | Small mass flow rate for regularization of zero flow |
| Boolean | from_dp | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
| Boolean | linearized | false | = true, use linear relation between m_flow and dp for any flow rate |
| Advanced › Diagnostics | |||
| Boolean | show_T (from PartialTwoPortInterface) | false | = true, if actual temperature at port is computed |
| Dynamics › Conservation equations | |||
| Modelica.Fluid.Types.Dynamics | energyDynamics (from LumpedVolumeDeclarations) | Modelica.Fluid.Types.Dynamics.DynamicFreeInitial | Type of energy balance: dynamic (3 initialization options) or steady state |
| Modelica.Fluid.Types.Dynamics | substanceDynamics (from LumpedVolumeDeclarations) | energyDynamics | Type of independent mass fraction balance: dynamic (3 initialization options) or steady state |
| Modelica.Fluid.Types.Dynamics | traceDynamics (from LumpedVolumeDeclarations) | energyDynamics | Type of trace substance balance: dynamic (3 initialization options) or steady state |
| Advanced › Dynamics | |||
| Modelica.Fluid.Types.Dynamics | massDynamics (from LumpedVolumeDeclarations) | energyDynamics | Type of mass balance: dynamic (3 initialization options) or steady state, must be steady state if energyDynamics is steady state |
| Initialization | |||
| Medium.AbsolutePressure | p_start (from LumpedVolumeDeclarations) | Medium.p_default | Start value of pressure |
| Medium.Temperature | T_start (from LumpedVolumeDeclarations) | Medium.T_default | Start value of temperature |
| Medium.MassFraction[Medium.nX] | X_start (from LumpedVolumeDeclarations) | Medium.X_default | Start value of mass fractions m_i/m |
| Medium.ExtraProperty[Medium.nC] | C_start (from LumpedVolumeDeclarations) | fill(0, Medium.nC) | Start value of trace substances |
| Medium.ExtraProperty[Medium.nC] | C_nominal (from LumpedVolumeDeclarations) | fill(1E-2, Medium.nC) | Nominal value of trace substances. (Set to typical order of magnitude.) |
| Dynamics | |||
| Real | mSenFac (from LumpedVolumeDeclarations) | 1 | Factor for scaling the sensible thermal mass of the volume |
| Modelica.Units.SI.Volume | VWat | 5.8E-6*abs(Q_flow_nominal) | Water volume of radiator |
| Modelica.Units.SI.Mass | mDry | 0.0263*abs(Q_flow_nominal) | Dry mass of radiator that will be lumped to water heat capacity |
| Transition to laminar | |||
| Real | deltaM | 0.3 | Fraction of nominal mass flow rate where transition to turbulent occurs |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Fluid.Interfaces.FluidPort_a | port_a (from PartialTwoPort) | Fluid connector a (positive design flow direction is from port_a to port_b) | |
| Modelica.Fluid.Interfaces.FluidPort_b | port_b (from PartialTwoPort) | Fluid connector b (positive design flow direction is from port_a to port_b) | |
| Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a | heatPortCon | Heat port for convective heat transfer with room air temperature | |
| Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a | heatPortRad | Heat port for radiative heat transfer with room radiation temperature |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Units.SI.MassFlowRate | m_flow (from PartialTwoPortInterface) | port_a.m_flow | Mass flow rate from port_a to port_b (m_flow > 0 is design flow direction) |
| Modelica.Units.SI.PressureDifference | dp (from PartialTwoPortInterface) | port_a.p - port_b.p | Pressure difference between port_a and port_b |
| Medium.ThermodynamicState | sta_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.ThermodynamicState | sta_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 |
| Modelica.Units.SI.HeatFlowRate | QCon_flow | heatPortCon.Q_flow | Heat input into the water due to convective heat transfer with room air |
| Modelica.Units.SI.HeatFlowRate | QRad_flow | heatPortRad.Q_flow | Heat input into the water due to radiative heat transfer with room |
| Modelica.Units.SI.HeatFlowRate | Q_flow | QCon_flow + QRad_flow | Heat input into the water |
| Buildings.Fluid.MixingVolumes.MixingVolume | vol | Volume for fluid stream |
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. -
March 7, 2022, by Michael Wetter:
Setfinal massDynamics=energyDynamics.
This is for #1542. -
April 14, 2020, by Michael Wetter:
ChangedhomotopyInitializationto a constant.
This is for IBPSA, #1341. -
February 21, 2020, by Michael Wetter:
Changed icon to display its operating state.
This is for #1294. -
November 17, 2016, by Filip Jorissen:
Added pressure drop equations and parameters.
This is for #586. -
November 3, 2016, by Michael Wetter:
SetpreHea(final alpha=0)as this allows to simplify the system of equations.
This is for #570. -
March 17, 2016, by Michael Wetter:
Reformulated model to reduce the dimension of the nonlinear system of equations. This is for #435. -
November 19, 2015, by Michael Wetter:
Removed assignment of parametershowDesignFlowDirectioninextendsstatement. This is for #349. -
April 11, 2015, by Filip Jorissen:
Propagatedvol.massDynamicsto top level parametermassDynamicsinstead ofenergyDynamics. -
November 25, 2014, by Carles Ribas Tugores:
Interchange position offraRadparameter and the complementary(1-fraRad)in the equation used to calculate the nominal heating power of each element,QEle_flow_nominal[i]. -
October 29, 2014, by Michael Wetter:
Made assignment ofmFactorfinal, and changed computation of density to use default medium states as are also used to compute the specific heat capacity. -
October 21, 2014, by Filip Jorissen:
Added parametermFactorand removed thermal capacity which can lead to an index reduction. -
May 29, 2014, by Michael Wetter:
Removed undesirable annotationEvaluate=true. -
October 8, 2013 by Michael Wetter:
Removed conditional statement in the declaration of the parametermDry, as this is incorrect syntax. -
September 26, 2013 by Michael Wetter:
Reformulated implementation to avoid mixing textual and graphical declarations in theequationsection. -
April 4, 2011 by Michael Wetter:
Changed the implementation to use Buildings.Utilities.Math.Functions.regNonZeroPower. This allows formulating the model without any non-differentiable function inside the equation section. -
April 2, 2011 by Michael Wetter:
Addedhomotopyoperator. -
February 11, 2011 by Michael Wetter:
Revised the initialization to ensure that at the nominal conditions, the amount of transferred heat is excatly the same as the specified nominal power. In the previous implementation, the UA-value was computed using a simplified expression for the temperature difference, leading to a slightly different amount of heat transfer. -
February 4, 2011 by Michael Wetter:
Simplified implementation. -
January 30, 2009 by Michael Wetter:
First implementation.