modelParallelCircuitsSlab

Model of multiple parallel circuits of a radiant slab

Extends from Buildings.Fluid.Interfaces.PartialTwoPort (Partial component with two ports), Buildings.Fluid.HeatExchangers.RadiantSlabs.BaseClasses.Slab (Base class for radiant slab), Buildings.Fluid.Interfaces.LumpedVolumeDeclarations (Declarations for lumped volumes), Buildings.Fluid.Interfaces.TwoPortFlowResistanceParameters (Parameters for flow resistance for models with two ports).

Information

This is a model of a radiant slab with pipes or a capillary heat exchanger embedded in the construction. The model is a composition of multiple models of Buildings.Fluid.HeatExchangers.RadiantSlabs.SingleCircuitSlab that are arranged in a parallel.

The parameter nCir declares the number of parallel flow circuits. Each circuit will have the same mass flow rate, and it is exposed to the same port variables for the heat port at the two surfaces, and for the flow inlet and outlet.

A typical model application is as follows: Suppose a large room has a radiant slab with two parallel circuits with the same pipe spacing and pipe length. Then, rather than using two instances of Buildings.Fluid.HeatExchangers.RadiantSlabs.SingleCircuitSlab, this system can be modeled using one instance of this model in order to reduce computing effort. See Buildings.Fluid.HeatExchangers.RadiantSlabs.Examples.SingleCircuitMultipleCircuitEpsilonNTU for an example that shows that the models give identical results.

Since this model is a parallel arrangment of nCir models of Buildings.Fluid.HeatExchangers.RadiantSlabs.SingleCircuitSlab, we refer to Buildings.Fluid.HeatExchangers.RadiantSlabs.SingleCircuitSlab for the model documentation.

See the user's guide for more information.

Implementation

To allow a better comment for the nominal mass flow rate, i.e., to specify that its value is for all circuits combined, this model does not inherit Buildings.Fluid.Interfaces.PartialTwoPortInterface.

Parameters

TypeNameDefaultDescription
Buildings.Fluid.HeatExchangers.RadiantSlabs.Types.SystemTypesysTyp (from Slab)Radiant system type
Modelica.Units.SI.DistancedisPip (from Slab)Pipe distance
Buildings.Fluid.Data.Pipes.Genericpipe (from Slab)Record for pipe geometry and material
BooleanhomotopyInitializationtrue= true, use homotopy method
IntegernCir1Number of parallel circuits
IntegernSegif heatTransfer == Types.HeatTransfer.EpsilonNTU then 1 else 5Number of volume segments in each circuit (along flow path)
Modelica.Units.SI.LengthlengthA/disPip/nCirLength of the pipe of a single circuit
Modelica.Units.SI.Velocityv_nominal4*m_flow_nominal/pipe.dIn^2/Modelica.Constants.pi/rho_default/nCirVelocity at m_flow_nominal
Buildings.Fluid.HeatExchangers.RadiantSlabs.Types.HeatTransferheatTransferTypes.HeatTransfer.EpsilonNTUModel for heat transfer between fluid and slab
Assumptions
BooleanallowFlowReversal (from PartialTwoPort)true= false to simplify equations, assuming, but not enforcing, no flow reversal
Construction
HeatTransfer.Data.OpaqueConstructions.Genericlayers (from Slab)Definition of the construction, which must have at least two material layers
IntegeriLayPip (from Slab)Number of the interface layer in which the pipes are located
Modelica.Units.SI.AreaASurface area of radiant slab (all circuits combined)
Initialization › Construction
BooleansteadyStateInitial (from Slab)false=true initializes dT(0)/dt=0, false initializes T(0) at fixed temperature using T_a_start, T_c_start and T_b_start
Modelica.Units.SI.TemperatureT_a_start (from Slab)293.15Initial temperature at surf_a, used if steadyStateInitial = false
Modelica.Units.SI.TemperatureT_b_start (from Slab)293.15Initial temperature at surf_b, used if steadyStateInitial = false
Dynamics
BooleanstateAtSurface_a (from Slab)true=true, a state will be at the surface a
BooleanstateAtSurface_b (from Slab)true=true, a state will be at the surface b
RealmSenFac (from LumpedVolumeDeclarations)1Factor for scaling the sensible thermal mass of the volume
Dynamics › Conservation equations
Modelica.Fluid.Types.DynamicsenergyDynamics (from LumpedVolumeDeclarations)Modelica.Fluid.Types.Dynamics.DynamicFreeInitialType of energy balance: dynamic (3 initialization options) or steady state
Modelica.Fluid.Types.DynamicssubstanceDynamics (from LumpedVolumeDeclarations)energyDynamicsType of independent mass fraction balance: dynamic (3 initialization options) or steady state
Modelica.Fluid.Types.DynamicstraceDynamics (from LumpedVolumeDeclarations)energyDynamicsType of trace substance balance: dynamic (3 initialization options) or steady state
Advanced › Dynamics
Modelica.Fluid.Types.DynamicsmassDynamics (from LumpedVolumeDeclarations)energyDynamicsType of mass balance: dynamic (3 initialization options) or steady state, must be steady state if energyDynamics is steady state
Initialization
Medium.AbsolutePressurep_start (from LumpedVolumeDeclarations)Medium.p_defaultStart value of pressure
Medium.TemperatureT_start (from LumpedVolumeDeclarations)Medium.T_defaultStart value of temperature
Medium.MassFraction[Medium.nX]X_start (from LumpedVolumeDeclarations)Medium.X_defaultStart 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.)
Flow resistance
BooleancomputeFlowResistance (from TwoPortFlowResistanceParameters)true=true, compute flow resistance. Set to false to assume no friction
Booleanfrom_dp (from TwoPortFlowResistanceParameters)false= true, use m_flow = f(dp) else dp = f(m_flow)
Realn (from TwoPortFlowResistanceParameters)2Flow exponent, n=1 for laminar, n=2 for turbulent
BooleanlinearizeFlowResistance (from TwoPortFlowResistanceParameters)false= true, use linear relation between m_flow and dp for any flow rate
RealdeltaM (from TwoPortFlowResistanceParameters)0.1Fraction of nominal flow rate where flow transitions to laminar
Nominal condition
Modelica.Units.SI.PressureDifferencedp_nominal (from TwoPortFlowResistanceParameters)Pressure difference
Modelica.Units.SI.MassFlowRatem_flow_nominalNominal mass flow rate of all circuits combined
Advanced
Modelica.Units.SI.MassFlowRatem_flow_small1E-4*abs(m_flow_nominal)Small mass flow rate of all circuits combined for regularization of zero flow
Advanced › Diagnostics
Booleanshow_Tfalse= true, if actual temperature at port is computed

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)
Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_asurf_a (from Slab)Heat port at construction surface
Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_asurf_b (from Slab)Heat port at construction surface

