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.
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:
| Term | Isolated by | Why 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-axis | cross-axis coupling; leaks large axial signals into small ones |
| $g$-sensitivity $G$ | orientation reversals under $1g$, centrifuge | bias 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 above | many 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:
| Slope | Process | Symbol | Physical 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} $$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}\,] $$| Sequence | Recovers | Notes |
|---|---|---|
| 2-position (reversal, per axis) | bias + scale on that axis | minimum useful test; 6 orientations total for a triad |
| 6-position (±each axis vertical) | 3 biases, 3 scale factors | standard acceptance baseline |
| 24-position / full tumble | adds misalignments, non-linearity, cross-coupling | needs a precision multi-axis fixture |
| Continuous slow tumble | as above plus $g$-sensitivity terms | rate 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:
| Quantity | Definition | Can calibration remove it? |
|---|---|---|
| Bias value | mean output at zero input | yes — subtract it |
| Turn-on to turn-on repeatability | scatter of the bias across power cycles | no — unknown at power-on; this is what the filter must estimate |
| In-run stability | drift during a single run at constant temperature | no — 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 ageing | drift over months/years | only by periodic recalibration |
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 output | Feeds | Used where |
|---|---|---|
| ARW / VRW ($N$, slope $-1/2$) | $Q$ diagonal for attitude/velocity | process noise, alignment noise floor |
| Bias instability ($B$, flat floor) | steady-state $\sigma_b$ of the Gauss-Markov bias state | bias state tuning; alignment stopping criterion |
| Rate random walk ($K$) | bias-driving noise, correlation time $\tau$ | long-coast error growth |
| Turn-on repeatability | initial $P_0$ on bias states | filter initialisation |
| Bias / scale / misalignment values | deterministic compensation coefficients | high-rate pre-processing, before integration |
| Residual after compensation | honest inflation of $Q$ and $P_0$ | covariance realism — see LinCov |
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.