# AN-1049: Calibrating iMEMS® Gyroscopes

Gyroscopes are often used for inertial navigation or other applications where high accuracy or stability is required. To maximize performance, the gyros used in these applications are generally calibrated and externally temperature compensated. This application note outlines a method for performing calibration and temperature compensation.

### Calibration

If a gyro is used in a temperature stable environment (or if it is kept at a constant temperature by means of a temperature control system), a single temperature point calibration is sufficient. To do this, simply bring the gyro up to the intended operating temperature (allowing sufficient soak time) and measure the null output voltage (V0).

To determine the scale factor (S), some method of applying angular rate must be used (in general a rate table). Because the ADXRS6xx series of gyros has very little nonlinearity, measure the output at one rotational rate (preferably one near full scale). The scale factor can then be calculated by

*S = (V _{ROTATING} − V_{0})/Rate of Rotation*

Once V_{0} and S are known,

*Angular Rate = (V _{GYRO} − V_{0})/S*

### Temperature Compensation

If the gyro will be operated over a range of temperatures, the best performance will be realized using temperature compensation. The ADXRS6xx series of gyros incorporates an on-chip temperature sensor to facilitate this.

The calibration information required is similar to the single temperature point method described previously except that V0 and S must be measured at different temperature points. In addition, the temperature sensor output (VT) must also be recorded. Because the temperature performance of the ADXRS6xx gyros is somewhat nonlinear, at least three temperature points should be used for compensation. Using more temperature points results in improved accuracy and null stability; however, the calculations become more complex.

Using a 3 temperature point calibration, 250°/hour null stability can be achieved with an ADXRS6xx. 40°/hour null stability generally requires more than five points.

### Three-Point Calibration

Once temperature and null voltages are measured and the scale factor is calculated at the three temperature points, it is convenient to reduce the calibration data down to calibration coefficients that can be applied to a general equation for temperature compensation. There are several ways to do this. The method outlined in this application note was arbitrarily chosen.

Define any gyro output parameter by the following equations:

*V _{P1} = V_{P0} + a(V_{T1} − V_{T0}) + b(V_{T1} − V_{T0})^{2}*

*V _{P2} = V_{P0} + a(V_{T2} − V_{T0}) + b(V_{T2} − V_{T0})^{2}*

where:

*V _{P0}* is a parameter value at the temperature sensor value ambient temperature (

*V*).

_{T0}*V _{P1}* is the same parameter value at the temperature sensor value (

*V*).

_{T1M/sub>}*V _{P2}* is the same parameter value at the temperature sensor value (

*V*).

_{T2}The a and b coefficients are described by Equation 5 and Equation 6

*a = (V _{P1} − V_{P0})/(V_{T1} − V_{T0}) − b(V_{T1} − V_{T0})*

*b = [(V _{P1} − V_{P0})/(V_{T1} − V_{T0}) − (V_{P2} − V_{P0})/(V_{T2} − V_{T0})]/ (V_{T1} − V_{T2})*

Once the a and b coefficients are calculated, all parameters may be expressed using the general equations previously presented.

#### Example

A given gyro is measured at −40°C, +25°C, and +85°C. The test results are shown in Table 1.

Output | −40°C | +25°C | +85°C |

Temperature (V) | 1.97777 | 2.49699 | 2.97868 |

Null (V) | 2.34948 | 2.35468 | 2.34216 |

Scale Factor (mV) | 11.9081 | 12.7440 | 13.1951 |

Terms | Definition |

V_{0} |
Gyro null output at ambient temperature (+25°C) |

V_{1} |
Gyro null output at Temperature Point 1 (−40°C) |

V_{2} |
Gyro null output at Temperature Point 2 (+85°C) |

V_{null} |
Gyro null output |

V_{T0} |
Temperature output at ambient temperature |

V_{T1} |
Temperature output at Temperature Point 1 |

V_{T2} |
Temperature output at Temperature Point 2 |

V_{TEMP} |
Temperature output |

S_{0} |
Gyro scale factor at ambient temperature |

S_{1} |
Gyro scale factor at Temperature Point 1 |