Components

TypeNameDefaultDescription
Modelica.Units.SI.MassFlowRatem_flowport_a.m_flowMass flow rate from port_a to port_b (m_flow > 0 is design flow direction) for all circuits combined
Modelica.Units.SI.PressureDifferencedpport_a.p - port_b.pPressure difference between port_a and port_b
Medium.ThermodynamicStatesta_aif homotopyInitialization then Medium.setState_phX(port_a.p, homotopy(actual = noEvent(actualStream(port_a.h_outflow)), simplified = inStream(port_a.h_outflow)), homotopy(actual = noEvent(actualStream(port_a.Xi_outflow)), simplified = inStream(port_a.Xi_outflow))) else Medium.setState_phX(port_a.p, noEvent(actualStream(port_a.h_outflow)), noEvent(actualStream(port_a.Xi_outflow)))Medium properties in port_a
Medium.ThermodynamicStatesta_bif homotopyInitialization then Medium.setState_phX(port_b.p, homotopy(actual = noEvent(actualStream(port_b.h_outflow)), simplified = port_b.h_outflow), homotopy(actual = noEvent(actualStream(port_b.Xi_outflow)), simplified = port_b.Xi_outflow)) else Medium.setState_phX(port_b.p, noEvent(actualStream(port_b.h_outflow)), noEvent(actualStream(port_b.Xi_outflow)))Medium properties in port_b
Buildings.Fluid.HeatExchangers.RadiantSlabs.SingleCircuitSlabslaSingle parallel circuit of the radiant slab

Revisions

  • April 14, 2020, by Michael Wetter:
    Changed homotopyInitialization to a constant.
    This is for IBPSA, #1341.
  • January 22, 2016, by Michael Wetter:
    Corrected type declaration of pressure difference. This is for #404.
  • June 9, 2015 by Michael Wetter:
    Changed base class from Modelica.Fluid.Interfaces.PartialTwoPort to Buildings.Fluid.Interfaces.PartialTwoPort.
  • October 10, 2013 by Michael Wetter:
    Added noEvent to the computation of the states at the port. This is correct, because the states are only used for reporting, but not to compute any other variable. Use of the states to compute other variables would violate the Modelica language, as conditionally removed variables must not be used in any equation.
  • October 8, 2013, by Michael Wetter:
    Removed parameter show_V_flow.
  • September 14, 2013, by Michael Wetter:
    Corrected assignment of start value for pressure at port_a and port_b, which used Medium.p_default instead of the parameter p_start.
  • June 27, 2012, by Michael Wetter:
    First implementation.