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:
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.
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
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.Currently every PSSE transformer record we're testing with has
NOMV1 = 0.0, so this is also a test coverage gap. Code is here