Line parameters for linear power flow

Power flow calculations rely on many parameters, related to the existing infrastructure of lines (branches), nodes (buses) and transformers. Detailed information is scarce and especially in the composition of open energy models, it is required to abstract and interpolate the existing data to guess the electric properties as accurate as needed. While for applications in electrical engineering, almost all parameters are required and there is almost no way around detailed data collection, for linearized power flow calculations, like in pomato, only a subset of electric properties are relevant for the calculations. This allows to extrapolate the needed data with a higher degree of freedom, which does not mean the derivation process shouldn’t be rooted on a solid electrical engineering foundation but allows to work with substantial larger, automatically generated, datasets that are not available otherwise.

In the following sections we document the process for the data set used in POMATO for the purpose of transparency and to iron out mistakes or inaccuracies along the way.

Original Data

The data originates from the ENTSO-E Gridmap which was scraped using the GridKit utility [2] and is currently forked and maintained within the PyPSA Project.

The data comes with very limited information, as it is solely based on geographic information. The following data is included:

nodes

node_id, station_id, voltage, dc, terminal, symbol, position (let/lon)

lines

line_id, node_i, node_j, voltage, circuits, length, underground

dclines

dcline_id, node_i, node_i, length, underground

transformers

tranformer_id, node_i, node_i

Stations can consist of multiple nodes (buses), and will ultimately be omitted. Transformers are not actually part of the dataset, but extrapolated based on the substations and their nodes.

Some statistics regarding the data:

GridKit Data Summary

Total

CWE

DE

nodes

8011

1612

604

lines

voltage

9856

1875

663

132

10

9

220

1076

211

380

789

443

transformers

1061

213

96

dclines

51

19

13

Required Data

Pomato remains in the realm of linear programming, therefore the only parameter that is required is the imaginary part of the complex impedance \(Z = R + jX\) of a network element, the reactance $X$ which relates approximately to the susceptance \(B \approx \frac{1}{X}\) which is the only remaining parameter of the linear power equations.

This parameter is dependant on multiple factors, e.g. materials of the line, configuration of circuits, voltage level and many more. While it is possible to research these properties for a individual line, the effort is unreasonable for an entire system and given the purpose of a techno economic analysis. The next sections document the process of using default parameters to find reasonable assumptions for impedances of network elements.

Lines

For transmission lines [1] provides a detailed overview of how parameters manifest depending on material- and construction properties. The level of detail is however far too great to be useful in this application as we hardly know anything about the transmission lines.

Table 9.7 however provides parameters for voltage levels 110KV to 380kV in single and double line configurations for the commonly used overhead line tower (Donaumast). This table combines many assumptions that are difficult to make: type of ropes used (German Beseilung), mounting and bundle configuration. The following table contains the parameters. Note: for consistency always the single circuit values are used. The ropes are assumed to be Al/St-Ropes of type 243-A1/39-St1A with a nominal current \(I_{nom}\) of 645 as per Table 9.2 in [1].

Exemplary overhead line parameters, from Table 9.2 in [1].

Voltage

Configuration

Positive Sequence Impedance

\(I_{nom}\)

kV

r_per_km \(\Omega\)/km

x_per_km \(\Omega\)/km

A

110

Single Rope

0.12

0.387

645

220

2-Bundle

0.06

0.301

1290

380

4-Bundle

0.03

0.246

2580

Based on these values and a line length $l$ in km the apparent power for a transmission the thermal capacity, resistance and reactance are calculated as:

\[\begin{split}S &= \sqrt{3} \cdot U_d \cdot I_{nom} \\ x &= x\_per\_km \cdot l \\ r &= r\_per\_km \cdot l \\\end{split}\]

In linear power flow only active power is accounted for. While also representing a strong assumption the full apparent power is used as thermal capacity and therefore as limit to active power in the calculations.

The values for reactance and resistance in per unit (p.u.), in reference to \(S_B = 1\) MVA and the nominal line voltage \(U_d\) become:

\[\begin{split}z_{base} &= U_d^2 / S_B \\ x\_pu &= x / z_{base} \\ r\_pu &= r / z_{base}\end{split}\]

Cables

The dataset includes an underground identifier, which allows to categorize transmission lines as cables. Given that cables have different parameters, especially regarding their impedance it makes sense to include that information. However, the line parameters are highly dependant on operating temperature, which is impossible to know or too specific to assume. Generally cables would provide lower impedance than overhead but lines, but their operation differs significantly due to high capacity to earth and difficult heat dispersion through the isolation. At this point we prefer using the types for overhead lines. This needs more input.

