modelStaticPipe

Static Pipe model using conditional HydraulicResistance

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

Information

Pipe with heat loss using the time delay based heat losses for the transport delay of the fluid. This model determines the pressure drop either through a static factor or using the sum of zeta values.

This Pipe model is applicable for simulation of long pipes such as in district heating and cooling systems.

Implementation

This model is based on AixLib.Fluid.DistrictHeatingCooling.BaseClassesStatic.StaticCore.

Heat losses are implemented by AixLib.Fluid.FixedResistances.BaseClasses.PlugFlowHeatLoss at each end of the pipe (see AixLib.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 AixLib.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 StaticCore model, which can be used in cases where mixing volumes at pipe junctions need to be added manually.

If Boolean use_zeta is set "true" HydraulicResistance is used.

HydraulicResistance takes into account additional pressure drops due to bends/valves/etc. Therefore the sum of zeta values has to be given prior.

If Boolean use_zeta is set "false" the pressureloss is determine through a static factor which has to given prior.

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.

Parameters

TypeNameDefaultDescription
RealReC4000Reynolds number where transition to turbulent starts
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
Modelica.Units.SI.Velocityv_nominal1.5Velocity at m_flow_nominal (used to compute default value for hydraulic diameter dh)
Advanced
Modelica.Units.SI.MassFlowRatem_flow_small (from PartialTwoPortInterface)1E-4*abs(m_flow_nominal)Small mass flow rate for regularization of zero flow
Booleanfrom_dpfalse= true, use m_flow = f(dp) else dp = f(m_flow)
BooleanhomotopyInitializationtrue= true, use homotopy method
Booleanlinearizedfalse= true, use linear relation between m_flow and dp for any flow rate
Advanced › Diagnostics
Booleanshow_T (from PartialTwoPortInterface)false= true, if actual temperature at port is computed
Additional pressurelosses
Booleanuse_zetafalse= true HydraulicResistance is implemented, zeta value has to be given next
Realfac1Factor to take into account flow resistance of bends etc., fac=dp_nominal/dpStraightPipe_nominal
Realsum_zetas0Sum of all zeta values. Takes into account additional pressure drops due to bends/valves/etc.
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
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 + dIns)/(dh/2)))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 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_aheatPortHeat transfer to or from surroundings (heat loss from pipe results in a positive heat flow)

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
Modelica.Units.SI.Velocityv_medVelocity of the medium in the pipe
AixLib.Fluid.DistrictHeatingCooling.Pipes.BaseClassesStatic.StaticCorestaticCoreDescribing the pipe behavior
Fluid.MixingVolumes.MixingVolumevolControl volume connected to ports_b. Represents equivalent pipe wall thermal capacity.
FixedResistances.HydraulicResistancehydraulicResistance

Revisions

  • September 25, 2019, by Nils Neuland:
    Revised variable names and documentation to follow guidelines. Corrected malformed hyperlinks.