Skip to content

Power Flow (PFC)

PFC uses the following network records documented in Network Modeling: BUS, LINE, SWITCH, TRANSFO, TRFO, NRTP.

The additional records specific to power flow computations are documented below.

Load and shunt data are specified in an extended version of the BUS record:

BUS NAME VNOM PLOAD QLOAD BSHUNT QSHUNT ;
FieldDescriptionUnit
NAMEBus name (max 8 characters)
VNOMNominal voltagekV
PLOADTotal active power load (positive = consumed)MW
QLOADTotal reactive power load (positive = consumed)Mvar
BSHUNTNominal reactive power of constant-susceptance shunt: the reactive power produced under the nominal voltage of the bus (positive = capacitor, negative = reactor)Mvar
QSHUNTReactive power of constant-power shunt (positive = capacitor)Mvar

If no load is connected to the bus, set PLOAD and QLOAD to zero. If no shunt is connected, set BSHUNT and QSHUNT to zero.

The total reactive power QQ produced by both shunt components:

Q=BSHUNT(VVnom)2+QSHUNTQ = \text{BSHUNT} \cdot \left(\frac{V}{V_{nom}}\right)^2 + \text{QSHUNT}
GENER NAME BUS P Q VIMP SNOM QMIN QMAX BR ;
FieldDescriptionUnit
NAMEGenerator name (max 20 characters)
BUSConnection bus name
PActive power producedMW
QReactive power produced (ignored if VIMP ≠ 0)Mvar
VIMPImposed voltage (0 = PQ bus, nonzero = PV bus)pu
SNOMNominal apparent powerMVA
QMINLower reactive power limitMvar
QMAXUpper reactive power limitMvar
BRBreaker status (0 = open)

For PV buses, if the upper reactive power limit QMAX is exceeded, the bus switches to PQ type with QMAX enforced, and Newton iterations continue. If subsequently the bus voltage rises above VIMP, the bus switches back to PV type. Similarly, if QMIN is exceeded, the bus switches to PQ type with QMIN enforced; it switches back to PV if the voltage subsequently drops below VIMP.

QMIN and QMAX are used only if VIMP is nonzero (PV bus).

A variant with additional fields exists:

GENER NAME BUS P Q VIMP SNOM QMIN QMAX PMIN PMAX BR ;

The PMIN and PMAX fields (minimum/maximum active power in MW) are currently ignored by STEPSS.

Only one generator is allowed per bus.

All generators are memorized, even those which are disconnected. A disconnected generator has zero power output but can be put into service during dynamic simulation.

A slack bus is mandatory for power flow computations: not all buses can be of PV or PQ type, since this would require knowing the active power losses in the network before performing the calculation.

A PV-type generator must be connected to the slack bus. Its voltage magnitude (from the GENER record) is imposed, and the voltage phase angle is set to zero.

SLACK NAME ;
FieldDescription
NAMEBus name (max 8 characters)

There must be exactly one SLACK record in the data.

PFC can handle only one connected network (island). If the graph is disconnected, only the sub-network containing the slack bus is treated; the rest is ignored with a warning.

Although reference is made to an SVC, the model can be used in general for any component controlling voltage with a droop. The SVC is assumed lossless: the active current injected at the controlled bus is zero.

The SVC is modeled with a controllable susceptance BB at a controlled bus ii, regulating the voltage at a monitored bus jj:

SVC model IQi=G(VjoVj)Vi(voltage control)I_{Qi} = G(V_j^o - V_j) V_i \quad \text{(voltage control)} IQi=BmaxVi(upper limit)IQi=BminVi(lower limit)I_{Qi} = B_{max} V_i \quad \text{(upper limit)} \quad\quad I_{Qi} = B_{min} V_i \quad \text{(lower limit)}
SVC NAME CON_BUS MON_BUS V0 Q0 SNOM BMAX BMIN G BR ;
FieldDescriptionUnit
NAMESVC name (max 20 characters)
CON_BUSControlled bus where the susceptance BB is varied (max 8 characters)
MON_BUSMonitored bus whose voltage is regulated (max 8 characters)
V0Voltage setpoint VjoV_j^o (0 = constant power mode with P=0P=0, Q=Q0Q=Q0, no limits tested)pu
Q0Reactive power setpoint (ignored if V0 ≠ 0)Mvar
SNOMNominal reactive powerMvar
BMAXMaximal nominal reactive power: reactive power produced under Vi=1V_i = 1 pu when B=BmaxB = B_{max}Mvar
BMINMinimal nominal reactive power: reactive power produced under Vi=1V_i = 1 pu when B=BminB = B_{min}Mvar
GGain, in pu on the (VBV_B, SNOM) base, where VBV_B is the nominal voltage at the controlled buspu
BRBreaker status (0 = open, other = closed)