S_{2} |
Gyro scale factor at Temperature Point 2 |

S | Gyro scale factor |

For this gyro the null output coefficients are show in Equation 7 and Equation 8.

*a _{null} = (V_{1} − V_{0})/(V_{T1} − V_{T0}) − b(V_{T1} − V_{T0})*

*b _{null} = [(V_{1} − V0)/(V_{T1} − V_{T0}) − (V_{2} − V_{0})/(V_{T2} − V_{T0})]/ (V_{T1} − V_{T2})*

thus,

*a _{null} = −0.00866*

*b _{null }= −0.03597*

In this example, the null output of the gyro at any temperature can be described by Equation 9

V_{null} = V_{0} + a_{null}(V_{TEMP} − V_{T0}) + b_{null}(V_{TEMP} − V_{TO})^{2}

Similarly, the scale factor coefficients are Equation 10 and Equation 11.

*a _{scale} = (S_{1} − S_{0})/(V_{T1} − V_{T0}) − b(V_{T1} − V_{T0})*

*b _{scale} = [(S_{1} − S_{0})/(V_{T1} − V_{T0}) − (S_{2} − S_{0})/(V_{T2} − V_{T0})]/ (V_{T1} − V_{T2})*

thus,

*a _{scale}* = 1.26056

*b _{scale}* = −0.6728

This gyro’s scale factor at any temperature can be described by the following equation:

*S = S _{0} + a_{scale}(V_{TEMP} − V_{T0}) + b_{scale}(V_{TEMP} − V_{TO})^{2}*

### Calculating Temperature Compensated Angular Rate

Once the calibration coefficients are calculated, it is easy to convert the gyro output to temperature compensated angular rate data in degrees/second using the following four-step process.

- Read the temperature output in volts. Determine the calculated null at the actual temperature using Equation 9.

*NULL*_{calc}= V_{0}+ a_{null}(V_{TEMP}− V_{T0}) + b_{null}(V_{TEMP}− V_{TO})^{2} - Read the rate output in volts and calculate the null temperature corrected rate output using Equation 14.

*RATE*_{CORRECTED}= RATE_{OUTPUT}− NULL_{calc} - Calculate the scale factor at the device temperature using Equation 12.
- Using the previous information, calculate the actual angular rate using Equation 15

*Angular Rate = RATE*_{CORRECTED}/S

For the example gyro presented previously at 85°C, if the rate output is measured as 3.00 V, the actual angular rate is calculated as follows:

The calculated null at 85°C is

*NULL*_{calc} = V_{0} + a_{null}(V_{TEMP} − V_{T0}) + b_{null}(V_{TEMP} − V_{TO})^{2}

*NULL*_{calc} = 2.35468 − 0.00866 × (2.97868 − 2.49699) − 0.03597 × (2.97868 − 2.49699)^{2}

*NULL*_{calc} = 2.34216 V

The corrected rate voltage at 85°C is

*RATE _{CORRECTED} = RATE_{OUTPUT} – NULL_{calc}*

*RATE*_{CORRECTED} = 3.00 – 2.34216 = 0.65784 V

The calculated scale factor at 85°C is

*S = S _{0} + a_{scale}(V_{TEMP} − V_{T0}) + b_{scale}(V_{TEMP} − V_{TO})^{2}_{}*

*S* = 12.744 + 1.26056 × (2.97868 − 2.49699) – 0.6728 × (2.97868 − 2.49699)^{2}

*S* = 13.1951 mV

Thus, the angular rate in degrees/second is

*Angular Rate = RATE _{CORRECTED}/S*

*Angular Rate* = 0.65784/0.0131951 = 49.85°/sec

### Conclusion

Temperature compensation of the ADXRS6xx series of gyros is straightforward. Using a simple curve fit to calculate calibration coefficients, only a minimum of calibration information must be stored in NVRAM and calculation of the actual rate requires only simple equations. A 3-point temperature calibration corrects for null drift sufficiently to achieve 250°/hour null stability. Better null stability can be achieved using greater than three calibration temperatures and more complex calibration equations.