Expand description
Which machine produced what reactive power.
A PV bus has one reactive injection and the solver decides it. When one
machine holds that bus, that injection is the machine’s output and there
is nothing to attribute. When six do — 62 of RealGrid’s 417 regulated buses,
2 of FullGrid’s 3 — the power flow is still right, but nothing says which
machine is carrying the load.
That matters most exactly where it is least visible.
ReactiveLimits clamps a bus at the
summed capability of everything holding it, which is correct: the bus can
produce what its machines jointly can. But a bus comfortably inside its
summed limit can contain a machine that is not, with the others carrying it.
Only a split shows that.
§What this is not
This changes no answer. It is attribution after the fact, not a
constraint inside the solve. Every machine in the vendored corpus sits at
the bus it regulates, so the bus is an ordinary PV bus, its injection is
determined by the network, and the split is arithmetic on the result.
The genuinely different problem — several machines at different buses
holding one remote bus — needs n−1 extra equations inside the Newton
system (powsybl’s DISTR_Q) because each controller bus then has its own
reactive unknown. No vendored fixture has that configuration, so it is not
built here.
Structs§
- BusDispatch
- One bus’s machines, and what they could account for.
- Machine
Dispatch - One machine’s share of the reactive power its bus produced.
Enums§
- KeyBasis
- How the shares were arrived at, so a reader can tell a considered split from an even one.
Functions§
- allocate
- Attributes each bus’s solved reactive injection to the machines holding it.
- reactive_
keys - The normalized split for one bus’s machines, and what it was derived from.