It is common for BMAX to be positive and BMIN negative, but other combinations are allowed.

For SVCs with nonzero V0, the voltage control equation is solved initially. If the susceptance upper limit BMAX is exceeded, the limit is enforced and Newton iterations continue. The SVC reverts to voltage control when G(VjoVj)<BmaxG(V_j^o - V_j) < B_{max}. Similarly, if BMIN is exceeded, the lower limit is enforced; the SVC reverts when G(VjoVj)>BminG(V_j^o - V_j) > B_{min}.

Only one SVC is allowed per bus. It is not allowed to connect both a generator and an SVC to the same bus.

All SVCs are memorized, even those which are disconnected. A disconnected SVC can be put into service during dynamic simulation.

Transformer Ratio Adjustment for Voltage Control

Section titled “Transformer Ratio Adjustment for Voltage Control”

PFC can adjust the ratio of a designated transformer to bring a controlled voltage inside a deadband [Vdesϵ,  Vdes+ϵ][V_{des} - \epsilon,\; V_{des} + \epsilon], where VdesV_{des} is the desired voltage and ϵ\epsilon is the tolerance.

The ratio is changed in discrete steps between a minimum and maximum value. During computation, the ratio is changed by one step at a time, after which Newton iterations run until convergence. The process repeats until the controlled voltage falls in the deadband. When multiple transformers are adjusted, some may reach their deadbands before others.

The controlled bus is CONBUS in the TRFO record. This must be one of the two ending buses of the transformer. An empty or blank string enclosed within quotes indicates that the transformer ratio is not to be adjusted; in this case, dummy values must still be provided for the remaining fields.

The ratio corresponding to tap position pp (1pNBPOS1 \le p \le \text{NBPOS}):

n=NFIRST100+p1NBPOS1NLASTNFIRST100n = \frac{\text{NFIRST}}{100} + \frac{p-1}{\text{NBPOS}-1} \cdot \frac{\text{NLAST} - \text{NFIRST}}{100}

The initial ratio from the N field of the TRFO record is adjusted to the nearest tap position before starting the power flow computation.

Relevant fields in the TRFO record:

FieldDescriptionUnit
NFIRSTRatio at first tap position (lower bound)%
NLASTRatio at last tap position (upper bound)%
NBPOSTotal number of tap positions (including first and last)
TOLVVoltage tolerance ϵ\epsilonpu
VDESDesired voltage VdesV_{des}pu

The second way to specify ratio adjustment is through a separate LTC-V record. This is more natural in association with a TRANSFO record.

LTC-V NAME CON_BUS NFIRST NLAST NBPOS TOLV VDES ;
FieldDescriptionUnit
NAMEName of the controlled transformer (max 20 characters)
CON_BUSControlled bus (max 8 characters)
NFIRSTRatio at first tap position (lower bound)%
NLASTRatio at last tap position (upper bound)%
NBPOSTotal number of tap positions (including first and last)
TOLVVoltage tolerance ϵ\epsilonpu
VDESDesired voltage VdesV_{des}pu

A transformer can be controlled by a single tap changer only. The LTC-V record can also be associated with a TRFO record, provided that no adjustment is specified in the TRFO record itself.

Phase-Shifting Transformer Adjustment (PSHIFT-P)

Section titled “Phase-Shifting Transformer Adjustment (PSHIFT-P)”

PFC can adjust the phase angle of a transformer to bring the active power flow in a monitored branch inside a deadband [Pdesϵ,  Pdes+ϵ][P_{des} - \epsilon,\; P_{des} + \epsilon]. The adjustment mechanism is similar to the in-phase ratio adjustment described above.

