modelPlugFlowPipe

Pipe model using spatialDistribution for temperature delay
Diagram of PlugFlowPipe

Extends from IBPSA.Obsolete.BaseClasses.ObsoleteModel (Icon for classes that are obsolete and will be removed in later versions), IBPSA.Fluid.Interfaces.PartialTwoPortVector (Partial component with two ports, one of which being vectorized).

Information

Pipe with heat loss using the time delay based heat losses and transport of the fluid using a plug flow model, applicable for simulation of long pipes such as in district heating and cooling systems.

This model takes into account transport delay along the pipe length idealized as a plug flow. The model also includes thermal inertia of the pipe wall.

Implementation

Heat losses are implemented by IBPSA.Fluid.FixedResistances.BaseClasses.PlugFlowHeatLoss at each end of the pipe (see IBPSA.Obsolete.Fluid.FixedResistances.BaseClasses.PlugFlowCore). Depending on the flow direction, the temperature difference due to heat losses is subtracted at the right fluid port.

The pressure drop is implemented using IBPSA.Fluid.FixedResistances.HydraulicDiameter.

The thermal capacity of the pipe wall is implemented as a mixing volume of the fluid in the pipe, of which the thermal capacity is equal to that of the pipe wall material. In addition, this mixing volume allows the hydraulic separation of subsequent pipes. Thanks to the vectorized implementation of the (design) outlet port, splits and junctions of pipes can be handled in a numerically efficient way.
This mixing volume is not present in the PlugFlowCore model, which can be used in cases where mixing volumes at pipe junctions need to be added manually.

Assumptions

  • Heat losses are for steady-state operation.
  • The axial heat diffusion in the fluid, the pipe wall and the ground are neglected.
  • The boundary temperature is uniform.
  • The thermal inertia of the pipe wall material is lumped on the side of the pipe that is connected to ports_b.

References

Full details on the model implementation and experimental validation can be found in:

van der Heijde, B., Fuchs, M., Ribas Tugores, C., Schweiger, G., Sartor, K., Basciotti, D., Müller, D., Nytsch-Geusen, C., Wetter, M. and Helsen, L. (2017).
Dynamic equation-based thermo-hydraulic pipe model for district heating and cooling systems.
Energy Conversion and Management, vol. 151, p. 158-169. doi: 10.1016/j.enconman.2017.08.072.

Parameters

TypeNameDefaultDescription
BooleanhomotopyInitializationtrue= true, use homotopy method
RealReC4000Reynolds number where transition to turbulence starts
Realfac1Factor to take into account flow resistance of bends etc., fac=dp_nominal/dpStraightPipe_nominal
General › Ports
IntegernPorts (from PartialTwoPortVector)Number of ports
Assumptions
BooleanallowFlowReversal (from PartialTwoPortVector)true= true to allow flow reversal, false restricts to design direction (port_a -> port_b)
Advanced › Diagnostics
Booleanshow_T (from PartialTwoPortVector)false= true, if actual temperature at port is computed
Advanced
Booleanfrom_dpfalse= true, use m_flow = f(dp) else dp = f(m_flow)
Modelica.Units.SI.MassFlowRatem_flow_small1E-4*abs(m_flow_nominal)Small mass flow rate for regularization of zero flow
Booleanlinearizedfalse= true, use linear relation between m_flow and dp for any flow rate
Material
Modelica.Units.SI.Lengthdhsqrt(4*m_flow_nominal/rho_default/v_nominal/Modelica.Constants.pi)Hydraulic diameter (assuming a round cross section area)
Modelica.Units.SI.Heightroughness2.5e-5Average height of surface asperities (default: smooth steel pipe)
Modelica.Units.SI.LengthlengthPipe length
Modelica.Units.SI.SpecificHeatCapacitycPip2300Specific heat of pipe wall material. 2300 for PE, 500 for steel
Modelica.Units.SI.DensityrhoPip930Density of pipe wall material. 930 for PE, 8000 for steel
Modelica.Units.SI.Lengththickness0.0035Pipe wall thickness
Nominal condition
Modelica.Units.SI.Velocityv_nominal1.5Velocity at m_flow_nominal (used to compute default value for hydraulic diameter dh)
Modelica.Units.SI.MassFlowRatem_flow_nominalNominal mass flow rate
Thermal resistance
Modelica.Units.SI.LengthdInsThickness of pipe insulation, used to compute R
Modelica.Units.SI.ThermalConductivitykInsHeat conductivity of pipe insulation, used to compute R
RealR1/(kIns*2*Modelica.Constants.pi/Modelica.Math.log((dh/2 + thickness + dIns)/(dh/2 + thickness)))Thermal resistance per unit length from fluid to boundary temperature
Initialization
Modelica.Units.SI.TemperatureT_start_inMedium.T_defaultInitialization temperature at pipe inlet
Modelica.Units.SI.TemperatureT_start_outT_start_inInitialization temperature at pipe outlet
BooleaninitDelayfalseInitialize delay for a constant mass flow rate if true, otherwise start from 0
Modelica.Units.SI.MassFlowRatem_flow_start0Initial value of mass flow rate through pipe

Connectors

TypeNameDefaultDescription
Modelica.Fluid.Interfaces.FluidPort_aport_a (from PartialTwoPortVector)Fluid connector a (positive design flow direction is from port_a to ports_b)
Modelica.Fluid.Interfaces.FluidPorts_b[nPorts]ports_b (from PartialTwoPortVector)Fluid connectors b (positive design flow direction is from port_a to ports_b)
Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_aheatPortHeat transfer to or from surroundings (heat loss from pipe results in a positive heat flow)

Components

TypeNameDefaultDescription
Medium.ThermodynamicStatesta_a (from PartialTwoPortVector)Medium.setState_phX(port_a.p, noEvent(actualStream(port_a.h_outflow)), noEvent(actualStream(port_a.Xi_outflow)))Medium properties in port_a
Medium.ThermodynamicState[nPorts]sta_b (from PartialTwoPortVector)Medium.setState_phX(ports_b.p, noEvent(actualStream(ports_b.h_outflow)), noEvent(actualStream(ports_b.Xi_outflow)))Medium properties in ports_b
IBPSA.Obsolete.Fluid.FixedResistances.BaseClasses.PlugFlowCorecorDescribing the pipe behavior
IBPSA.Fluid.MixingVolumes.MixingVolumevolControl volume connected to ports_b. Represents equivalent pipe wall thermal capacity.

Revisions

  • September 21, 2021, by Michael Wetter:
    Corrected typo in comments.
    This is for #1525.
  • July 12, 2021, by Baptiste Ravache:
    This class is obsolete and replaced by IBPSA.Fluid.FixedResistances.PlugFlowPipe.
    This is for IBPSA, #1494.
  • April 14, 2020, by Michael Wetter:
    Changed homotopyInitialization to a constant.
    This is for IBPSA, #1341.
  • March 6, 2020, by Jelger Jansen:
    Revised calculation of thermal resistance R by using correct radiuses. See #1310.
  • October 23, 2017, by Michael Wetter:
    Revised variable names and documentation to follow guidelines. Corrected malformed hyperlinks.
  • July 4, 2016 by Bram van der Heijde:
    Introduce pipVol.
  • October 10, 2015 by Marcus Fuchs:
    Copy Icon from KUL implementation and rename model. Replace resistance and temperature delay by an adiabatic pipe.
  • September, 2015 by Marcus Fuchs:
    First implementation.