Elect_Aspect_Course_2_2_1 - nasa/gunns GitHub Wiki
There are two ways to model a constant-power load, and each has pros and cons. From P = IV and V = IR, we can represent a power load as either a current source I = P/V, or as a conductance G = 1/R, P = V2/R, G = P/V2. Conveniently, these fit the generic flow source and conductance effects in GUNNS, respectively.
GUNNS used to model all constant-power loads as a conductance G = P/V2. Given the desired power load P, G would be continuously recomputed from the most recent V solution from the previous minor step, until convergence. For the special case where V <= 0, we would just turn the load off completely, or under-volt trip, etc.
Recently we’ve started updating the various constant-power load links to calculate their loads as a current source in the source vector instead of the old conductance approach, because it helps the network converge in less minor steps. The drawback to this approach is the general instability of generic flow source effect – it can demand more flow than the upstream circuit can supply, and pull voltage down to negative values. To avoid this problem requires either special logic to fall back to a conductive load, or simply relying on an under-volt trip.
We illustrate the faster convergence of the current source below. In this example we have a voltage source of 120 V with an internal resistance (droop) of 200 ohm, feeding a constant power load of 5 W. This is a 1-node case and we can easily write the equation for the result, for both types of load.
The voltage regulator is a potential source effect with [A] = Greg and {b} = Vreg * Greg.
The load as a current is I = P/V, so it is a flow source effect with [A] = 0 and {b} = -P/V. The negative sign is because it is a flow demand pulling current out of the node.
Adding the terms into a single equation for the node voltage:
GregV = VregGreg – P/V
V = Vreg – P / V / Greg
The exact solution for V can be found by the quadratic equation; with the above values, it is 110.990195 volts. However, GUNNS doesn’t know that, and instead iterates on V until it converges.
The load as a conductance is G = P/V2, so it is a conductance effect with [A] = P/V2 and {b} = 0. Combining with the voltage regulator as above we get another equation for the node voltage, which GUNNS would iterate on:
(Greg + P/V2)V = VregGreg
V = VregGreg / (Greg + P/V2)
Below we show each of the above two equations converging to the exact solution, and we can see how the current-source version approaches faster than the conductance version.