Inertia, RoCoF and Frequency Nadir Calculator

When a large generator or an HVDC infeed trips, the power balance breaks instantly and the frequency starts to fall. How fast it falls in the first instant is set by one thing only: the kinetic energy stored in the rotating masses still synchronised to the system. How far it falls before it stops is set by how quickly governors and load damping can replace the missing power. This calculator computes both. It gives the initial rate of change of frequency from the swing equation, then integrates the aggregated swing equation numerically to find the nadir, the time to nadir, and the settling frequency.

The reason this matters more every year is that inverter-based resources contribute no inertia unless they are explicitly programmed to. Replacing synchronous plant with converter-interfaced generation shrinks the denominator of the RoCoF expression without changing the numerator, so the same credible loss produces a steeper slope and a deeper nadir. Drag the inverter-share slider and watch both move.

Inertia, RoCoF and Frequency Nadir

Size the initial rate of change of frequency and integrate the swing equation to the nadir

System
MVA
%
s
MW
Disturbance
MW
Response
%/Hz
%
s
Protection settings
Hz
Hz/s
s
Initial RoCoF after the loss
Hz/s
Awaiting inputs
Frequency trajectory
RoCoF, first second
Nadir
Time to nadir
Settling frequency
System inertia E
Windowed RoCoF
UFLS margin
RoCoF_0 = f0 dP / (2 Hsys Ssys) Esys = Hsys x Ssys
Single-bus, uniform-frequency aggregation of the swing equation with a linear load-damping term and one first-order governor, integrated with RK4 over 30 s. No closed-form nadir approximation is used. The model cannot represent inter-area or local RoCoF differences, it ignores the spatial spread of the disturbance over the first few hundred milliseconds (during which a machine near the fault sees a much steeper local slope than the system average), and it has no governor deadband, no reserve limit, no turbine non-minimum-phase behaviour and no fast frequency response from inverters. Real RoCoF relays measure over a finite window rather than instantaneously, and operators define that window differently, so the default 1 Hz/s over 500 ms and the default UFLS stages here are illustrative and are not taken from any particular grid code. Use them as screening values, not as settings.
Initial RoCoF
·
The instantaneous slope at the moment of the loss, before any governor has moved. Updates live with the sliders.
Frequency nadir
Run the calculator to see how deep the frequency falls before governors arrest it.
System inertia
Stored kinetic energy of the synchronous fleet still online. This is the quantity that sets the initial slope.

The swing equation, aggregated to one machine

Treat every synchronous machine on the system as one equivalent rotor. Its stored kinetic energy at nominal speed is the inertia constant times the rated apparent power of the fleet online:

\[ E_{sys}=H_{sys}S_{sys},\qquad S_{sys}=S_{tot}\left(1-\frac{\mathrm{IBR}}{100}\right) \]

with \(E_{sys}\) in MWs (megawatt-seconds), \(H_{sys}\) the MVA-weighted average inertia constant in seconds, and \(S_{sys}\) the synchronous capacity in MVA. Inverter-based resources are removed from \(S_{tot}\) because, absent a synthetic-inertia control, they contribute nothing to \(E_{sys}\). The aggregated swing equation with a linear load-damping term is then

\[ \frac{2H_{sys}S_{sys}}{f_0}\,\frac{d\,\Delta f}{dt}=P_{gov}(t)-\Delta P-D_{load}\,\Delta f \]

where \(\Delta f\) is the deviation from nominal in Hz, \(\Delta P\) the lost infeed in MW, \(P_{gov}\) the incremental governor output in MW, and \(D_{load}\) the load damping in MW per Hz. At \(t=0^{+}\) both \(\Delta f\) and \(P_{gov}\) are still zero, so every term except \(\Delta P\) vanishes and the initial slope follows directly:

\[ \mathrm{RoCoF}_0=\frac{f_0\,\Delta P}{2\,H_{sys}S_{sys}} \]

This is the headline number in the calculator. Note what it does and does not contain. It contains the nominal frequency, the size of the loss, and the stored energy. It contains no governor, no damping, no droop, and no time constant, because none of those have acted yet. Halving the inertia exactly doubles the initial RoCoF, which is why inertia floors are written as MWs limits rather than as MW limits.

Governor response and the nadir

Primary frequency response is modelled here as a single first-order lag with gain set by the aggregate droop \(R\) in percent and a time constant \(T\):

\[ T\,\frac{dP_{gov}}{dt}=-K_{gov}\,\Delta f-P_{gov},\qquad K_{gov}=\frac{S_{sys}}{(R/100)\,f_0} \]

A 5% droop means a 5% frequency change commands 100% of rated output, so a smaller \(R\) gives a stiffer response. The load damping term uses \(D\) in percent per Hz applied to total demand, \(D_{load}=(D/100)\,P_{dem}\), a range of roughly 1 to 2 %/Hz being the usual textbook assumption.

The calculator integrates these two coupled equations with a fourth-order Runge-Kutta scheme at a fixed 2 ms step over 30 s. It does not use any of the closed-form nadir approximations that appear in the literature. Those approximations require the governor model to be reduced to a specific canonical form, and they mislead as soon as the time constant, the droop, or the damping moves away from the case they were fitted to. Integrating honestly costs a few thousand floating-point operations and is exact for the model as stated.

The nadir is read off the trajectory: it is the minimum of \(f(t)\) and the time at which it occurs. The settling frequency is the equilibrium of the same two equations, obtained by setting both derivatives to zero:

\[ \Delta f_{ss}=\frac{-\Delta P}{K_{gov}+D_{load}} \]

With a governor time constant of 8 s the trajectory is still a couple of millihertz above this asymptote at 30 s, so the calculator reports the exact equilibrium for the settling frequency and shows the integrated curve heading toward it.

