Three-phase transformer¶
Three-phase transformers are modeled with three separate single-phase non-ideal transformers. The windings of the individual transformers are connected with different configurations to the high voltage (HV) side and to the low voltage (LV) side. The non-ideal transformer losses are represented by \(\underline{Z_2}\) the series impedances and \(\underline{Y_{\mathrm{m}}}\) the magnetizing admittances.
For example, the windings with a \(Dyn11\) configuration are represented by the following diagram:
Notice how the neutral is accessible on the LV side of the transformer. Transformers with the neutral not brought out are also supported by omitting the \(n\) in the vector group (e.g. \(Dy11\)). In this case there will be no neutral connection on the LV side.
Winding configurations¶
Roseau Load Flow supports most of the 2-winding transformer configurations as defined in the IEC 60076-1 standard.
The following common connections are supported:
The following additional connections are also supported:
Note that the neutral connection is omitted in the diagrams above for simplicity. All Wye and Zigzag connections, whether on the HV side or on the LV side, may have a neutral connection brought out.
Equations¶
The following equations are used to model 3-phase transformers:
Where \(\underline{Z_2}\) is the series impedance and \(\underline{Y_{\mathrm{m}}}\) is the magnetizing admittance of the transformer. \(o_r\) is the orientation variable, equals to \(1\) for direct windings, i.e. windings with the hour index in the top half of the clock, and \(-1\) for inverse windings, i.e. windings with the hour index in the bottom half of the clock. The other quantities are the matrices defined below.
Matrices¶
Let \(I_3\) be the identity matrix \(\begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix}\), \(S_3\) be the shifting matrix \(\begin{pmatrix} 0 & 1 & 0 \\ 0 & 0 & 1 \\ 1 & 0 & 0 \end{pmatrix}\), and \(S_3^T\) be its transpose. Also, let \(0_3\) be the null vector \(\begin{pmatrix} 0 \\ 0 \\ 0 \end{pmatrix}\) and \(1_3\) be the vector \(\begin{pmatrix} 1 \\ 1 \\ 1 \end{pmatrix}\). The following matrices are used to model the winding configurations described above:
Transformation matrices¶
Windings |
Clock numbers |
\(M_{\mathrm{TV}}\) |
\(M_{\mathrm{TI}}\) |
---|---|---|---|
Dd, Yy, Dy, Yd |
all |
\(k I_3\) |
\(-k I_3\) |
Dz, Yz |
4,5,10,11 |
\(k I_3\) |
\(-k (I_3 - S_3^T)\) |
Dz, Yz |
0,6,1,2,7,8 |
\(k I_3\) |
\(-k (I_3 - S_3)\) |
Where \(k\) is the transformation ratio of the internal transformers defined as:
Windings |
\(k\) |
---|---|
Dy, Yz |
\(\dfrac{U_{\mathrm{LV}}}{\sqrt{3} \cdot U_{\mathrm{HV}}}\) |
Dd, Yy |
\(\dfrac{U_{\mathrm{LV}}}{U_{\mathrm{HV}}}\) |
Yd |
\(\dfrac{\sqrt{3} \cdot U_{\mathrm{LV}}}{U_{\mathrm{HV}}}\) |
Dz |
\(\dfrac{U_{\mathrm{LV}}}{3 \cdot U_{\mathrm{HV}}}\) |
HV winding matrices¶
HV Winding |
Clock numbers |
\(K_{\mathrm{VABC}}\) |
\(K_{\mathrm{UXYZ}}\) |
\(K_{\mathrm{IABC}}\) |
\(K_{\mathrm{IXYZ}}\) |
\(K_{\mathrm{N}}\) |
---|---|---|---|---|---|---|
D |
0,6,4,5,10,11 |
\(I_3 - S_3\) |
\(I_3\) |
\(I_3\) |
\(I_3 - S_3^T\) |
\(0_3\) |
D |
1,2,7,8 |
\(I_3 - S_3^T\) |
\(I_3\) |
\(I_3\) |
\(I_3 - S_3\) |
\(0_3\) |
Y |
all |
\(I_3\) |
\(I_3\) |
\(I_3\) |
\(I_3\) |
\(1_3\) |
LV winding matrices¶
LV Winding |
Clock numbers |
\(K_{\mathrm{Vabc}}\) |
\(K_{\mathrm{Uxyz}}\) |
\(K_{\mathrm{Iabc}}\) |
\(K_{\mathrm{Ixyz}}\) |
\(K_{\mathrm{n}}\) |
---|---|---|---|---|---|---|
d |
0,6,1,2,7,8 |
\(I_3 - S_3\) |
\(I_3\) |
\(I_3\) |
\(I_3 - S_3^T\) |
\(0_3\) |
d |
4,5,10,11 |
\(I_3 - S_3^T\) |
\(I_3\) |
\(I_3\) |
\(I_3 - S_3\) |
\(0_3\) |
y |
all |
\(I_3\) |
\(I_3\) |
\(I_3\) |
\(I_3\) |
\(1_3\) |
z |
0,6,1,2,7,8 |
\(I_3\) |
\(I_3 - S_3^T\) |
\(I_3\) |
\(I_3\) |
\(1_3\) |
z |
4,5,10,11 |
\(I_3\) |
\(I_3 - S_3\) |
\(I_3\) |
\(I_3\) |
\(1_3\) |
Example¶
The following example shows a 160kVA MV/LV transformer with a \(Dyn11\) configuration that connects a voltage source on the MV network to a load on the LV network.
import functools as ft
import numpy as np
import roseau.load_flow as rlf
# Create a MV bus
bus_mv = rlf.Bus(id="bus_mv", phases="abc")
# Create a LV bus
bus_lv = rlf.Bus(id="bus_lv", phases="abcn")
# Set the potential references of the MV and LV networks
pref_mv = rlf.PotentialRef(id="pref_mv", element=bus_mv)
pref_lv = rlf.PotentialRef(id="pref_lv", element=bus_lv)
# Create a voltage source and connect it to the MV bus
vs = rlf.VoltageSource(id="vs", bus=bus_mv, voltages=20e3)
# Create a MV/LV transformer
tp = rlf.TransformerParameters.from_open_and_short_circuit_tests(
id="SE Minera A0Ak 100kVA",
vg="Dyn11",
sn=100.0 * 1e3,
uhv=20e3,
ulv=400.0,
i0=0.5 / 100,
p0=145.0,
psc=1250.0,
vsc=4.0 / 100,
)
transformer = rlf.Transformer(
id="transfo",
bus_hv=bus_mv,
bus_lv=bus_lv,
phases_hv="abc",
phases_lv="abcn",
parameters=tp,
tap=1.025,
)
# Create a balanced constant-power 9kW LV load (3kW per phase)
load = rlf.PowerLoad(id="load", bus=bus_lv, phases="abcn", powers=3e3)
# Create the network and solve the load flow
en = rlf.ElectricalNetwork.from_element(bus_mv)
en.solve_load_flow()
# The current flowing into the transformer from the MV bus
en.res_transformers[["current_hv"]].dropna().transform(
[np.abs, ft.partial(np.angle, deg=True)]
)
# | | ('current_hv', 'absolute') | ('current_hv', 'angle') |
# |:-----------------|-----------------------------:|--------------------------:|
# | ('transfo', 'a') | 0.275904 | -38.8165 |
# | ('transfo', 'b') | 0.275904 | -158.817 |
# | ('transfo', 'c') | 0.275904 | 81.1835 |
# The current flowing into the transformer from the LV bus
en.res_transformers[["current_lv"]].transform([np.abs, ft.partial(np.angle, deg=True)])
# | | ('current_lv', 'absolute') | ('current_lv', 'angle') |
# |:-----------------|-----------------------------:|--------------------------:|
# | ('transfo', 'a') | 12.6872 | 179.813 |
# | ('transfo', 'b') | 12.6872 | 59.8133 |
# | ('transfo', 'c') | 12.6872 | -60.1867 |
# | ('transfo', 'n') | 2.25156e-13 | -80.4634 |
# The voltages at the buses of the network
en.res_buses_voltages[["voltage"]].transform([np.abs, ft.partial(np.angle, deg=True)])
# | | ('voltage', 'absolute') | ('voltage', 'angle') |
# |:-----------------|--------------------------:|-----------------------:|
# | ('bus_mv', 'ab') | 20000 | 0 |
# | ('bus_mv', 'bc') | 20000 | -120 |
# | ('bus_mv', 'ca') | 20000 | 120 |
# | ('bus_lv', 'an') | 236.459 | -0.186695 |
# | ('bus_lv', 'bn') | 236.459 | -120.187 |
# | ('bus_lv', 'cn') | 236.459 | 119.813 |