Skip to content

Transformer (3-phase, 3-winding)

Three-phase three-winding (HV / LV / TV) mutually-coupled transformer. Leakage plus a magnetizing branch that is linear by default and can take an optional core-saturation curve (exponential, SE datasheet points, or a two-slope air-core knee for inrush studies); no hysteresis or residual flux. Fixed 3-leg core (shared magnetic circuit blocks zero-sequence flux). Vector-clock phase shifts on HV→LV and HV→TV are independent. Optional tap changer (first-order lag toward a tap_cmd named input) on a user-selectable host winding. Carries a load-flow 5-line PSSE 3-winding record; the column values are derived from the EMT parameters via the schema's computations block (no separate load-flow tab).

Category: Transformers

Ports

NameDirectionValue typeNotes
HVelectrical_3phdouble
LVelectrical_3phdouble
TVelectrical_3phdouble
HV_nelectricaldoubleVisible when hv_connection == 'YN' && hv_neutral == 'exposed'
LV_nelectricaldoubleVisible when lv_connection == 'yn' && lv_neutral == 'exposed'
TV_nelectricaldoubleVisible when tv_connection == 'yn' && tv_neutral == 'exposed'

Parameters

Config

NameLabelTypeDefaultUnitsDescription
s_ratedS rateddouble100MVA (VA, kVA, MVA)Three-phase apparent-power rating. The unit selector beside this field lets you enter the value in VA, kVA, or MVA — at netlist-export time the schema's `computations` block converts the selection to canonical VA, which is what the EMT model and load-flow extractor read. Sets the transformer's per-unit base (Z_base_pu = V_LL² / S_rated) and the load-flow R / X system-base conversion (R_pu_sys = R_pu_tx · 100 MVA / S_rated_canonical).
f_rated_hzf rateddouble60Rated electrical frequency, in hertz. Drives every per-unit-to-henries conversion (X_pu → L = X_pu · Z_base / (2πf)) on the EMT side; the load-flow extractor uses the system base frequency (60 Hz) for its own conversions, so f_rated_hz is EMT-only.
v_hv_rated_vV HV rated (LL)double230000V (V, kV)HV-winding rated line-to-line RMS voltage. The unit selector beside this field lets you enter the value in V or kV — at netlist-export time the schema's `computations` block converts the selection to canonical volts, which is what the EMT model and load-flow extractor read. Drives the HV-side per-unit base and the HV:LV / HV:TV turns ratios (per-winding rated voltage: V_LL/√3 for Y, V_LL for Δ). Surfaces as load-flow NOMV1 (converted to kV at extract time).
v_lv_rated_vV LV rated (LL)double115000V (V, kV)LV-winding rated line-to-line RMS voltage. Pick V or kV in the unit selector; the computations block converts to canonical volts at netlist export. Sets the LV-side per-unit base. Surfaces as load-flow NOMV2.
v_tv_rated_vV TV rated (LL)double13800V (V, kV)Tertiary-winding rated line-to-line RMS voltage. Pick V or kV in the unit selector; the computations block converts to canonical volts at netlist export. Sets the TV-side per-unit base. Surfaces as load-flow NOMV3.
hv_connectionHV connectionenum (Y (floating N) / YN (wye + neutral) / Δ delta)YNHV winding connection. `Y` = wye with a floating (isolated) neutral. `YN` = wye with an accessible neutral; the `HV neutral` selector decides grounded-internally vs brought-out to HV_n. `D` = delta.
hv_neutralHV neutralenum (Neutral exposed (HV_n port) / Grounded internally)exposedHow the HV wye star point is handled (only for the YN connection). `Exposed`: brought out to the HV_n port wired to the star point. `Grounded`: tied to ground inside the transformer (no HV_n port); pick solid or Rn+jXn grounding on the Grounding tab.
lv_connectionLV connectionenum (y (floating n) / yn (wye + neutral) / d (delta))ynLV winding connection. `y` = wye with a floating neutral. `yn` = wye with an accessible neutral; the `LV neutral` selector decides grounded-internally vs brought-out to LV_n. `d` = delta.
lv_neutralLV neutralenum (Neutral exposed (LV_n port) / Grounded internally)exposedHow the LV wye star point is handled (only for the yn connection). `Exposed`: brought out to the LV_n port wired to the star point. `Grounded`: tied to ground inside the transformer (no LV_n port); pick solid or Rn+jXn grounding on the Grounding tab.
tv_connectionTV connectionenum (y (floating n) / yn (wye + neutral) / d (delta))dTertiary winding connection. `y` = wye with a floating neutral. `yn` = wye with an accessible neutral; the `TV neutral` selector decides grounded-internally vs brought-out to TV_n. `d` = delta — the customary choice for a stabilising tertiary (provides a path for zero-sequence circulating current on Y-Y banks).
tv_neutralTV neutralenum (Neutral exposed (TV_n port) / Grounded internally)exposedHow the TV wye star point is handled (only for the yn connection). `Exposed`: brought out to the TV_n port wired to the star point. `Grounded`: tied to ground inside the transformer (no TV_n port); pick solid or Rn+jXn grounding on the Grounding tab.
hv_lv_vector_clockHV→LV vector clockenum (0 (in phase) / 1 (−30°) / 5 (−150°) / 6 (180°) / 7 (+150°) / 11 (+30°))0Phase shift of LV relative to HV, in 30° clock units (0 = in-phase, 1 = LV lags HV 30°, 11 = LV leads 30°, 6 = 180°). Maps directly to PSSE ANG2 = −30° × clock.
hv_tv_vector_clockHV→TV vector clockenum (0 (in phase) / 1 (−30°) / 5 (−150°) / 6 (180°) / 7 (+150°) / 11 (+30°))1Phase shift of TV relative to HV, in 30° clock units. Default `1` matches the typical YNd1 stabilising-tertiary group. Maps to PSSE ANG3 = −30° × clock.
r_hv_lv_puR HV-LV (pu)double0.005HV-LV pair series resistance, per-unit on the transformer's own base (S_rated, V_HV-rated). Measured by short-circuiting LV and energising HV with TV open. Typical 0.002 – 0.01.
x_hv_lv_puX HV-LV (pu)double0.1HV-LV pair leakage reactance, per-unit on the transformer's own base. Typical 0.08 – 0.12. Surfaces as PSSE column R1-2 / X1-2 (after a 100 MVA/S_rated rebase).
r_hv_tv_puR HV-TV (pu)double0.005HV-TV pair series resistance, per-unit on the transformer's own base. Measured by short-circuiting TV and energising HV with LV open.
x_hv_tv_puX HV-TV (pu)double0.1HV-TV pair leakage reactance, per-unit on the transformer's own base. Maps to PSSE R3-1 / X3-1.
r_lv_tv_puR LV-TV (pu)double0.005LV-TV pair series resistance, per-unit on the transformer's own base.
x_lv_tv_puX LV-TV (pu)double0.1LV-TV pair leakage reactance, per-unit on the transformer's own base. Maps to PSSE R2-3 / X2-3.
i_mag_hv_pctI_mag HV (%)double1No-load magnetizing current on the HV side at rated voltage, in percent of HV rated current (= 100 × I_mag / I_HV_rated). Sets the linear magnetizing inductance referred to the HV winding (the model uses HV as the magnetisation reference).
i_mag_lv_pctI_mag LV (%)double1No-load magnetizing current on the LV side at rated voltage, in percent of LV rated current. Informational in v1 — the LV magnetisation contribution is implied by the per-pair leakages and the HV-side L_m. Round to the same value as i_mag_hv_pct if you have no separate measurement.
i_mag_tv_pctI_mag TV (%)double1No-load magnetizing current on the TV side at rated voltage, in percent of TV rated current. Informational in v1, same as i_mag_lv_pct.
no_load_loss_puNo-load loss (pu)double0No-load (iron) loss, per-unit on S_rated. Lumps hysteresis + eddy at f_rated. The `No-load loss topology` parameter below picks where the resulting conductance is stamped. Set to 0 to disable.
no_load_loss_topologyNo-load loss topologyenum (Across HV winding / Line-to-ground per phase)windingWhere the no-load-loss conductance is stamped. `winding`: in parallel with the HV magnetising branch (across the per-leg HV winding). `line_ground`: as a shunt from each HV line terminal to ground (3-phase Y of conductors, common for surge / lightning models).
saturationMagnetic saturationenum (Off (linear) / On)0Enable the exponential open-circuit core-saturation curve acting on the per-leg magnetizing inductance L_m (the same shared saturation model used by the synchronous machine). When on, the magnetizing branch draws extra current above the knee flux ψT1. Define the curve directly (Asat/Bsat) or via the SE(1.0)/SE(1.2) datasheet points on the Saturation tab. Off = linear core (the v1 default).
enable_tap_changerTap changerenum (Off / On)0Enable the named-input-driven tap. When 0, the host winding's turns ratio is the rated value and `tap_cmd` is ignored. When 1, the schema surfaces the Tap Changer tab and resolves the `tap_cmd` named input — the host winding's effective ratio tracks `tap_cmd` through a first-order lag with time constant `tap_time_constant_s` (initial value `tap_init_pu`).
measure_hv_currentMeasure HV currentenum (Off / Line current / Winding current)offEmit HV per-phase currents. `off`: do not emit. `line`: per-phase line current (current into the HV port — coincides with winding current for Y connection). `winding`: per-phase winding current (line current rotated into the Δ winding for D connection; same as line for Y).
measure_lv_currentMeasure LV currentenum (Off / Line current / Winding current)offEmit LV per-phase currents. Same options as `Measure HV current`.
measure_tv_currentMeasure TV currentenum (Off / Line current / Winding current)offEmit TV per-phase currents. Same options as `Measure HV current`.
measure_mag_currentMeasure mag currentenum (Off / On)0Emit per-leg magnetizing current i_mag_a/b/c (A) through the linear magnetising branch.
measure_fluxMeasure core fluxenum (Off / On)0Emit per-leg magnetizing flux linkage psi_a/b/c in per-unit of the peak HV-winding flux base (1.0 pu = the flux a rated sinusoidal winding voltage produces at f_rated). This is the state that drives saturation, so it is the signal that explains a magnetizing-current waveform: compare it against the saturation threshold to see when the core goes over. Available whether or not saturation is enabled.

