modelDHCPipe
Extends from AixLib.Fluid.Interfaces.PartialTwoPortInterface.
Information
This pipe aims to enable the representation of all one pipe district heating and cooling pipe applications for dynamic simulation of district heating and cooling grids.
Pipe with heat loss using the wether 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, or the more staty-state based approach with the static core.
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. This model determines the pressure drop either through a static factor or using the sum of zeta values.
In addition this model is able to represent a very simplified soil around the pipe. With 3 capacities and the possibility to define the soil properties, this enables the user of this pipe model to account for heat losses in a more accurate way.
Implementation
This model is based on AixLib.Fluid.FixedResistances.BaseClasses.PlugFlowCore or on AixLib.Fluid.DistrictHeatingCooling.Pipes.BaseClassesStatic.StaticCore .
The spatialDistribution operator is used for the temperature wave propagation through the length of the pipe.
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 PlugFlowCore 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.
The Soil model is represented by three capacities which can be parameterized in the Soil Tab of the model.
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
| Type | Name | Default | Description |
|---|---|---|---|
| Real | ReC | 4000 | Reynolds number where transition to turbulent starts |
| Additional pressurelosses | |||
| Boolean | use_zeta | false | = true HydraulicResistance is implemented, zeta value has to be given next |
| Real | fac | 1.0 | Factor to take into account flow resistance of bends etc., fac=dp_nominal/dpStraightPipe_nominal |
| Real | sum_zetas | 0 | Sum of all zeta values. Takes into account additional pressure drops due to bends/valves/etc. if use_zeta |
| Soil | |||
| Boolean | use_soil | false | = true 3 cylindric heat transfers are implemented, representing the soil around the pipe, otherwise direct heat throughzeta value has to be given next |
| Modelica.Units.SI.Density | rho_soi | 1630 | Density of material/soil |
| Modelica.Units.SI.SpecificHeatCapacity | c | 1046 | Specific heat capacity of material/soil |
| Modelica.Units.SI.Length | thickness_soi | 0.6 | thickness of soil layer for heat loss calulcation |
| Modelica.Units.SI.ThermalConductivity | lambda | 1.5 | Heat conductivity of material/soil |
| Modelica.Units.SI.Length | d_in | dh + 2*thickness | Inner diameter of pipe |
| Modelica.Units.SI.Temperature | T0 | 289.15 | Initial temperature |
| Advanced | |||
| Boolean | from_dp | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
| Modelica.Units.SI.MassFlowRate | m_flow_small | 1E-4*abs(m_flow_nominal) | Small mass flow rate for regularization of zero flow |
| Boolean | homotopyInitialization | true | = true, use homotopy method |
| Boolean | linearized | false | = true, use linear relation between m_flow and dp for any flow rate |
| Material | |||
| Modelica.Units.SI.Length | dh | sqrt(4*m_flow_nominal/rho_default/v_nominal/Modelica.Constants.pi) | Hydraulic diameter (assuming a round cross section area) |
| Modelica.Units.SI.Height | roughness | 2.5e-5 | Average height of surface asperities (default: smooth steel pipe) |
| Modelica.Units.SI.Length | length | Pipe length | |
| Modelica.Units.SI.SpecificHeatCapacity | cPip | 2300 | Specific heat of pipe wall material. 2300 for PE, 500 for steel |
| Modelica.Units.SI.Density | rhoPip | 930 | Density of pipe wall material. 930 for PE, 8000 for steel |
| Modelica.Units.SI.Length | thickness | 0.0035 | Pipe wall thickness |
| Nominal condition | |||
| Modelica.Units.SI.Velocity | v_nominal | 1.5 | Velocity at m_flow_nominal (used to compute default value for hydraulic diameter dh) |
| Modelica.Units.SI.MassFlowRate | m_flow_nominal | Nominal mass flow rate | |
| Thermal resistance | |||
| Modelica.Units.SI.Length | dIns | Thickness of pipe insulation, used to compute R | |
| Modelica.Units.SI.ThermalConductivity | kIns | Heat conductivity of pipe insulation, used to compute R | |
| Real | R | 1/(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.Temperature | T_start_in | Medium.T_default | Initialization temperature at pipe inlet |
| Modelica.Units.SI.Temperature | T_start_out | T_start_in | Initialization temperature at pipe outlet |
| Boolean | initDelay | false | Initialize delay for a constant mass flow rate if true, otherwise start from 0 |
| Modelica.Units.SI.MassFlowRate | m_flow_start | 0 | Initial value of mass flow rate through pipe |
| Dynamics › Equations | |||
| Modelica.Fluid.Types.Dynamics | energyDynamics | Modelica.Fluid.Types.Dynamics.DynamicFreeInitial | Type of energy balance: dynamic (3 initialization options) or steady state |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a | heatPort | Heat transfer to or from surroundings (heat loss from pipe results in a positive heat flow) | |
| AixLib.Fluid.FixedResistances.BaseClasses.PlugFlowCore | pipCor | ||
| AixLib.Fluid.MixingVolumes.MixingVolume | vol | Control volume connected to ports_b. Represents equivalent pipe wall thermal capacity. | |
| AixLib.Utilities.HeatTransfer.CylindricHeatTransfer | cylHeaTra1 | ||
| AixLib.Utilities.HeatTransfer.CylindricHeatTransfer | cylHeaTra2 | ||
| AixLib.Utilities.HeatTransfer.CylindricHeatTransfer | cylHeaTra3 | ||
| FixedResistances.HydraulicResistance | hydRes | ||
| Modelica.Thermal.HeatTransfer.Components.ThermalCollector | thePasThr | Thermal pass through if there is no soil activated | |
| Interfaces.PassThroughMedium | pasThrMed |
Revisions
- November 12, 2020, by Michael Mans:
First implementation