Sienna-Platform / Sienna-Platform/PowerFlowFileParser.jl

Transformers: nominal voltage different from bus voltage

Open
#49 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Julia
Stars
1
Forks
2
Avg merge
22h 29m
Merged PRs (30d)
10

Description

AI has identified bugs in the way we're handling NOMV1: when the bus base voltage differs from the winding voltage, our math doesn't work out.

Added a T3 transformer to synthetic_v35_transformer_discriminators.raw: CZ=1/CW=1/CM=2, SBASE1-2=40, MAG1=40000.0 W, MAG2=0.004, and NOMV1=145.0 against a 138 kV bus I. Only CW=3 consults NOMV1 for the tap, so CW=1 isolates NOMV1 to the impedance and admittance bases. Parsed output: br_r=0.008, br_x=0.024, g_fr=0.001, b_fr=-0.0038729833, tap=1.0 — bit-for-bit what NOMV1=0 gives. NOMV1 currently reaches nothing. Two places this shows up:

  1. CZ=1's Z_base_sys/Z_base_device (psse.jl:1156-1157) — a comment bug, not a numeric one. Both Z_bases are built from the same base_voltage_from, so the voltage cancels and the expression is identically mva_ratio. The comment saying it uses impedance ratios so that "NOMV1 could potentially be different than the bus_voltage" is misleading. But since a TransformerCircuit's voltage base is its bus's, collapsing to the power ratio is the right answer — so this wants deleting or rewording, not fixing.
  2. CM=2's magnetizing admittance — a real uncorrected factor. PSS/E defines MAG2 on SBASE1-2 and winding-one nominal voltage, while the series impedance beside it is on the winding-one bus base voltage. Rebasing an admittance scales it by (V_new/V_old)², so the stored value sits (NOMV1/V_bus)² above the bus-base one — ~10.4% high on this fixture — on a quantity the Ybus assembles next to an impedance that got no such factor. _transformer_mag_pu_conversion (psse.jl:1018) applies only the power ratio.

Currently every PSSE transformer record we're testing with has NOMV1 = 0.0, so this is also a test coverage gap. Code is here

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in src/pm_io/psse.jl around _transformer_mag_pu_conversion and the CZ=1 handling at lines 1156-1157, then inspect the synthetic_v35_transformer_discriminators.raw fixture and its transformer records. Verify the NOMV1-based CM=2 magnetizing admittance behavior against the documented bus and winding voltage bases, and add coverage for a nonzero NOMV1 case; done means the fixture exposes the corrected behavior and the misleading comment is addressed.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia
Domain
tooling
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.