Tap Changer

NameLabelTypeDefaultUnitsDescription
tap_host_windingHost windingenum (HV / LV / TV)hvWhich winding's turns ratio the tap modulates. Only that winding's WINDV column in the load-flow record deviates from 1.0; the other two stay at nominal.
tap_time_constant_sTime constant (s)double1First-order time constant (seconds) used to ramp the host winding's effective ratio toward `tap_cmd` after each step. The EMT model applies the lag exp(-h/τ) per step.
tap_init_puInitial ratio (pu)double1Initial value of the host winding's effective ratio at t = 0, in pu of rated voltage. 1.0 = nominal turns. Also seeds the load-flow WINDV column on the host winding.
tap_cmd_signal_nameTap signal namestringtapName of the published signal that drives the tap command (in pu of nominal). The named input is always 1-step delayed via MemoryArena.prev — no algebraic-loop risk even when the source transitively depends on this transformer's voltage. Leave empty to disable the binding (the lag still runs from the initial value).

Grounding

NameLabelTypeDefaultUnitsDescription
hv_groundingHV neutral groundingenum (Solidly grounded / Grounded via Rn + jXn)solidGrounding of the HV wye neutral when `HV neutral` = Grounded. `Solid`: star point bonded directly to ground. `Impedance`: grounded through Rn + jXn — the terminal zero-sequence impedance gains 3·(Rn + jXn).
hv_rn_puHV Rn (pu)double0HV neutral-grounding resistance, per-unit on the HV-winding base (Z_base_HV = V_HV_winding² / (S_rated / 3)).
hv_xn_puHV Xn (pu)double0HV neutral-grounding reactance, per-unit on the HV-winding base.
lv_groundingLV neutral groundingenum (Solidly grounded / Grounded via Rn + jXn)solidGrounding of the LV wye neutral when `LV neutral` = Grounded. `Solid`: bonded directly to ground. `Impedance`: grounded through Rn + jXn referred to the LV-winding base.
lv_rn_puLV Rn (pu)double0LV neutral-grounding resistance, per-unit on the LV-winding base.
lv_xn_puLV Xn (pu)double0LV neutral-grounding reactance, per-unit on the LV-winding base.
tv_groundingTV neutral groundingenum (Solidly grounded / Grounded via Rn + jXn)solidGrounding of the TV wye neutral when `TV neutral` = Grounded. `Solid`: bonded directly to ground. `Impedance`: grounded through Rn + jXn referred to the TV-winding base.
tv_rn_puTV Rn (pu)double0TV neutral-grounding resistance, per-unit on the TV-winding base.
tv_xn_puTV Xn (pu)double0TV neutral-grounding reactance, per-unit on the TV-winding base.