Transformers

Transformers are used to connect nodes of different voltage levels which share the same substation. All transformers in the dataset connect two voltage levels. The relevant types are 110kV/220kV, 110kV/380kV and 220kV/380kV. Transformers are modeled as lines in pomato, and linear power flow in general, where the impedance can be calculated using short circuit voltages and the ohmic voltage drop (\(u_{kr}\), \(u_{Rr}`$ in [1]_, :math:`v_{sc}\), \(v_{scr}\) in the PyPSA documentation (at least to my understanding). These parameters are from from the pyPSA project [3] as standard types mostly equivalent to the ones used in pandapower [4] and SimBench [5] [6], the latter included higher rated transformers and a 220/380 type. The following table contains the relevant types, with reference.

Transformer parameters from various sources.

\(S_n\)

\(U_H\)

\(U_L\)

\(u_{kr}\)

\(u_{Rr}\)

Source

MVA

kV

kV

%

%

160 MVA 380/110 kV

160

110

380

12.2

0.25

pandapower/pyPSA

100 MVA 220/110 kV

100

110

220

12

0.26

pandapower/pyPSA

300MVA220/110

300

110

220

12

0.128

SimBench

350MVA380/110

350

110

380

22

0.257

SimBench

Typx380/220

600

220

380

18.5

0.25

SimBench

Given these parameters, we can calculate the transformer impedance following equations (8.3 - 8.5) from [1]:

\[\begin{split}z &= \dfrac{u_{kr} \cdot U_H^2}{100 \cdot S_n} \\ r &= \dfrac{u_{Rr} \cdot U_H^2}{100 \cdot S_n} \\ x &= \sqrt{z^2 - r^2}\end{split}\]

The respective p.u. values are obtained with rated power $S_n$ in reference to the base $S_B = 1$MVA:

\[\begin{split}x\_pu &= x \cdot S_B / S_n \\ r\_pu &= r \cdot S_B / S_n\end{split}\]

DC Lines

DC lines represent active network elements are do not interact with the parameterization of linear power flow. Therefore they require no parametrization for power flow calculations. The rated capacity is not included in the data, but given the limited amount of elements and ease of research, these values can be manually added.

Validation

To validate the parameters we can look into the static grid models that are published on TSO websites. For example the German TSO 50Hertz. publishes the data for their system including nominal current, nominal voltage and impedance for each element. The following table shows two lines (220 and 380kV) and two transformers.

Public data from 50Hertz’s static gridmodel.

\(U_n\)

L

\(I_r\)

R1

X1

Line

Redwitz - Remptendorf

380

56.0

3600

1.6526

14.9690

Line

Neuenhagen - Marzahn

380

16.9

2400

0.7606

4.3135

Line

Neuenhagen - Hennigsdorf

220

45.9

1070

3.1905

13.1680

Ur1

Ur2

Sr

R1

X1

Transformer

Wolmirstedt

400

231

400

0.9171

63.1933

Transformer

Röhrsdorf

380

231

800

0.3328

22.5167

Given the parameters from the previous sections and the dataset which does include length l and voltage level \(U_d\), the nominal current \(I_d\) we would estimate the following resistance and reactance.

Calculated (estimated) parameters for a sample of network elements.

\(U_d\)

\(l\)

\(I_{nom}\)

r

x

Line

Redwitz - Remptendorf

380

57.7

2580

1.73027

14.1882

Line

Neuenhagen - Marzahn

380

17.5

2580

0.525349

4.30786

Line

Neuenhagen - Hennigsdorf

220

70.7

1290

4.24497

21.2956

Ur1

Ur2

Sr

r

x

Transformer

Wolmirstedt

380

220

600

0.601667

44.5193

Transformer

Röhrsdorf

380

220

600

0.601667

44.5193

The comparison shows that line parameters are fairly accurate in terms of impedance, given that the length is accurate (which it isn’t in the Henningsdorf line) but rather imprecise in term of nominal voltage and therefore capacity. This is no surprise as the nominal current that depends on how lines are mounted and there are huge differences. For example the Redwitz line is a know congestion, therefore it contains larger bundles/stronger ropes than other 380 lines.

Similarly the transformer parameters are in the ballpark but not super accurate. Again, the differences between transformers of the same type, namely differences in rated current yield large differences in capacity and impedances.

However, given that all parameters are derived from a handful of standard types, the results are satisfactory. More precise calibration, based on the static grid models or specific information is always possible.