Three Winding Transformer
Create Function
- pandapower.create.create_transformer3w(net, hv_bus, mv_bus, lv_bus, std_type, name=None, tap_pos=nan, in_service=True, index=None, max_loading_percent=nan, tap_changer_type=None, tap_at_star_point=False, tap_dependency_table=False, id_characteristic_table=None, **kwargs)
Creates a three-winding transformer in table net.trafo3w. The trafo parameters are defined through the standard type library.
- Parameters:
**net** (pandapowerNet)
**hv_bus** (int)
**mv_bus** (int)
**lv_bus** (int)
**std_type** (str)
**name** (str)
**tap_pos** (int, nan) - current tap position of the transformer. Defaults to the medium position (tap_neutral)
**tap_changer_type** (str, None) – no tap changer)*
**tap_at_star_point** (bool)
**in_service** (boolean)
**index** (int, None)
**max_loading_percent** (float) - maximum current loading (only needed for OPF)
**tap_at_star_point**
**tap_dependency_table** (boolean, False) - True if transformer parameters (voltage ratio, angle, impedance)
**id_characteristic_table** (int, None)
net (pandapowerNet)
hv_bus (int | integer)
mv_bus (int | integer)
lv_bus (int | integer)
std_type (str)
name (str | None)
tap_pos (int | float)
in_service (bool)
index (int | integer | None)
max_loading_percent (float)
tap_changer_type (Literal['Ratio', 'Symmetrical', 'Ideal', 'Tabular'] | None)
tap_at_star_point (bool)
tap_dependency_table (bool)
id_characteristic_table (int | None)
- Returns:
index (int) - the unique ID of the created transformer
- Return type:
int | integer
Example
create_transformer3w(net, hv_bus=0, mv_bus=1, lv_bus=2, name=”trafo1”, std_type=”63/25/38 MVA 110/20/10 kV”)
- pandapower.create.create_transformer3w_from_parameters(net, hv_bus, mv_bus, lv_bus, vn_hv_kv, vn_mv_kv, vn_lv_kv, sn_hv_mva, sn_mv_mva, sn_lv_mva, vk_hv_percent, vk_mv_percent, vk_lv_percent, vkr_hv_percent, vkr_mv_percent, vkr_lv_percent, pfe_kw, i0_percent, shift_mv_degree=0.0, shift_lv_degree=0.0, tap_side=None, tap_step_percent=nan, tap_step_degree=nan, tap_pos=nan, tap_neutral=nan, tap_max=nan, tap_changer_type=None, tap_min=nan, name=None, in_service=True, index=None, max_loading_percent=nan, tap_at_star_point=False, vk0_hv_percent=nan, vk0_mv_percent=nan, vk0_lv_percent=nan, vkr0_hv_percent=nan, vkr0_mv_percent=nan, vkr0_lv_percent=nan, vector_group=None, tap_dependency_table=False, id_characteristic_table=None, **kwargs)
Adds a three-winding transformer in table net.trafo3w with the specified parameters. The model currently only supports one tap changer per 3w-transformer.
- Parameters:
**net** (pandapowerNet)
**hv_bus** (int)
**mv_bus** (int)
**lv_bus** (int)
**vn_hv_kv** (float)
**vn_mv_kv** (float)
**vn_lv_kv** (float)
**sn_hv_mva** (float)
**sn_mv_mva** (float)
**sn_lv_mva** (float)
**vk_hv_percent** (float)
**vk_mv_percent** (float)
**vk_lv_percent** (float)
**vkr_hv_percent** (float)
**vkr_mv_percent** (float)
**vkr_lv_percent** (float)
**pfe_kw** (float)
**i0_percent** (float)
**shift_mv_degree** (float, 0)
**shift_lv_degree** (float, 0)
**tap_step_percent** (float)
**tap_step_degree** (float)
**tap_side** (str, None)
**tap_neutral** (int, nan)
**tap_min** (int, nan)
**tap_max** (int, nan)
**tap_pos** (int, nan) - current tap position of the transformer. Defaults to the medium position (tap_neutral)
**tap_changer_type** (str, None) – no tap changer)
**tap_at_star_point** (boolean)
**name** (str, None)
**in_service** (boolean, True)
**max_loading_percent** (float) - maximum current loading (only needed for OPF)
**tap_dependency_table** (boolean, False) - True if transformer parameters (voltage ratio, angle, impedance)
**id_characteristic_table** (int, None)
**vk0_hv_percent** (float)
**vk0_mv_percent** (float)
**vk0_lv_percent** (float)
**vkr0_hv_percent** (float)
**vkr0_mv_percent** (float)
**vkr0_lv_percent** (float)
**vector_group** (str)
net (pandapowerNet)
hv_bus (int | integer)
mv_bus (int | integer)
lv_bus (int | integer)
vn_hv_kv (float)
vn_mv_kv (float)
vn_lv_kv (float)
sn_hv_mva (float)
sn_mv_mva (float)
sn_lv_mva (float)
vk_hv_percent (float)
vk_mv_percent (float)
vk_lv_percent (float)
vkr_hv_percent (float)
vkr_mv_percent (float)
vkr_lv_percent (float)
pfe_kw (float)
i0_percent (float)
shift_mv_degree (float)
shift_lv_degree (float)
tap_side (Literal['hv', 'mv', 'lv'] | None)
tap_step_percent (float)
tap_step_degree (float)
tap_pos (int | float)
tap_neutral (int | float)
tap_max (int | float)
tap_changer_type (Literal['Ratio', 'Symmetrical', 'Ideal', 'Tabular'] | None)
tap_min (float | None)
name (str | None)
in_service (bool)
index (int | integer | None)
max_loading_percent (float)
tap_at_star_point (bool)
vk0_hv_percent (float)
vk0_mv_percent (float)
vk0_lv_percent (float)
vkr0_hv_percent (float)
vkr0_mv_percent (float)
vkr0_lv_percent (float)
vector_group (str | None)
tap_dependency_table (bool)
id_characteristic_table (int | None)
- Returns:
trafo_id - the unique trafo_id of the created 3w-transformer
- Return type:
int | integer
Example
create_transformer3w_from_parameters(net, hv_bus=0, mv_bus=1, lv_bus=2, name=”trafo1”, sn_hv_mva=40, sn_mv_mva=20, sn_lv_mva=20, vn_hv_kv=110, vn_mv_kv=20, vn_lv_kv=10, vk_hv_percent=10,vk_mv_percent=11, vk_lv_percent=12, vkr_hv_percent=0.3, vkr_mv_percent=0.31, vkr_lv_percent=0.32, pfe_kw=30, i0_percent=0.1, shift_mv_degree=30, shift_lv_degree=30)
Note
All short circuit voltages are given relative to the minimum apparent power flow. For example vk_hv_percent is the short circuit voltage from the high to the medium level, it is given relative to the minimum of the rated apparent power in high and medium level: min(sn_hv_mva, sn_mv_mva). This is consistent with most commercial network calculation software (e.g. PowerFactory). Some tools (like PSS Sincal) however define all short circuit voltages relative to the overall rated apparent power of the transformer: max(sn_hv_mva, sn_mv_mva, sn_lv_mva). You might have to convert the values depending on how the short-circuit voltages are defined.
Input Parameters
net.trafo3w
Parameter |
Datatype |
Value Range |
Explanation |
name |
string |
name of the transformer |
|
std_type |
string |
transformer standard type name |
|
hv_bus* |
integer |
high voltage bus index of the transformer |
|
mv_bus |
integer |
medium voltage bus index of the transformer |
|
lv_bus* |
integer |
low voltage bus index of the transformer |
|
vn_hv_kv* |
float |
rated voltage at high voltage bus [kV] |
|
vn_mv_kv* |
float |
\(>\) 0 |
rated voltage at medium voltage bus [kV] |
vn_lv_kv* |
float |
\(>\) 0 |
rated voltage at low voltage bus [kV] |
sn_hv_mva* |
float |
\(>\) 0 |
rated apparent power on high voltage side [kVA] |
sn_mv_mva* |
float |
\(>\) 0 |
rated apparent power on medium voltage side [kVA] |
sn_lv_mva* |
float |
\(>\) 0 |
rated apparent power on low voltage side [kVA] |
vk_hv_percent* |
float |
\(>\) 0 |
short circuit voltage from high to medium voltage [%] |
vk_mv_percent* |
float |
\(>\) 0 |
short circuit voltage from medium to low voltage [%] |
vk_lv_percent* |
float |
\(>\) 0 |
short circuit voltage from high to low voltage [%] |
vkr_hv_percent* |
float |
\(\geq\) 0 |
real part of short circuit voltage from high to medium voltage [%] |
vkr_mv_percent* |
float |
\(\geq\) 0 |
real part of short circuit voltage from medium to low voltage [%] |
vkr_lv_percent* |
float |
\(\geq\) 0 |
real part of short circuit voltage from high to low voltage [%] |
pfe_kw* |
float |
\(\geq\) 0 |
iron losses [kW] |
i0_percent* |
float |
\(\geq\) 0 |
open loop losses [%] |
shift_mv_degree |
float |
transformer phase shift angle at the MV side |
|
shift_lv_degree |
float |
transformer phase shift angle at the LV side |
|
tap_side |
string |
“hv”, “mv”, “lv” |
defines if tap changer is positioned on high- medium- or low voltage side |
tap_neutral |
integer |
||
tap_min |
integer |
minimum tap position |
|
tap_max |
integer |
maximum tap position |
|
tap_step_percent |
float |
\(>\) 0 |
tap step size [%] |
tap_step_degree |
float |
tap step size for voltage angle |
|
tap_at_star_point |
boolean |
True / False |
whether the tap changer is modelled at terminal or at star point |
tap_pos |
integer |
current position of tap changer |
|
tap_changer_type |
string |
“Ratio”, “Symmetrical”, “Ideal”, “Tabular” |
specifies the tap changer type |
tap_dependency_table |
boolean |
True / False |
whether the transformer parameters (voltage ratio, angle, impedance) are adjusted dependent on the tap position of the transformer |
id_characteristic_table |
integer |
\(\geq\) 0 |
references the id_characteristic index from the trafo_characteristic_table |
in_service* |
boolean |
True / False |
specifies if the transformer is in service. |
*necessary for executing a power flow calculation.
Note
Three Winding Transformer loading can not yet be constrained with the optimal power flow.
Electric Model
Three Winding Transformers are modelled by three two-winding transformers in \(Y\)-connection:
The parameters of the three transformers are defined as follows:
T1 |
T2 |
T3 |
|
hv_bus |
hv_bus |
auxiliary bus |
auxiliary bus |
lv_bus |
auxiliary bus |
mv_bus |
lv_bus |
sn_mva |
sn_hv_mva |
sn_mv_mva |
sn_lv_mva |
vn_hv_kv |
vn_hv_kv |
vn_hv_kv |
vn_hv_kv |
vn_lv_kv |
vn_hv_kv |
vn_mv_kv |
vn_lv_kv |
vk_percent |
\(v_{k, t1}\) |
\(v_{k, t2}\) |
\(v_{k, t3}\) |
vkr_percent |
\(v_{r, t1}\) |
\(v_{r, t2}\) |
\(v_{r, t3}\) |
shift_degree |
0 |
shift_mv_degree |
shift_lv_degree |
The iron loss (pfe_kw) and open loop loss (i0_percent) of the 3W transformer is by default attributed to T1 (‘hv’). The parameter ‘trafo3w_losses’ in the runpp function however also allows to assign the losses to T2 (‘mv’), T3(‘lv’) or to the star point (‘star’).
To calculate the short-circuit voltages \(v_{k, t1..t3}\) and \(v_{r, t1..t3}\), first all short-circuit voltages are converted from side based values to branch based values
These transformer now represent a \(\Delta\) connection of the equivalent transformers. A \(\Delta-Y\) conversion is therefore applied to receive the parameters in \(Y\)-connection:
Since these voltages are given relative to the high voltage side, they have to be transformed back to the voltage level of each transformer:
The real part of the short-circuit voltage is calculated in the same way.
The definition of how impedances are calculated for the two winding transformer from these parameters can be found here.
Note
All short circuit voltages are given relative to the maximum apparent power flow. For example vk_hv_percent is the short circuit voltage from the high to the medium level, it is given relative to the minimum of the rated apparent power in high and medium level: min(sn_hv_mva, sn_mv_mva). This is consistent with most commercial network calculation software (e.g. PowerFactory). Some tools (like PSS Sincal) however define all short circuit voltages relative to the overall rated apparent power of the transformer: max(sn_hv_mva, sn_mv_mva, sn_lv_mva). You might have to convert the values depending on how the short-circuit voltages are defined.
The tap changer adapts the nominal voltages of the transformer in the equivalent to the 2W-Model:
tap_side=”hv” |
tap_side=”mv” |
tap_side=”lv” |
|
\(V_{n, HV, transformer}\) |
\(vnh\_kv \cdot n_{tap}\) |
\(vnh\_kv\) |
\(vnh\_kv\) |
\(V_{n, MV, transformer}\) |
\(vnm\_kv\) |
\(vnm\_kv \cdot n_{tap}\) |
\(vnm\_kv\) |
\(V_{n, LV, transformer}\) |
\(vnl\_kv\) |
\(vnl\_kv\) |
\(vnl\_kv \cdot n_{tap}\) |
with
The variable tap_side controls if the tap changer is located at T1 (‘hv’), T2 (‘mv’) or T3 (‘lv’). The tap_at_star_point variable controls if the tap changer is located at the star point of the three winding transformer or at the terminal side (hv/mv/lv bus).
See also
Trafo characteristic table
A transformer characteristic table (trafo_characteristic_table) can be used to adjust the 3-winding transformer parameters (voltage ratio, angle, impedance) according to the selected tap position. This lookup table is created automatically from version 3.0 onwards through the CIM CGMES to pandapower converter (if this information is available in the EQ profile), or the user may define this table manually. The id_characteristic_table variable in net.trafo3w references the id_characteristic column in net.trafo_characteristic_table per 3-winding transformer.
If the tap_dependency_table variable in net.trafo3w is set to True, this indicates that there is a corresponding characteristic available in net.trafo_characteristic_table, which overwrites the default 3-winding transformer parameters tap_step_percent, tap_step_degree, vkr_hv_percent, vkr_mv_percent, vkr_lv_percent, vk_hv_percent, vk_mv_percent and vk_lv_percent.
The below table provides an example trafo_characteristic_table, populated for two 3-winding transformers.
id_characteristic |
step |
voltage_ratio |
angle_deg |
vk_percent |
vkr_percent |
vkr_hv_percent |
vkr_mv_percent |
vkr_lv_percent |
vk_hv_percent |
vk_mv_percent |
vk_lv_percent |
|
0 |
0 |
10 |
1.049230814 |
0 |
0.202038469 |
0.151000013 |
0.169759643 |
19.50770312 |
7.0000001 |
12.62692044 |
||
1 |
0 |
11 |
1.036923051 |
0 |
0.202278839 |
0.151000013 |
0.169819736 |
19.38077652 |
7.0000001 |
12.59519014 |
||
2 |
0 |
12 |
1.024615407 |
0 |
0.20251921 |
0.151000013 |
0.169879828 |
19.25385386 |
7.0000001 |
12.56346081 |
||
3 |
0 |
13 |
1.012307644 |
0 |
0.202759595 |
0.151000013 |
0.169939925 |
19.12692371 |
7.0000001 |
12.53172959 |
||
4 |
0 |
14 |
1 |
0 |
0.202999996 |
0.151000013 |
0.170000025 |
19.00000131 |
7.0000001 |
12.50000029 |
||
5 |
0 |
15 |
0.987692297 |
0 |
0.203740375 |
0.151000013 |
0.17018512 |
18.92692004 |
7.0000001 |
12.48173115 |
||
6 |
0 |
16 |
0.975384593 |
0 |
0.204480754 |
0.151000013 |
0.170370214 |
18.8538408 |
7.0000001 |
12.46346251 |
||
7 |
0 |
17 |
0.963076949 |
0 |
0.205221133 |
0.151000013 |
0.170555309 |
18.78076168 |
7.0000001 |
12.44519387 |
||
8 |
0 |
18 |
0.950769246 |
0 |
0.205961527 |
0.151000013 |
0.170740408 |
18.7076846 |
7.0000001 |
12.42692574 |
||
9 |
1 |
1 |
0.990151525 |
-1.002313972 |
0.396666721 |
0.369999989 |
0.369999993 |
15.52653181 |
9.499999316 |
15.12530373 |
||
10 |
1 |
2 |
0.992585003 |
-0.749875605 |
0.396666739 |
0.369999989 |
0.369999996 |
15.61989434 |
9.499999316 |
15.14397671 |
||
11 |
1 |
3 |
0.995037675 |
-0.498676896 |
0.396666721 |
0.369999989 |
0.369999993 |
15.71325949 |
9.499999316 |
15.16265016 |
||
12 |
1 |
4 |
0.99750942 |
-0.248718262 |
0.396666739 |
0.369999989 |
0.369999996 |
15.80662726 |
9.499999316 |
15.18132407 |
||
13 |
1 |
5 |
1 |
0 |
0.396666774 |
0.369999989 |
0.370000003 |
15.90000215 |
9.499999316 |
15.19999936 |
||
14 |
1 |
6 |
1.00472033 |
0.463003337 |
0.396666739 |
0.369999989 |
0.369999996 |
15.76878837 |
9.499999316 |
15.17375616 |
||
15 |
1 |
7 |
1.00950563 |
0.921646893 |
0.396666739 |
0.369999989 |
0.369999996 |
15.63757528 |
9.499999316 |
15.14751298 |
||
16 |
1 |
8 |
1.014354944 |
1.375934005 |
0.396666739 |
0.369999989 |
0.369999996 |
15.5063629 |
9.499999316 |
15.12126983 |
||
17 |
1 |
9 |
1.019267559 |
1.825870156 |
0.396666774 |
0.369999989 |
0.370000003 |
15.37515802 |
9.499999316 |
15.09502807 |
Note
net.trafo_characteristic_table is applicable to both 2-winding and 3-winding transformers; the corresponding impedance parameters are populated accordingly.
tap_dependency_table has to be set to True, and id_characteristic_table and tap_changer_type variables need to be populated in order to consider the corresponding trafo_characteristic_table values.
The function pandapower.control.trafo_characteristic_table_diagnostic can be used for sanity checks. The function pandapower.control.create_trafo_characteristic_object can be used to automatically create SplineCharacteristic objects and populate the net.trafo_characteristic_spline table according to the net.trafo_characteristic_table table. An additional column id_characteristic_spline is also created in net.trafo3w to set up the reference to the spline characteristics.
The below table provides an example trafo_characteristic_spline table, populated for two 3-winding transformers.
id_characteristic |
voltage_ratio_characteristic |
angle_deg_characteristic |
vk_percent_characteristic |
vkr_percent_characteristic |
vk_hv_percent_characteristic |
vkr_hv_percent_characteristic |
vk_mv_percent_characteristic |
vkr_mv_percent_characteristic |
vk_lv_percent_characteristic |
vkr_lv_percent_characteristic |
|
0 |
0 |
SplineCharacteristic |
SplineCharacteristic |
SplineCharacteristic |
SplineCharacteristic |
SplineCharacteristic |
SplineCharacteristic |
SplineCharacteristic |
SplineCharacteristic |
||
1 |
1 |
SplineCharacteristic |
SplineCharacteristic |
SplineCharacteristic |
SplineCharacteristic |
SplineCharacteristic |
SplineCharacteristic |
SplineCharacteristic |
SplineCharacteristic |
Result Parameters
net.res_trafo3w
Parameter |
Datatype |
Explanation |
p_hv_mw |
float |
active power flow at the high voltage transformer bus [MW] |
q_hv_mvar |
float |
reactive power flow at the high voltage transformer bus [kVar] |
p_mv_mw |
float |
active power flow at the medium voltage transformer bus [MW] |
q_mv_mvar |
float |
reactive power flow at the medium voltage transformer bus [kVar] |
p_lv_mw |
float |
active power flow at the low voltage transformer bus [MW] |
q_lv_mvar |
float |
reactive power flow at the low voltage transformer bus [kVar] |
pl_mw |
float |
active power losses of the transformer [MW] |
ql_mvar |
float |
reactive power consumption of the transformer [Mvar] |
i_hv_ka |
float |
current at the high voltage side of the transformer [kA] |
i_mv_ka |
float |
current at the medium voltage side of the transformer [kA] |
i_lv_ka |
float |
current at the low voltage side of the transformer [kA] |
vm_hv_pu |
float |
voltage magnitude at the high voltage bus [pu] |
vm_mv_pu |
float |
voltage magnitude at the medium voltage bus [pu] |
vm_lv_pu |
float |
voltage magnitude at the low voltage bus [pu] |
va_hv_degree |
float |
voltage angle at the high voltage bus [degrees] |
va_mv_degree |
float |
voltage angle at the medium voltage bus [degrees] |
va_lv_degree |
float |
voltage angle at the low voltage bus [degrees] |
loading_percent |
float |
transformer utilization [%] |
The definition of the transformer loading depends on the trafo_loading parameter of the power flow.
For trafo_loading=’current’, the loading is calculated as:
For trafo_loading=’power’, the loading is defined as:
net.res_trafo3w_sc
The short-circuit (SC) results are put into net.res_trafo3w_sc with following definitions:
Parameter |
Datatype |
Explanation |
ikss_hv_ka |
float |
magnitude of the initial SC current at the high voltage side of the transformer [kA] |
ikss_mv_ka |
float |
magnitude of the initial SC current at the medium voltage side of the transformer [kA] |
ikss_lv_ka |
float |
magnitude of the initial SC current at the low voltage side of the transformer [kA] |