Saturation

NameLabelTypeDefaultUnitsDescription
sat_definitionDefinitionenum (Exponential (Asat/Bsat) / SE points (SE1.0/SE1.2) / Two-slope (air-core))0How the core-saturation curve is specified. `Exponential` enters the coefficients Asat / Bsat directly. `SE points` enters the two datasheet saturation factors SE(1.0) and SE(1.2); the exponential is fit through them — both end up as the same Ssat(ψ) = Asat·exp(Bsat·(ψ − ψT1)) curve internally. `Two-slope (air-core)` instead uses the piecewise-linear λ–i characteristic: unsaturated L_m below the knee ψT1, air-core L_air above it. Pick the exponential form for steady-state over-excitation near 1.0–1.2 pu (that is the range it is fitted over); pick two-slope for energization / inrush studies, where the flux swings to nearly 2 pu and the answer is governed by how close the saturated inductance gets to air-core — a regime the exponential does not extrapolate into sensibly.
AsatAsatdouble0.03Exponential saturation coefficient A: Ssat(ψ) = Asat·exp(Bsat·(ψ − ψT1)) for per-unit magnetizing flux ψ above the knee ψT1, else 0. The saturated magnetizing inductance is L_m = L_m,unsat / (1 + Ssat). 0 disables saturation.
BsatBsatdouble7Exponential saturation coefficient B (1/pu-flux): controls how sharply saturation increases with magnetizing flux above ψT1.
SE10SE(1.0)double0.1Open-circuit saturation factor at 1.0 pu flux: the fractional extra magnetizing current (vs. the air-gap line) needed to reach 1.0 pu. Typical 0.05–0.15.
SE12SE(1.2)double0.3Open-circuit saturation factor at 1.2 pu flux. Must exceed SE(1.0). Typical 0.2–0.5. With SE(1.0) it fixes Bsat = ln(SE12/SE10)/0.2 and Asat = SE10/exp(Bsat·(1.0 − ψT1)).
l_air_puL air-core (pu)double0.2Saturated (air-core) inductance in per-unit on the transformer base — the slope of the λ–i characteristic once the core is over the knee. Physically the winding's inductance with the iron gone, so it is set by winding geometry and lands near the leakage reactance: typical values are 1–4 × x_hv_lv_pu, i.e. roughly 0.1–0.5 pu. This single number governs the peak inrush current, because above the knee the energization loop is just the source impedance plus leakage plus L_air.
psi_knee_puψ knee (pu)double1.2Flux linkage (pu) at which the λ–i characteristic breaks from L_m to the air-core slope. Unlike the exponential form's ψT1 — a curve-fitting threshold that can sit below rated flux because the exponential is still negligible there — this is a hard break, so it MUST be above the transformer's normal operating flux or the unit saturates every cycle in ordinary service. Real cores knee over at 1.1–1.25 pu; values below 1.0 are almost certainly a mistake.
psiT1ψT1 (pu)double0.8Magnetizing-flux threshold (pu) below which the exponential curve is clamped to Ssat = 0. This is the fitting origin of the exponential, not a physical knee — the standard 0.8 sits below rated flux and is harmless there because Ssat(0.8) = 0 and grows smoothly.

