Skip to contents

Calculate normative heat loss of pipe that is legally affirmed by Minenergo Order 325.

Usage

m325nhl(
  year = 1986,
  laying = "underground",
  exp5k = TRUE,
  insulation = 0,
  d = 700,
  temperature = 110,
  len = 1,
  duration = 1,
  beta = FALSE,
  extra = 2
)

Arguments

year

year when the pipe is put in operation after laying or total overhaul. Type: assert_integerish

laying

type of pipe laying depicting the position of pipe in space:

  • air,

  • channel,

  • room,

  • tunnel,

  • underground.

Type: assert_subset.

exp5k

pipe regime flag: is pipe operated more that 5000 hours per year? Type: assert_logical.

insulation

insulation that covers the exterior of pipe:

0

no insulation

1

foamed polyurethane or analogue

2

polymer concrete

Type: assert_integer and assert_subset.

d

internal diameter of pipe, [mm]. Type: assert_double.

temperature

temperature of heat carrier (water) inside the pipe, [°C]. Type: assert_double.

len

length of pipe, [m]. Type: assert_double.

duration

duration of heat loss, [hour]. Type: assert_double.

beta

should they consider additional heat loss of fittings? Type: assert_logical.

extra

number of points used for temperature extrapolation: 2, 3, or 4. Type: assert_choice.

Value

Normative heat loss of cylindrical pipe during duration, [kcal]. If len of pipe is 1 m (meter) as well as duration is set to 1 h (hour) (default values) then the return value is also the

specific heat loss power, [kcal/m/h], prescribed by

Minenergo Order 325. Type: assert_double.

Details

Temperature extrapolation and pipe diameter interpolation are leveraged for better accuracy. Both are linear as it dictated by Minenergo Order 325. Nevertheless, one could control the extrapolation behavior by extra argument: use lower values of extra for soft curvature near extrapolation edges, and higher values for more physically reasoned behavior in far regions of extrapolation.

Examples

 library(pipenostics)

 ## Consider a 1-meter length pipe with
 pipe_diameter <-  700.0  # [mm]
 pipe_dating   <- 1980
 pipe_laying   <- "underground"


 ## Linear extrapolation adopted in Minenergo's Order 325 using last two points:
 operation_temperature <- seq(0, 270, 10)

 qs <- m325nhl(
   year = pipe_dating, laying = pipe_laying, d = pipe_diameter,
   temperature = operation_temperature
 )  # [kcal/m/h]

 plot(
     operation_temperature,
     qs,
     type = "b",
     main = "Minenergo's Order 325. Normative heat loss of pipe",
     sub = sprintf(
       "%s pipe of diameter %i [mm] laid in %i",
        pipe_laying, pipe_diameter, pipe_dating
     ),
     xlab = "Temperature, [°C]",
     ylab = "Specific heat loss power, [kcal/m/h]"
   )



 ## Consider heat loss due fittings:
 operation_temperature <- 65  # [°C]

 fittings_qs <- m325nhl(
   year = pipe_dating, laying = pipe_laying, d = pipe_diameter,
   temperature = operation_temperature, beta = c(FALSE, TRUE)
 )  # [kcal/m/h]

 print(fittings_qs); stopifnot(all(round(fittings_qs ,1)  == c(272.0, 312.8)))
#> [1] 272.0 312.8

 # [1] 272.0 312.8  # [kcal/m/h]



 ## Calculate heat flux:
 operation_temperature <- c(65, 105)  # [°C]

 qs <- m325nhl(
   year = pipe_dating, laying = pipe_laying, d = pipe_diameter,
   temperature = operation_temperature
 )  # [kcal/m/h]
 print(qs)
#> [1] 272.00 321.75

 # [1] 272.00 321.75  # [kcal/m/h]

 pipe_diameter <- pipe_diameter * 1e-3          # [m]
 factor        <- 2.701283                      # [kcal/h/W]

 flux <- qs/factor/pipe_diameter -> a  # heat flux, [W/m^2]
 print(flux)
#> [1] 143.8470 170.1572

 # [1] 143.8470 170.1572  # [W/m^2]

 ## The above line is equivalent to:

 flux <- flux_loss(qs, pipe_diameter) -> b

 stopifnot(all.equal(a, b, tolerance = 5e-6))