Skip to main content

Module qv

Module qv 

Source
Expand description

Q-V curves: how much reactive headroom does one bus have?

continuation asks how much further the system can be loaded before it collapses. This asks a narrower and more operational question about a single bus: how much reactive support would it take to hold this bus at a given voltage, and how much margin is there before that stops being possible?

§The method, and why it needs no continuation

Put a fictitious synchronous condenser at the bus — an ideal machine that holds a voltage and produces whatever reactive power that takes — by retyping the bus to PV. Then sweep its setpoint downward and read the reactive power it has to supply at each step:

Q                     the curve is traced left to right by lowering |V|
|    \                 (or right to left; the sweep direction is a choice)
|     \___             Q > 0: the bus must be *supported* to hold this high
|         \___
+-----------\------------------ |V|
|            \___
|                \__.--          the minimum: dQ/d|V| = 0.
|                    ^           Below it no setpoint is reachable with less
                   the nose      reactive power — that is the margin.

Every point is an ordinary power flow. Fixing |V| is what makes it so: the bus’s reactive equation is dropped and its magnitude stops being an unknown, which is exactly a PV bus, and the Jacobian stays non-singular all the way through the nose. A P-V curve needs a predictor–corrector precisely because it does not fix a magnitude — λ is a free parameter and the Jacobian goes singular at the fold. Here the fold is in Q, which is an output rather than an unknown, so nothing goes singular and a sweep is enough.

That is a real difference in kind, not an implementation shortcut, and it is why this module reuses crate::run_power_flow rather than continuation’s bordered corrector.

§What the margin means

The minimum of the curve is the most reactive power the bus can absorb before the relationship inverts. Reported as a positive number of MVAr: a larger margin is a stronger bus. A bus whose curve barely dips below zero is one small contingency away from having no reachable setpoint at all.

§What this shares with the P-V side

The answer, when both are asked. The bus a P-V trace names critical — the largest component of the tangent at the nose — should be the bus with the smallest Q-V margin, because both are measuring the same weakness by different means. tests/qv_test.rs asserts exactly that, and it is the strongest gate here: two independent methods agreeing is worth more than either agreeing with itself.

Structs§

QvCurve
A bus’s Q-V curve.
QvNose
The bottom of the curve: the most reactive power this bus can absorb.
QvOptions
Everything a Q-V sweep needs to know.
QvPoint
One setpoint and the reactive power holding it would take.

Enums§

QvError
A request a sweep will not attempt, stated rather than approximated.
QvStatus
How a sweep ended.

Functions§

qv_curve
Traces one bus’s Q-V curve.