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.

In dynamic regime, each synchronous machine defines a local frequency. In most cases, those frequencies remain close to the nominal frequency fNf_N. The admittances in Y\mathbf{Y} are computed at frequency fNf_N.

The voltage at bus ii takes the form:

vi(t)=2Vi(t)cos(ωNt+ϕi(t))=2Re[Vi(t)ejϕi(t)ejωNt]v_i(t) = \sqrt{2}\, V_i(t) \cos(\omega_N t + \phi_i(t)) = \sqrt{2}\, \text{Re}\left[V_i(t)\, e^{j\phi_i(t)}\, e^{j\omega_N t}\right]

In rectangular coordinates on the (x,y)(x,y) axes rotating at ωN=2πfN\omega_N = 2\pi f_N:

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.

In RAMSES, the rectangular components (vxi,vyi)(v_{xi}, v_{yi}) are used rather than the polar components (Vi,ϕi)(V_i, \phi_i).

Phasor approximation and reference frames

The (x,y)(x,y) axes rotating at ωN\omega_N form a synchronous reference. After a disturbance, the system may settle at a different frequency ff, unless its model includes an infinite bus imposing fNf_N. Phasor components then oscillate at ffN|f - f_N|, although the system is at equilibrium from a practical viewpoint. Tracking these oscillations requires a small time step, making the synchronous reference unsuitable for long-term simulations.

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

In fact, any speed can be considered for the reference axes (x,y)(x,y). The only constraint is that all voltage and current phasors refer to the same axes.

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 mm is the total number of synchronous machines, ωi\omega_i is the rotor speed of the ii-th machine, and SNiS_{Ni} is its nominal apparent power (in MVA).

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.

To preserve model sparsity despite the global coupling in the COI equation, the value of ωcoi\omega_{coi} at the previous time step is used.

See: D. Fabozzi and T. Van Cutsem, “On angle references in long-term time-domain simulations,” IEEE Trans. Power Systems, Vol. 26, No. 1, pp. 483-484, Feb. 2011.

The COI frequency can be used as an average system frequency in injector and two-port models.

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:

ix+jiy=(G+jB)(vx+jvy)\mathbf{i}_x + j\,\mathbf{i}_y = (\mathbf{G} + j\,\mathbf{B})(\mathbf{v}_x + j\,\mathbf{v}_y)

where G\mathbf{G} is the conductance matrix and B\mathbf{B} the susceptance matrix. Decomposing into real and imaginary parts yields:

[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:

Initialization from power flow
  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

    A positive value of PiinjP^{inj}_i (resp. QiinjQ^{inj}_i) corresponds to power entering the network.

  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 and fQj×Qjc0=0f_{Qj} \times Q^{c0}_j = 0.

    Although fPjf_{Pj} and fQjf_{Qj} are typically in the interval [0,1][0, 1], negative values or values larger than one are allowed.

  5. Assign remaining power to an impedance load:

Pir=Piinjj=1nPjcQir=Qiinjj=1nQjcP_i^r = P^{inj}_i - \sum_{j=1}^{n} P^c_j \qquad Q_i^r = Q^{inj}_i - \sum_{j=1}^{n} Q^c_j

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)

A large value of GirG_i^r or BirB_i^r may be intentional (when a load is modeled as a constant shunt admittance), but it may also result from a mistake in the initial power balance.

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.