Skip to content

Reference Frames & Initialization

Under the phasor approximation, the network equations are:

Iˉ=YVˉ\bar{\mathbf{I}} = \mathbf{Y} \bar{\mathbf{V}}

where Iˉ\bar{\mathbf{I}} is the vector of complex currents, Vˉ\bar{\mathbf{V}} is the vector of complex voltages, and Y\mathbf{Y} is the bus admittance matrix.

The voltage at bus ii takes the form:

vi(t)=2Re[(vxi(t)+jvyi(t))ejωNt]v_i(t) = \sqrt{2} \, \text{Re}\left[(v_{xi}(t) + j\,v_{yi}(t)) \, e^{j\omega_N t}\right]

where vxi+jvyiv_{xi} + j\,v_{yi} is the voltage phasor in rectangular coordinates on (x,y)(x,y) axes rotating at ωN=2πfN\omega_N = 2\pi f_N.

The (x,y)(x,y) axes rotating at ωN\omega_N form a synchronous reference. After a disturbance, the system may settle at frequency ffNf \ne f_N, causing phasor components to oscillate at ffN|f - f_N|.

This reference is suited for short-term simulations or when the model includes an infinite bus driving the frequency back to fNf_N.

In the COI reference, the axes rotate at:

ωcoi=i=1mMiωii=1mMi\omega_{coi} = \frac{\sum_{i=1}^m M_i \omega_i}{\sum_{i=1}^m M_i}

where Mi=2HiSNiSBM_i = 2H_i \frac{S_{Ni}}{S_B} is the inertia coefficient of the ii-th machine.

When the system reaches equilibrium at frequency ff, all phasor components tend to constant values, enabling larger time steps. The COI reference is well suited for long-term simulations.

The reference is specified in Solver Settings via:

$OMEGA_REF SYN ; # Synchronous reference
$OMEGA_REF COI ; # Center of inertia reference

The presence of a Thévenin equivalent (infinite bus) forces the synchronous reference.

With all phasors referred to the (x,y)(x,y) axes, the network equations decompose into:

[ixiy]=[GBBG][vxvy]\begin{bmatrix} \mathbf{i}_x \\ \mathbf{i}_y \end{bmatrix} = \begin{bmatrix} \mathbf{G} & -\mathbf{B} \\ \mathbf{B} & \mathbf{G} \end{bmatrix} \begin{bmatrix} \mathbf{v}_x \\ \mathbf{v}_y \end{bmatrix}

For a network with NN buses, there are 2N2N equations involving 4N4N variables.

The dynamic simulation is initialized as follows:

  1. Start from initial bus voltages (from the power flow solution)

  2. Compute power flows in network branches and shunts

  3. Determine bus power injections by summing flows at incident branches

  4. Share bus injection among components using one of two methods:

    • (i) Explicit powers: Pjc=Pjc0P^c_j = P^{c0}_j, Qjc=Qjc0Q^c_j = Q^{c0}_j
    • (ii) Fractions: Pjc=fPjPiinjP^c_j = f_{Pj} \cdot P^{inj}_i, Qjc=fQjQiinjQ^c_j = f_{Qj} \cdot Q^{inj}_i

    These methods are mutually exclusive: fPj×Pjc0=0f_{Pj} \times P^{c0}_j = 0.

  5. Assign remaining power to an impedance load: if the unassigned power is above an internal tolerance, an automatic constant-admittance load (named M_bus) is created:

(GirjBir)Vi(0)2=(Pir+jQir)(G_i^r - jB_i^r) \cdot V_i(0)^2 = -(P_i^r + jQ_i^r)
NUMBER OF IMPEDANCE LOADS : 3 (M_ type: 3 )
load name bus name P Q
M_2 2 90.002 17.997
M_3 3 0.013 -0.011
M_4 4 -0.017 -0.022

Here, M_3 and M_4 are negligible (rounding artifacts), while M_2 suggests a missing load specification at bus 2.