Instantaneous RoCoF versus what a relay measures

The analytic \(\mathrm{RoCoF}_0\) is the slope at a single instant. No relay can measure that. Real RoCoF elements average the frequency change over a finite window, typically a few hundred milliseconds, precisely so that they are not fooled by transients and measurement noise. Because governor action and load damping both start reducing the deficit immediately, the averaged slope over the window is always slightly shallower than the instantaneous value. The second chart shows this: \(df/dt\) starts at \(\mathrm{RoCoF}_0\) and relaxes toward zero, and the marker is the window average that the classification uses.

System operators define the window and the threshold differently, and some define RoCoF at a measurement point rather than as a system average. The 1 Hz/s over 500 ms default in this tool is an illustrative screening value, not a grid code setting. Use your own operator’s definition before drawing any conclusion about relay behaviour.

Worked example

Press Load example for a 50 Hz island: 30,000 MVA of generation online, 60% of it inverter-based, an average inertia constant of 4.0 s across the synchronous plant, 22,000 MW of demand, and the loss of a 1,000 MW infeed. The synchronous capacity is 12,000 MVA, so the stored energy is 48 GWs and the initial RoCoF is

\[ \mathrm{RoCoF}_0=\frac{50\times 1000}{2\times 4.0\times 12000}=0.521\ \mathrm{Hz/s} \]

The trajectory bottoms out at 49.17 Hz about 2.8 s after the loss and recovers to a settling frequency of 49.80 Hz. The first shedding stage at 48.8 Hz is cleared by roughly 0.37 Hz, and the 500 ms window average is 0.50 Hz/s against a 1 Hz/s threshold. This is a survivable event, but not a comfortable one.

Now push the inverter share from 60% to 80%. The synchronous capacity falls to 6,000 MVA, the stored energy halves to 24 GWs, and the initial RoCoF doubles to 1.04 Hz/s. The nadir drops to about 48.55 Hz, which is below the first shedding stage, so the event now sheds customer load. Nothing about the disturbance changed. Only the inertia did.

How the classification bands work

  • Ride-through: the window-averaged RoCoF stays below 80% of the relay threshold and the nadir clears the first shedding stage by more than 0.2 Hz. Governor response alone arrests and recovers the frequency.
  • Close to limits: either the measured RoCoF is within 20% of the threshold or the nadir is within 0.2 Hz of the first shedding stage. The event survives, but there is no headroom for a lower-inertia hour or a slightly larger loss.
  • RoCoF exceeded or load shedding: the window-averaged RoCoF is at or above the threshold, which risks tripping RoCoF-sensitive embedded generation and deepening the event, or the nadir reaches the first shedding stage and customer load is disconnected.

The two criteria are checked jointly because they fail for different reasons and have different remedies. A RoCoF problem is an inertia problem and is fixed by synchronous inertia, synchronous condensers, or a smaller largest credible infeed. A nadir problem is a response problem and is fixed by faster or larger primary reserve, including fast frequency response from batteries and inverters, which arrives well before conventional governors do.

Working in per-unit instead of MW and MVA?

The free Per-Unit System Cheat Sheet covers base selection and change of base, including how to convert a machine inertia constant from its own rating to the system base, on one printable page.

Get the cheat sheet →

Frequently asked questions

Why does the inverter share change the answer if I entered the synchronous inertia constant?

The calculator asks for total generation capacity online and the share of it that is inverter-based, then computes the synchronous capacity as the remainder. The inertia constant you enter is the average across that synchronous plant. So the inverter share does not change \(H\); it changes the MVA that \(H\) multiplies, which is what actually sets the stored energy. If you already know the synchronous MVA directly, set the inverter share to zero and enter that figure.

Why is the nadir not at the same place as the RoCoF problem?

They are separated in time. The initial RoCoF happens in the first cycles and depends only on inertia. The nadir happens seconds later and depends on how much reserve arrives and how fast. A system can have an acceptable RoCoF and still shed load because its governors are slow, or a very fast response and still trip RoCoF relays because it is inertia-poor.

Can synthetic inertia from inverters replace synchronous inertia?

Partly, and not in the same way. A grid-following inverter providing synthetic inertia must first measure the frequency, which takes time, so it responds after the initial slope has already been established. Grid-forming inverters respond much faster and behave far more like a real machine over the first cycles. This calculator models neither, so it gives the pessimistic answer for a system with inverter-based fast frequency response.

Is a single-bus frequency model realistic?

It is realistic for the system average after the first few hundred milliseconds, and it is the model behind most inertia adequacy screening. It is not realistic locally. Immediately after a trip the disturbance propagates through the network and machines electrically close to the lost infeed swing much harder than the system average, so a local RoCoF measurement can be several times the aggregate figure. Anything that depends on local behaviour needs a full multi-machine electromechanical simulation.

What should I use for the aggregate droop?

Individual governors are commonly set at 4 to 5%, but the effective system droop is worse than that because not every unit is responsive, some are at their limits, and deadbands delay the response. A conservative screening study uses the nameplate droop applied only to the responsive capacity, which is smaller than the total synchronous capacity. This tool applies the droop to all synchronous capacity, so it is optimistic on governor gain.

References

  • P. Kundur, Power System Stability and Control, McGraw-Hill, 1994, chapter 11 (the swing equation and the inertia constant) and chapter 11.1 on frequency control.
  • A. J. Wood, B. F. Wollenberg and G. B. Sheble, Power Generation, Operation, and Control, 3rd ed., Wiley, 2013, on droop, load damping and the aggregated frequency response model.
  • P. M. Anderson and A. A. Fouad, Power System Control and Stability, 2nd ed., IEEE Press, 2003, on the per-unit swing equation and machine aggregation.