Schuler oscillation in strapdown INS

An inertial navigator's horizontal error does not simply grow — it oscillates, with a period of 84.4 minutes that depends on nothing but $g$ and the Earth's radius. This is the Schuler oscillation, and it is the single most characteristic behaviour of an inertial system. Understanding it explains why horizontal error is bounded while vertical error diverges, why alignment takes minutes, and why you cannot damp it without an external reference.

Symbols used on this page are defined in the Nomenclature → inertial navigation.

The idea in one sentence. A tilt error makes the navigator mis-resolve gravity, producing a false acceleration; integrating that gives a false velocity; a false velocity makes the navigator rotate its own local-level frame at the wrong rate, producing more tilt error. That is a closed loop with negative feedback — and negative feedback with no damping is an oscillator.

1 · Where the 84.4 minutes comes from

Schuler's original insight (1923) concerned a pendulum. A simple pendulum of length $\ell$ has period

$$ T=2\pi\sqrt{\frac{\ell}{g}} $$

Now ask: what length makes the pendulum's bob stay pointing at the Earth's centre even while the pivot accelerates horizontally? The answer is a pendulum whose length equals the Earth's radius — its bob would sit at the centre of the Earth. Such a pendulum is insensitive to horizontal acceleration of its support, which is precisely the property you want from a vertical reference carried on a moving vehicle. Its period is

$$ \boxed{\;T_S=2\pi\sqrt{\frac{R_e}{g}}=2\pi\sqrt{\frac{6.371\times10^{6}}{9.80665}}\approx 5064\ \text{s}\approx 84.4\ \text{min}\;} $$ $$ \omega_S=\sqrt{\frac{g}{R_e}}=1.2405\times10^{-3}\ \text{rad/s} $$

An inertial navigator has no physical pendulum — but it contains a mathematical one. The computation that maintains the local-level frame behaves exactly like a Schuler pendulum, so the same period appears in the error dynamics of every terrestrial INS, gimballed or strapdown.

