#[non_exhaustive]pub struct Transformer3W {
pub windings: [Winding; 3],
pub z: [Impedance; 3],
pub star_vm: f64,
pub star_va: f64,
pub mag_g: f64,
pub mag_b: f64,
pub in_service: bool,
pub name: Option<String>,
pub uid: Option<String>,
pub extras: BTreeMap<String, Value>,
}Expand description
A three-winding transformer: three terminal buses joined at a common star point, with the series impedance given pairwise (winding 1-2, 2-3, 3-1).
Kept as a typed record (not three Branches) so the star-point voltage and
the per-winding control data survive a same-format round trip. Both the PSS/E
3-winding record and the PSLF tertiary-winding record map onto it.
star_expansion turns it into the synthetic
star bus plus three branches for a consumer that works in the bus-branch model;
IndexedNetwork applies it before building any matrix,
so a 3-winding transformer contributes to Y_bus and connectivity.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.windings: [Winding; 3]The three windings, in order (primary, secondary, tertiary).
z: [Impedance; 3]Pairwise series impedance [z12, z23, z31] (primary-secondary,
secondary-tertiary, tertiary-primary), each per unit on the system base
with its declared MVA base.
star_vm: f64Star-point voltage magnitude (p.u.) and angle (degrees), as solved.
star_va: f64§mag_g: f64Magnetizing shunt referred to the star point (p.u. on the system base).
mag_b: f64§in_service: bool§name: Option<String>§uid: Option<String>Stable row identity; see Bus::uid.
extras: BTreeMap<String, Value>Implementations§
Source§impl Transformer3W
impl Transformer3W
pub fn new(windings: [Winding; 3], z: [Impedance; 3]) -> Transformer3W
Sourcepub fn star_impedances(&self) -> [(f64, f64); 3]
pub fn star_impedances(&self) -> [(f64, f64); 3]
The per-winding star impedances (r, x) — winding k to the star point —
from the pairwise values, per unit on the system base.
Standard pairwise→star conversion: z1 = (z12 + z31 - z23) / 2, and so on.
Because the impedances are already on a common base, the split is linear in
r and x separately.
Sourcepub fn star_expansion(&self, star_id: BusId) -> (Bus, [Branch; 3])
pub fn star_expansion(&self, star_id: BusId) -> (Bus, [Branch; 3])
Expand into a synthetic star Bus (id star_id) plus three Branches,
one per winding, for a consumer that works in the bus-branch model.
IndexedNetwork calls this via
Network::expand_transformers_3w when assembling matrix inputs. The star
bus carries the stored star voltage and the magnetizing shunt is left to the
caller; each branch takes its winding’s tap, phase shift, and ratings.
Trait Implementations§
Source§impl Clone for Transformer3W
impl Clone for Transformer3W
Source§fn clone(&self) -> Transformer3W
fn clone(&self) -> Transformer3W
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more