Data describes a virtual test bench of branched district heating network by exposing parameters associated with Minenergo Order 325. They treat data as a snapshot of network state and use it primarily for static thermal-hydraulic computations and topology effects.

m325testbench

Format

A data frame with 22 rows (number of nodes and incoming edges) and 15 variables:

sender

An identifier of node which heat carrier flows out. Type: any type that can be painlessly coerced to character by as.character.

acceptor

An identifier of node which heat carrier flows in. According to topology of test bench considered this identifier should be unique for every row. Type: any type that can be painlessly coerced to character by as.character.

temperature

Snapshot of thermal-hydraulic regime state: temperature of heat carrier (water) sensor-measured on terminal acceptor node, [°C]. Type: assert_double. NAs are introduced for nodes without temperature sensor.

pressure

Snapshot of thermal-hydraulic regime state: sensor-measured absolute pressure of heat carrier (water) inside the pipe (i.e. acceptor's incoming edge), [MPa]. Type: assert_double. NAs are introduced for nodes without pressure sensor.

consumption

Snapshot of thermal-hydraulic regime state: sensor-measured amount of heat carrier (water) on terminal node that is transferred by pipe (i.e. acceptor's incoming edge) during a period, [ton/hour]. Type: assert_double. NAs are introduced for nodes without consumption sensor.

d

internal diameter of pipe (i.e.diameter of acceptor's incoming edge), [m]. Type: assert_double.

len

pipe length (i.e. length of acceptor's incoming edge), [m]. Type: assert_double.

year

year when the pipe (i.e. acceptor's incoming edge) is put in operation after laying or total overhaul. Type: assert_integerish.

insulation

identifier of insulation that covers the exterior of pipe (i.e. acceptor's incoming edge):

0

no insulation

1

foamed polyurethane or analogue

2

polymer concrete

Type: assert_integerish.

laying

type of pipe laying depicting the position of pipe in space. Only five types of pipe laying are considered:

  • air,

  • channel,

  • room,

  • tunnel,

  • underground.

Type: assert_character.

beta

logical indicator: should they consider additional heat losses of fittings located on this pipe (i.e. acceptor's incoming edge)? Type: assert_logical.

exp5k

logical indicator for regime of pipe (i.e. acceptor's incoming edge): if TRUE pipe is operated more that 5000 hours per year. Type: assert_logical.

roughness

roughness of internal wall of pipe (i.e. acceptor's incoming edge), [m]. Type: assert_double.

inlet

elevation of pipe inlet, [m]. Type: assert_double.

outlet

elevation of pipe outlet, [m]. Type: assert_double.

Details

The test bench has the next configuration:

As it may be seen from the figure there is a particularity in topology of the provided directed graph: each node has only single ancestor. Hence one of isomorphic representation of such directed graph is a data.frame in which each row describes a node along with its incoming edge and each column contains an attribute value for that node or an attribute value for its incoming edge.

Since they deal with incoming edges and hence nodes are all flow acceptors the natural enumeration of nodes is by acceptor id.

Note that to leverage igraph functionality for plotting there is a zero sender of flow.

Examples

# Do not hesitate to use data.table and igraph for larger chunks of network.

# Check for declared topology isomorphism:
stopifnot(
  all(!duplicated(m325testbench$acceptor))
)

# Do all terminal nodes have sensor-measured regime parameters?:
terminal_nodes <- subset(m325testbench, !(acceptor %in% sender))
stopifnot(
  all(!is.na(subset(terminal_nodes, select = c(temperature, pressure, consumption))))
)