Why this period is universal and un-tunable. $\omega_S=\sqrt{g/R_e}$ contains no sensor parameter, no filter gain and no vehicle property. A better IMU changes the amplitude of the oscillation, never its frequency. It is a property of navigating near a spherical, gravitating body — which also means the same analysis applies on other bodies with their own $\sqrt{g/R}$ (the Moon's is about 111 min).

2 · The feedback loop, derived

Consider one horizontal channel (say north) of a local-level mechanization. Two error couplings create the loop.

2.1 Tilt → velocity error: mis-resolved gravity

The accelerometers measure specific force $\mathbf f$; the navigator adds modelled gravity back to get acceleration. If the computed frame is tilted by $\delta\theta$ relative to true level, gravity is resolved along the wrong axes and a component leaks into the horizontal channel:

$$ \delta\dot{v}= -g\,\delta\theta \;+\; b_a $$

This is the $-[\mathbf f\times]\delta\boldsymbol\theta$ term of the general error model, specialised to a near-stationary vehicle where $\|\mathbf f\|\approx g$. A 1 mrad tilt produces a false acceleration of $9.8\times10^{-3}$ m/s² — about $1000\ \mu g$, far larger than any decent accelerometer's bias.

2.2 Velocity error → tilt: the transport rate

Here is the part that makes it a loop rather than a ramp. A local-level frame must rotate as the vehicle travels over a curved Earth, at the transport rate

$$ \omega_{en}=\frac{v}{R_e} $$

The navigator computes this rate from its own estimated velocity. If the velocity estimate is wrong by $\delta v$, the frame is rotated at the wrong rate, and the tilt error accumulates:

$$ \delta\dot\theta=\frac{\delta v}{R_e} \;+\; b_g $$

2.3 Closing the loop

Differentiate the first equation and substitute the second:

$$ \delta\ddot v=-g\,\delta\dot\theta=-g\left(\frac{\delta v}{R_e}+b_g\right) $$ $$ \boxed{\;\delta\ddot v+\underbrace{\frac{g}{R_e}}_{\omega_S^2}\delta v=-g\,b_g\;} $$

A second-order undamped harmonic oscillator with natural frequency $\omega_S=\sqrt{g/R_e}$, forced by gyro bias. In state-space form, with $\mathbf x=[\delta v,\ \delta\theta]^\top$:

$$ \dot{\mathbf x}=\begin{bmatrix}0 & -g\\[2pt] \dfrac{1}{R_e} & 0\end{bmatrix}\mathbf x +\begin{bmatrix}b_a\\ b_g\end{bmatrix} $$

whose eigenvalues are the crux of the matter:

$$ \lambda=\pm j\sqrt{\frac{g}{R_e}}=\pm j\,\omega_S $$

Purely imaginary — marginally stable. No damping, no growth. The error neither dies away nor diverges: it oscillates forever, which is the defining signature of the horizontal channel.

3 · Solutions, and what each error source looks like

With initial errors $\delta v_0,\delta\theta_0$ and constant biases, the solution is

$$ \delta v(t)=\underbrace{\delta v_0\cos\omega_S t}_{\text{initial velocity error}} \;\underbrace{-\;\delta\theta_0\sqrt{gR_e}\,\sin\omega_S t}_{\text{initial tilt}} \;\underbrace{-\;\frac{b_g}{\omega_S}\big(1-\cos\omega_S t\big)R_e\omega_S}_{\text{gyro bias}} \;+\;\underbrace{\frac{b_a}{\omega_S}\sin\omega_S t}_{\text{accel bias}} $$

and the tilt error is

$$ \delta\theta(t)=\underbrace{\delta\theta_0\cos\omega_S t}_{\text{decays into velocity and back}} +\underbrace{\frac{\delta v_0}{\sqrt{gR_e}}\sin\omega_S t}_{} +\underbrace{\frac{b_a}{g}\big(1-\cos\omega_S t\big)}_{\text{oscillates about } b_a/g} $$

Read off the amplitudes — these are the numbers worth remembering:

Error sourceVelocity-error amplitudeTilt-error behaviourExample magnitude
Initial tilt $\delta\theta_0$$\delta\theta_0\sqrt{gR_e}$oscillates, mean zero 1 mrad → 7.9 m/s peak velocity error
Initial velocity $\delta v_0$$\delta v_0$amplitude $\delta v_0/\sqrt{gR_e}$ 1 m/s → 0.13 mrad tilt swing
Accel bias $b_a$$b_a/\omega_S$offset $b_a/g$ plus oscillation 100 µg → 0.79 m/s amplitude, 0.1 mrad offset
Gyro bias $b_g$$b_gR_e$oscillates about $-b_g/\omega_S$… 0.01°/h → 0.31 m/s; position error ramps
The 1 mrad → 7.9 m/s result is the one that surprises people. $\sqrt{gR_e}=\sqrt{9.807\times6.371\times10^6}\approx7900$ m/s — not coincidentally, roughly orbital velocity. So every milliradian of residual alignment error becomes nearly 8 m/s of peak velocity error in an unaided terrestrial INS. This single number is why alignment quality (§ ground alignment) dominates the error budget, and why fine alignment is allowed to take minutes.

3.1 Why accel bias produces an offset, not just oscillation

Setting $\delta\dot v=0$ in the first coupling equation gives the equilibrium the system oscillates about:

$$ 0=-g\,\delta\theta_{eq}+b_a \quad\Longrightarrow\quad \delta\theta_{eq}=\frac{b_a}{g} $$

The navigator settles into a tilt that exactly cancels the accelerometer bias — it tilts the computed frame until mis-resolved gravity offsets the false acceleration, which is why the error is bounded rather than divergent. This is the same $b_a/g$ that sets the coarse-alignment accuracy floor, and it is a nice illustration that the two results are the same physics seen from different ends.

4 · The three natural frequencies of a terrestrial INS

Schuler is one of three modes present in the full error dynamics, and they are commonly confused:

ModeFrequencyPeriodOrigin
Schuler$\omega_S=\sqrt{g/R_e}$84.4 mingravity/transport-rate loop (this page)
Earth rate$\omega_{ie}=7.292\times10^{-5}$24 hEarth rotation coupling into the horizontal channels
Foucault$\omega_{ie}\sin L$$24/\sin L$ hmodulation of the Schuler oscillation's plane

The Foucault effect appears as a slow amplitude modulation that swaps error between the north and east channels — the Schuler oscillation's plane precesses, exactly like a Foucault pendulum. With all three present the horizontal error is an 84-minute oscillation whose envelope is modulated over many hours, which is what INS error plots from long flights actually look like.

4.1 The vertical channel is a different animal — and it diverges

Repeating the derivation for the vertical channel flips a crucial sign. An altitude error changes modelled gravity, and it changes it in the direction that reinforces the error: go up, modelled gravity decreases, so the navigator under-corrects and believes it is going up faster still. Using $\partial g/\partial r\approx-2g/R_e$:

$$ \delta\ddot h=-\frac{\partial g}{\partial h}\delta h=+\frac{2g}{R_e}\delta h \quad\Longrightarrow\quad \lambda=\pm\sqrt{2}\,\omega_S\ \ (\textbf{real}) $$ $$ \delta h(t)\sim e^{+\sqrt2\,\omega_S t},\qquad \tau=\frac{1}{\sqrt2\,\omega_S}\approx 570\ \text{s} $$
Horizontal oscillates, vertical explodes. The eigenvalues are imaginary horizontally and real vertically, so vertical error grows exponentially with a ~9.5 minute time constant. This is why every terrestrial INS requires an external altitude reference — barometric, radar altimeter, or GNSS. It is not a refinement; the vertical channel is unstable and cannot be run open-loop. The same sign analysis is why horizontal error is self-limiting and needs no such help to stay bounded.

5 · Suppressing the oscillation

Because the eigenvalues are purely imaginary, any damping must come from adding a term proportional to the error — which means you must have some way of observing the error. That constraint organises all the methods, and it is the reason "internal" schemes cannot truly win.

5.1 Internal (undamped → damped) mechanisation, and why it is a trade not a fix

You can feed the navigator's own velocity back into the level-frame computation with a gain, which is the classic "damped INS" of marine systems:

$$ \delta\ddot v+\underbrace{2\zeta\omega_S}_{\text{added damping}}\delta\dot v+\omega_S^2\,\delta v=-g\,b_g $$ $$ \lambda=-\zeta\omega_S\pm j\omega_S\sqrt{1-\zeta^2} $$

The oscillation now decays with time constant $1/(\zeta\omega_S)$. But look at the steady state:

$$ \delta v_{ss}=-\frac{g\,b_g}{\omega_S^2}=-b_g R_e $$

The steady-state error is unchanged — damping removed the oscillation but not the bias-driven offset, and it now settles there permanently instead of swinging through zero twice per period. Worse, the damping loop uses the navigator's own velocity, which contains the error you are trying to remove:

Internal damping trades an oscillation for a drift. Feeding back your own (erroneous) velocity makes the system insensitive to the oscillation while making it sensitive to vehicle acceleration — the damped mechanisation no longer behaves like a Schuler pendulum, so real horizontal manoeuvres now inject tilt error. Marine systems tolerate this because ships accelerate gently; it is unacceptable for aircraft or launch vehicles. This is the origin of "Schuler-tuned but undamped" as the default choice, with schemes that switch damping off during manoeuvres.

5.2 External velocity aiding — the only genuine fix

With an independent velocity measurement $\mathbf v_{ext}$ (GNSS, Doppler radar, water-speed log, odometer), the residual is a true observation of the error rather than a rearrangement of it:

$$ \delta\mathbf z=\hat{\mathbf v}-\mathbf v_{ext}=\delta\mathbf v+\text{noise} $$

Feeding this through a Kalman gain both damps the loop and drives the steady-state error to zero, because the measurement carries information the navigator did not have:

$$ \dot{\mathbf x}=(A-KH)\mathbf x+\dots,\qquad \text{eigenvalues of } (A-KH) \text{ placed by } K $$

Special cases worth naming: zero-velocity updates (ZUPT) are this measurement with $\mathbf v_{ext}=0$ — which is exactly the fine-alignment mechanism, and why alignment convergence is governed by the Schuler period. Periodic stops on a land vehicle, or a ship's water-speed log, are the same idea applied intermittently.

5.3 The full menu of suppression methods

MethodMechanismRemoves oscillation?Removes bias offset?Cost / caveat
External velocity aiding (GNSS, Doppler, log)true error observation → Kalman gain yesyesneeds an external sensor; the reference standard
ZUPT / periodic stops$\mathbf v_{ext}=0$, exactly known yesyes (bias becomes observable)requires stopping; not possible in flight
Position aidingobserves the integral of $\delta v$ yesyesslower to damp than velocity aiding
Internal (2nd/3rd-order) dampingown-velocity feedback yesnodestroys Schuler tuning → manoeuvre sensitivity
Baro/radar altimeterstabilises the vertical channel n/an/amandatory — vertical is unstable (§4.1)
Bias estimation in the filterremoves the forcing term $-g\,b_g$ indirectlyyesneeds observability, i.e. aiding or motion
Rotation / carousellingmodulates bias to zero mean reduces amplitudelargelymechanical complexity — see rotation
84.4-min averaginga whole period integrates to ~zero in the mean onlynoonly useful for post-flight analysis
Better sensorsshrinks the driving terms no — same frequencysmallerexpensive; changes amplitude only
The organising principle behind that whole table. The Schuler loop is marginally stable and internally lossless — there is no dissipation to exploit. Damping therefore requires information from outside the loop. Internal feedback can only rearrange what the navigator already believes, so it moves the error from an oscillation into a bias plus a new manoeuvre sensitivity. Only an external measurement adds information, and only added information can remove error. Everything in the table is either an external reference (works), an internal rearrangement (trade-off), or an attack on the forcing term rather than the loop (helps, but does not damp).

6 · Does this apply to strapdown, or only gimballed systems?

It applies to both, and this is worth being precise about because the phrase "Schuler-tuned platform" comes from gimballed hardware and causes confusion.

GimballedStrapdown
Level frame is maintained byphysically torquing gimbalsnumerically, in software
Transport-rate correctiongimbal torquing commandsterms in the attitude update
Schuler loop exists?yes — physicalyes — mathematical, identical dynamics
Period84.4 min84.4 min
Where the error livesplatform misalignmentthe computed $C^n_b$

In strapdown there is no platform to tilt, but the computed local-level frame plays exactly that role, and the same $g$ and $1/R_e$ couplings appear in the error-state matrix $A$. Even a system mechanised in ECI (as launch vehicles typically are, to avoid transport-rate terms entirely) exhibits the same behaviour when its errors are expressed in local-level coordinates, because the physics of the gravity-gradient coupling is frame-independent. What changes is whether the $g/R_e$ term appears explicitly in your mechanisation or emerges from the gravity-gradient block $G=\partial\mathbf g/\partial\mathbf r$.

7 · Practical implications

  • Alignment duration is set by the Schuler period. Observing the oscillation is how the filter separates tilt from accel bias; you need a meaningful fraction of 84.4 min to do it well, which is why minutes-long fine alignment is physics rather than conservatism.
  • Never test an INS for exactly one Schuler period. The error returns near zero at $t=T_S$, so a test that ends there will report a suspiciously excellent result. Test for a non-integer number of periods, or report the peak rather than the endpoint.
  • Interpret error plots correctly. An 84-minute ripple in flight data is expected behaviour, not a bug or a filter instability. Conversely, its absence in an unaided system suggests the analysis or the simulation is wrong.
  • Short-flight vehicles never see a full cycle. A 10-minute launch trajectory covers only ~12% of a Schuler period, so the oscillation appears as the familiar growing $t^2$ error — the first quarter-cycle of a sinusoid looks like a parabola. The polynomial error laws and the Schuler solution are the same result at different timescales.
  • Sanity-check with $\sqrt{gR_e}\approx7900$ m/s. Residual tilt in mrad times 7.9 gives peak velocity error in m/s — a fast, reliable order-of-magnitude check on any alignment requirement.

8 · Further reading

  • Titterton & Weston, Strapdown Inertial Navigation Technology, 2nd ed. — error propagation, Schuler/Foucault modes, damped vs undamped mechanisations.
  • Groves, Principles of GNSS, Inertial and Multisensor Integrated Navigation Systems — INS error dynamics in local-level frames and the vertical-channel instability.
  • Britting, Inertial Navigation Systems Analysis — the classic rigorous treatment of the error equations and their modes.
  • Farrell, Aided Navigation — how aiding places the eigenvalues of the damped error system.
  • Schuler, M., "Die Störung von Pendel- und Kreiselapparaten durch die Beschleunigung des Fahrzeuges" (Physikalische Zeitschrift, 1923) — the original result.

Related: Gyro bias cancellation by rotation · IMU acceptance testing · Linear covariance analysis · IMU & inertial navigation · Ground alignment · back to Misc.