IMU acceptance testing

A delivered inertial unit arrives with a datasheet. Acceptance testing is how you find out whether this particular unit meets it, and — more importantly — how you obtain the error-model parameters the navigation filter actually needs. Those two goals are not the same, and the tests that serve them are different. This page covers what a bench can and cannot measure, and why the headline drift number is rarely the number that determines flight performance.

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

The central point. A filter does not consume "0.01°/h bias". It consumes a stochastic model: which noise processes are present, their magnitudes, their correlation times, and how much the deterministic terms change between power cycles and across temperature. Repeatability, not accuracy, is the binding parameter — anything stable can be calibrated out, and anything that changes after you calibrate cannot.

1 · The error model being measured

Everything on a test plan traces to terms in this model. For a triad of gyros or accelerometers with measured output $\tilde{\mathbf m}$ and true input $\mathbf m$:

$$ \tilde{\mathbf m}=\big(I+\underbrace{S}_{\text{scale factor}}+\underbrace{M}_{\text{misalignment}}\big)\mathbf m +\underbrace{\mathbf b}_{\text{bias}} +\underbrace{G\,\mathbf f}_{\substack{g\text{-sensitivity}\\ \text{(gyros)}}} +\underbrace{\mathbf n(t)}_{\text{noise}} $$

with $S=\operatorname{diag}(s_x,s_y,s_z)$, $M$ the off-diagonal non-orthogonality/mounting terms, and the noise term itself a sum of several distinct random processes (§2). The test campaign partitions naturally by which term each test isolates:

TermIsolated byWhy it matters in flight
Bias $\mathbf b$static multi-position (§3)$\tfrac12 b_a t^2$ and $\tfrac16 g b_g t^3$ error growth
Scale factor $S$rate table / precision tumble (§4)error proportional to the manoeuvre — matters most during high-rate events
Misalignment $M$multi-position, multi-axiscross-axis coupling; leaks large axial signals into small ones
$g$-sensitivity $G$orientation reversals under $1g$, centrifugebias that appears only under thrust — invisible on a static bench
Noise $\mathbf n(t)$Allan variance from long static runs (§2)sets filter $Q$ and the achievable alignment quality
Repeatability of all abovemany power cycles, thermal cycles (§5)the real limit — the part calibration cannot remove

2 · Allan variance: separating the noise processes

A long static record contains several superimposed random processes. Allan variance separates them by how the averaged signal's variance depends on averaging time $\tau$ — the classic tool from frequency metrology, standardised for inertial sensors in IEEE Std 952 and related documents.

Divide the record into bins of length $\tau$, form bin averages $\bar y_k(\tau)$, and compute

$$ \sigma^2_A(\tau)=\frac{1}{2\big(K-1\big)}\sum_{k=1}^{K-1}\big(\bar y_{k+1}-\bar y_k\big)^2 $$

Plotted as $\sigma_A(\tau)$ on log-log axes, each physical process appears as a straight line of characteristic slope, which is what makes the method so useful — you read the model off the plot:

SlopeProcessSymbolPhysical meaning & where it hurts
$-1$Quantisation / angle-readout noise$Q_z$dominates at very short $\tau$; usually harmless
$-1/2$Angle/velocity random walk (white rate noise)$N$ — ARW/VRW the classic "$^\circ/\sqrt{\text{h}}$" figure; sets $Q$ and the noise floor of alignment
$0$ (flat)Bias instability (flicker / $1/f$)$B$ the floor of the curve — the best you can ever do by averaging; sets the useful alignment time
$+1/2$Rate random walk$K$bias wanders; drives long-duration unaided error
$+1$Rate ramp / thermal drift$R$usually a systematic effect, not true noise — often a warm-up artefact

The combined model is the root-sum-square of the contributions:

$$ \sigma_A^2(\tau)=\frac{3Q_z^2}{\tau^2}+\frac{N^2}{\tau} +\underbrace{\frac{2B^2\ln 2}{\pi}}_{\text{flat floor}}+\frac{K^2\tau}{3}+\frac{R^2\tau^2}{2} $$
The most actionable thing on an Allan plot. The minimum of the curve tells you the optimal averaging time and the best achievable bias estimate. Averaging longer than $\tau_{opt}$ makes the estimate worse, because bias instability and rate random walk have taken over from white noise. This is exactly the physical reason gyrocompassing has a floor that more alignment time cannot beat — and why a specification that only quotes ARW, without the bias-instability floor $B$, does not let you predict alignment performance at all.
Allan variance pitfalls. (1) Long-$\tau$ points are computed from very few bins, so their confidence intervals are enormous — a suggestive upturn at large $\tau$ may be nothing; plot error bars. (2) The method assumes stationarity, so thermal transients masquerade as rate ramp — let the unit reach thermal equilibrium or the $+1$ slope is measuring your lab, not the sensor. (3) Real rotation of the Earth is a genuine input to a gyro on a bench; it must be removed before interpreting the residual as noise.

3 · Multi-position (tumble) tests: bias, scale, misalignment

With the unit static in a known orientation, the inputs are known exactly: accelerometers see $-\mathbf g$ resolved into body axes and gyros see $\boldsymbol\omega_{ie}$. Taking measurements in several orientations gives a linear system in the unknown error parameters.

The key idea is the reversal: in two orientations 180° apart, the physical input flips sign but the bias does not. Averaging and differencing then separate them cleanly:

$$ \tilde m_{up}=+g(1+s)+b,\qquad \tilde m_{dn}=-g(1+s)+b $$ $$ \boxed{\;b=\frac{\tilde m_{up}+\tilde m_{dn}}{2},\qquad s=\frac{\tilde m_{up}-\tilde m_{dn}}{2g}-1\;} $$