Monitoring

NameLabelTypeDefaultUnitsDescription
i_hv_name_aHV name AstringI_HVaSignal name for the HV-side Phase A current. Blank skips this phase.
i_hv_name_bHV name BstringI_HVbSignal name for the HV-side Phase B current.
i_hv_name_cHV name CstringI_HVcSignal name for the HV-side Phase C current.
i_lv_name_aLV name AstringI_LVaSignal name for the LV-side Phase A current.
i_lv_name_bLV name BstringI_LVbSignal name for the LV-side Phase B current.
i_lv_name_cLV name CstringI_LVcSignal name for the LV-side Phase C current.
i_tv_name_aTV name AstringI_TVaSignal name for the TV-side Phase A current.
i_tv_name_bTV name BstringI_TVbSignal name for the TV-side Phase B current.
i_tv_name_cTV name CstringI_TVcSignal name for the TV-side Phase C current.
i_mag_name_aMag name AstringImagASignal name for the Phase A magnetising current.
i_mag_name_bMag name BstringImagBSignal name for the Phase B magnetising current.
i_mag_name_cMag name CstringImagCSignal name for the Phase C magnetising current.
flux_name_aFlux name AstringPsiASignal name for the Phase A core flux linkage (pu). Blank skips this phase.
flux_name_bFlux name BstringPsiBSignal name for the Phase B core flux linkage (pu).
flux_name_cFlux name CstringPsiCSignal name for the Phase C core flux linkage (pu).

Observables

SignalTypeDefault nameEnableDescription
i_HV_asignalfrom i_hv_name_ameasure_hv_currentHV-side Phase A current (A). `line` mode reports the current into the HV_a port; `winding` mode reports the current through the HV winding (rotated to the Δ winding loop for D connection).
i_HV_bsignalfrom i_hv_name_bmeasure_hv_current
i_HV_csignalfrom i_hv_name_cmeasure_hv_current
i_LV_asignalfrom i_lv_name_ameasure_lv_current
i_LV_bsignalfrom i_lv_name_bmeasure_lv_current
i_LV_csignalfrom i_lv_name_cmeasure_lv_current
i_TV_asignalfrom i_tv_name_ameasure_tv_current
i_TV_bsignalfrom i_tv_name_bmeasure_tv_current
i_TV_csignalfrom i_tv_name_cmeasure_tv_current
i_mag_asignalfrom i_mag_name_ameasure_mag_current
i_mag_bsignalfrom i_mag_name_bmeasure_mag_current
i_mag_csignalfrom i_mag_name_cmeasure_mag_current
psi_mag_asignalfrom flux_name_ameasure_fluxPhase A core (magnetizing) flux linkage, in pu of the peak HV-winding flux base. 1.0 pu is the peak flux a rated sinusoidal winding voltage sustains at f_rated, so the knee ψT1 and this signal are directly comparable.
psi_mag_bsignalfrom flux_name_bmeasure_flux
psi_mag_csignalfrom flux_name_cmeasure_flux