PSHIFT-P CONTRFO MONBRANCH PHAFIRST PHALAST NBPOS SIGN PDES TOLP ;
FieldDescriptionUnit
CONTRFOName of the transformer whose phase angle is adjusted (max 20 characters, defined in a TRFO or TRANSFO record). If the transformer does not exist, the record is ignored with a warning
MONBRANCHName of the branch where active power PP is monitored (max 20 characters, defined in a LINE, TRFO, or TRANSFO record). PP is the active power leaving the first bus of the branch record
PHAFIRSTPhase angle ϕ\phi at first tap position (lower bound)degrees
PHALASTPhase angle ϕ\phi at last tap position (upper bound)degrees
NBPOSNumber of tap positions
SIGNDirection indicator: 1 means ϕ\phi must increase to increase power flow; -1 means decrease. Any other value causes the program to stop
PDESDesired active power flowMW
TOLPTolerance ϵ\epsilonMW

The phase angle ϕ\phi at tap position pp (1pNBPOS1 \le p \le \text{NBPOS}) is:

ϕ=PHAFIRST+p1NBPOS1(PHALASTPHAFIRST)\phi = \text{PHAFIRST} + \frac{p-1}{\text{NBPOS}-1}(\text{PHALAST} - \text{PHAFIRST})

The initial phase angle from the PHI field of the TRANSFO record is adjusted to the nearest tap position before starting the power flow computation.

PFC performs a sensitivity analysis to determine whether the phase angle should be increased or decreased. If this analysis indicates a direction opposite to SIGN, a warning is issued and SIGN is ignored. On output, PFC sets SIGN to the value from its sensitivity analysis.

Only one PSHIFT-P record per transformer is allowed. The PSHIFT-P record is intended for use with a TRANSFO record, but can also be used with a TRFO record (in which case the angle is initialized to zero).

A transformer cannot be controlled by both an LTC-V and a PSHIFT-P record.

Bus Voltages: Initial Values and Results (LFRESV)

Section titled “Bus Voltages: Initial Values and Results (LFRESV)”

On output, PFC produces a file with the computed bus voltage magnitudes and phase angles. These are stored in LFRESV records. The syntax is:

LFRESV BUS MODV PHASV ;
FieldDescriptionUnit
BUSBus name (max 8 characters)
MODVVoltage magnitudepu
PHASVVoltage phase angle, referenced to slack busradians

PFC uses Newton–Raphson iterations to solve the power flow equations. Convergence is achieved when both the active and reactive power mismatches fall below specified thresholds, all transformer ratio and phase-shift controls are satisfied, and all generators and SVCs are within their reactive limits.

Three convergence indices are used:

  • ϵP\epsilon_P: largest absolute mismatch of the active power equations
  • ϵQ\epsilon_Q: largest absolute mismatch of the reactive power equations
  • ϵS\epsilon_S: largest apparent power mismatch, used to trigger limit checks (via $MISQLIM), Jacobian freezing (via $MISBLOC), and transformer adjustments (via $MISADJ)

The following records control the computation. Each record starts with $ and has a single numeric field.

ParameterDefaultUnitDescription
$SBASE100MVASystem base power (on which pu values are expressed)
$TOLAC0.1MWConvergence tolerance on active power mismatch (ϵP\epsilon_P)
$TOLREAC0.1MvarConvergence tolerance on reactive power mismatch (ϵQ\epsilon_Q)
$NBITMA20Maximum number of Newton iterations
$MISQLIM20MVAApparent power mismatch threshold below which generator/SVC reactive limits are checked and enforced (set to 0 to skip)
$MISBLOC10MVAApparent power mismatch threshold below which the Jacobian is kept constant
$MISADJ10MVAApparent power mismatch threshold below which transformer ratios and phase shifts are adjusted (set to 0 to skip)
$DIVDET0Set to 1 to activate divergence detection; 0 to skip

The following table summarises which records are used by PFC and RAMSES respectively.

RecordPFCRAMSES
BUSAll 6 fieldsFirst 2 fields (NAME, VNOM)
LINEAll fieldsAll fields
SWITCHAll fieldsAll fields
NRTPAll fieldsAll fields
TRANSFOAll fieldsAll fields
TRFOAll fieldsFields 1–9 and 15 only
SHUNTIgnoredAll fields
GENERAll fieldsIgnored
SVCAll fieldsIgnored
SLACKUsedUsed
LFRESVInput: initial values; Output: solutionInput: initial values for RAMSES
LTC-VUsedIgnored
PSHIFT-PUsedIgnored