This is the same modulation principle as indexed bias cancellation — here used to measure the bias rather than to suppress it. Extending to a 6-position or 24-position sequence over-determines the full parameter set, and least squares then yields all of bias, scale factor and misalignment with residuals you can check for model adequacy:

$$ \hat{\boldsymbol\beta}=\big(A^\top A\big)^{-1}A^\top\mathbf y,\qquad \boldsymbol\beta=[\,\mathbf b,\ \mathbf s,\ \text{misalignments}\,] $$
SequenceRecoversNotes
2-position (reversal, per axis)bias + scale on that axisminimum useful test; 6 orientations total for a triad
6-position (±each axis vertical)3 biases, 3 scale factorsstandard acceptance baseline
24-position / full tumbleadds misalignments, non-linearity, cross-couplingneeds a precision multi-axis fixture
Continuous slow tumbleas above plus $g$-sensitivity termsrate table with the unit rotating through gravity

The limiting factor is usually fixture accuracy, not the sensor: mis-levelling by an angle $\epsilon$ injects $g\sin\epsilon$ into a horizontal accelerometer, so 20 arcsec of level error is $\sim100\ \mu g$ — comparable to the bias being measured. Fixture calibration and gravity/latitude reference values are part of the measurement uncertainty budget, and a test report without that budget is not interpretable.

4 · Rate table testing: scale factor and linearity

Gyro scale factor requires a known, large rate input, which means a precision rate table. Commanding rates $\Omega_i$ and regressing measured against commanded:

$$ \tilde\omega=(1+s)\,\Omega+b+\kappa_2\Omega^2+\dots \qquad\Longrightarrow\qquad s,\ b,\ \kappa_2\ \text{by least squares} $$

What the test is really looking for:

  • Scale-factor linearity across the full rate envelope — a unit that is linear to 100°/s may not be at 500°/s, and the flight envelope decides which matters.
  • Asymmetry between positive and negative rates, which behaves like a rate-dependent bias and is particularly damaging for oscillatory inputs because it rectifies.
  • Dead band / threshold near zero rate, which affects low-rate performance and alignment.
  • Bandwidth and phase — a phase lag is effectively a latency, and latency at launch-vehicle rates is a real navigation error, not a detail (see timing).

5 · Repeatability — the parameter that actually sets performance

A bias measured once is nearly useless. What the navigation system must know is how much that bias differs from the calibrated value at the moment of flight. The standard decomposition:

QuantityDefinitionCan calibration remove it?
Bias valuemean output at zero inputyes — subtract it
Turn-on to turn-on repeatabilityscatter of the bias across power cycles no — unknown at power-on; this is what the filter must estimate
In-run stabilitydrift during a single run at constant temperatureno — must be modelled as a random process
Thermal sensitivity$\partial b/\partial T$ and hysteresis partly — compensable if $T$ is measured and hysteresis is small
Long-term ageingdrift over months/yearsonly by periodic recalibration
Why turn-on repeatability is the number to negotiate. A unit with a large but perfectly repeatable bias is excellent — you calibrate it once and subtract it forever. A unit with a small but irreproducible bias is poor, because at every power-on the bias is a fresh random draw the filter must re-learn. So the flight-relevant specification is the repeatability, and it is precisely the quantity that sets the filter's initial bias covariance $P_0$. Under-stating it makes the filter over-confident from the first second — an error it may never recover from, because the filter will reject the very measurements that would have corrected it.

Consequently the acceptance campaign must include many power cycles and thermal cycles, not one careful calibration. A single-run test can characterise everything except the only thing the filter genuinely needs.

6 · From test data to filter parameters

Test outputFeedsUsed where
ARW / VRW ($N$, slope $-1/2$)$Q$ diagonal for attitude/velocityprocess noise, alignment noise floor
Bias instability ($B$, flat floor)steady-state $\sigma_b$ of the Gauss-Markov bias statebias state tuning; alignment stopping criterion
Rate random walk ($K$)bias-driving noise, correlation time $\tau$long-coast error growth
Turn-on repeatabilityinitial $P_0$ on bias statesfilter initialisation
Bias / scale / misalignment valuesdeterministic compensation coefficientshigh-rate pre-processing, before integration
Residual after compensationhonest inflation of $Q$ and $P_0$covariance realism — see LinCov
Do not hand the datasheet straight to the filter. Datasheet values are typically specification limits or best-case figures for a population, not the parameters of your unit in your thermal and vibration environment. Bench tests are also quiet: real installations add vibration-rectified error, mounting strain and thermal gradients that no bench captures. Standard practice is to inflate measured values when setting $Q$ and $P_0$ — an optimistic filter is a worse outcome than a conservative one, because conservatism costs accuracy while over-confidence costs correctness (and can cause the filter to reject valid data).

7 · Further reading

  • IEEE Std 952 — Specification Format Guide and Test Procedure for Single-Axis Interferometric Fiber Optic Gyros: the canonical definitions of bias, ARW, bias instability and the Allan-variance procedure.
  • IEEE Std 1293 — equivalent guide for linear, single-axis accelerometers.
  • IEEE Std 1554 — recommended practice for inertial sensor test equipment and calibration.
  • El-Sheimy, Hou & Niu, "Analysis and Modeling of Inertial Sensors Using Allan Variance" (IEEE Trans. Instrum. Meas., 2008) — the widely-cited practical treatment.
  • Titterton & Weston, Strapdown Inertial Navigation Technology — sensor error models, calibration and testing chapters.
  • Groves, Principles of GNSS, Inertial and Multisensor Integrated Navigation Systems — error models and how they map into filter tuning.

Related: Gyro bias cancellation by rotation · Linear covariance analysis · IMU & inertial navigation · IMU hardware survey · Gyroscopes · back to Misc.