You are on page 1of 94

LV1b Navigation (theory & practice)

Version 0.03, 8/24/2000


(This is a 0 version document, not yet ready for general release)

This document is copyright 2000 by T.Brandon


Permission to make single copies for personal use is granted.
Permission to make and distribute multiple copies is granted provided the cost to a recipient is always no more than the total incremental cost of reproduction and transmission to that recipient, this means in part that the distributor is not allowed to make a profit by distributing copies of this document.
Permission to provide this document to others for reproduction at their expense is granted provided that no charge is made to any receiving party beyond the
total incremental cost of providing this document to that party for reproduction, this means in part that the provider is not allowed to make a profit by
providing this document for reproduction.
For more information about copying this document contact, Portland State University Aeronautical & Space Systems Society, Portland State University
Electrical & Computer Engineering Department PO. Box 751 Portland Oregon 972070751
Any copies of this document must retain this notice.
All other rights reserved.

Keywords
inertial navigation, global positioning system, rocket, orientation, strapdown, coordinate transformation, quaternion, generalized inverse, complementary filter, Kalman filter

LV1b_IMU0.03

Contents
Hey dork boy, put in page numbers


0 Introduction
0.1

What, Why, Who (and where)

0.2

Method overview
(should say more on Kalman, error state???)

Part I

theory

Inertial Measurement
(INS, IMU Guidance and control)
Inertial data
(goals of sensor output)

1 Sensors
sensor modelling and characterization
(relate state to output w/ error bars)
1.1

accelerometers

1.2

rate gyros

1.3

pressure transducer

1.4

thermistors

2 Relating sensor data to inertial state


2.1

the inconsistent nature of the problem

2.2

generalized inverses

2.3

application of weighted generalized inverses to inertial sensing


(would like simple general equations and a simplified example)

LV1b_IMU0.03

3 Reference frames
(Perspective on strapdown navigation vs platform navigation etc.)
(notes on inertial vs rotating frames, apparent vs real forces etc.)
3.1

3.2

3.3

reference frames for LV1b


3.1.1

frames of reference particular to the IMU

3.1.2

rocket body frame

3.1.3

local navigation frame

3.1.4

GPS reference frame

mathematics for transformation between frames


3.2.1

matrices and quaternions for expressing rotations

3.2.2

tangent level plane transformations

efficient coordinate transformation by multi rate algorithms


(explain the problem of constantly changing reference)
3.3.1

two rate attitude update

3.3.2

the dual problem of velocity

3.3.3

coning & sculling

4 Strapdown Inertial Navigation: Velocity & Position


4.1

efficient velocity calculations

5 Gravity Modelling
5.1

gravity and the curvature of the Earth

5.2

assumed gravity

5.3

gravity on the ground

5.4

series approximations for gravity above the ground

secr "sNoiseTemp"

7.6
GPS / IMU Aiding
4.1

combining IMU and GPS data

4.2

Kalman filtering

LV1b_IMU0.03

4.3

Part II

bias feedback by state augmentation

practice

6 Quantifying the Initial Design


6.1

system inputs

6.2

measurement errors

6.3

design goals

6.4

computational considerations

7 Detailed Sensor Noise Calculations


7.1

ADXL250 40 gee accelerometer

7.2

ADXL202 2 gee accelerometer

7.3

Jupiter GPS module

7.4

Tokin CG16D0rate gyro

7.5

MPX5100A pressure transducer

7.6

NHQ103R10 temperature sensor

8 IMU Calibration

9 INS Aiding

Addenda

A Notation, Symbols, & Constants

B Elements of vector & matrix theory


B.1

properties of the generalized inverse

LV1b_IMU0.03

C Quaternions

Sines & Cosines

Derivations

References

Selected Index

LV1b_IMU0.03

0 Introduction
This document provides a description of the techniques we use for position and attitude determination (orientation) of our
small amateur rocket, which we call Launch Vehicle number 1, model b (LV1b). Our orientation system hardware consists
of an altimeter, a 6 degree of freedom Inertial Measurement Unit (IMU) and a Global Positioning System (GPS) receiver,
data from these units is combined to provide a high bandwidth, bounded error signal suitable for navigation and control of
various payloads and the vehicle itself.

0.1

What, Why, Who (and where)

LV1b is an unguided four finned rocket, under 3.3m long, about 11cm in dia. and about 21kg in mass. It is powered by an
Mclass solid motor, and in its original configuration (LV1) has flown to 3600m altitude and reached speeds in excess of
0.9 Mach. The payload consists of an amateur band color TV transmitter and radio telemetry system. Onboard are sensors
for pressure and temperature as well as the GPS and IMU. The IMU is constructed from commercially available low cost,
solid state accelerometers and rate gyros. The cost of the LV1b orientation system is several hundreds of dollars, in contrast
to many commercial systems which cost thousands and more.
LV1b is an all amateur project for learning and recreation. While it is possible that the things we do and learn could be
directly applicable to future aerospace projects, the primary goal is to learn and teach each other, thus improving both our
skills and our lives. If someone were to ask, why rockets? A reasonable reply could point out the huge variety and depth of
technology that has to be applied to a rocket as sophisticated as the one contemplated here. The prospect of applying so
many esoterica to an object that goes zoom, is a great intellectual challenge, but an intriguing one. Yet, perhaps a deeper
reason is something, call it romance, its the idea of being connected to an age of exploration, of being part of something
better than a market driven machine. In a round about way LV1b is our positive statement about the future.
Philosophy aside, the LV1b orientation system is a stepping stone as we try to construct a guided rocket. Active guidance of
a rocket allows the reduction or elimination of stabilizing fins, thus reducing drag and increasing altitude. Guidance allows
for course correction so for instance a slightly bad angle leaving the launch pad will not cause the whole flight to veer off
course by many kilometers. The ability to navigate to a specific point in space enhances the utility of a launch vehicle
because payloads can count on reaching a known position. And both recovery and safety are enhanced by confining the
operation of the rocket to prescribed boundaries.
Our previous vehicle, LV1, used the same basic airframe as LV1b and was equipped with a rudimentary IMU [Ref???],
whose performance was good enough to encourage this new effort. Our goal now is to demonstrate an orientation system of
sufficient accuracy and reliability to be used in active guidance on a planned future vehicle (LV2) currently under
construction.
LV1b is the collaborative effort of dozens of people associated with Portland State University located in Portland Oregon.
At the time of writing further information on this project is available on the web at http://ee.pdx.edu/~aess .

0.2

Method overview

Orientation information is derived by combining data from the GPS and IMU with a technique called GPS/INS aiding. The
GPS is a low cost essentially unmodified OEM style unit from Rockwell called a "Jupiter board" for about 115$ it provides
position and velocity readings about once per second with an RS232 interface, and since GPS selective availability has
recently been deactivated, it should provide horizontal accuracy in the range of ~10m. Since the GPS is unmodified, we
have not implemented any feedback from the IMU to the GPS. This sort of feedback is helpful in both increasing GPS
accuracy and in recovering and maintaining satellite lock particularly during periods of rapid maneuvering [15], but currently we lack the resources to crack the black box and make the necessary adjustments.
Onboard IMU hardware includes the Analog Devices Inc. ADXL202 and ADXL250 series dual accelerometers which
provide noise limited 10 milligee accuracy for about 10$ per axis. The rate gyros are of the vibrating beam ceramic type
CG16D0 made by the Tokin corp. (Japan) for about 22$ per axis. We implement a 7 sensor system consisting of the 3
orthogonal axes with linear acceleration and rotation rate sensing and one redundant acceleration axis perpendicular to the
rockets centerline and 45 to, that is midway between, the rockets transverse axes. These signals are digitized by a 12bit
Analog to Digital converter and processed by a Microchip Inc. PIC17C766 microcontroller with a single cycle multiply and
a 30ns cycle time.

LV1b_IMU0.03

Onboard IMU hardware includes the Analog Devices Inc. ADXL202 and ADXL250 series dual accelerometers which
provide noise limited 10 milligee accuracy for about 10$ per axis. The rate gyros are of the vibrating beam ceramic type
CG16D0 made by the Tokin corp. (Japan) for about 22$ per axis. We implement a 7 sensor system consisting of the 3
orthogonal axes with linear acceleration and rotation rate sensing and one redundant acceleration axis perpendicular to the
rockets centerline and 45 to, that is midway between, the rockets transverse axes. These signals are digitized by a 12bit
Analog to Digital converter and processed by a Microchip Inc. PIC17C766 microcontroller with a single cycle multiply and
a 30ns cycle time.
From the inertial sensor array we derive a signal that represents the inertial state of the rocket. The inertial state is defined
with reference to 3 orthogonal axes, the primary one being the rocket centerline, about each axis are associated 3 independent quantities those being the linear acceleration, the angular rotation rate, and the angular acceleration, for a total of 9
values making up the inertial state.
The output of the orientation system is the orientation vector. The orientation vector is defined relative to an Earth fixed
navigation coordinate frame. The orientation vector contains 12 elements, the 3 position coordinates, the 3 velocity coordinates, the 3 coordinates defining rocket attitude (e.g. pitch, roll, yaw), and 3 coordinates expressing the roll rates about each
(pitch, roll, yaw) axis. Additionally, where feasible, dynamic error bounds on the outputs may be helpful for control
purposes.
The goal of the orientation system is to combine measurements of the inertial state with GPS position and velocity data and
any other observations to produce an orientation vector for the rocket at a high enough rate and with enough accuracy to be
used for realtime guidance and control. The GPS alone is not fast enough, while the IMU alone is not accurate enough,
together they provide a good low cost solution.
Here is an outline of orientation system processing:
Measurement
Transformation
Feedback & Filtering
MEASUREMENT
The measurement step consists of translating the IMU sensor data into an inertial state vector. This process is complicated
by the fact that the sensor data is both redundant and inconsistent. Our method of approach is by way of linear algebra and
matrix theory using what amounts to a least squares fit. This process is formulated below with some generality using the
method of generalized inverses. In preforming the least squares fit two criteria are employed. The first is a fit to the sensor
data weighted by the estimated sensor accuracy. The second criterion involves a minimization on the inertial state vector,
favoring vectors defined as having the least energy.
TRANSFORMATION
The mathematics of our inertial measurement problem is complicated slightly by the selection of a strapdown system. Many
inertial measurement systems, particularly the early designs, are of the stabilized platform type. This means that the sensor
array is mounted on a gimbled platform and feedback is employed to try to keep the platform oriented to the navigation
frame in a known way. Usually either fixed in the navigation frame or rotating at a known rate. Under this type of system
the transformation of inertial state from the platform to navigation frame is either constant or slowly varying in a known
way, which presents a fairly easy problem in vector mathematics.
By contrast a strapdown system fixes the platform rigidly to the vehicle body (hopefully with some shock and vibration
damping) so, particularly for an aircraft, the platform may be oriented in arbitrary ways and in any case will change its
orientation to the navigation frame continuously while the vehicle maneuvers. Since the goal is to provide orientation
updates at a high rate (at least 10Hz) and because computational resources are limited, we have decreased the computational
burden by going to a two rate update scheme. In this scheme the sensor data is acquired and transformed into an inertial
state vector at a higher rate perhaps in the 2kHz range. This data is numerically integrated using a simplified transformation.
Then at a lower rate the accumulated data is used to update the full platform to navigation transformation. This is a good
scheme as long as the angular error between the two frames does not grow too large between transformation updates.
Fortunately, most of the high frequency accelerations experienced in the platform frame have the nature of vibrations, which
tend to average to zero and do not much affect the vehicles orientation, at least on short time scales.
The two rate scheme presents some interesting difficulties, such as the effect of noncommutativity of rotation. When the
incremental vehicle rotations are simply added up without being transformed into navigation frame coordinates the information contained in the order of the rotations is lost. One way to deal with this problem is to update the transformation often
enough that the accumulated error is never too large, but the performance improvement over simply doing the transformation each time may be disappointing. A more clever approach is to compensate for the effect by accumulating a noncommutative correction angle in the high rate loop to be applied along with the other angles at transformation update time. This
approach turns out to be tractable and allows the transformation update rate to remain low.

LV1b_IMU0.03

The two rate scheme presents some interesting difficulties, such as the effect of noncommutativity of rotation. When the
incremental vehicle rotations are simply added up without being transformed into navigation frame coordinates the information contained in the order of the rotations is lost. One way to deal with this problem is to update the transformation often
enough that the accumulated error is never too large, but the performance improvement over simply doing the transformation each time may be disappointing. A more clever approach is to compensate for the effect by accumulating a noncommutative correction angle in the high rate loop to be applied along with the other angles at transformation update time. This
approach turns out to be tractable and allows the transformation update rate to remain low.
FEEDBACK & FILTERING
Once the inertial state is acquired, integrated and transformed into the navigation frame it is a matter of relative ease to
produce an orientation vector of the type required. The problem with relying only on IMU data is that over time the error
grows without bound. Particularly for the low cost units of the type described here the time scale before the error grows too
large can be just a few seconds. One way of maintaining accuracy is to provide corrections to the inertially derived orientation estimates from the GPS. The question is how best to combine this information. The theory for this type of problem is
extensively worked out and goes by several names, the most recognizable one is Kalman filtering. Kalman filtering as
implemented here is a linear feedback arrangement whereby the output, namely the orientation vector, is the sum of the
IMU derived estimate and an error term produce by comparison of the IMU estimate and the GPS information, weighted by
their estimated errors bounds. In fact the process is very reminiscent of the measurement phase, though potentially more
involved.
By the process of state augmentation the Kalman filter is made to estimate the sensor biases, and thereby provide a rudimentary online calibration function.
This subsection should be beefed up later???

LV1b_IMU0.03

1 Sensors
What concerns us here is sensor modeling. For a given sensor under known conditions we wish to know both the output
response of the sensor for a known inertial input, and the answer to the inverse problem of deducing the input from the
sensor output. For the case of low cost inertial sensors we need theory, testing and calibration, because the sensors are far
from ideal.
For the purposes of inertial measurement we concern ourselves with 3 fundamental quantities. The acceleration in a straight
line, the rate of rotation about an axis also called angular rate or angular velocity, and the time derivative of the angular rate,
that is the angular acceleration. A reader may wonder why we distinguish between the angular rate and its derivative since
evidently one can be derived from the other. Partly this is just a matter of convenience of notation, but more deeply it is tied
up in the fact that although an inertial unit can directly measure angular velocity, it can only directly measure linear acceleration. In any case its hoped that in what follows we can demonstrate that carrying two angular quantities is a useful thing to
do.
When finding formulae for inertial quantities it is useful to provide an estimate for the errors involved. This allows for data
to be combined in statistically valid ways generating estimates that are the most likely values for the actual quantities. So
throughout this chapter we will pay attention to error and noise.

1.1

Accelerometers

Ideally accelerometers are sensors that produce a signal proportional to the linear acceleration of the sensor along a single
sensitive axis. The ideal accelerometer has an accurately defined axis of sensitivity, and is insensitive to accelerations which
are perpendicular to the sensitive axis. It is insensitive to rotation, accurate, stable, has a very high bandwidth with a flat
frequency response, and is noise free. Real accelerometers fail, to a more or less degree, in all of these characteristics.
For LV1b we use accelerometers made by Analog Devices Inc. Theses are low cost, off the shelf devices that are common
in things like shock/tilt sensors and car alarms. In particular we use device numbers ADXL250, and ADXL202. The use of
different devices is a compromise based on dynamic range and noise floor. The ADXL202 is more sensitive, but would
saturate during high gee liftoff and recovery, but is suitable for the transverse axes, while the ADXL250 has inferior noise
characteristics, but is not in danger of saturation (we think). The theory of operation of the ADXL series is explained fairly
well in reference [3].
Here are the major characteristics for the ADXL(250/202) taken from the manufactures data sheets [4] [5]. The notation
used is (minimum, typical, Maximum), and [units]
Full Scale White noise
Bandwidth Angle Transverse Gain
Offset Linearity


ADXL #
250
202

gee

mgee

Hz

Hz

deg

% C

gee C

% FS

40, 50,
, 1.0, 2.5
900, 1000,
1
2
0.008
0.0061
0.2
1.5, 2,
, 0.5, 1.0
, 5000,
1
2
0.026
0.0027
0.2
Full Scale
the maximum linear range
White noise RMS noise per Bandwidth
Bandwidth
Ultimate sensor 3dB bandwidth
Angle
Maximum misalignment between die and package
Transverse
Sensitivity of sensor to perpendicular accelerations, includes effects of misalignment
angle. Expressed as a % of on axis sensitivity.
Gain
Temperature coefficient of gain. The figure for the ADXL202 may be overstated.
Offset
Temperature coefficient of zero gee offset, near maximum bounds.
Linearity
Maximum deviation from best fit line, as a percent of full scale.


10

Full Scale
White noise
Bandwidth
Angle
Transverse
Gain
Offset
Linearity

the maximum linear range


RMS noise per Bandwidth
Ultimate sensor 3dB bandwidth
Maximum misalignment between die and package
Sensitivity of sensor to perpendicular accelerations, includes effects of misalignment
angle. Expressed as a % of on axis sensitivity.
Temperature coefficient of gain. The figure for the ADXL202 may be overstated.
Temperature coefficient of zero gee offset, near maximum bounds.
Maximum deviation from best fit line, as a percent of full scale.

LV1b_IMU0.03

These figures dont tell the whole story. For instance, is the offset or gain coefficient stable enough to use for a temperature
compensation formula? (probably not offset). What about the long term drift? We shall see.
This type of accelerometer is believed to be insensitive to rotation, but will respond to rotational effects if it is positioned
some distance away from a rotational axis. This is termed, lever arm effect. If we define the sensitive axis to be f, with the
positive direction towards the front of the package, and the in plane transverse axis to be t, and the direction perpendicular
and downward relative to the plane of the package as d (right handed coordinate system). Then we define gains for each
axis Gf , Gt ,Gd , and let the offset be a0 . We find the signal from the accelerometer a is

Ga a


a0


(1.1)

where Ga is the gain vector, and a is the acceleration vector


In order to find the response of an accelerometer in the presence of lever arm effects consider an axis of rotation passing
through the origin. Let the center of the accelerometer be located relative to this origin by a vector s , and the accelerometer
gain be described by a vector Ga as before. We can then classify the inertial forces acting on the accelerometer into 3
categories. There is the acceleration due to the linear motion of the origin, the centripetal acceleration due to fixed rotation
about the axis, and the instantaneous linear acceleration due to a change in rotational velocity.
The expression for linear acceleration has already been given in (1.1). The centripetal acceleration is of magnitude s 2 ,
where 2 is the vector component representing the part of the rotation through the origin which is perpendicular to s . The
centripetal acceleration is directed towards the origin, that is in the direction of s .


To find the acceleration due to a change in angular rate, first consider the instantaneous linear velocity due to the rotation.

v


(1.2)

The acceleration is clearly the time derivative of (1.2), if we let


and combine the 3 categories of rotational acceleration, we get an expression for the signal from an accelerometer whose position from the origin is given by s and whose
orientation is defined by Ga .

Ga a


s


a0

(1.3)

Note that (1.3) is nonlinear in , and is constructed to be compatible with the idea that the sensitive axis is not perfectly
alinged with the package. The bias term a0 is not easy to characterize, and has significant components which resemble
noise. For initial analysis we will model a0 as a random walk, possibly this walk should be biased towards some centerish
value, but detecting this bias presents complexities which are thought to be unecessary since the bias of the bias term a0 is
small, and the bias selection operates inside a feedback loop.


1.2

Rate Gyros

A rate gyro measures angular rate, that is the speed of rotation about a given axis. Another popular gyro type is the spinning
top used in gyro compasses and similar devices. A spinning top gyro maintains a fixed orientation is space and so directly
indicates which way is up. A rate gyro doesnt respond to any fixed direction so if it is to be used for orientation its signals
must be integrated to provide angular position information. We prefer the rate gyro due to its ruggedness, unlimited range of
travel (most spinning top gyros loose their orientation if rolled completely over due to travel limitations in the gimbal), and
low cost.

LV1b_IMU0.03

11

The rate gyros used on LV1b are made by the Tokin corporation, model CG16D0. They suffer from all the problems of the
accelerometers, but to a greater degree.
Tokin Gyro mdl# CG16D0specification summary
Item:
Full Scale
Bandwidth

Value:
90
>100

Units:
[deg/sec]
[Hz]

Notes:
3dB point

The specifications on the Tokin part are rather thin.


A good explanation of the theory of ceramic gyros, including the CG16D0 can be found in [16], detailed information
specific to the Tokin unit is contained in [2].
The rate gyro has a primary axis, about which it is sensitive to the rotation rate. The gyro is negligibly sensitive to rotation
about perpendicular axes, but has fairly high transverse sensitivity to linear accelerations. This suggests modeling a gyro as
an accelerometer (hopefully, with very low gain) combined with a rotation sensitive axis. If we add to the accelerometer
equation a new vector G consisting of just one component parallel to the f axis, then the gyro equation is


=G


1.3

+ Ga ( a +


s+


s)+


(1.4)

Pressure Transducer

The old standby in aerial navigation is the altimeter. In LV1b the instrument employed is a Motorola MPX5100GV vacuum
pressure transducer. This is not a high accuracy instrument, but it is independent and fairly reliable. Pressure based altitude
is not used directly by the IMU, but it can be used as part of the feedback to correct orientation vector drift. In this sense the
altimeter relates to the IMU in a manner similar to the GPS, though it is of less importance.
Motorola MPX5100GV pressure sensor specification summary
Item:
Value:
Units:
Sensitivity
45
[mV/ kPa]
Rise Time
1
[s]
Accuracy
2.5
[%]
Offset
(.088, .2, .313) [V]
Offset Stability0.5
[%FS]
Max.Pressure <400
[kPa]
Temp.Range 080
[C]

Notes:
1090%rise
Total error
@minimum pressure
1000 hours
Operation outside this range
reduces accuracy

The pressure altitude relation is taken from the 1996 Chemical Rubber Company Handbook [12]

h


44331.514


18411.8956 P 0.1902632

where h is the altitude in meters, and P is the pressure in kilo Pascals


The range of validity of (1.5) is [ 1524, 11000 ] meters. It also probably contains too many significant figures.

(1.5)

12

LV1b_IMU0.03

1.4

Thermistors

The bias terms a0 , 0 in (1.3) and (1.4) are significant error terms, and have considerable temperature sensitivity. To
measure the IMU temperature we have incorporated a negative coefficient thermistor This instrument was chosen for its
small size, low power consumption, low cost, good bandwidth, and high signal level. It also exhibits good repeatability and
accuracy. The particular type used was a Thermometrics model NHQ103R10. Here are the specs.


Thermometrics mdl# NHQ103R10 thermistor specification summary


Item:
Value:
Resistance
10k
Resistance Tol.10
value
3750
Tol.
200
Temp.Range 40,125
Time constant < 5

Units:
[ ]
[%]
[K]
[K]
[C]
[s]

Notes:
@25C

2585C

LV1b uses a is a semiconducting negative coefficient thermistor as a temperature sensor. The resistance of such devices
vary exponentially with temperature [22], specifically

T T0
T T0


RT


R T0 Exp

(1.6)

Equation (1.6) is actually a linearized approximation (assumes the logarithm of R[T] is a straight line). The uncertainty in
(1.6) over a span of 50C is about 0.3C. For better accuracy a polynomial fit can be applied. The standard result [22] is a
third order polynomial

1
T


a


b Ln R T

c Ln2 R T


d Ln3 R T


(1.7)

This can be rewritten as

Ln R T


B
T


C
T2


D
T3


(1.8)

It is often suggested that the squared terms in (1.7) and (1.8) can be dropped without significant loss of accuracy. [22]
suggests the accuracies obtainable with (1.7) and (1.8) can exceed 0.01C , while the accuracy of the equations with the 2nd
order term dropped is better than 0.1C .

LV1b_IMU0.03

13

2 Relating sensor data to inertial state


An inertial measurement unit (IMU) as conceived here is by design sensitive to two types of forces, linear acceleration and
angular rotation rate. In fact due to the realities and imperfections of life, our IMU is sensitive to other things as well, but for
the moment lets restrict ourselves just the desired response. The collection of 3 orthogonal linear accelerations and 3
orthogonal rotation rates are called the inertial state of the rocket, or without ambiguity just the state. Sometimes it may be
interesting to include the 3 orthogonal angular accelerations as well, increasing the dimensions of the state to 9.
Once the IMU sensor characteristics are known then, at least within the limits of applicability, for any given state we can
calculate the sensor responses. Putting this statement as a matrix equation

Ax=b

(2.1)

Where x is the inertial state of the rocket expressed in platform coordinates, b is the sensor output vector and A is the
matrix representing a linear transformation from x to b.
In formulating the matrix A several concerns may arise.
1)

The response of an individual sensor may be nonlinear.

2)

The transformation itself may be nonlinear

3)

The response of individual sensors depends on more than one state variable

An example of the first type difficulty might arise if a sensor had a weak nonlinearity, say
bi

xj

xj 2


where

In this case, assuming that the nonlinearitys magnitude is even significant, the seemingly best way to handle the problem is
to assume the output of sensor i will be linearized before being further processed by the IMU. For the present example, we
might form a new quantity
b

bi


b2i

Which is the linearized sensor reading neglecting terms of order


bi .


2.

In this case the vector b would refer to b i rather than

The second type of difficulty is a generalization of the first and may arise in a number of ways. The sensor output may
depend on the history of the state, or on the product (or some more complex function), of several state elements, or on state
variables other than the inertial state. In the most general case, nonlinearities beyond those which are readily removable may
preclude the approach given here. However, for our project we assume that by application of linearization and approximation the linear model given will suffice. Still the existence of nonlinearities may force the introduction of dependent coefficients into matrix A, making subsequent analysis more difficult.
The problem of having a sensor output which depends on more that one state variable, does not by itself cause difficulty in
formulating matrix A, but it does mean that rather than having each sensor measure one thing, we have instead combination
sensors, whose outputs reflect the effect of several state elements at once.

14

LV1b_IMU0.03

2.1

The inconsistent nature of the problem

Considering (2.1) clearly, determining the state from sensor outputs is a problem of inversion. That is we seek

A


1


(2.2)

The difficulty with this formulation is that x exists only if the given b is consistent with our model of the IMU sensor
array. For example suppose that we are given a state x1 then, according to our model there is an output state b1 uniquely
determined by b1 A x1 . Now suppose we perturb the b1 state by modifying only one of its elements with an error term,
say b i bi
. It is very likely that this new output state, call it b 1 cannot be reached by any input state x 1 because any
adjustment made to x in order to match the b i element will cause new inconsistencies to develop between A x 1 and the
other elements of b 1 . We expect that in the presence of measurement noise and modeling uncertainty (2.1) will usually
have no exact solution for x .

In seeking approximate solutions for x we need to define what is meant by a solution which is close enough. We take the
standard approach of least squares and define the closeness of the approximation as the Euclidean norm of the difference
which is then minimized. That is we seek an x in (2.1) so that

Ax


(2.3)

is minimized.
Even making this generalization there are potential difficulties with (2.1). As in the case of exact solutions there can be
more than one possible x which minimizes (2.3). Furthermore, the Euclidean norm is not necessarily the best one. Certain
measurements may be more reliable or accurate than others, and thus should ideally be given more weight in calculating the
state. This suggests the so called weighted least squares approach. Which is formulated here using what is sometimes
referred to as ellipsoidal norms.
The ordinary Euclidean norm can be calculated in a given coordinate system as

x =

xi

(2.4)

We now extend this definition to allow for a weighting function

wi xi

(2.5)

where wi > 0

In fact this can be generalized slightly as


2
W

x Wx


where W is a positive definite matrix and x

(2.6)

represents the Hermitian transpose of x

We will further assume that W is real and symmetric. This is not a restriction, at least for real x because any matrix can be
written as the sum of symmetric and antisymmetric parts, and for an antisymmetric matrix Z = ZT we have


Zx=

zi j (xi x j x j xi ) = 0

x


n


Therefore any antisymmetric part of W contributes zero to the norm.


Now we modify (2.3) and seek x so that

Ax


2
W


Ax


W Ax


b is minimized

(2.7)

This should give us a weighted least squares solution to the system A x b, but the solution is still not unique. One way to
define a unique solution is to select x so that it minimizes (2.7) and has minimum norm. That is, pick x to be the state
closest to a non accelerating and non rotating frame that continues to be a least squares approximation to A x b .
Towards this end, we define a new norm with matrix representation U

LV1b_IMU0.03

15

This should give us a weighted least squares solution to the system A x b, but the solution is still not unique. One way to
define a unique solution is to select x so that it minimizes (2.7) and has minimum norm. That is, pick x to be the state
closest to a non accelerating and non rotating frame that continues to be a least squares approximation to A x b .
Towards this end, we define a new norm with matrix representation U

2
U

=x Ux

(2.8)

and seek x such that (2.7) and (2.8) are simultaneously minimized. The unique x thus found will be used as the measured
state for subsequent IMU processing.

2.2

Generalized inverses

When solving problems like the double minimization of (2.7) and (2.8) there are of course some well developed mathematical techniques to apply which go by the various names generalized inverse, pseudoinverse, or Moore Penrose inverse, but
which we will refer to as simply the GI. Actually there are several possible definitions for the GI that form a family of
inverses with various properties. The pseudoinverse and Moore Penrose inverse both refer to the same object, namely the
unique GI denoted A such that
"

if x = A b , then x has the least possible norm x , while minimizing A xb


"

Further properties of the GI are given in appendix B


As stated the GI is not directly applicable to our problem, being defined only for the ordinary Euclidean norm. However,
clearly the ellipsoidal norm is isomorphic to the Euclidean, so we seek a mapping from one space to the other. Our approach
is in two parts. First consider the weighted least squares problem and the associated W norm, introduce the transformation
???start w/normal equation, outline in Appendix B generalize here, derive formula for GI[A,U,V], including explicit
formula and in Appendix B.

A
b

W1 2 A

(2.9)

W1 2 b


where W1 2 is the matrix such that W=W1 2 W1 2 . For a hermitian positive definite matrix such as W, W1 2 will always
exist. Using this transformation it can be demonstrated that

Ax

b


Ax


(2.10)

Using (2.9), we can rewrite the normal equation (see appendix B) as

A Ax A b
A WAx A Wb


(2.11)

Therefore x is a W norm least squares solution for A x=b iff x satisfies (2.11).
In exactly the same fashion introduce a transformation on x so that x satisfies the U norm

x


U1 2 x

x = x

(2.12)

(2.13)

16

LV1b_IMU0.03

Combining (2.11) and (2.12) we can pose the problem

minimize x subject to A WAx = A Wb

(2.14)

by (2.9) this is equivalent to

A AU

12

(2.15)

x=A b

which is in the form of a Euclidean GI {1,4} problem (minimum norm) which has a solution

A AU

x


U1 2 x

W1 2 A


U


12


1 2 1,4


A b

W1 2 A U

A WAU

1 2 1,4


1 2 1,4


W1 2 A

(2.16)

W1 2 b

A Wb

We now use the adjoint rewriting rule from section B.1 to rewrite (2.16) as

x


U
x


12

1


12


A WA A WAU

A WA A WAU

1


12


12


A WA

1,4

A WA

1,4

A Wb

A Wb

(2.17)

Now we note that by construction x satisfies (212) ,so x is also a solution of a GI {1,3} problem (least squares problem),
and therefore the inverse in (2.17) may be taken as a {1,2,3,4} inverse denoted A .
"

Application of weighted generalized inverses to


inertial sensing

2.3

To reiterate (2.1), given the state vector x we imagine that the output of a sensor bi can be found using an expression like
bi =

ai j x j = Ai x

where its understood that the bi may be subject to linearization of the type mentioned in section 2.0.
Using this assumption, we can apply the results on weighted generalized inverses in sec.2.2 to the problem of deducing the
state x from the sensor input b. The calculation of A is fairly straight forward given the sensor model, but one question
remaining is how to define matrices U and W?
The matrix U defines the weighting function of the state vector x. As always, since the norm is to be minimized, what
matters is the relative weight given to each component of x not the total magnitude of U. The physicists toolbox suggests
two immediate possibilities for U, either the choice that maximizes entropy, or the one that minimizes energy, in that order.
The first choice presents a problem of definition. Specifically, the present author cant think of what function of the state
vector x should stand in for the usual entropy. Moving on to the idea of energy minimization, there are still problems.
Consider a mass (m) accelerating in a straight line with magnitude (a), velocity (v) and initial velocity v0 , the power
needed to sustain acceleration (a) as a function of time is P [t] .

P [t] = ma(v0 + a t)

(2.18)

Evidently the power required depends on the velocity already attained, but if we consider only the energy increment over
the short time between measurements (T) we can write.

LV1b_IMU0.03

17

E = ma2 T
#

(2.19)

The expression for E lends itself to a norm, but since it treats each axis the same, it resembles the Euclidean norm. Later a
non Euclidean norm will arise from the consideration of how (2.19) relates to the rotational components of x .
$

The energy associated with rotation about one axis is

E=


1
2


2


(2.20)

where I is the moment of inertia about the axis, and

the angular rate in radians.




Although (2.19) and (2.20) appear to be in a compatible form, they do in fact represent entirely different quantities. Equation (2.19) is the energy expended in the last measurement period to change from the previous inertial frame to the current
one. While (2.20) is the energy associated with the total angular momentum about one axis. In other words, one expression
represents a difference, the other a total. In order to bring (2.20) more in line with (2.19) we will consider the energy
increment required to change from a rotation at rate 1 at time t1 to 2 at t2 assuming a constant angular acceleration
. Since this rotational case is entirely analogous to the linear one of (2.19) we have


E=I

&

(2.21)

Equations (2.19) and (2.21) are comparable energy terms, but


is not one of the primary measured quantities. We can
introduce however, by a process of state augmentation. Let our inertial state vector x be the 9 element vector consisting
of the 3 independent linear accelerations, 3 rotation rates, and the 3 previous rotation rates. Augment the b vector with the
3 previous rotation rates, possibly from the output of some filter. Then define the U norm of the state vector to be


x
where


=(

i [T


i]


= m T ( ax 2 + ay 2 + az 2 ) + T ( Ix
&

+ Iy
&

+ Iz
&

(2.22)

i [T(i1)])

Notice that the U norm defined here ignores the absolute magnitude of the s


The definition of the W norm for the least squares fit is considerably easier. Assuming that the standard deviations of the
input signals i are known, then we seek to minimize
'

bi


bi


where the b i represent the values calculated via A x


)

(2.23)


2
i
!

b and the bi represent the measured values.


*

18

LV1b_IMU0.03

3 Reference Frames
Reference frames are fundamentally a method of organizing information. Once quantities are measured or expressed in a
way convenient to one situation, they can be formally manipulated to relate to other information that has been recorded in a
different frame. Many theorists dismiss the importance of the reference frame and the transformations between frames,
disparaging them as mere bookkeeping exercises (while hoping that by adopting such an attitude they will coax someone
else into doing the bookkeeping for them), but there are things of interest in the mathematics of transformations between
frames. Even though once the interesting points have been noticed, a practitioner of transformations will wish for the bulk
of the calculations to be handled by some obliging machine. An alternative title for this chapter might have been, "Beyond
Double Entry; Accounting for the Third Dimension".
For our purpose we restrict the reference frames considered to finite linear vector spaces. Things that may be represented by
orthogonal basis vectors.
Reference frames are generally chosen to simplify measurements or calculations. For example in Chapter 1 the sensor
equations were given in a frame that related directly to the orientation of the sensor in space. This choice made the sensor
equations very compact to write down, but ultimately the sensor outputs have to be related to the navigation frame, which
on LV1b is an xyz rectangular frame whose origin is the rockets launch point. In connecting the sensor frame to the
navigation frame we will pass through several other reference frames, including the rocket body frame whose major axis is
the rocket centerline. Each choice of reference frame is designed to simplify the calculation or measurement of data at the
stage to which it applies. The complications of transforming from frame to frame are hidden inside the automated procedures we construct, so that the overall complexity from the human perspective is greatly reduced.
Before considering specific frames a general comment is in order. Though many different kinds of reference frames are
used, at least the simpler ones can be classified by two considerations, their geometry and whether or not they are accelerating frames. The frame geometry is usually chosen to match a symmetry of the problem. Common choices are rectangular,
cylindrical, spherical and ellipsoidal, but more complicated geometries are sometimes used. The question of accelerating
frames is common in physical science. A non accelerating frame, also called an inertial frame, is one whose basis vectors
are not accelerating. This definition is circular in the sense that the position must be defined relative to another inertial
frame, but it is nonetheless useful. The ultimate definition of an inertial frame is provided by the idealized experiment of a
non rotating mass not subject to outside forces. Coordinates relative to this mass define an inertial frame. Inertial frames are
interesting because physical objects are thought to obey the laws of inertia whereby an object whose position is measured in
an inertial frame can only change the velocity of its center of mass if it is subject to an external force. A corollary to this is
that if an object is tracked in a non inertial frame, it may change its velocity even without the application of an external
force. This phenomenon is the origin of what are termed fictitious forces.
The type of non inertial frame of interest for LV1b is the rotating frame. A rotating frame is an accelerating one because at
least some of the basis vectors describe a circular path. Consider a mass fixed away from the origin in an inertial frame. If
the frame is set to rotating at a constant rate the mass, as described in the rotating frame, will engage in circular motion.
Even though it would be motionless in the original inertial frame. This motion in the rotating frame could be explained if we
made the (false) assumption that the rotating frame was an inertial frame, and that the mass traveled with a velocity opposite
to the rotation of the frame and was subject to an apparent force directed towards the frames origin thus forcing the mass
into circular motion. This apparent force, entirely fictitious, is called the Coriolis force.

LV1b_IMU0.03

3.1

19

Reference Frames for LV1b

LV1b is a rocket which primarily travels over the surface of the earth; we are not yet ready to go further. The customary
reference frame for terrestrial navigation is known as the earth centered earth fixed geodetic (ECEFg) coordinate system.
The coordinates for this frame are usually written < , , h> for latitude, longitude, and altitude, respectively. Note that
altitude is defined as the normal distance above an assumed earth shape known as the geoid which is mathematically an
ellipsoid of revolution meant to approximate the true shape of the earth. ECEFg is the coordinate system most commonly
associated with the GPS. Since longitude is measured relative to a fixed point on the surface of the earth, ECEFg rotates at
the earth rate, i.e. it is a non inertial frame. As an alternative reference frame it is sometimes convenient to define an ECEF
rectangular (ECEFr)system. In this scheme the origin is at the earth center, the z axis is directed up through the north pole,
the x axis is perpendicular passing through the prime meridian and the y axis completes an <x, y, z> orthogonal, right
handed coordinate system. The ECEFr system is fairly easy to relate to local rectangular frames, and most GPS units,
including the one on LV1b can be placed into a mode that outputs data in ECEFr coordinates, therefore ECEFr is a good
choice for GPS/INS integration.
+

Despite the utility of ECEFg in terrestrial navigation the transformation from it to an inertial frame is rather involved,
details given in [13], because of the complexity, the transformation is done only when required. Instead, navigation is
accomplished in a locally defined frame known as the tangent plane. This frame has its origin at the launch point with its
z axis pointing up, perpendicular to the geoid surface at that point. The y axis lies in the plane tangent to the geoid surface,
directed due north and the x axis, also in the tangent plane, points east. The tangent plane is a right handed coordinate
system written <e, n, u> for <east, north, up>. Note that a similar system is often defined in the literature as
<north, east, down> the choice of down rather than up is annoying and we ignore it.
The most difficult transformation in a strapdown navigation system is from the body frame to the navigation frame. For
LV1b the navigation frame is the <e, n, u> frame mentioned above. The body frame is assigned for convenience relative to
the rocket airframe. The primary body frame axis is the rocket centerline. This is the z axis and is positive towards the
rocket nose. The origin of the body frame for LV1b coincides with the origin of the IMU platform. The x and y axes are
perpendicular to the z axis and define the pitch and yaw of the airframe. The x and y axes coincide with the x and y axes of
the IMU (unless the airframe team decides to the contrary). For each <x, y, z> axis in the body frame we define a corresponding angle < , , > representing pitch, yaw and roll respectively. These angles are defined positive along the <x, y, z> axes
by the right hand rule.
-

The IMU itself uses a reference frame known as the platform frame as explained in sec.0.2 . The relationship of the platform
frame to the body frame is a simple rotation and translation which would be completely defined if not for alignment error
during installation or operation. The chief utility of the platform frame is in modularizing the IMU. Each sensor can be
referenced to the platform frame and all IMU output can be taken in the platform frame.
LV1b Reference Frame Summary
Frame :
coordinates : Notes :
Sensor
<f, t, d>
Unique to each sensor
Platform
<x, y, z>
IMU reference frame
Body
<x, y, z>
Same frame as mechanical design
Attack angles < , , >
Defined by velocity relative to body z axis
Navigation
<e, n, u>
Also called tangent plane. Primary IMU output frame
Attitude
< , , >
Rocket angles about the Navigation frame axes
ECEFr
<x, y, z>
Similar to tangent plane, available from GPS
Geodetic
< , , h>
Same as GPS coordinates, alternate navigation frame
.

20

LV1b_IMU0.03

3.2

Mathematics for Transformation Between Frames

In the case of two linear vector spaces a and b, a vector r can be transformed from coordinates given in a to coordinates
given in b by a rotation followed by a translation

rb = (Ob Oa ) + Rba ra = Oab + Rba ra

(3.1)

here ra means the vector r coordinatized in frame a , Oa is the vector representing the origin of frame a and Rba is the
rotation matrix from frame a to b .
For the case of reference frames in relative rotation we introduce the notation
frame a relative to frame b. For rotating frames we have
b

Ra t
/

a
ba

Rba t


, which means the rotation rate vector of

ba


(3.2)

where
ba is the skew symmetric representation of
written in another notation.

coordinatized in frame a. Notice that (3.2) is really just (1.2)

ba


If we combine (3.1) & (3.2) we get an expression for transforming a vector velocity between two frames in relative rotation
to one another. This expression is called the theorem of Coriolis

a
ba

The term involving

a
ba

Rba t

rb t

ra t

ra t


(3.3)

represents the apparent motion due to the rotation of the frames.

An easy generalization of (3.3) covers the case of frame b having both rotational and translational motion relative to frame a

rb t

Oab t

a
ba

Rba t

ra t


ra t

(3.4)

Taking the time derivative of (3.4)


2
0

rb
t2


2


2
0

Oab
t2


Oab
t2


b
Ra
/

Rba

ba

ra

ba

a
ba


a
ba

ra


2 ra
0

a
ba

a
ba

ra
/

t2

(3.5)

2 ra
0

Rba

a
ba

t2

Equations (3.1), (3.4) & (3.5) are the general transformation equations for position, velocity and acceleration from one
frame to another.
When we describe the motion of a frame of reference its all relative, meaning that the motion of one frame must be measured with respect to another reference frame. Therefore to fully describe the motion, both frames must be specified.
Consider particularly the case of frame b in relative rotation with respect to frame a. In the notation of (3.2) we write ab as
the vector representation of the rotation rate. Any rotation, no matter how complex, may be built up from a sequence of
infinitesimal, but not necessarily parallel, plane rotations. A plane rotation being one about a single fixed axis. The vector
t is equal to the rotations
ab t can be understood as denoting an instantaneous plane rotation at time t , where
ab
magnitude, and the unit direction vector ab
ab is parallel to the rotation axis. Angular rate vectors are proper vectors,
and so in particular obey the rules of vector addition.


ab


bc


ac

(3.6)

LV1b_IMU0.03

21

Notice how the notation is designed as a mnemonic, with cancellation of the inner subscripts.
By a theorem due to Euler we know that if we begin with an orientation a (a can be taken as a reference frame) then by any
finite sequence of plane rotations, and therefore any rotation, we will arrive at a new orientation b. For any a and b there
always exists a unique single plane rotation which transforms a to b.
With this theorem in mind define ab as the unique rotation which transforms frame a to b. The definition of ab is
completely analogous to ab . The magnitude and direction of ab correspond to the magnitude and direction of the
implied rotation, and the sense of rotation is defined by the right hand rule. Often is thought of as an operator that transforms a vector by rotation from one orientation to another, in this context ab is called the vector rotator from a to b.
2

Here is a summary of what has been stated about rotations.


is a proper vector, in particular it obeys the addition rule given in (3.6)
1)
2)
Infinitesimal plane rotations can be added to produce any rotation
3)
Any sequence of rotations result in a change that is equivalent to a single rotation


Based on these facts it might seem reasonable that the rotation


integral of . Neither of these things are true.
2

would follow the rules of vector addition, and that


2

is the

Consider this counter example. Suppose a pilot is on a rocket travelling in a direction called forward. If the pilot executes
two maneuvers, a pitch up 90 and a roll right 90 the rocket will be travelling upwards relative to its previous direction. On
the other hand if the order of the maneuvers is reversed, if the rocket rolls to its right then pitches up, the final direction of
travel will be to the right of the original direction. There is no great mystery here, since the meaning of each rotation
depends on which orientation the body has reached, the history of the rotations matters. This is different than simple addition. For example in the one dimensional case, each addition is like saying move so much more to the left or to the right, the
kind of motion that is made in no way depends on the previous position. By contrast the motion commanded by, say, pitch
up 90, or turn 90 about the north polar axis, is entirely dependent on whether the previous orientation was straight and
level or straight up.
Because the orientation reached by a series of rotations depends on the order of the rotations, rotators like cannot follow
the rules of vector addition since vector addition can be done in any order. Likewise, cannot be the integral of , for if it
were then the fact that both the integral operator and follow an addition rule would imply that follows an addition rule
as well, which it does not.
2

However, the time history of clearly does determine the resultant rotation . Furthermore, we want to determine from
because it is that is measured by the IMU, and it is that gives the resulting change in orientation of the platform relative
to another frame, such as the navigation frame. Towards this goal, consider the case where does not change direction in
time. This case is like a one dimensional rotation where everything actually does add up. That is


This suggests seeking a function of

for

in only one direction

(3.7)

that reduces to (3.7) in the plane rotational case.




Start with the quaternion form of the rotator q , from B???we know

q in terms of
2

1
q
2


(3.8)

is by (B???
Sin


2
6

Sin
3

2
7

6


Cos
7

Cos
7

Substitute (3.9) into (3.8) and use the linearity of quaternion multiplication to get

(3.9)

22

LV1b_IMU0.03

Sin

1
2


2
6

Cos

2
7

By (B???relation of quaternions to vectors ie

q
4

1 Sin
2


2
7

Cos

(3.10)

2
7

<

2
7

>

)
:

Cos
3

2
7

1 Sin
2

2
7

(3.11)

2


Now take the derivative of (3.9)

Sin

2
7

1
2


Cos


2
7

(3.12)

%
2

Cot

Equate (3.11) and (3.12) and solve for

7
@

Cot
7

(3.13)

This can be broken up into vector and scalar parts, each of which must be separately equal

1
2


Cot

Cot
7

(3.14)

(3.15)

Now (3.15) can be substituted into (3.14) to eliminate

1
2


%
A

Cot

2


Cot
7

(3.16)

A useful relation can be derived from the vector triple product (Appendix B)
3

By using (3.17) the term


2

2
3

(3.17)

can be eliminated from (3.16)




1
2
2

1
3

2


Cot


(3.18)

Recalling the trigonometric identity


7

Cot


Sin
1 Cos
7

the relation between the rotator and the angular velocity can finally be written in its conventional form

(3.19)

LV1b_IMU0.03

23

3.3

Sin
2 1 Cos
7

(3.20)

Efficient coordinate transformations by multi rate


algorithms

Now that the expression for the rotator has been derived, consideration can be given to the specific application of LV1b.
Much of the notation and procedure in this section is borrowed from [20]. Appendix (C???gives an equation for velocity of
the rotator from the body to the navigation frame in terms of the two angular velocities measured relative to a third reference frame, which can be taken as an inertial frame.

qnb
4

1 n
q
2 b


b
ib

1
2


n
in

qnb
5

(3.21)

The rotation of the navigation frame can be taken as two components, the one due to the rotation of the earth, and another
due to the rotation of the navigation frame relative to the earth
n
in

The quantity
rate is zero.


n
en

n
ie

n
en

(3.22)

is called the transport rate, however, for LV1b, which uses an Earth fixed navigation frame, the transport

In (3.21) the body frame rotation rate can reach upto around 1Hz while the navigation frame rotation rate is more like once
per day. Even with a high transport rate (at least high relative to aircraft velocities) the navigation rate is perhaps a few
Mach divided by 24,000 mi., which is still small compared to 1Hz. Therefore we can compute the navigation frame rotations at a rate slower than the body frame rotations. Let the computation of the navigation frame rotations be at the n rate,
and use the index n to number such computations. Similarly let the body rotations proceed at the faster m rate. Then the
navigation body rotator can be updated like this
n
qb n

n
qn nn 1


n
qb n 1

n
qb n 1

n
qb n 1

b
qb m 1

(3.24)

m 1

(3.23)

where indices like n , added to a reference frame symbol, indicate the position of the frame at the moment when t

tn .

m 1 is a time reversed rotator.


Equation (3.23) is run at the n rate while (3.24) is run at the m rate. Note that qb
m
b
m 1 can be written as
By using (3.18) the rotation vector associated with qb
m
D

m


b
ib

1
2


b
ib

f
7

2


b
ib

(3.25)

24

LV1b_IMU0.03

where the symbol


scalar function f

means the rotator associated with the body frame rotation from time m
1

because of the time reversal.

m
2

1 to time m and the

m 1 the correct vector is actually


. Note that when using (3.25) to generate qb

Sin
2 1 Cos

Unfortunately, (3.25) is too computationally intensive to implement directly with the flight computer on LV1b, therefore a
2 can be expanded in a power series.
simpler approximate formula is desired. The function f
A

f


1
1
12


60

2520

(3.26)

Assuming the m rate is fast enough that


doesnt get too large, (3.26) can be approximated by just the first term
2
f
1 12 . If (3.26) is approximated as 1/12, then the rest of (3.25) should be approximated to the same order.
Carrying out this rather radical pruning yields
A

b
ib

m


1
2


b
ib


t


b
ib

(3.27)

tm 1


Whether (3.27) provides adequate accuracy depends on the relation between system requirements, the update m rate and the
magnitude and constancy of bib . Probably, the demonstration of the adequacy of (3.27) will be handled by either field tests
or a simulation versus (3.25) (the truth equation). In the case where bib is parallel to m , for instance if bib is constant,
(3.25) & (3.27) give the same result.


For convenience (3.27) can be broken into two parts, let


I

1
2


b
ib


(3.28)

tm 1


then
I

(3.29)

where

tm ,

m
J

m


m


tm
J

Conceptually (3.29) is a division of (3.27) into


which is exact for the case of a non rotating
approximation which compensates for the rotation of .

, and


a second order

In order to carry out the required integrals divide the m interval into sub intervals with the index . The
then
#

1
2


t
K

rate equations are

t,

L
#

(3.30)

1


b
ib


I
#

1


(3.31)

t
#

t


b
ib

t
K

t,

(3.32)

1
L

1


(3.33)

LV1b_IMU0.03

25

Substituting (3.33) into (3.30)


I
#

1
2

b
ib

1
2

1


1


&

Making the further approximation that


b
ib

1
2


1
2


b
ib


1


t


1


t


1


1


1
2

t
K

b
ib

is 1st order over the

b
ib


b
ib


(3.34)

interval, that is
K

A
M

B t


t


(3.35)

1


where A & B are constant vectors.


Using this last approximation
$

t becomes

t
L

t


A


B t


t


t


t


1


1
B t
2


(3.36)

1


Therefore the last integral in (3.34) is

1
2


1


1


T2 A

1
&

where T is the length of the


N

t


t


1
A B t
12


(3.37)

interval by considering the cross product


K

BT
2


t


t


This result can be recast into the form of an update over the
#

B t


1
B A t
2

1
A B t
2


1
B t
2

1


1
2


t


1


1
2


1


t


BT
2


T3 A B
L

(3.38)

interval
K

Combining (3.38) and (3.37) with (3.34) yields


#

1
2


1
2


&

1
6

&

(3.39)

The work so far is sufficient to compute qb

1
12


&

m 1

using high throughput rate expressions like (3.32) and (3.39). The
m
n
n
missing element, at least as far as attitude update equations are concerned is a method for computing qn
which is the
D

n 1
D

unaddressed term from the slower n rate equation (3.23). This term represents the rotation of the navigation frame, which
for LV1b is due to the rotation of the Earth. Since the Earth rate is almost perfectly constant all the cross product terms in
(3.25) drop out, but even for a more general case the deflection of in over one m cycle is negligible and a 1st order
approximation is valid. [20] raises the issue of the sufficiency of a 1st order approximation during initialization when the
n

magnitude of qn
(3.20) is then

n
is not necessarily small. However for LV1b the 1st order terms should suffice. The approximation to
n 1

The work so far is sufficient to compute qb

m 1 using high throughput

rate expressions like (3.32) and (3.39). The

26 missing element, at least as far as attitude update equations are concerned is a method for computing qn nLV1b_IMU0.03
which is the

n 1

unaddressed term from the slower n rate equation (3.23). This term represents the rotation of the navigation frame, which
for LV1b is due to the rotation of the Earth. Since the Earth rate is almost perfectly constant all the cross product terms in
(3.25) drop out, but even for a more general case the deflection of in over one m cycle is negligible and a 1st order
approximation is valid. [20] raises the issue of the sufficiency of a 1st order approximation during initialization when the


magnitude of qn

n
is not necessarily small. However for LV1b the 1st order terms should suffice. The approximation to
n 1
D

(3.20) is then
tn
O

n


n
in
0

tn


tn 1

is the rotator equivalent to

tn 1

where

n
ie

n
and
n 1
D

tn


qne
5

e
ie
5

qne
0

tn 1

n
qn

n
ie

is a function of position (attitude).

(3.40)

LV1b_IMU0.03

27

4 Strapdown Inertial Navigation:


Velocity & Position
The contents of chapter 3 are concerned with a central question in inertial navigation, that of determining the attitude of the
vehicle in the navigation frame. Besides the fact that attitude is of independent interest, it is essential information for the
calculation of position in the navigation frame. In this chapter the calculations for vehicle attitude presented in chapter 3 are
applied to the problem of finding the velocity and then position of the vehicle. Much of the notation and flow of this chapter
is patterned on reference [21].
The basic equation for deriving velocity in an inertial frame from IMU data is

vi

Gr

(4.1)

where a is the IMU measured acceleration and G the local gravity vector.
For LV1b the velocity of interest is the velocity relative to the Earth frame ve expressed in the navigation frame. This can
be calculated from inertial measurements using (3.3)

vne

i
ni

Rni


vie

vie


(4.2)

To make use of (4.2) vie must be expressed in terms of the inertial frame acceleration a. This could be done by application
of (3.3) followed by a time derivative, but it is perhaps less error prone to use the general expression (3.5) which for this
case is


2
0

vii

rii


t2
0

e
ie

Rie

e
ie

ree

e
ie

2


ree
4

vee

(4.3)

where use has been made of the fact that both Oei and
Since

vie

Rie

vee

we know that

vie
4

vie


Rie


e
ie

Rie
e
ie

vee
e
ie

Rie

ree

are zero.

ie

vee

substituting this into (4.3) and solving for vie

e
ie


vee


vii

(4.4)

Making multiple use of the similarity transform ???, the right side of (4.4) can be massaged into an expression involving
only quantities measured in the inertial frame

vie
4

vii


i
ie

i
ie

rie

i
ie


vie

(4.5)

using the basic equations (4.1) in place of vii




vie
4

a


Gr


i
ie

i
ie

rie


i
ie

vie

(4.6)

28

LV1b_IMU0.03

For subsequent work it is convenient to rewrite this as

vie

a


gr

gr


Gr


i
ie


vie

r
C

ie

(4.7)

ie

(4.8)

g r may be thought of as the gravitational acceleration adjusted for the centrifugal force due to the Earths rotation.
Substituting (4.7) into (4.2)

vne

an


Using

ne

ni

ie


i
ni

Rni


vie

gn r


ai


gi r


n
ni


n
ie


vie

(4.9)

vne

(4.9) becomes

vne

an


gn r


n
ne


n
ie

2


For LV1b the navigation frame is fixed to the Earth and

4.1

i
ie


ne

vne

(4.10)

Efficient velocity calculations

The approach taken here is similar to the attitude computations in section 3.2.
For computational convenience (4.10) can be cast as

vnm

vnm


1


vnm


n
m

(4.11)

n
m

tm

gn

n
ne

n
ie

vne
0

(4.12)

tm 1


vnm

tm


an t
0

(4.13)

tm 1


In (4.12) nm is the velocity increment in the navigation frame during the m interval due to gravity and Coriolis effects. In
(4.13) vnm is similarly the velocity increment due to inertially measured acceleration.
R

When computing (4.12) gn may be approximated as constant during one m interval. Approximations to gn are generally
based on polynomial fits. If both the [m] and [m1] values are available at computation time, a common choice is to use the
average value over the m cycle. If the end values are not available an average value may be extrapolated. In any case
denoted the value to use as gnm 1 2 .
G

The same comments on constancy apply to the Coriolis force terms in (4.12). Using these approximations the result is

n
m
M

Tm gnm

12


n
ne m 1 2


where Tm is the length of the m interval

n
ie m 1 2


vne

m 12


(4.14)

LV1b_IMU0.03

29

The Coriolis and gee force terms in (4.12) & (4.14) are candidates for a low speed n rate update algorithm of the type used
in section 3.3. Whether to do updates at the n rate is a trade off between system accuracy, computer power, and software
complexity. For now the question is deferred???
Errors in the gee force term introduce an instability in the velocity calculations. The instability can be understood by
considering the effect of an error in estimated altitude. Suppose that the estimated altitude is above the real altitude. Then
the estimated gravity is less than the real gravity, therefore the excess real gravity will be interpreted as an acceleration
upwards, so the next update cycle the altitude estimate will have an even higher error, which contributes to an even greater
estimated vs real gravity error. The error grows approximately geometrically with each update. The only way avoid large
errors is to use additional information to stabilize the altitude figure. Possibilities include altimeter, rate of climb indicator,
and GPS information.
In (4.11) to compute vnm while compensating for the rotation of the body frame the same scheme as in (3.23) & (3.24) can
be used
$

vnm
#

tm

n
nn 1
bm 1
Cn m
ab t
n 1 Cb m 1 Cb t
0

(4.15)

tm 1

here the notation has been switched to DCMs for compactness


To compute (4.15), break it into parts, let
tm

b
vm m 1
#

b
Cb m 1 ab t
0

(4.16)

tm 1


n
vm n 1

n
Cb n 1

b
vm m 1

(4.17)

m 1

vnm

Cn m
n 1

n
vm n 1
#

n
vm n 1
#

Cn m
n 1

I
#

n
vm n 1


(4.18)

n m
The last form of (4.18) anticipates an approximation for Cn n 1 . (4.18) is an m rate equation, so it is desirable to eliminate or simplify any updates to the navigation frame in an effort to cut computer load and push navigation frame computations into the slower n rate loop.


To form the approximation expand (3.20) in the manner of (3.40)???, then to 1st order
n

Cn m
n 1
M

I


(4.19)

This is a suitable m rate approximation, though on LV1b this may be further approximated as just the identity matrix.???
The final piece of the velocity update is (4.16) which is the translational analog to (3.25). In approximating (4.16) it is
sufficient for now to take only 1st order terms from the expansion of the rotator vector (3.18). This is true even though in
almost identical circumstances in (3.27) a 2nd order approximation was taken. This difference is not justified a priori, it will
be up to the subsequent development to show that the errors made here are small enough. However a motivation for this
approximation can be provided at this point. From the attitude update equation (3.27) the resulting attitude estimate is used
to compute (4.16), so the velocity estimates accuracy is limited by the attitude estimate accuracy. Therefore the extra term
in (3.27) may be justified, it remains to be seen.???
Proceeding with the 1st order approximation

30

LV1b_IMU0.03

b
Cb m 1

where

(4.20)

t is defined in (3.27)

Substitute (4.20) into (4.16) to get


b
vm m 1
#

tm

vm

ab t
0

(4.21)

tm 1


ab t , vm
0

vt


v tm


(4.22)

tm 1


(4.21) contains an integral which might be susceptible to further approximation. In seeking an approximation consider
(4.21) in the case where bib & ab are constant such as during a constant rate turn. Then (4.21) is


b
vm m 1
#

vm

Tm 2
2


b
ib

ab

vm


1
2


(4.23)

vm

(4.23) suggests a method of partitioning the integral in (4.21) into a term which accounts for the constant part of the maneuver, namely m vm 2 and the rest of the integral.

To make this partition, seek a formula of the form


b

t


1
2



0

vt

?


(4.24)

On substitution of (4.24) into (4.21), the integral of the 1st term gives the desired form, while the 2nd term is yet to be
determined. To arrive at the 2nd term, consider the general derivative
0


0

vt

t


vt

vt

(4.25)

(4.26)

therefore
0

t


Splitting

t
U

vt


0

vt

vt


v t into halves and substituting (4.26)




t


1
2


vt


0

vt

1
2


vt

1
2


1
2


vt

(4.27)

vt

vt


This reduces to the desired (4.24) by recalling the definitions of (3.27) and (4.22), that is

1
2


vt

1
2


ab


vt

b
ib

(4.28)

LV1b_IMU0.03

31

Substitute (4.28) into (4.21)


b
vm m 1
#

vm

1
2


vm

tm

1
2


ab

vt


b
ib

(4.29)

tm 1


This new equation make the desirable separation of the velocity increment into 3 parts. The integral term represents the
effect of turning motions which are synchronized with propulsive force. These drive the vehicle with a net velocity increment in a manner analogous to propelling a boat from the stern with a single paddle. Therefore this term is often called the
sculling term. The middle term in (4.29) accounts for the effect of a rotating velocity vector contributing a cross velocity
component over the m cycle. This term is called the velocity rotation compensation. As before break (4.29) into components for separate examination
b
vm m 1
#

vm

vrotm
#

vscl t
#

1
2


vrotm
#

1
2


vm

ab

(4.30)

vsclm
#

(4.31)

vt


b
ib

t ,

vsclm
#

tm 1

vscl tm
#

(4.32)

Note that (4.29) and therefore (4.30) are still 1st order approximations deriving from (4.20) and numerically equal to (4.21).
However the terms of (4.30) separate the effect of a constant rate turn from more complicated turning motions. In a constant
rate turn the vsclm term is zero and all the turn dependency is in the vrotm term. It is therefore possible to replace
vrotm given by (4.31) with a more exact term. To find such a term consider the exact expression (4.16) in the constant bib
& ab case. Using (B.25) to express the DCM as a function of vector rotator
$

tm

b
vm m 1

b
Cb m 1 ab t
0

tm 1


tm


Sin


t
&

(4.33)

1


Cos

t
&

tm 1


where u
W

t


t is the unit vector parallel to

By the assumption of constant

ab

and non coning


b
vm m 1

t .

b
ib

(4.33) is

tm

ab t
0

u
V

tm

ab

tm 1

Sin

tm 1

&

t


u
V

u
V

ab

tm

(4.34)

1


Cos
&

tm 1


Recalling (4.22) for the constant ab case

ab
so

vm Tm

(4.35)

32

LV1b_IMU0.03

b
vm m 1


tm

vm
m Tm

m


vm

&

m


Sin

t
&

m
&

tm 1

m
&

tm

vm

Tm

b
ib

Cos


t
&

(4.36)

tm 1

If

is constant

t


Tm


b
ib

(4.37)

Using (4.37), (4.36) becomes

b
vm m 1

vm

Cos


m
&

m
&

vm

m
&

Sin

m
&

&

&

vm

(4.38)

In (4.38), everything after the 1st term on the right is the exact form of vrotm . Note that to 1st order in
reduces to (4.31) as can be seen from the expansions
$

1


Cos


1


&

2
m

Sin


1
2

m
&

2
m
&

1
3


m
&

(4.39)

m
&

the exact form

m
&

m
&

&

m
&

m
&

7
X

&

(4.40)

All that is now required to complete the velocity calculations are algorithms for vm & vsclm , these will be taken up next.
The approach taken will be to find calculations that proceed at a rate called the rate, which is faster than the m rate, and
simplifies the computation of the velocity increments, while maintaining their accuracy. The approach parallels that taken in
section 3.3 for attitude computation.
$

For computing vm the

rate computation is quite simple


K

vt

v


vt

(4.41)

ab t

(4.42)

vt
#

t 1
N

v
vm

vt

(4.43)

v


, v v 1
0
tm , v

t tm

Basically, to get vm the ab s are just added up.


To get vscl more work is involved. First partition vscl t
$

vscl t

vscl
#

vscl t

1
2


t
K

vscl t
ab


vt

b
ib
0

(4.44)

LV1b_IMU0.03

33

vscl
vsclm

vscl t
vscl
[

vscl

1
2


vscl
vscl 1
0
, vscl

t tm

(4.45)

t tm 1

1


from (3.33) in (4.44)


N

vscl

Using (4.43) and the definition of

1
2

v


&

t
K

ab

vt

b
ib


(4.46)

1


To compute (4.46) we resume the assumption of (3.35) and additionally assume

ab

C


Dt


t


(4.47)

1


Under these assumptions the integral in (4.46) may be found as

1
2


&

Dt


t


vt
#

1


B t


t


(4.48)

1


By (4.42) & (4.47)


t
L

vt
#

C


Dt


t


t


1


1
Dt
2

t


(4.49)

1


Using (3.36) & (4.49), (4.48) becomes

1
2


1


t A

0


1
2


1


1
tB
2


t t A

1
tB
2


tD


C


tD


1
tD
2


C


t
(4.50)

1
tD
2


tB


tB


Observing that

1
tB
2


1
tD
2


tD


tB


A C


A C


tA D


t
B C
2


t
A D
2


tB C

t2
B D
2


(4.51)

t2
B D
2

(4.52)

B C

(4.53)

(4.50) becomes

1 T3
A D
2 6
L

1
2


t
t t
A D
2


t
B C
2

To put (4.53) into update form, consider the expression

(4.54)

34

LV1b_IMU0.03

v
#

1
&

T A


BT
2


v 1
1
DT
2
#

T C

T


A C

T A

BT
2


T
B C
2


T C


1
DT
2

T
A D
2


T2
T
T
T2
B D A C
B C
A D
B D
4
2
2
4
T2 T A D T B C T3 A D B C
L

Combining (4.53) & (4.54), (4.46) becomes

vscl

1
2


1
2


1


1
6

v


&

1
12


1


1
&

1
6


(4.55)
L

This equation completes the outline for computation of navigation frame velocity.
A construction similar to the velocity equations could be used for position calculation, but if certain approximations are held
valid??? it is sufficient for now to use the simple integral of velocity. For example a 1st order integration of velocity would
be

rnm

Tm n
vm
2


1


vnm

(4.56)

(4.54)

LV1b_IMU0.03

35

Table 1 gives a summary of the orientation calculations

Category

Input

Output
]

Attitude

b
ib


Equation s

ab

Velocity

v
N

,v
N

Function

rate calculations
^

vscl
_

3.32

b frame angular increment

3.39

coning increment

4.42 , 4.43
4.55

b frame velocity increment


sculling increment

3.27
3.28
3.29

same as rate
same as rate
body frame update rotator trivial

m rate calculations
^

Attitude

m
J

m,

m
J

m
2

3.31

m 1
qb

App ?? ?

m
2

qb

n 1 , qb m 1
b m
m 1
D

n 1
m

3.24

vm
vsclm

4.22
4.45

same as rate
same as rate

4.30

b frame velocity update

m
n 1

3.40 , 4.19

n frame mini update

vnm

4.16

n frame velocity increment

qb

Velocity

v
vscl
N

vm ,

m,

vsclm
$

vm
$

qn

n
P

body frame update quaternion

m 1


n frame quaternion
K

qb

n m
n 1
, qn n 1
m 1
gn , nie


4.18

Position

vnm , nm
vnm
R

n
m
vnm
rnm

4.12 , ?? ?

local gravity compensation

4.11

n frame velocity

4.56

n frame position

n rate calculations
, ,h
?? ?
^

Position

rnm

Planetary

rnn


n
ie

qn

n
ie
gn

n
n 1
D

Table 1

g frame transformation

?? ?
5.120

local earth rate


gravity model

3.40

n frame update

36

LV1b_IMU0.03

5 Gravity Modelling
To find the second derivative of position from the inertially sensed acceleration the gravitational force must be subtracted,
see (4.1). A desirable formula would give g r the local gravity vector as defined in (4.8), with r expressed in a convenient
coordinate system. Since LV1b uses a local level navigation frame this seems a good choice for coordinates, because in the
local level frame the gravity vector is by definition straight down. Although the rocket could wander far enough from the
launch site that the sideways gravity force needs to be accounted for, in LV1b at least on the nominal trajectory, the effect is
negligible.??? To arrive at a gravity formula a good starting place is the fundamental equation for Newtonian gravitational
force (5.1). The path from this starting point to application equations like (5.120) is a long one and need not be taken by a
casual reader. This material is here because some of it is rather interesting as and example of what mathematical physicists
did back in those olden days, and because merely presenting equations like (5.120) as fait accompli provides no insight into
their assumptions or accuracy. (Most of the material for this section is adapted from reference [14].)

G m1


m2
l2


(5.1)

where F is the gravitational force, l is the distance between the masses, and m1 , m2 are the respective masses. G is the
universal gravitational constant with the accepted value G 6.6720 10 11 N m2 kg
G

If (5.1) is considered as the differential force per unit mass ( F


1

G


1
l


G m l2 ) the gravitational potential V can be written as


1

(5.2)

The integral is taken over the entire volume, which in this case is the volume of the Earth. Equations (5.1) & (5.2) are
V where F is the gravitational force vector. (5.2) can be rewritten using Gauss law resulting in the
related by F
Poisson equation

2
d

where

V


4 G


(5.3)
f

is the density of mass per volume.


g

The other component of local gravity is the centrifugal force mentioned in (4.8). The magnitude of this force is simply
2 x2 y2 where x, y are taken in the equatorial plane using an Earth centered rectangular coordinate system. This force
can also be written as a potential function


1
2


x2


y2

(5.4)

The laplacian of is 2 2 , inserting this into (5.3) gives the generalized Poisson equation for the gravity potential W, which
is to be distinguished from the pure gravitational potential V.
i

LV1b_IMU0.03

37

2
d

W


4 G


2


2


(5.5)

In describing the shape and gravity of the Earth some idealization needs to be made. The approximation usually taken is due
to C. F. Gauss who proposed that the "mathematical figure of the earth" be the surface which the oceans would adopt if not
subject to the tides and winds and other more minor deviations. That surface is an equal potential surface of W. It is a
slightly flattened sphere, an ellipsoid in fact, stretched at the equator by the centrifugal force. This surface is called the
Earths geoid.

5.1

Gravity and the Curvature of the Earth

Analytic geometry can be used to find a relationship between the local gravity gradient and the curvature of the geoid.
Begin with the equipotential surface of W
j

where x
1

x,
1

W
y,
1

W
x


W
y


W
z


x


(5.6)

z and g is the local gravity defined in (4.8).

On the level surface by definition W 0 so g x 0, which means that the gravity is normal to the level surface, as it
should be. To find the vertical gradient of the gravity requires a little thought as to what vertical really means. The ordinary
definition of vertical when standing on the Earths surface is the direction opposite to which things fall, often called the
plumb line. This is a very fine definition, but one point is often overlooked. Suppose an airplane flies directly overhead as
we stand considering which way is up. Apparently by directly overhead we mean that the airplane lies at that moment along
a line through the point on which we stand and extending upwards parallel to our local sense of vertical. The rub is that at
the position of the airplane, far above the Earths surface, the direction of the local gravity is not parallel to our local plumb
line. Although it can be shown analytically, it is fairly clear that the gravitational lines of force defined by (5.5) are not
straight. They would be straight if the Earth was a non rotating spherical mass but since they are not straight theres a slight
quandary as to how to define height. The solution is a standard one, define two heights suitable for different purposes. The
ordinary altitude h is the distance along the straight line normal to the geoid. While the height more closely related to the
gravity is called the orthometric height H and is measured along the curved lines of gravity. The differential of H is therefore parallel (well anti parallel) to g.

g
where g

g H
0

(5.7)

The great advantage to this expression is the simplicity of the vertical gradient of the gravity in terms of H
j

W
H


(5.8)

Now consider the local curvature of the ellipsoid. In one dimension the curvature of y

f x is

y
l

1


2 32

For a local level surface the first derivative is zero by definition so the curvature is simply

(5.9)

38

LV1b_IMU0.03

2y
0

(5.10)

x2


0

Define a local x, y, z coordinate system on the surface of the geoid with the z axis parallel to the local gravity. Then the
2z
curvature along the x z plane where y 0 is just x
x2 this curvature can be related to W by considering its
derivative in the x direction, remembering that y 0 and z is a function of x.

j
0

W
x


W
x


W
z

z
x


(5.11)

This is zero by the definition of the local level plane. Take the derivative again to get
2W
j

x2


z
x


Because the z axis is parallel to


plane as

z
1

z x

2W
j

z
x


0
(5.12)

z
x


0 and (5.12) implies


W
z

x2

H
n

2W

z
2
x
x z x
2W
W 2z
2
z
x2
x z

x
1

x2
j

2W

2z

W
z

2W

H,
1

x2
0

z
x

2z
0

Again since we are on a local level surface,

z2
j

2W
j

x2
j

z2
j

2W
j

2W
j

(5.13)

z so using (5.8) and (5.13) in (5.10) gives the curvature in the x z


n

(5.14)

(5.15)

Likewise the curvature in the y z plane is


2W
j

y2

Restating (5.5)
2W
j

W


x2

2W
j

y2

2W
j

z2

4 G
e

2


(5.16)

Recall that when the x, y, z coordinate system was defined, the z axis was carefully chosen to be parallel to the local
gravity, but that the direction of the x and y axes was not specified other than by normality which requires them to be
mutually perpendicular and to lie in the local level plane. Since the third term of the middle equation in (5.16) does not
depend on the choice of directions for x and y, the remainder of the equation cannot depend on the choice of direction either.
That is the sum of the x and y second derivatives is independent of the rotation of the xy plane. This observation motivates a
definition involving the curvatures in (5.14) & (5.15). Define the mean curvature J at a point on a surface as the average of
the curvatures measured in the intersection of the surface with two mutually perpendicular planes that include the surface
normal at the point of measurement. So for our case

LV1b_IMU0.03

39

2W
j

1
2


1
2g

y


x2
j

2W
j

(5.17)

y2
j

The minus sign in (5.17) is only a convention wherein positive curvatures are preferred.
Putting (5.17) into (5.16)
2W
j

2g J


4 G

z2

2


2


(5.18)

Again referring to (5.8)


2W
j

z2
j

W
z


W
H


g
H


(5.19)

Which gives at last

g
H

4 G

2


2


2g J

(5.20)

This is an interesting equation which will prove useful later. Originally derived by Bruns in 1878 it relates the gravity
gradient which we need for inertial navigation, to the mean curvature, which is something that can be calculated based on
position.

5.2

Assumed Gravity

The main problem for gravity modelling is to find the value to the gravity at a given point. To do this consider the gravity
potential function W defined above.
The gravitational potential V has a nearly spherical symmetry, so it seems reasonable to expand it in spherical harmonics.
This procedure is only valid outside the surface of the Earth since the spherical harmonics are literally harmonic functions
of zero divergence. The basic equation for V is (5.2) whose only parameter of geometrical interest is l which represents the
distance between the point at which the potential is to be found and the infinitesimal mass element. The factor 1/l can be
expanded into spherical harmonics using a formula which derives from the zonal harmonics [14].
o

1
l


Pn Cos
rn 1


r n Pn Cos
@

n 0
Y

(5.21)

2


m 1

n
n


m
m


Rn m ,
rn 1
p

r n Rn m

Sn m ,
rn 1
p

r n Sn m
@

Here the un primed coordinates are those of the point at which the potential is to be determined and the primed coordinates
are those of the infinitesimal mass element. The Rn m and Sn m are surface spherical harmonics while Pn Cos
is the
Legendre function with m 0.
-

Carrying out the integral of (5.2) with the expansion for 1/l gives

40

LV1b_IMU0.03

n
o

Rn m ,
rn 1
p

An m


n 0m 0
Y

where for m

Sn m ,
rn 1
p

Bn m

(5.22)


An 0

r n Pn Cos

G


m
@

(5.23)

and for m
s

An m

2


n
n


m
m

r n Rn m

G


,
@

(5.24)

(5.25)

Bn m

2


n
n


m
m


r n Sn m

G


,
@

The spherical harmonics are well known, the first few are

R0 0
r R1 0
r R1 1

1
z
x


r2 R2 0

r2 R2 1
r2

R2 2

S0 0
r S1 0
r S1 1


1
2


x2

1
2


y2

z2


x2

r2 S2 0

3 y2

r2

S2 2

(5.26)

0


r2 S2 1

3xz


0
0
y


3yz


6xy

Applying the actual harmonics to the zero order coefficient of the potential V gives
0

A0 0


R0 0

m
@

G


GM


(5.27)

where M is the mass of the Earth. Likewise the first order terms are

A1 0


z
@

m , A1 1

G


x
@

m , B1 1

z
@

(5.28)

Considering the first order terms, recall that the x coordinate of the center of mass in rectangular coordinates is given by

x center of mass

1
M


(5.29)

LV1b_IMU0.03

41

Therefore all the 1st order terms in (5.28) are proportional to the coordinates of the center of mass. If the coordinate system
has its origin at the Earths center of mass, which it does, then all these terms are zero.
Here are the second order terms

A2 0

1
G
2


2z

2
0

m,

A2 1

G


x z
@

m , B2 1

y z

A2 2

m,

(5.30)

1
G
4


m , B2 2

1
G
2


x y

Three of these are in the form of products of inertia x z etc. . These will vanish if any of the axes of integration are along
the principal axes of inertia. This is the case for the z axis which is in fact the axis of maximum inertia, so two of the three
are zero. The remaining product of inertia involves x y this will vanish if either the Earth is perfectly rotationally symmetrical or if one of the x or y axes happens to land on a primary axis of inertia. In general neither point is true. To simplify the
remaining equations define
%

Ix


Iy


Iz


(5.31)

y


Ix y

x y


The various Ix , Iy , Iz can be recognized as the moments of inertia defined about their respective axes, while Ix y is the
product of inertia in the x y plane. With these definitions the low order coefficients of V become

A0 0
A1 0

GM
A1 1 B1 1


A2 0

A2 1

G Ix

B2 1


A2 2
B2 2

1
2

1
4
1
2


Iy


0


2 Iz
(5.32)

G Iy


Ix

G Ix y

Although the principle axes of inertia arent specified, in theory the x and y axes could be aligned to them. If this were done
then the B2 2 coefficient would be zero. Substituting (5.32) with B2 2 0 into (5.22) and using (5.26) gets a second order
approximation for V in terms of the spherical harmonics

42

LV1b_IMU0.03

V
Ix


GM
r


G
r2


1
Iz
2


Iy


3 Cos


2
p

3
Iy
4


Ix Sin

2
p

Cos 2
r

O


1
r4


(5.33)

This can be converted into rectangular coordinates

GM
r


G
2 r5


Iy

Iz


2 Ix x2


Iz


Ix


2 Iy y2


Ix


Iy


2 Iz z2


O


1
r4


(5.34)

This expansion for V is useful particularly when r is very large. For r closer to Earths surface it would be nice to preserve
the squashed spherical nature of the planet without carrying so many terms. What (5.34) does is to approximate the true
gravity of the Earth as the gravity of a sphere, and give first order corrections for the errors in doing so. A slightly better
approximation, which has been mentioned before is to assume that the Earth is a ellipsoid. Once the ellipsoidal form has
been assumed further deviations can be considered small, and therefore linear corrections to the gravity field (so called
gravity anomalies). To be precise, what is desired is to define the geoid as an equipotential surface of W. Then the potential
everywhere outside the geoid is completely determined and depends on only four parameters namely the total mass of the
Earth M, the angular velocity of the Earth and the semiaxes of the ellipsoid a and b. This approximate gravity potential U
and associated field will be referred to as the assumed gravity. Whether an ellipsoid is really any better than a sphere in
approximating the gravity will only be clear once both approximations are in hand. Its probably the case that which is best
is application dependent.


The equation for an ellipsoid of revolution in rectangular coordinates is

x2


y2


a2

z2
b2


(5.35)

This equation can be rewritten into an ellipsoidal coordinate system where we take the reference surface to be an ellipsoid
of revolution with constant linear eccentricity E
a2 b2 centered at the origin and whose axis of symmetry coincides
with the z axis. The coordinates of a point P are then determined by parameter u the semiminor axis of an ellipsoid passing
through P, by the polar angle and by the longitude which is measured relative to the x axis. Using these definitions the
coordinate transformations are

x
y

u2


E2 Sin


u2 E2 Sin
z u Cos


Geometrically the quantity


written as

u2

Sin
u

(5.36)
v

E2 is the semimajor axis of the ellipsoid through point P. This being so (5.35) can be


x2
u2


Cos
u

y2
E2


z2
u2


(5.37)

1


It is often convenient to use the so called reduced latitude in place of . Define reduced latitude as
t

90


(5.38)

is therefore similar to the ordinary latitude, zero at the equator and 90 at the poles, it is not quite the same however
because the geographical (that is ordinary) latitude is the angle from the equatorial plane to the vertical plumb line at the
point of interest. However the plumb line does not usually pass though the center of the Earth.

LV1b_IMU0.03

43

The intention in introducing ellipsoidal coordinates is to expand the assumed gravity in ellipsoidal harmonics, analogous to
the spherical harmonics. To do this will require the Laplacian operator 2 in ellipsoidal coordinates which in turns requires
the element of arc length.
c

x


y


z


(5.39)

where
j

x
u
y
u
z
u

x
0

y
0

(5.40)

z
0

working out the differentials from (5.36) and substituting into (5.39) yields

u2

E2 Cos
u2 E2

2
2

u
0

u2


E2 Cos


2
0

u2


E2 Sin


2
0

(5.41)

This reduces to the arc length for spherical coordinates when E

0 as it should.
`

(5.41) represents an orthogonal coordinate system. This is shown by the lack of mixed differentials such as
u , or
in the terms of the equation. An orthogonal coordinate system is on in which the family of surfaces
generated by holding one coordinate constant and letting the other coordinates range over all possible values never intersect.
The Laplacian can be expressed in a form which holds for any orthogonal coordinate system. Suppose that an orthogonal
coordinate system has coordinates q1 , q2 , q3 and an element of arc length
t

s2
0

h21 q1 2

h22 q2 2

h23 q3 2

(5.42)

then the Laplacian is given by


j

2
h

1
h1 h2 h3


q1

Applying this to the case at hand let u


d

h2 h3
h1


q1 ,

u2

Sin

u2


E2 Sin

h1 h2
h3

q2

q3

Performing the indicated differentiations yields

q3

(5.43)

u2 E2 Cos
u2 E2 Sin


h3 h1
h2

q3

2
u

q2

q1
q2 ,

1
Cos


E2


Sin

(5.44)

2
j

44

LV1b_IMU0.03

2
d

2
j

2


u2

2u

2
j

u2
j

1
E2 Cos

Cot

2


Again this reduces to the spherical case as E

u2
u2

2
u

E2 Cos
E2 Sin

(5.45)

2
j

2
j

0
`

The solution for V is now found by the same technique used for solving Laplaces equation with spherical harmonics. First
V is assumed to be separable, that is of the form

V u, ,
u

f u g


h
u

(5.46)
v

Putting this into Laplaces equation

All the
,

1
f


u2

E2 f


2u f

dependence is through h so h
%

u2
u2


1
g
g


g Cot

2


Sin

h
%

E2 Cos
E2 Sin


2
u

h
h
l

u2


(5.48)

E2


(5.47)

m2 . The factor for m can be split into parts




E2

u2
u2


h must be constant say h


%

E2 Cos
E2 Sin


Making these substitutions and separating the variables on the left and right

1
f


u2

E2 f


E2

2u f

u2

m2

E2


1
g
g
F

g Cot

m2


Sin

(5.49)

The left and the right are functions of independent variables, so they must be constant, by analogy to the spherical harmonics that constant is taken as n n 1 now the Laplace equation separates into three equations


u2

Sin

E2 f


g
u

2u f

Cos

nn

m2 h

h
l

nn

1


E2


u2

1 Sin


m2 f

E2


m2


Sin

(5.50)

(5.51)

(5.52)

The and equations are exactly the same as for the spherical harmonics, the u equation is different but very similar. As
with the spherical harmonics make the substitution t Cos and also make the trial substitution
u E then the u and
equations become
t

2


m2

2 f
z

nn


(5.53)

LV1b_IMU0.03

45

t2 g
|

2t g
{

nn

m2

1


t2

(5.54)

The overbars indicate that the f and g are expressed using the transformed variables t and .
x

These equations are now in the form of Legendres equation with solutions Pn m & Qn m being Legendre functions of the
first and second kind.
The Qn m are divergent for real arguments, but are suitable for the complex argument , therefore the solutions are
x

f u

Pn m u E
Qn m u E
Pn m Cos
Cos m
Sin m
}

g
u

(5.55)

h
v

where n and m
a

n are integers.

There are therefore two families of solutions for V namely those involving the Pn m and the ones with the Qn m . The family
of Pn m solutions are harmonic inside the ellipse, while the Qn m are harmonic outside. ForEarth gravity the Qn m are clearly
the desired solutions. Further the assumed gravity is rotationally symmetric, so there can be no dependence, so m must be
zero. The gravitational potential can then be written
,

Qn
o

V u,

n 0
Y

Qn

u
E
b
E


An Pn Sin


(5.56)


In this equation the reference ellipsoid with semiminor axis b has been introduced. This is a constant factor so does not
effect the solution of Laplacess equation but it has the effect of cancelling the imaginary parts so that all the coefficients An
are real. The reference ellipsoid will become the surface of the Earths geoid.
Recall the centrifugal potential
h

from (5.4)
i

1
2


x2

y2


1
2


u2


E2 Cos

(5.57)

This can be combined with V to write the total gravity potential

Qn
o

U u,

n 0

Qn

u
E
b
E


An Pn Sin


1
2


u2


E2 Cos

2


(5.58)

This potential has been labelled U rather than W to distinguish the assumed gravity potential U from the real gravity potential W.
The boundary condition on U is U

U0 when u

b that means

An Pn Sin
n 0
Y

1
2


b2


E2 Cos

2


U0

(5.59)

46

LV1b_IMU0.03

The coefficients of the boundary value problem can be found be application of a standard trick (technique). If the equation
can be rewritten into the form An Pn 0 where all the dependence is in the Pn then it can be concluded that all the An
are zero. To do this refer to the definition of the first few Legendre polynomials.


P0
P1 t


P2 t
P2 Sin

1
t


(5.60)

3
2


t2

1
2


can be manipulated to get

Cos

2


2
1
3


P2 Sin

(5.61)


Now (5.59) becomes


o

An Pn Sin

n 0

1
3


2


a2

1
3


2


a2 P2 Sin


U0


(5.62)

where a2

b2


E2 has been used

Each coefficient of the Pn can be isolated

A0

1
3


2


a2

W0 P0 Sin


(5.63)
o

A1 P1 Sin

A2


1
3


2


a P2 Sin


An Pn Sin


n 3
Y

Because the entire equation is zero for all values of

and the An do not depend on , the An must individually be zero.

Solving for the An and putting the result into (5.56) gives a solution for V

V u,


U0


1
3


Q0


u
E
b
E

Q0

1
3

Q2

Q2

u
E
b
E


P2 Sin


(5.64)

The Qn are

Q0 u E


Q2 u E

Tan

1
2


1


E u
3 u2 E2 Tan

1


E u


3u E

(5.65)

Let

and q0 be q evaluated at u

1
2


1


3 u2 E2 Tan

1


b, then (5.64) simplifies as

E u


3u E

(5.66)

LV1b_IMU0.03

47

V u,
In the limit as u
`

U0


1
3


2


a2


Tan
Tan


1


E u
E b


1
2


2


a2


q
Sin
q0


1
3


(5.67)

Tan
Noting that r2

x2

y2


z2


1
3


u2 E2 Cos

U0


E
u

1


2


2


E
u


1
u3

(5.68)

the limit of (5.67) can be taken as r

a2


Tan

E b

1
r


as

1
r3


(5.69)

Taking the same limit in (5.34) gives

GM
r


1
r3


(5.70)

Solving for U0

U0

GM
Tan
E


E
b


1
3


2


a2

(5.71)

If the value for U0 is put into (5.67) and the term for centrifugal force (5.57) is added the expression for the assumed gravity
is found to be

U u,

5.3

GM
Tan
E


E u

1
2


2


a2


q
Sin
q0


1
3


1
2


u2


E2 Cos

2


(5.72)

Gravity on the Ground

To find the assumed gravity on the reference ellipsoid the gradient of U in (5.72) can be evaluated for u b. To find the
gradient, the differential of arc length can be used to get the differential of the various coordinates. The arc length from
(5.41) is

s2

w2 u2

w2 u2

E2


2
0

u2


E2 Cos

2


2
0

(5.73)

where

u2

E2 Sin
u2 E2


2


So, allowing only one variable to change at a time the differentials are found to be

(5.74)

48

LV1b_IMU0.03

su

w u


s
0

u2

Let
R

u2

E2


(5.75)


E2 Cos


U be the assumed gravity force then


U
su

1
w


U
s


1


U


(5.76)

u2 E 2

U
s

U
u


1


U


u2 E2 Cos

The

component is zero due to the rotational symmetry of the assumed gravity.

Doing the partial differentiations gets

w


GM
2
u E2


1 2 a2 E q
Sin
2 u2 E2 q0
{

a2

w


u2

E2


q
q0


2


u2

1
3


E2 Sin


2


Cos


u Cos

(5.77)

(5.78)


with

u2

q
{

E2


q
u


3 1

u2
E2


u
Tan
E


E
u


Recalling that b2 E2 a it can be seen that (5.78) is zero on the ellipsoid u


construction the assumed gravity is normal on the geoid.

Since on the geoid w0

1
a
F

b2

E2 Sin


1
a
F

a2 b
, e
GM

a2 Sin

2


E
, e
b


b2 Cos

2


2


(5.79)

b. In fact this has to be true since by

, and making the standard substitutions

E
a


(5.80)

where e is called the first eccentricity, e is the second eccentricity, and m is a standard abbreviation in physical geodesy. m
is a dimensionless ratio of the centrifugal force and the gravitational force. It will occur throughout what follows.
%

The gravity on the geoid

can then be written as

GM


a2 Sin

q
m
e 0 Sin
3
q0
{

b2 Cos

2


Define the equatorial and polar gravity on the surface as

q
m
e 0
6
q0
{

1


Cos

2


(5.81)

LV1b_IMU0.03

49

a


GM
1
ab


90

(5.82)

GM
1
a2


q
m
e 0
6
q0
{

q
m
e 0
3
q0
{

(5.83)

These can be related using a formula inspired by (5.93) which can be verified by direct substitution

a


b


a


2


e q0
2 q0
{

(5.84)

This is a precise relation between the shape of the Earth and the gravity force measured at the extremal points of the equator
and the poles.
The formula for

can be cleaned up by writing it in terms of the extremal gravity values

a


Sin

b


a


Cos

(5.85)


a2

Sin


b2


Cos


The reduced latitude is related to the geographical latitude

Tan

b
Tan
a

by the exact formula


+

(5.86)

so the gravity becomes

a


a


Cos

b


b


Sin

(5.87)


a2

Cos
r

b2


Sin
r

This formula is exact for the assumed ellipsoidal gravity at the geoid. It was first derived by Somigliana in 1929.

5.4

Series Approximations for Gravity Above the


Ground

The Earth clearly approximates a sphere. Therefore the Earths gravity may be approximated in a power series using the
smallness of the aspherical parameters. The small parameters are the various eccentricities of the Earth such as E , e and e .
The expansions here will be to second order retaining eccentricities of the fourth power. These series will be used
%

Tan

1


e


q
q
b

2


1
3

1
15
1
15
a


1 e 2

1
5
2
35
2
35


a 1

1
e7
7
3
5
e7
63
3
4
e6
63
1
e 2 38
2
5

(5.88)

e
@

4


50

LV1b_IMU0.03

Applying these series to (5.71), (5.82), (5.83), and (5.84)

U0
M

GM
1
b


a


a


1
e
3


1
e
5


3
m
2

b


GM
1
a2

b


GM
1
ab

1
3


a2

3 2
e m
14


(5.90)

3 2
e m
7


(5.91)

5
2


2


9
e
35


(5.89)

(5.92)

If the last equation (5.92) is truncated to first order it may be written as

f
The new symbols f and f

f


5
2


2


(5.93)


are dimensionless numbers called the ellipsoidal and gravity flattening and are defined by

b


a


(5.94)

Equation (5.93), which is a low order approximation of (5.84), is known as the theorem of Clairaut and was originally
published in 1738.
Referring to (5.80) the parameter m can be approximated by using (5.90) whereby
2


a


3
2

(5.95)

Using the series

1
M

2


3


(5.96)


m may then be found from the relation


2


a
M

3 2
m
2


(5.97)

The approximate form given here is suitable for some purposes, but since m is a constant it is advisable to check the accuracy of any approximations.
By the same series expansion (5.96), the (5.90) can be manipulated to get

LV1b_IMU0.03

51

GM

ab
M

3
m
2

3 2
e m
14

9 2
m
4


(5.98)

which is a means of weighing the Earth by measuring its gravity. (???Check if better way)
Using this result the mass can be eliminated from (5.89) replaced by

U0
The


a
M

1
e
3


11
m
6


1
e
5


2 2
e m
7


11 2
m
4


(5.99)

dependence has been removed by application of the definition of m

Returning to (5.87) as rewriting slightly


b b a a
a b

a


Sin

(5.100)

a2 b2
a2


Sin

Now apply these series




1
1 x


1
2


3
8


x2

a2 b2
a2
b b a a
a b


e 2
1 e 2


(5.101)

e
M

5
2


13
7


e2m

15
4


m2

to get

1
e
2


5
m
2


1
e
8


1
e
2


13 2
e m
7


5 2
e m Sin
4


15 2
m Sin
4


(5.102)

The series approximations given are usually expressed in terms of the flattening f which is of the same order as m. To do
this use yet another series

2


f


2


2f
M

3 f2


(5.103)

Now rewrite the big three equations in terms of f (all second order)

GM

U0


ab

2
f
3


3
m
2


11
m
6


3
fm
7


4 2
f
5


9 2
m
4

4
fm
7


(5.104)

11 2
m
4


(5.105)

52

LV1b_IMU0.03

1


5
m
2


1 2
f
2


26
fm
7


15 2
m Sin
4


1 2
f
2


5
f m Sin
2


(5.106)

It is conventional to further rewrite the last equation by auxiliary coefficients

a


f2 Sin


f4 Sin


(5.107)

so that

f2
f4

5
2
1 2
f
2

5
2


1
2


f2

4
r

Sin


26
7


fm

15
4


m2
(5.108)

fm

By making the observation that to second order f2


identity

Sin

2


f4


1
Sin 2
4


( f

being the gravity flattening) and applying the trig

(5.109)

The gravity (5.107) can be put in yet another form

a


f


Sin

2
r

1
f4 Sin 2
4


(5.110)

Now that perhaps too many expressions are available for the assumed gravity at the surface, the original gravity problem
can finally be tackled, which was to find the gravity above the surface given the position. Evidently the gravity will depend
on altitude h and latitude , but not on longitude since the assumed gravity is rotationally symmetric. To find the gravity
function employ a power series in h.
+

1
2

h2
j

h2

(5.111)


Only terms upto second order will be retained in this approximation, which it is hoped, is justified by the smallness of h. To
get the first derivative make use of Bruns formula (5.20) where
0 and therefore
g

Expand the gravity in a power series around zero altitude


j

The equality of g and


geoids surface.

g
H


2
j

1
2


h2
j

h2

(5.112)



j

2


2 J

(5.113)

is by definition while the replacement of H by h is justified because the derivative is taken at the

The curvature of the ellipsoid is given to first order in f by

LV1b_IMU0.03

53

J
M

b
1
a2


2 f Cos

(5.114)

so
j

2
a

b
1
a

2


2f

2 f Sin


(5.115)

Making use of the first order approximations

b
a

1
M

f ,


2


m
M

(5.116)

the derivative to first order becomes


j

2 m
a
2
1
a

2
a

1


f 1


2f


2 f Sin


(5.117)

m


2 f Sin

The second derivative is calculated from the spherical approximation


j

GM
,
a2


2
j

2GM
,
a2


h2


6GM
a4


6
a2

(5.118)

Combining these results gives the desired formula

h,

2
h1
a


2 f Sin


2


This can be made slightly more convenient by considering the difference


in f and m

2
a

5
m Sin
2

1


f


m


3f

h


3 2
h
a2


(5.119)

using (5.102) and holding only terms linear

3 a 2
h
a2

(5.120)

The last two equations are suitable for inertial navigation. They can be made more precise by using higher order approximations to (5.110) or using an exact expression for assumed gravity like the gradient of (5.72), or terms could be added to
account for local gravity anomalies, which would require that a gravity map of the area was online. On the other hand for
LV1b simplifications could be made by just ignoring the variation with altitude, or by precomputing the latitude, or linearizing latitude variations. What sort of gravity model is appropriate depends on the system accuracy requirements.

54

LV1b_IMU0.03

6 Quantifying the Initial Design


This chapter is could have been placed much earlier in the document, and each section herein could logically be placed
within other chapters. The organization chosen here is meant to match the approach of someone unfamiliar with the techniques used. The first chapters hopefully have addressed the question of how an orientation system might work. This and
subsequent chapters explore the application of the more theoretical material to the specific problem of LV1b.
To begin the more concrete design, the major inputs and outputs of the orientation system are assigned quantitative values.
These in turn are used to guide the tradeoffs made in the design of the orientation system. Its a harsh reality that there will
not be time to explore all the tradeoffs that need to be made in detail, so estimate and argument will sometimes replace the
indisputable facts. This is the most common situation in engineering, where it is the intelligent use of a truncated search that
marks a good systems designer.
On LV1b there is a great deal that is not known about the sensors and how the orientation system will behave during flight.
Part of what this experience is about is finding out how things work, and towards this end the project is not always timid
about trying things of uncertain reliability. It could be argued that some of what is done is not smart, and maybe so, but
whats really going on is a tradeoff between the time to complete a launch vehicle versus the reliability of that vehicle. This
tradeoff is always in consideration as the design proceeds.

6.1

System Inputs

The fundamental input to the orientation system is the motion of the vehicle. The motion is considered to consist of accerleration, velocity, position, angular acceleration, angular velocity, and attitude, that is pitch, roll and yaw. Since the motion is
three dimensional this gives a total of 18 numbers describing the motion. The dynamic range of theses parameters will now
be estimated.

Attitude
Due to the nature of rocket flight any flight angle can be assumed to occur. The application of sucessive rotations about
perpendicular angles to specify attitude is refered to as rotation by Euler angles. This formulation is bothersome in that the
combination of rotations that leads to a particular attitude is frequently not unique. Since Euler angles are often, though
perhaps unadvisadely used for control, it is very objectionable for them to be discontinuous. For LV1b the main computation of attitude utilizes the quaternion representation which lacks this sort of singularity, but it is not obvious at this point if
a derivation of the Euler angles from the quaternions can be had that is inherintly continuous, or if a contiunous output
needs to be generated using the Euler angles from the previous time step as a reference???
Another interesting consideration is the proper reference in which to take the attitude. Though for some purposes the
attitude clearly has to be expressed in the navigation frame, and aerodynamically important parameter is the attitude of the
airframe with respect to the free stream. It is quite likely that eventually some sort of slip stream sensors will be added to
allow precise alingment of the airframe to the apparent wind. Then the delta attitude (angle of attack) from the velocity
vector to the airframe attitude would be known more precisely than the attitude itself. Also the Euler angles used for angle
of attack would tend to be smaller than the attitude angle in the navigation frame. Further, considering that the velocity
vector is a lower order integration, and is better observable, and since the angle of attack is probably always of interest, it
may make sense to compute angle of attack as a primary orientation value and derive navigation frame attitude by the
summation with the unit velocity vector.

Another interesting consideration is the proper reference in which to take the attitude. Though for some purposes the
attitude clearly has to be expressed in the navigation frame, and aerodynamically important parameter is the attitude of the
airframe with respect to the free stream. It is quite likely that eventually some sort of slip stream sensors will be added to
LV1b_IMU0.03
55
allow precise alingment of the airframe to the apparent wind. Then the delta attitude (angle of attack) from the velocity
vector to the airframe attitude would be known more precisely than the attitude itself. Also the Euler angles used for angle
of attack would tend to be smaller than the attitude angle in the navigation frame. Further, considering that the velocity
vector is a lower order integration, and is better observable, and since the angle of attack is probably always of interest, it
may make sense to compute angle of attack as a primary orientation value and derive navigation frame attitude by the
summation with the unit velocity vector.
The last point raises another interesting idea. Perhaps the attitude could be expressed in some form other that a Euler angle,
as a straight vector, or a unit vector with separate magnitude, or a vector rotator, of quaternion. Partly this is a question for
the control designer, and further discussion is needed.
The other part of the dynamic range question is of course how small an angle to keep track of. A guiding principle in the
selection of computational precision is that the processing add less error to the result than the measurement, and barring
computational constraints that is the goal here.
Instead, can put the calculations here, explain the order as correct for the design process???
Actual calculation of the angular noise floor will need to wait for sensor noise figures to be determined in the next section,
but the general formula can be had now. For LV1b the attitude is found in two ways, by the GPS velocity vector, and by the
integration of the angular rate sensed by the gyros. To find the accuracy avaliable for angular determiniation the two
measurements must be compared and the one with the smallest error will determine the required precision.
If the gyros make an unbiased measurement with standard deviation g then the angular position has standard deviation
g T where T is the time between angular updates. For LV1b use the rule of thumb that the calculation is accurate
enough if it increases the error by less than 1/4 over that of the perfect calculation. Further assume that 4 levels of calculation lie between the attitude and the position, position being the parameter most subject to calculation errors. Then if it is
supposed that the errors accumulate about equally for each level of calculation the precision of the attitude calculation
should be 2.7 times more accurate than the error in angle. This comes from splitting the error bound 4 ways, and recalling
that the standard deviations add in quadrature. In fact there is a slight reduction in angular error due to the low pass filtering
applied, but the reduction is not very great, at least during anyting but lathargic manuvering, due to the need to maintain
bandwidth. No more than a factor of 3 could be credited to this effect, and this is probably too high.
'

'

The GPS error will be considered later. Due to the low update rate, the GPS will have experience no noise reduction from
external filtering.

To summarize the calculation of angular noise floor, the angular measurement noise for both possible sources is calculated
and the smaller taken. This is reduced by 2.7, and a extra factor of about 3 in the case of the gyros. The primary use of this
figure is to select the bits of precision used to represent angle. Since the choice is made in multiples of 8, hopfully it is not a
tough one. The required precision may also guide the rounding decisions in subsequent processing.

Angular rate
The angular rate is, along with the acceleration, a key element of the inertial state vector, and is the quantity directly targeted by the gyros. From a flight operations perspective there is a considerable difference between the roll axis and the other
two axes. It is possible that a fairly high roll rate could be sustained during what was otherwise a normal flight. This is a
cause for some concern because the specification of the gyros is 90/s thats only 1/4 Hz! This is very bad and sort of sad,
but frankly may not even be true. The gyros are not well characterized at this point??? and the manufactures specs may be
wrong. On the bright side, at the higher roll rates the centrafugal accelerations begin to show up in the accelerometers due to
lever arm effects, so if the gyros were even a little better understood it might be possible to make a smooth transition from
gyros to accellerometers as the roll rate picked up while maintaing a moderate noise floor. Currently 1Hz is considered the
minimum design goal for roll rate and the computations will be scaled accordingly. During asscent it is expected that the
angular rates on the pitch and yaw axes will be much less than 1Hz, but the computations will be scaled the same partly for
reasons of symmetry but also because to the more violent rolling that can occur on the paracutes during descent.
To find the minimum angular rate refer to the section on attitude above. The gyro error is g . It should not prove a burden
to maintain mumeric precision 3 times more accurate than this, which would only contribute 5% to the error.
'

56

LV1b_IMU0.03

Angular acceleration

The angular acceleration is a second rate item on LV1b. No sensor targets it and it is not normally reported outside the
orientation system??? The functionality of angular acceleration is mostly in the selection of the inertial state vector from the
sensors using the generalized inverse. This specific technique is of interest here because it is, as far as we know, original to
this project. Peak accelerations can of course be quite large at high frequencies without having large aphlitudes or high
energies. For our purposes the angular acceleration is only measured at one of the lower rates(probably the m rate???), so
that substantial averaging reduces the high frequency content.
It seems important both to capture the limit of detectability for angular acceleration, and to avoid overranging the high end
because of the potential interest in the vibratory environment. If the acceleration from zero to the maximum rate (~1Hz) in
one m rate can be captured, at least within a factor of four or so, and the minimum detectable acceleration can still be
represented in a reasonable word size, then that is good enough.
To find the limit of detectability (1.3) can be used, so the threshold can be taken as the point when the magnitude of s just
equals the accelerometer noise floor.

Linear acceleration
The most important thing an IMU measures ts the linear acceleration. Of course without angular measurments the acceleration isnt too useful, but with GPS aiding techniques and some lever arm compensation accelerometers are all you really
need. The signal the accelerometers measure can reasonably be classified as consisting of two components. The lower
frequency part relates directly to the large scale motion of the vehicle and can be thought of as those accelerations caused by
manuvering, while the high frequency part shakes the vehicle without much changing its postion, this is identified as
vibration. The gyros also experience vibration but they are so poorly characterized that its hardly known what this will do
to them, and any way its thought that the vibratory environment is not strongly driving the rockets rotation compared to
the translational modes, so if the gyros can reject translational vibration, they should be fairly quiet.
The vibratory enviornment is one of the big unknowns on LV1b. The rocket moter is acoustically very loud and it may have
large energy output at frequencies from near zero into the audio range. Large vibrations can saturate the IMU even if the
low frequency components are in the linear range, causing large errors. Also small errors in the handling of large signals
that should average to zero can cause a rectification error where an apparent motion is sensed even though none is occuring.
What the kinds of vibrations are present in the flight environment is one of the things LV1b is supposed to find out, but not
knowing before hand creates design uncertainty. In an attempt to compensate for these uncertainties the sample rate has
been kept high (about 1kHz) and the dynamic range widened to the extent thought affordable to try to assure that valid
measurements can be made.
One clear point is that the IMU platform should be isolated from vibrations at frequencies higher than about 1/2 the sample
rate. The instrumentation is of course electrically filtered down to below this threshold, but mechanical filtering is highly
desirable due to the possibility of saturation or energy leakage in the filter tails. Further the inertial sensors have mechanical
resonances in the the multi kHz range and the the effect of exciting those resonances could include satutation even at low
amphlitudes or loss of accuracy due to either energy bleed past the input filter or possibly excitation of unknown in band
internal modes within the sensing elements.
The accelerometers fortunately have a decent spec. sheet so the noise floor is readily calculated. Again the goal is to hold
the full dynamic range of the accelerometer output in a fixed point number. If The same assumptions are made as for
attitude above the numeric precision should be about 3 times the noise floor (which is in the 1 10 miligee range). The
maximum acceleration is about 10 gee so the dynamic range is no more than about 15 bits (and much less off centerline)

LV1b_IMU0.03

57

Velocity

The maximum expected velocity on LV1b is Mach 1 or ~300 m/s, but since velocity is the result of a low repetition rate
integration there is little harm in providing a much higher maximum velocity range than is needed, at least a factor of two.
The real issue for dynamic range of velocity is in the velocity increment over one m cycle. The maximum change is the
maximum acceleration times the m interval Tm . While likewise the minimum change is the minimum detectable acceleration Tm .
T

Position

As with velocity, the cost in terms of memory and computer time in keeping a large number of significant figures for
integrated position is quite small. Additionally the computation involved in integrating navigation frame velocity to navigation frame position is so small that it can be carried out using whatever precision is decided for the full velocity integral.
The dynamic range of the position increment is equal to the velocity increments dynamic range, it is the ratio of the
maximum to minimum acceleration which is less than 10 gee/1 milligee = 10 4 or 14 bits.
G

Flight modes and parameters

At turn on the orientation system is expected to sit with the rest of the rocket on the launch pad for an appreciable period of
time. This time on the pad provides a controlled environment where the various sensor biases can be estimated. The two
primary mechanisms for this are the comparison of sensed versus computed gravity and the assumption of a stationary
platform. While on pad the orientation system needs to make the stationary assumption to gain the best accuracy in bias
calibration, but as soon as the vechicle has launched the system has to shift into flight mode in order to track the flight path.
A reasonable way to do this is to implement an itchy trigger finger, where the orientation system, while recieving and
on pad signal and detecting an almost stationary environment is willing to make the stationary assumption, but if motion is
detected the system immediately shifts to flight mode. If the on pad signal persists and the motion ceases then the stationary
calibration mode can be reentered, but never if the on pad signal is absent.
The launch pad itself can have a few constraints placed on it. The launch position will always be near vertical. The expected
launch lattitude is within a few degrees of 45 N lattitude, though this may not be a necessary assumption. The launch
altitude is expected to be between sea level and 2000 m

6.2

Measurement Errors

The previous section demonstrated that to make definitive statements about the system a designer must know the limits of
sensor accuracy. Here is a partial list of elements that contribute to sensor inaccuracy on LV1b.

Modelling error
There are at least three ways to have the wrong model for a sensor. The best way is to neglect or approximate something
which is truly negligible, hopefully in order to get a simpler working model of the sensor. When this is done everybody says
"Good engineer", and its time to think stock option. Ideally a good model will evaluate what has been left out and show
why the neglected parts are neglibible. When this is not done its easy to encounter a second type of mistaken model, this
being one where important things are left out. The typical problem in this catagory is assuming something is constant when
it is not. This could be a scale factor, or a gain over frequency, or a coefficient of linearity. Another very popular thing to
get wrong is to assume two things are equal when they arent.
Despite the intellectual bad taste shown by neglecting aspects of a model that could be included, the practice of simplifying
the model deserves to be vigorously defended. Its an amazing truth that often very poor models work adequately well. Take
for example a thermistor. In section 1.4 it was stated that a thermistor is an exponential output device, but there are man
successful designs where a thermistor is treated as a linear device. Particularly if a system operates by feedback it is frequently desirable to make horrendous simplifying assumptions inorder to get to something cheap that works. This get it
done attitude will be in play at least to a small extent on LV1b because of the time constraints involved.

58

LV1b_IMU0.03

Despite the intellectual bad taste shown by neglecting aspects of a model that could be included, the practice of simplifying
the model deserves to be vigorously defended. Its an amazing truth that often very poor models work adequately well. Take
for example a thermistor. In section 1.4 it was stated that a thermistor is an exponential output device, but there are man
successful designs where a thermistor is treated as a linear device. Particularly if a system operates by feedback it is frequently desirable to make horrendous simplifying assumptions inorder to get to something cheap that works. This get it
done attitude will be in play at least to a small extent on LV1b because of the time constraints involved.
On the other hand, some modelling errors really are undesirable. These are in the catagory of wrong models. There are
models of course that are just absolutely contrary, that always (occasionally may be alright) give the qualitatively wrong
answer. It is to be hoped that really bad models can be identified without too much trouble. The more subtle problem is
where the bad model almost seems to work. For example sometimes it makes sense to use a linear approximation, but if the
approximation needs to be broken up piecewise, and then interpolated to try and get so many significant figures, then
perhaps going to the correct model, like say a tanh curve is really more desirable.
Here is the free advice on choosing a model. When an assumption is made, stop a moment and consider, what is the justification for this assumption, and what is being left out. If a simple order of magnitude computation can be shown to justify the
choice then great. If a detailed calculation is required then it becomes a question of expending resources versus managing
risk. Maybe someone else can be talked into doing the work?

There is a special issue concerning modelling and inertial mavigation. Because inertial nav. systems are so complicated, and
because the controlled testing environment can be hard to set up, and because so many interacting assumptions are made in
the software and algorithms. It is natural to do a lot of testing by simulation, which usually means comparing the INS
software to a related truth model which should make a minimum number of approximations. The problem with a truth
model is that is may be subject to exacly the same modelling errors as the test software, and further since it avoids approximation, its easy for the truth model to becomes very complicated. While for a simple INS like in LV1b it may be easy to
neglect entired catagories of terms as negligible, for the truth model what is desired is to quantify the errors made by
neglecting those terms. So either all the terms have to be retained, or the neglected terms have to be further sorted into those
that really do matter and thoses that are still negligible. Since this can easily be hundreds of terms the sorting task rapidy
becomes unpleasent. While the task of modeling all those terms is not necessarily fun. All that it seems can be done about
this situation is to stick with sound practice, try to make decisions which have large impacts on the workload early in the
process and double check important decisions.

Sensor noise
On LV1b the main sensors are the inertial sensors, the accelerometers and rate gyros. These sensors are characterized
primarily by two types of noise. The broadband white noise which is characterized per root Hertz, and the flicker (1/f )
noise. The white noise figure is a fundamental limit on sensor accuracy. A typical figure for our accelerometers is around 1
milligee per root Hertz 10 2 m2
Hz . So for example if such a sensor is measured over a bandwidth from 0 1kHz
G

the RMS noise measured would be

1000 Hz 10
G

2
F

m
s2
F

Hz

0.316 m s2 . If the resulting measurements where

then averaged over 1/10th of a second, that is 100 samples, the noise whould be reduced by a factor of
consistent with the new bandwidth of 10Hz.

100

10, which is

The flicker noise is an almost universal phenomenon which seems to arise from the ensemble action of a broad class of
systems with randomly interacting parts. For our inertial sensors the flicker noise manifests itself as a random walk in the
sensor bias. The LV1b inertial sensors are logic level devices that signal their outputs as an analog voltage within the range
of 0 5 Volts. Since they measure a bipolar quantity that may take either sign, they represent the zero value as a positive
offset voltage (bias). The measured value is then proportional to the output signal minus the offset voltage. The difficult part
of this is that the bias voltage is constantly changing by small amounts, following the 1/f statistic. This means that at sufficiently low frequencies, when the bias has had a long time to drift, the bias error can be arbitrarily large. Now in fact the
bias drift is only aproximately 1/f and bias error is really bounded, but it can still be quite large, and worse, since this low
frequency error is integrated in the INS, the resulting position errors grow very large over time. The solution to this problem
is the externally aided INS. The GPS is used to provide an approximately 1Hz reference signal to the IMU. This effectively
rolls off the 1/f noise at 1Hz and therefore keeps the magnitude of the error small.

LV1b_IMU0.03

59

Sensor failure

Adapting to sensor failure is too sophisticated a problem for LV1b except in one respect. It may happened from time to time
that a sensor might saturate temporarily. Since the accelerometer array has some redundancy this would not nessecarilly
result in any discontinuity in the data if handled properly. The trick to handling saturation is to first recognize the saturation
then to properly ignore the missing data. For this orientation system the process could be implemented in either one of two
places, or probably both. The determination of inertial state by the generalized inverse could be modified to cover the the
case where a redundant sensor saturates, and the Kalman filter feedback could be modifed to to ignore of derate missing or
partial measurements. These modifications are interesting, and will be considered further later.

Quantization noise

After the sensor noise the next source of error in the signal processing chain is the conversion from analog to digital values.
There are a host of potential errors introduced by the digitization process. The most obvious ones are due to the finite
number of bits and the periodic sampling used to represent the continuous analog value. LV1b uses a 12 bit AD converter at
a moderately high sample rate. The sensor noise is generally many times higher than the quantitization noise, so this noise
source is negligible. Quatitization noise is statistically a white noise source with magnitude 2 A2 T 2 2 N W, where N is
6
the digital word length in bits, A is the total span of the digital word expressed in whatever units are being measured, W is
the bandwidth in Hertz over which the measurement is taken (must be in the range of 0 to 1 , for greater bandwidths, no
2T
extra quantization noise is added if the assumptions under which the original expression is derived hold), and T is the
sample time. A necessary condition for the quantization noise to be assumed to be white noise is that the measured signal is
uncorrelated with the sample clock, that would seem to be the case here.
G

'

Other digitization errors include aperture error, jitter, and nonlinearity. None of these problems are significant on LV1b
which uses a stable timebase and a fair quality AD converter with a sample and hold that is fast compared to the sample rate.

Computational Error
Computational errors are usually modeled as additive white noise. The usual effect is due to round off error due to finite
word length, though occasionally a computation will be biased toward certain preferred values such as zero. Usually it is
better to use unbiased algorithms since their errors over time tend to average out to zero. The computation on LV1b is done
using mostly 16bit fixed point arithmetic. This is done to reduce computational load, allowing all the computations to be
handled by our mighty PIC17C766 microcontroller. On the one hand 16 bit accuracy is reasonable given the moderate
accuracy of the low cost inertial sensors involved, but on the other hand using a general purpose microcontroller without a
floating point unit to do number crunching is sort of silly in the year 2000. Using the PIC makes sense if the hassle involved
in coding the algorithm isnt to great, because the power consumption, size, weight and cost are all reduced. Which could be
important if this application was to be adapted to other uses where a cheap drop in solution is desired.
The noise added due to truncation to finite word length is given by
significant bit in the finite word.

'

1
F

LSB where LSB is the value of the least

60

LV1b_IMU0.03

Calibration Error
The last source of error considered here is an example of what are often called systematic errors. These errors can stem from
modelling errors or biased computations, but the particular form of interest here is the error due to fitting a presumably
accurate and well implemented model with inaccurate calibration parameters. Calibration errors can be akin to modelling
errors, when a constant is used knowing that the true value varies over time or temperature. Even after all these considerations have been made, calibration values may be in error, either because the wrong values get entered, or because they are
approximated in the interest of expediting the calibration procedure.
Two ways to deal with calibration error are validation and feedback. Both methods can be applied to other sources of error
besides calibration errors. Validation consists of testing the system in situations where the correct answer is already known
and comparing the system output to the expected value. Feedback in this context is the online comparison and correction of
the calibration parameters by comparison to a reference. Calibration is always some combination of validation and feedback, though by calibration what is usually meant is offline or special mode comparison of the system to the reference.

6.3

Design Goals

The design goals for the LV1b orientation system are simple. That the system produces orientation data whose accuracy is
close to the maximum possible given sensor limitations and at a rate high enough to be used in guidance and control. To be
specific, the orientation data should be no worse than 1.5 times less accurate than the theoretical maximum, and the output
rate should be 10Hz or better. These figures were arrived at based on intuition and a little experimentation with what should
be possible considering the equipment at hand.

6.4

Computational Considerations

As coding on the orientation system starts, the flight computer code for LV1b is not complete, so the exact number of cycles
avaliable is not known. In order to set some bounds the orientation system will be initially designed to run at 11Mhz (30%
CPU on the PIC). The target for main memory usage is about 512 bytes, but this might be stretched by up to 50%, also there
is off chip SRAM avaliable for parameter storage, but this is not memory mapped, and so access is slow.
The main concession to lowering the computer load is fixed point arithmetic. In many ways fixed point is a more elegant
way to use computer resources compared to floating point, but it is more bothersome to program because it is now up to the
programer to be sure that values stay within the valid range.
Another important question about coding the orientation system is how to implement the multirate algorithim. One way to
do it is by interrupt scheduling, where a periodic interrupt starts each calculation at the appropriate time. In some ways this
is a good way to do things, it would mean that the main loop is reduced to those bits of code that can run at whatever speed
is allowed by surplus CPU cycles. A possible main line could include scale factor or bias correction, battery monitoring,
systems health checking or diagnostics, or sleep instructions for reducing power consumption.
The more conventional way to handle scheduling involves forking in the main line code, or breaking the slower tasks into
pieces that can be executed round robin over multiple passes of the inner loops. Between the two, LV1b currently favors the
interrupt scheduling format.

LV1b_IMU0.03

61

7 Detailed Sensor Noise Calculations


Each sensor class will be considered separately. The noise figures used will be the typical figures because this is not a worst
case design effort trying to satisfy a specification. Rather the goal here is avoid adding noise that is more than a fraction
(1/2) of the noise intrinsic to the sensing device.

7.1

ADXL250 40 gee accelerometer

Typical white noise level is 1 milligee

10

Hz

10
G

m s2
9.81
gee
Hz

gee

3


m
s2
F

Hz so if the filter bandwidth is 1kHz the expected noise is

1000 Hz

0.310 m s2


(7.1)

If fact the filter used on the LV1b IMU is a two pole analog type with a 6dB/octave roll off, this finite roll off rate allows
more noise to enter the system than is predicted by (7.1). This extra noise can be treated mathematically by using a bandwidth that is wider than the real filter bandwidth for the purpose of calculating the noise that passes through the filter. This
wider bandwidth is called the equivalent noise bandwidth, and is the bandwidth of an ideal brick wall filter that would pass
the same amount of white noise energy as the real filter. A remarkable fact [18] is that for the type of filter used on LV1b,
the equivalent noise bandwidth is proportional to the 3dB cut off frequency c


where


c


1
M

1.22033

(7.2)

is the equivalent noise bandwidth.

(7.2) applies to any second order lowpass filter with quality factor Q

1
2
F

The ultimate meaning of this is that (7.1) underestimates the noise by the factor given in (7.2). The corrected value of the
expected noise is.

10

gee


Hz

9.81


m s2
gee


1000 Hz
C

1.22033


0.378 m s2

(7.3)

It s worth pointing out that the value for expected noise here applies to the assumed bandwidth of 1000Hz. If the accelerometer output is averaged, effectively lowering the bandwidth, the noise decreases following the square root law given.
Another source of noise certain to occur is quantization noise. The expression for quantization noise has been given above,
to apply it to the present case these additional facts are needed. The sample rate is 2.5kHz, the digitization is 12 bits over a
span of 5V. The typical sensitivity of the ADXL250 is 45.6[mV/gee] and the filter gain is 2 . From these facts, the sample
time is 1 2.5 kHz 400 s. At the output of the filter, 1 m s2
is typically represented by
m
m
3
1 2 1 9.81 gee 2 45.6 10 V gee 2 9.30 mV . Since the span of the ADC is 5V, the total span in m s2 is
s
s
5 V 9.30 mV 538 m s2 . Thus the quantization noise is given by

Another source of noise certain to occur is quantization noise. The expression for quantization noise has been given above,
62 to apply it to the present case these additional facts are needed. The sample rate is 2.5kHz, the digitization
LV1b_IMU0.03
is 12 bits over a

span of 5V. The typical sensitivity of the ADXL250 is 45.6[mV/gee] and the filter gain is 2 . From these facts, the sample
time is 1 2.5 kHz 400 s. At the output of the filter, 1 m s2
is typically represented by
m
m
3
1 2 1 9.81 gee 2 45.6 10 V gee 2 9.30 mV . Since the span of the ADC is 5V, the total span in m s2 is
s
s
5 V 9.30 mV 538 m s2 . Thus the quantization noise is given by
G

N


A


T
BW
6


400 10
6

12

538 m s2

1000 Hz


0.034 m s2

(7.4)

Uncorrelated noise adds in quadrature, so the new noise total is

0.378

0.380 m s2

0.034


(7.5)

which is an almost negligible increase.


There are other significant sources of error for the accelerometers, such as drift over time and temperature, but these errors
are correlated over many sample times, and subject to detection and compensation by the INS aiding system. In the present
calculations the noise sources considered are restricted to those that are not correlated over one, or at least a few, sample
times. With this restriction (7.5) is a reasonable estimate of the total noise, assuming that all the other, more parasitic noise
sources have been minimized during the IMU design process, which is believed to have been done [???be nice to have an
IMU design reference].

7.2

ADXL202 2 gee accelerometer

The calculations for the ADXL202 are similar to the 250 with these changes. Sensitivity is 312[mV/gee], and white noise
parameter is 0.5 milligee
Hz .
Proceeding as before the white noise intrinsic to the accelerometer output is

0.5 10

gee


9.81


Hz

m s2
gee


1000 Hz

1.22033
C

0.189 m s2


(7.6)

The typical voltage which represents 1 m s2 at the filter output is

1


m
1 9.81 gee
s2


Which gives a span of 5 V 63.6 mV

m
312 10
s2

78.6 m s

V gee
C

63.6 mV


(7.7)

78.6 m s2 . Then the quantization noise is found as


400 10
6

12


1000 Hz

4.95 10

m s2

(7.8)

The total noise is then

0.189

2


0.00495

2


0.189 m s2

(7.9)

Which means the quantization noise is completely negligible for this case (where it was only very very small for the
ADXL250).

LV1b_IMU0.03

7.3

63

Jupiter GPS module

The Jupiter GPS is not documented for rapid acceleration three dimensional maneuvering. This does not mean it is unsuitable for this application, merely that some things a designer would like to know cant be found out by reading the documentation. This GPS provides a platform option called "air (high)" (message #1012), but it is not clear if this option implies a
non steady acceleration assumption, a non zero acceleration assumption, or a changing altitude assumption, or all (or none
for that matter) of these. Reference [11] section 6.6.3.1 appears to imply that updates do not account for acceleration at all,
but this reference is old, and not regarded as reliable anyway.
Jupiter GPS specifications
Reciever Type
Operating frequency
Reciever Dynamic Range
Size
Mass
Max Velocity
Max Acceleration
Max Altitude
Power
Differential GPS input
Cost

12 Channel Single frequency with Delta Range Phase Tracking


GPS L1
19 cm, 1575.42 MHz
163 , 130 dBW
71 41 11 mm without antenna
25 g
500 m s
5 gee
12 km 45 km with environmental enclosure
Operating 200 mA 5 V, Standby 75 A 5 V Low power 3.3 V operation possible
Standard RTCM SC 104, input using the provided second serial port
100 $
H

Its interesting to note that the maximum velocity limitation of this GPS appears to be unrelated to any technical consideration, but rather is a lame attempt at export control by archaic cold warriors. At best this sort of annoyance might allow
some interested engineers an excuse to familiarized themselves with GPS firmware, while all the efforts wasted by such
stupidity are regarded as acceptable losses.
The main question of interest for LV1b is the accuracy of the GPS measurements. The expected accuracy without selective
availability (SA) corruption is 19m user equivalent range error (UERE) using the R95% statistic. The UERE is a time
dependent random variable with approximately gaussian distribution whose value is unique for each combination of
satellite, receiver and location. UERE is the quadrature sum of the several independent factors whose typical values are
listed here [1].

Uncorrected Satellite Clock Bias


D Band Delay Variation
Satellite Orbital Uncertainty
Misc. Space Based Errors
Ephemeris Modeling Error
Misc. Control Based Errors
Uncorrected Ionospheric Delay
Uncorrected Tropospheric Delay
Noise Added By the Receiver
Multipath Error
Other Misc. Error
Total Error

6.5 m
1.0 m
2.0 m
1.0 m
8.2 m
1.8 m
9.8 19 .6 m
3.9 m
2.9 m
2.4 m
1.0 m
15.6 23 .1 m

GPS UERE Error Budget (C/A Code without SA, errors given use the R95 statistic)
Table 2

UERE is not the whole story on intrinsic GPS position error. For LV1b the other major contributor is called dilution of
precision (DOP). DOP factors are related to the geometry of satellites relative to the receiver. For position location purposes
the ideal arrangement of four GPS satellites and one receiver would have the receiver centered in a tetrahedron of satellites,
so that each satellites pseudorange measurement would have the least redundancy, but this arrangement is not even possible, because the Earth blocks a minimum of about 180 of the sky. The best possible arrangement of satellites would have
them spaced equally in solid angle, over the sky, but sufficiently high above the horizon that excessive uncompensated
signal delay would not be introduced by passage through considerably more atmosphere. Of course due to the limited
number of satellites and orbital constraints visible satellites occasionally tend to cluster in one part of the sky and be absent

64

LV1b_IMU0.03

UERE is not the whole story on intrinsic GPS position error. For LV1b the other major contributor is called dilution of
precision (DOP). DOP factors are related to the geometry of satellites relative to the receiver. For position location purposes
the ideal arrangement of four GPS satellites and one receiver would have the receiver centered in a tetrahedron of satellites,
so that each satellites pseudorange measurement would have the least redundancy, but this arrangement is not even possible, because the Earth blocks a minimum of about 180 of the sky. The best possible arrangement of satellites would have
them spaced equally in solid angle, over the sky, but sufficiently high above the horizon that excessive uncompensated
signal delay would not be introduced by passage through considerably more atmosphere. Of course due to the limited
number of satellites and orbital constraints visible satellites occasionally tend to cluster in one part of the sky and be absent
in another. Particularly, it is rare that a satellite passes directly overhead, so usually GPS altitude is not as accurate as GPS
horizontal position. As an example, if the satellites cluster in the east (or west) the error in the receiver longitude will be
low, but the latitude uncertainty will be high.
Exact details of the calculation process can vary considerably, but conceptually the DOP factors are calculated as time
varying multipliers, fairly constant over one GPS measurement interval, that relate the effective UERE to the various
position variances. As an example, given a UERE related factor , which could possibly be formed as the weighted RMS
average of the UEREs from all the satellites currently used for position fix, the vertical dilution of precision (VDOP) could
be defined as
'

VDOP
(

z


(7.10)

This definition is easily extended to other common DOP factors


2
t
(

2
x
(

2
y
(

TDOP
(

HDOP
(

(7.11)

2
x
(

2
x

2
y

2
y
(

2
z

2
z
(

2
t

PDOP
(

GDOP

The acronmys stand for Time, Horizontal, Position and Geometric Dilution Of Precision, respectively.
DOP factors in practice are always considerably more than 1. Rules of thumb hold that under good conditions single DOP
factors are around 1.5 while poor conditions usually produce single DOP factors of less than 3.5, but under unusual circumstances the DOP may be much higher. Due to the uncommonness of a satellite overhead the VDOP tends to be about 1.5
times larger than the HDOP. Note that if the HDOP is say 3, the GDOP will probably be around 5.8 because GDOP is the
quadrature sum of all the single DOPs, and the VDOP is typically larger than the HDOP.
While dilution of precision is an important concept, it has little direct utility for navigation. GPS receivers such as the
Jupiter board compute variances directly as part of their Kalman filtering operations, and these variances are more useful for
subsequent processing. On the Jupiter board the estimated variances are available from message 1000 or 1001 as the
expected horizontal and vertical position error, expected time error, and expected horizontal velocity error.
The usefulness of DOP factors lies in their statistical nature. Most filtering operations are designed to filter on white noise
(also called Gaussian or normally distributed) variables. GPS position variations are not white, chiefly because of the
geometric effects embodied in the DOP factors. On the other hand the UERE values are approximately white noise, so if
white nose variables are desired, they can be extracted using the DOPs.
The velocity on the Jupiter board is derived mainly from a technique called variously Doppler, delta range, or carrier phase,
and probably known by many other names [13]. In overview, the RF section of the receiver employs a GaAs front end
attached to a phase locked loop. The error signal from this loop contains a term proportional to the relative velocity between
the satellite and the receiver Since the satellite velocity is precisely known relative to the Earth, the receiver velocity relative
to the Earth can be calculated. This technique gives very good velocity estimates with variances as low as 0.1 m s using
the 1 statistic. The effect of the DOP factors on velocity is similar to the effect of DOP on position, with the same rules of
thumb.
'

LV1b_IMU0.03

65

Different statistical measures are commonly used to describe GPS random errors. This document has mentioned the 1 ,
also called RMS, and R95 statistics, other common choices are DRMS, 2DRMS, CEP, and SEP. It s useful to understand
what these statistics mean, and how they relate to each other.
'

Fundamentally The GPS system allows a receiver to measure the relative time delay of signal propagation between the
receiver and each satellite in view. By using a minimum of four satellites and knowledge of their positions, the position of
the receiver and the time of reception can be calculated. The receivers measurements of relative signal delay are called
pseudoranges. The pseudoranges contain an approximately Gaussian noise component.
i
f

i
f

(7.12)

i
f

where i is the pseudorange from the receiver to the i th satellite, i is the receivers measurement of the pseudorange, and
i the additive zero mean Gaussian noise. Let the standard deviation of
i be denoted i , then the probability that the
noise is less than a given value R is
g

P
[

2 2 2

'

(7.13)

2
(

R
e

The argument to the integral can be considered as

N
f

Exp

2
(

2
(

(7.14)


Which is called the normal or Gaussian density function with mean and standard deviation . Its value represents the
probability of the event that a random variable X satisfying the Gaussian normal statistic will take on a value in the range
,
Referring to (7.13) the probabilities for some special values of R are

'

P
P
P

0.683
0.954
0.997

2
3

(7.15)

The variances i can be converted geometrically to variances in the GPS navigation frame. If the GPS frame is taken to be
the east, north, up frame (<e, n, u>) let these variances be respectively e , n , u . One possible definition of, for example,
e based on ensemble measurement error is
_

'

'

1
N


'

(7.16)

e2

'

Because of the form of this equation, variables like e are often called root mean square error variables, and the associated
statistic is sometimes called the east west RMS position error, or, where the east west direction is understood, just the RMS
error, or the 1 error. If it is stated that the RMS error is say 10m, this means that the probability that the true position is
within 10m of the reported position is about 68.3%. All the other GPS statistics can be derived from the RMS statistics.
'

'

Another statistic sometimes seen is the DRMS, this is the horizontal RMS error, and therefore is defined in the <e, n, u>
system as

DRMS

The origin the "D" in DRMS is obscure.

2
(

(7.17)

66

LV1b_IMU0.03

Yet another related statistic is the so called 2DRMS, which is defined literally as 2 DRMS 2 DRMS , this is an apparent
attempt to confuse people, since this statistic is occasionally mistaken as "2D RMS", that is the two dimensional RMS
value, which is actually DRMS.

A somewhat more meaningful two dimensional statistic is the probability that the true horizontal location is within a given
radius R of the reported location. This probability can be found from the Gaussian probability distribution (7.13) by conversion to polar coordinates.

P r
If
'

n
'

Exp


e
e

r2
2


Sin

Cos

2
e

r


2
n

r
p

(7.18)

this integral can be done in closed form


R

1


r2

Exp

2
(

1


Exp


R2
2 2


(7.19)

This can be solved for R

2


Log 2

(7.20)


P


(7.19) is the basis for the remaining common two dimensional GPS error statistics. The circular error probable (CEP) is the
radius R for which the probability that the reported value is within R of the true position is 50%, while similarly the R95 is
the radius for which the probability is 95%. For the assumption that the horizontal error variances are equal ( e
n ), the
various two dimensional GPS statistics are rather easily related, as is summarized in the next table.
'

Statistic Name R in terms of


RMS
1
2
2
3
3

'

'

'

'

'

'

'

drms

2 drms

CEP

R95

1
'

2.828
H

2 Ln 20

'

2 Ln 2

'

Pr R
0.683
0.683
0.954
0.997
'

1.414
H

'

1.177
H

'

'

1
'

Exp

1


0.632
H

0.982

0.50
'

2.448

Exp


'

0.95

Relationship of Various 2DGPS statistics assuming equal x y variance


'

Table 3

For air operations the two dimensional statistics are not as useful as for surface navigation. An easy extension of (7.19) can
be made to the three dimensional case where all the s are equal (in practice the vertical error is usually larger than the
horizontal error, but this can be handled approximately by scaling the vertical direction by the ratio VDOP/HDOP). To
make the extension to the three dimensional case, define a new error radius using the Pythagorean theorem as
r
e2 n2 u2 , where the e, n, u are mean zero Gaussian random variables with variance representing measurement
errors in the three orthogonal directions east, north, and up.
'

'

The square of a normally distributed random variable follows the gamma density. If the random variable X has the density
function N 0, 2 , that is X is a Gaussian random variable with mean zero and standard deviation , then Y X 2 will have
the gamma density y ; 1 2, 1 2 2 where
'

'

'

LV1b_IMU0.03

67

y
V

y;

,
&

0,

, y

(7.21)

&

If a set of m independent random variables have densities


, so the density of r2 is found to be
i,

i,

, then the sum of the m variables will have density


+

r2 ;

1
3
,
2 2 2


r2


Exp


3
2


(7.22)

2
(

The gamma function can be evaluated using the identity

n
2


1


n 1

and finally, to find the density of r


(r2
2 r), thus the distribution of r is

n 1
2


(7.23)


r2 multiple the density of r2 by the derivative of the inverse transformation


Pr

2


r2 Exp

0
e

r2


(7.24)

This is the Maxwell distribution, which was derived originally as the distribution of molecular speeds in an ideal gas. (7.24)
can be used to relate to the radius of a common three dimensional GPS statistic called the spherical error probable (SEP),
which is the radius R for which P r R 1 2. The integral in (7.24) can be done in terms of the error function
z
Erf z 2
Exp t2 t, the result is
0
'

Pr

R


Erf

R


R


2


r2


Exp

2
(

(7.25)


Some values of interest are given in the next table.

Statistic Name R value


1
2
2
3
3
SEP
1.538
SEP 95
2.795
'

'

'

'

'

Pr R
0.199
0.739
0.971
0.5
0.95
H

'

'

'

Relationship of Various 3DGPS statistics assuming equal x, y, z variance


'

Table 4

The main question of interest for LV1b is what is the accuracy of the GPS measurements. The expected error without SA is,
from table 2,
7.76 m , but even under ideal conditions the variance can be substantially larger. The hope is to design an
algorithm which can take advantage of the full available accuracy of the GPS, but which can use the real time variance
estimates to optimize the overall system accuracy. Under the best circumstances, GPS accuracy can be under 5 m in position
and 0.1 m/s in velocity. Position accuracy can be improved to the sub meter level using differential GPS (DGPS). For the
present project the algorithms will be designed when possible to use the highest available GPS accuracy which will be
assumed to be 0.1 m and 0.1 m/s. If necessary the position accuracy can be relaxed to 5 m without fear of loss assuming that
DGPS is not used. However it is very desirable to use the real time estimates of GPS accuracy to optimize the INS aiding
calculations, and this will be done whenever possible.
'

The main question of interest for LV1b is what is the accuracy of the GPS measurements. The expected error without SA is,
from table 2,
7.76 m , but even under ideal conditions the variance can be substantially larger. The hope is to design an
algorithm which can take advantage of the full available accuracy of the GPS, but which can use the real time variance
68
LV1b_IMU0.03
estimates to optimize the overall system accuracy. Under the best circumstances, GPS accuracy can be under 5 m in position
and 0.1 m/s in velocity. Position accuracy can be improved to the sub meter level using differential GPS (DGPS). For the
present project the algorithms will be designed when possible to use the highest available GPS accuracy which will be
assumed to be 0.1 m and 0.1 m/s. If necessary the position accuracy can be relaxed to 5 m without fear of loss assuming that
DGPS is not used. However it is very desirable to use the real time estimates of GPS accuracy to optimize the INS aiding
calculations, and this will be done whenever possible.

7.4

Tokin CG16D0rate gyro

Since LV1b is still a project in its preliminary stages, the gyros have not been adequately characterized. However, the
output appears to be usable down to 2mV (with possible qualifications). Assuming a gain of 5 in the gyro amp and a gyro
nominal sensitivity of 1.1 [mV/(/s)], the "noise floor" of the gyros is about 0.364 [/s]. Whether this level of performance
can really be achieved (or bettered) remains to be seen, but the figure is useful for algorithm design as discussed previously.

'

7.5

MPX5100A pressure transducer

This integrated pressure sensor has a much better data sheet than the rate gyros, but it still completely lacks noise data. The
easy solution to this is to hook up a scope to the output and have a look. This has been done and the results are subject to
some interpretation. When looking at the output signal at a low sweep rate on the scope, the usual broad line of noise is
seen. Whats the RMS value of this broad line? The answer follows the same line of reasoning as was used in (7.15). Since
represents the RMS average of the peak value, 2 is the RMS average of the peak to peak value, the peak to peak value
being more conveniently read off the oscilloscope. The probability that the peak to peak value exceeds a fixed value is
given by the normal distribution. Using the error function defined previously the probability is found as
'

P Vpp

1


Erf

L


(7.26)

Some numerical examples are

P
P
P
P
P
P

Vpp
Vpp
Vpp
Vpp
Vpp
Vpp

2
3
4
5
6
7
(

0.317
0.134
0.0455
0.0124
0.00270
0.00047

(7.27)

For the pressure sensor, it was decided that the 1.2% level could be eye balled credibly. The peak to peak value was estimated as 3.5mV implying that the RMS value is 0.7mV, with a moderate chance of being somewhat larger. To fix the white
noise characteristic, the bandwidth must also be estimated.
Since the job of estimating noise bandwidth on the scope comes up moderately often its worth considering how to do it. A
convenient signal to view on the oscilloscope, assuming the signal has a constant DC average, is obtained by triggering on
the zero crossing (AC coupling), and adjusting the time base so that an exponential envelope increasing from zero to the
full width of the noise signal is seen. The time constant of this envelope clearly relates to the noise bandwidth, the question
is how.

LV1b_IMU0.03

69

The situation can be treated as an ordinary forced response problem [9]. The system response x t is the convolution of the
input f t with the system impulse response g t which is the inverse Laplace transform of the system transfer function
Gs
t

xt

f t

g


(7.28)
z

The autocorrelation function Rx can then be computed

Rx t1 , t2

E x t1 x t2


t1
gu
0
t2 t1
gu
0 0

E


f t1

u


t2
g
0

v f t2

v


g v E f t1

u f t2


v


(7.29)

u v

If f t is stationary, that is its mean, variance, and higher moments dont depend on time, then the autocorrelation simplifies to
t2

Rx t1 , t2

t1

g u g v R f t2

t1

u


v


u v

(7.30)

From this the mean square value is found

E x2 t

Rx t, t


g u g v Rf u


v


u v

(7.31)

For our particular case, assume that the bandwidth is limited be a first order low pass filter, and that the input noise is white
noise with spectral density A, then

Gs

1
1 Ts
A

(7.32)

1
T
A

(7.33)

Sf


Inverse transforms give

gu
Rf
where
_

uT

represents the dirac delta function

Putting this into (7.31) gets


t

E x2 t

A
T2


0


t
A
T2 0
A
1
2T


uT

vT


u


u v

2v T

(7.34)

2t T

We identify the bandwidth W of the filter as 1 T, then the RMS value of a band limited white noise signal has a limit as
t
equal to W A 2 . The mean square output from an ideal brickwall filter in response to white noise is 2 W A the
factor of 2 arising because the spectral density treats negative frequencies as separate from positive frequencies. So the first
order low pass filter has an RMS output only 1/2 as great as a brickwall filter of the same bandwidth. The relationship
between nd , the white noise density per root Hertz, and A is simply nd
2A.

70

LV1b_IMU0.03

We identify the bandwidth W of the filter as 1 T, then the RMS value of a band limited white noise signal has a limit as
t
equal to W A 2 . The mean square output from an ideal brickwall filter in response to white noise is 2 W A the
factor of 2 arising because the spectral density treats negative frequencies as separate from positive frequencies. So the first
order low pass filter has an RMS output only 1/2 as great as a brickwall filter of the same bandwidth. The relationship
between nd , the white noise density per root Hertz, and A is simply nd
2A.
`

Applying all this to the case at hand, we have these observations


DC RMS value 0.7mV
Envelope reaches nearly full width (3.4mV) in about 6 s
Envelope only 2.4mV after 2 s

If the assumption is made that full width is 3.5mV, then each envelope observation implies a bandwidth via (7.34). The
implied times are (remembering to square the values read off the scope) 4.8 s, and 6.3 s, the value based on the smaller
width is probably more accurate, taking it as the truth, gives a bandwidth of 159kHz, which is rather higher than expected,
Hz This is a
but within the believable regime for a regular IC opamp. The implied noise density is nd 210 V
believable figure.

The process of matching the measured envelope to (7.34) makes an assumption that the Gaussian statistic applies in the
transition region. This is probably only approximate, but eyeballing the scope is a crude approximation to begin with. Also,
the cut off frequency is probably too high to originate from mechanical sources in the pressure transducer. More likely it
comes from the processing circuitry down stream. This leaves open the possibility that the noise signal is not a simple white
noise source, but may consist of the sum of noise sources of very different bandwidths.
Since we filter this signal down to 72Hz, the expected RMS noise value is

1
210 V
2


Hz

72 Hz

0.9 mV


This noise figure is near the size of the ADC quanta (5 V 2^12

(7.35)

1.2 mV).
H

The sensitivity of the pressure sensor is found from the data sheet by the transfer function

Vo V
T

Vcc 0.009 1 kPa




P kPa
C

is about 1 kPa in the range 0 85C, increasing to 3 kPa at 40C.

0.095

P


T
P

(7.36)

2.5 kPa in the range 15 115[kPa]


a

The repeatability exceeds the accuracy, so this instrument could benefit from further calibration.
The pressure readings [kPa] are converted to altitude [m] using (1.5) which is repeated here

44331.514


18411.8956 P 0.1902632


(7.37)

The potential accuracy of the altitude readings can be found by considering the slope of (7.37)
j

h
P


3503.11 m
P0.809737 kPa


(7.38)

The pressure at 0 meters, and 3600m (the expected apogee for LV1b) is by (7.37) 101.3 and 65.0 kPa respectively. Evaluating (7.38) at these values gives 83[m/kPa] and 119[m/kPa]. For estimation purposes assume that the sensitivity is
100[m/kPa] then using (7.36) the 0.9mV estimated noise implies a noise floor for altitude near
j

Vo
1
Vcc 0.009


h
P


0.9 mV
6.019 V


1
m
kPa 100
0.009
kPa


1.6 m

(7.39)

Now this may seem optimistic, and it is. Such precision could only be achieved by averaging over several measurements
due to the quantization noise, and to achieve the accuracy implied would require both detailed calibration and drift compensation, but this does illustrate high potential accuracy for the altimeter. Certainly the altimeter should be considered as an
altitude aiding device, augmenting the GPS altitude measurements.

LV1b_IMU0.03

71

Now this may seem optimistic, and it is. Such precision could only be achieved by averaging over several measurements
due to the quantization noise, and to achieve the accuracy implied would require both detailed calibration and drift compensation, but this does illustrate high potential accuracy for the altimeter. Certainly the altimeter should be considered as an
altitude aiding device, augmenting the GPS altitude measurements.
The absolute accuracy specification for the MPX, assuming various compensations and calibrations, is of order 1/2%, which
on a reading of 100kPa implies an altitude accuracy of around 50m. This can clearly be improved by feedback and on pad
calibration. The achievable accuracy for LV1b therefore lies between these two estimates. Even at 50m accuracy the
altimeter is not useless as a check on the GPS determined altitude, and we hope to do better.

7.6

NHQ103R10 temperature sensor

The expected temperature range of the IMU is potentially rather wide. Sitting in the sun on the desert floor can produce
temperatures of 45C and more. The expected temperture at 4000m altitude is 11C (assuming 6.5C/1000m lapse rate
and 15C at zero meters, which is the standard atmosphere assumption). So a nice measurement range would include about
20 50C. Using (1.6) the implied resistance range is 3.78k 93.5k . The temperture dependent voltage is read by the
ADC on the PIC17C766, which has a 120pF input capacitor, with an input impedance of 8k with a 5V supply. The
leakage is guaranteed over temperature to be < 500nA. The 1/2LSB voltage is 5 V 2^11 2.44 mV . For the maximum
leakage to produce an error less than 1/2LSB the source resistance needs to be less than 4.9k . This is probably achievable
because the maximum leakage will occur at maximum temperature, and the thermistor resistance is lowest at the highest
temperatures. Assuming that the thermistor voltage is produced by a simple voltage divider, there is an optimum resistor
value for the voltage divider, which maximizes the output span for a given themistor range. The optimum choice is the
geometric mean of the thermistor range endpoints. For the given values this is near 20k .


Assuming a 20k resistor, the impedance levels are 3.18k


hot, and 0.88V cold.


hot, and 16.5k

cold. The resulting output voltages are 4.2V

The acqusition time of the ADC is given according to to the PIC17C7XX data sheet [17] as a function of the desired
accuracy, the temperature, the supply voltage, and the source impedance. The equation from the data sheet is

s
120 pF 1 k
C
Vcc k

tACQ


2 s

Rss

T


25 C 0.05


2 6V


Rss


Rs Ln 2N

1
q

1


(7.40)

tACQ is the acquisition time, T is the temperature of the PIC, Vcc is the PICs supply voltage, Rss is the internal switch
resistance of the ADC, Rs is the source resistance, and N is the number of bits of precision desired. The acquisition times
for the temperature extremes are 8.7 s cold and 7.3 s hot. To be on the safe side allowing 10 s minimum seems advisable.

The noise from the thermistor is the same as from any resistive component, and is called Johnson noise. The expression is

eR
4kTRW

4 1.38 10

23

J K

253 K

16.5 k

4.8 10

10

(7.41)

eR is the RMS voltage noise, k is Boltzmanns constant, T is the absolute temperature, R is the resistor value, and W is the
bandwidth of the measurement. The expression has been evaluated for the maximum divider resistance.
The intention on LV1b is to measure the temperature three times per second. The bandwidth necessary to raise the RMS
voltage noise to the 1/2LSB level is well into the terra Hertz range, so Johnson noise will not be a factor. This presents an
interesting set of questions. On the one hand it would seem that quantization noise would dominate, but since the time
constant of the thermistor is as great as 8s, the change in quanta could occur over many measurement cycles. This suggests a
stochastic resonance approach, but thats probably not worth thinking about now. The easiest thing is to cut the bandwidth
down to about 1Hz and be content to oversample. With a resistance as low as 3.2k the required capacitor is 37 F, 39 F
being the closest standard value.At the high range of 16.5k the time constant would be about 1/4Hz. This is pushing the
time constant of the thermistor, as a compromise, a 10 F capacitor might serve, the high point bandwidth would be 5Hz,
which would alias into the passband, but probably negligibly since the thermistor shouldnt produce signals at this frequency, and other noise sources should be negligible over the narrow bandwidth.

The intention on LV1b is to measure the temperature three times per second. The bandwidth necessary to raise the RMS
voltage noise to the 1/2LSB level is well into the terra Hertz range, so Johnson noise will not be a factor. This presents an
72
LV1b_IMU0.03
interesting set of questions. On the one hand it would seem that quantization noise would dominate, but since the time
constant of the thermistor is as great as 8s, the change in quanta could occur over many measurement cycles. This suggests a
stochastic resonance approach, but thats probably not worth thinking about now. The easiest thing is to cut the bandwidth
down to about 1Hz and be content to oversample. With a resistance as low as 3.2k the required capacitor is 37 F, 39 F
being the closest standard value.At the high range of 16.5k the time constant would be about 1/4Hz. This is pushing the
time constant of the thermistor, as a compromise, a 10 F capacitor might serve, the high point bandwidth would be 5Hz,
which would alias into the passband, but probably negligibly since the thermistor shouldnt produce signals at this frequency, and other noise sources should be negligible over the narrow bandwidth.


Further discussion of the practicality of using a large size of the filter capacitor has lead us to favor the 1 F size. This would
of course allow a 50Hz passband, which is acceptable based on an argument which goes like this. The expected RMS noise
over 10kHz is less than 10mV. So over 50Hz the noise is 10000 50 14.1 times less, or about 710 V RMS. Since the

digitization is 10 bits at 10/3 Hz, the quantization noise is


'

A2
F

T
6
F

2
G

2N

5V 2
G

10
F

1
12
F

1.4 mV , which

dominates the noise leaking through the filter. A 10 F capacitor would be better than a 1 F capacitor, but if a 10 F is too
big, a 1 F will work with slightly degraded noise performance, that is assuming the noise estimate is not way too small.

The greatest source of error from the thermistor maybe the calculation required to convert the ADC reading to temperature.
The Thermistor resistance in terms of the ADC reading x is

RT

R


2N


x


(7.42)

where R is the resistor to ground, and N is the number of bits of the conversion.
The temperature can be found from the thermistor resistance by the approximation

1
T


bi Lni RT

(7.43)

i 0
Y

where i is commonly either 1 or 3.


These two equations can be combined and simplified to

1
T


ai Lni

i 0

2N
x


(7.44)

where the constant R has been absorbed into the ai


The mimimum computation by elementary functions is therefore two reciprocals and a log. Alternately the combined log
and argument could be computed directly.

LV1b_IMU0.03

73

8 IMU Calibration
Before the IMU data can be interpreted in flight operations, several factors need to be determined. For each intertial sensors
there is at least four numbers to be determined, namely the three dimensional sensitivity vector and the sensor bias factor
(1.1). Cross sensitivity and lever arm effects can raise the number of parameters per sensor up to ten (1.4). It is a practical
fact that all calibration values can be shown to vary with both time and temperature and so in defining a calibration procedure a designer must choose which parameters to treat as constant in addition to which parameters to ignore. For this project
the expected outcome will be to treat platform offsets (vector s in (1.4) ) as constants, to treat the direction of sensitivity
vectors, and hopefully also their magnitude, as constant, and to treat all cross sensitivities as hopefully negligible constants.
The remaining non constant calibration values are the sensor biases, which arent very constant at all.
The off line calibration problem then is to determine the various constant parameters, while the online calibration problem
is to find the biases.
Starting with the online problem, the expected calibration enviornment will be LV1b, sitting on the launch pad in an approximately vertical orientation at a GPS derived position on the surface, stationary except for occasional buffeting by the wind
and the launch crew. Under these circumstances the local gravity vector is computable from the GPS position and constitutes the only non zero average accelleration. Therefore the three accelerometer outputs can be relaxed by a long time
constant averging technique to agree with the calculated gravity by adjusting the three accelerometer biases. This also
produces a platform orientation vector relative to the local level plane. The important issue of platform to body frame
alingment will not be addressed here. The thinking on this is that the body orientation issue becomes important only when
active guidance is used, and that is a post LV1b scenario. If active guidance is undertaken additional sensors that give direct
indication of body orientation, such as side slip manometers would probably be added, or extra calibration would be done to
address the body orientation question.
Getting back to LV1b calibration issues, once the accelerometer biases are approximated and platform orientation is approximately known, then if necessary the gyro cross sensitivity can be computed and the gyro biases adjusted to zero the angular
rate. Almost certainly this process will be done iteratively with a first approximation for orientation used to calculate initial
accelerometer biases and gyro cross sensitivities, then initial gyro biases would be calculated, and the loop repeated, using
residual acceleration measure to calculated gravity error to drive a feedback loop. This procedure should be sufficient for
on pad, online IMU calibration.
Off line calibration is simplified down to a manageable level by considering each sensor separately. In principle the IMU is
subjected to various known accelerations and angular rates while the raw output is recorded. Then the response of each
sensor is examined separately to find its constant and variable calibration parameters. The only immediately troubling thing
about this concept is the lack of both a spin table and slip rings. The only common spin tables are record turn tables, which
often have two speeds, which is nice, while the lack of slip rings might be solved with batteries and an infrared serial
transceiver pair (or maybe batteries and one slip ring). Short of actually spinning the IMU the next most obvious thing is to
set it into oscillatory motion as on the end of a string. This is vastly inferior however, and considerably more complicated
mathematically.
The procedure for calibration can now be outlined stepwise in approximate order.

74

LV1b_IMU0.03

8.1

IMU Preparation

For reasonably accurate calibration with reasonable convenience the best procedure is probably to integrate the IMU and FC
boards together with all mounting devices and associated hardware. This integrated system may as well be referred to as the
INS. In flight the INS is mounted in an elongated payload module by attaching to slender aluminum rails. For calibration
purposes this is an unwieldy arrangement. During calibration it would be convenient to hold the INS in an accurately
defined plane relative to the local level, then to turn the whole unit by a fixed number of degrees and examine the new
output with the new known acceleration. To make this easy to do, a six sided test fixture with accurately squared outside
corners could be constructed which ideally would allow the INS to be oriented parallel to any of the six sides of the box
(perhaps there would be a notch on one edge of the fixture to accommodate the passage of wires). The test fixture could be
fancied up slightly be providing a small plate that would fit into a recess on any of the six open sides, and with a centered
hole, allowing the fixture to be located accurately on say the center peg of a record turntable.
Similarly, if slip rings were used a similar disk could be provided, perhaps of copper clad printed circuit board material
patterned with concentric conductive rings, that would be placed on top of the fixture. Four contacts, such as those extracted
from a high quality relay would then press vertically down on this upper disk providing power, ground, and serial in/out to
the INS.
If the described test fixture were used in calibration, the orientation of the INS in the fixture would become the defacto
platform frame for the IMU.
In addition to the mechanical aspects, the software on the FC would be modified to provide continuous raw output from the
sensors. This data would appear at the maximum convenient rate on an FC serial port and captured along with some additional data in a PC for analysis.

8.2

Test Platforms

For LV1b two test platforms are desired. The first is a simple flat plate, such as a machinists stone which would accommodate the INS test fixture. The plate would be accurately leveled and hopefully vibration isolated. The test fixture can then be
simply placed onto the plate, measurements taken, then the fixture rotated to rest on another face, more measurements
taken, etc.
The rotating platform is the most difficult challenge. The present vision calls for a high quality phonograph turntable,
possibly with a heavy disk added to stabilize the mechanism. Ideally there would be some rotation speed measurements as
well, possibly a frequency counter and an opto interrupter monitoring the table speed. The turntable should be accurately
leveled. Fortunately most turntables feature some vibration isolation, though this could be enhanced for our purposes. All
that is required of the turntable itself is to turn at a constant rate with minimum wow and flutter. Unfortunately most ordinary turntables do not define a particularly accurate plane perpendicular to the rotation axis since LPs arent very sensitive
to this up and down motion. This partly the reason for calling for a high quality turntable. The effect is also minimized by
staying close to the rotation axis. It would be nice if the turntable provided several different speeds for testing, which is the
most common case.
Besides the turntable the rotating platform requires some extra support hardware. The fingers which contact the slip rings
must be supported somehow, maybe by a heavy laboratory ring stand. Then the very desirable speed measurement needs to
be made and recorded. If the speed is stable enough then recording is just a matter of writing the figure down. If the speed is
subject to many fluctuations then it maybe desirable to log the speed data along with the IMU raw output. For us this is a
considerable complication, and so justifies making the speed measurement of a prospective turntable first, because it may be
worth putting considerable effort into getting a turntable that provides an accurate rotation speed rather than trying to
compensate for inaccurate rotation during post processing.

LV1b_IMU0.03

8.3

75

Off Line Calibration Procedure

For each of the seven inertial sensors, six independent measurement conditions are readily imposed using the test platforms
described above. Three orthogonal accelerations can be applied and three orthogonal rotation rates (possibly at different
speeds). There is the further possibility of applying angular accelerations, possibly by ramping the frequency to the turntable
or by observing the output during startup.
Ideal accelerometers are insensitive to constant rotation rate, so our idealized accelerometers exhibit this sensitivity only
through lever arm effects (1.3). Therefore at least conceptually, each accelerometer can be calibrated through a process
which is described now. First the local gravity vector is either measured of calculated (preferably measured, probably
calculated). Then the biases and sensitivities for each accelerometer can almost be derived by inspection from the orthogonal acceleration measurements. For example if the initial measurement aligns g, the local gravity, with the platform d axis,
then the accelerometer output is

a


Ga g


a0


Gd g


a0

(8.1)

If this procedure is repeated for the six sides of the test fixture then the first term is repeated with opposite sign for each of
the three orthogonal platform directions, therefore the bias is found as the average of the six measurements, and two independent measurements of each gain factor are taken.
Once the accelerometer sensitivities are found, the INS can be spun in the rotating test fixture to apply known angular rates.
Again assuming the spin is applied along the positive d axis the expected response for an accelerometer whose positive
transverse axis points to the origin is

a


Ga g


a0


Gd g


Gt s


2


a0

(8.2)

This equation contains no more information than (8.1), but it could be a good consistency check. In particular, there may be
unrecognized dependencies in the accelerometer output that might show up here.

8.4

Online Calibration

76

LV1b_IMU0.03

9 INS Aiding
LV1b is a preliminary effort, which we hope will be followed by subsequent development, because there is a definite
pressure to, "Get it out the door". The subsequent work will be guided by designers intuition her that can be substituted for a
more rigorous, and presumably time consuming approach.
There are many, many ways various navigation sensor outputs could be combined to generate an orientation estimate. The
approach tried here follows the basic philosophy of the complimentary filter [8], [13], [9], a choice which still leaves a large
amount of basic decisions undetermined. The first is what is the primary signal? This is an easy one on LV1b, the primary
navigation source is the INS, nothing else comes close to meeting the mission objectives down the road. Note that a much
better answer would be that there is no primary signal. All the available information could be evaluated, and the best
possible estimate made at all times. This is within the computational capacity of todays small computers, and the approach
has both the least error and greatest reliability against mechanical failure, it is also considerably more complicated, so it is
not of interest at this moment. The choice of INS as primary signal means that if the INS fails the whole navigation system
will probably fail, but since the INS is the only instrument capable of providing guidance information this is a small
problem.
The broad class of complementary filters can be roughly divided into feedforward and feedback types. The feedback filter
sends at least part of the error signal back to the primary sensor, the INS in our case, to correct systematic bias in the INS.
Feedforward filters merely estimate the INS biases and subtract them to generated the corrected output. For very long
missions the feedback approach is typically used to keep the INS from wandering off into silly corners of the world, but for
short missions the feedforward scheme may offer some simplification, which is desirable on LV1b.
Whether the hoped for simplification actually arises depends on the implementation details. On LV1b the simplifications
should come from a reduction in the number of states in the INS error model, simplification of the calibration and INS
computation, and more modularity between the INS code and the aiding code. Optimistically assuming these things to hold
true, the feedforward approach is hereby adopted.
Feedforward is not great for calibration however, and some online calibration of the IMU is necessary. This is done sitting
on the launch pad in an approximately know position and with an approximately known attitude. The good thing about this
situation is that it is sufficiently controlled to allow steady state approximations to be made. Even if the calibration was done
through optimal filtering the implied filter would be one with constant coefficients (or at least coefficients readily computable from the known initial conditions) . Such a filter could be computed off line and its outputs allowed to settle at a
non critical rate while the rocket waits on the pad.

A rough outline of the aiding system is shown in figure 0

Import "ruff_block.eps" ;

Show %, AspectRatio

Automatic ;

LV1b_IMU0.03

77

Figure 0

This is the classic feedforward complementary filter. Here x t is the navigation state of the rocket. The key principle is that
the IMU error 1 is primarily a low frequency signal. In other words the IMU output is accurate over short time scales but
increasingly inaccurate over longer times, where as the GPS and altimeter errors 2 are accurate over long time scales
(errors average toward zero), but contain high frequency noise. The filter G s therefore is a lowpass type.

Inside the IMU the seven inertial sensors each have a randomly variable bias as well as several calibration constants. The
intention is to define the calibration constants off line and determine the biases while on the pad. From the perspective of
the filter during flight the biases would appear as fixed constants plus a randomly varying signal. The random signal is
thought to be a first order Markov process, but particularly in the case of the gyros, this is yet to be proven.

ScientificForm %, 4
n

2.795

78

LV1b_IMU0.03

ScientificForm 0.1987480430987994,
0.7385358700508893, 0.9707091134651118 , 3
1.99 10

1,

7.39 10

1,

9.71 10

rr "rBarth"

eqr "eSenseAccZ1"

secr "sGIs"

9.1

Notation, Symbols, &


Constants

Appendix A

Scalars are written in lowercase italic, or occasionally plain face. Such as

, i, k, x, r

Vectors are written in lowercase boldface or as column matrices or lists, for example if v

v1
v2
v3

{v1 , v2 , v3 }

(A.1)

The elements v1 , v2 , v3 are dependent on the basis in which v is expressed. Given independent basis vectors i, j, k by
definition

i v1

j v2

k v3

(A.2)

Any vector in n can be represented uniquely by a linear combination of n independent vectors. A set of n such vectors is
called a basis for n . If additionally the n vectors are orthogonal and of unit length the basis is said to be orthonormal. An
orthonormal basis is also called a reference frame. A vector written out as a matrix or list is implicitly assumed to be in the
form given by (A.2) and to be using an orthonormal basis. Any vectors so expressed follow the usual rules of addition and
multiplication of vector components, provided that all the vectors are expressed in the same basis or reference frame. A
vector written with respect to a given reference frame is said to be in that frame, or coordinatized in that frame.

Any vector in n can be represented uniquely by a linear combination of n independent vectors. A set of n such vectors is
79
called a basis for n . If additionally the n vectors are orthogonal and of unit length the basis is said to be orthonormal. An
orthonormal basis is also called a reference frame. A vector written out as a matrix or list is implicitly assumed to be in the
form given by (A.2) and to be using an orthonormal basis. Any vectors so expressed follow the usual rules of addition and
multiplication of vector components, provided that all the vectors are expressed in the same basis or reference frame. A
vector written with respect to a given reference frame is said to be in that frame, or coordinatized in that frame.

LV1b_IMU0.03

Since inertial navigation involves many different reference frames it is important to keep track of which frame is being used.
To help with this task a notation of superscripts is used. A vector in reference frame a is written va . Reference frames are
denoted by lowercase italic letters similar to ordinary scalars. By convention vectors which would otherwise be equal, that is
they are parallel and of equal magnitude, but that are coordinatized differently are not considered equal. That is given a
vector v

va

vb if a

(A.3)

Table 5 lists the abbreviations for coordinate reference frames used for LV1b
a
b
e
g
i
p
t
n

non orthogonal accelerometer coordinates


body vehicle coordinates
ECEF
non orthogonal gyro
inertial
platform
tangent plane
navigation frame

Table 5

The vector cross product can be related to matrix multiplication by

v =

0
v3
v2

v3
0
v1

v2
v1
0

(A.4)

Multiplying the column form of a vector on the left by the matrix given in (A.4) produces the same result as the left cross
product of v and the vector, assuming that the vectors are expressed in the same reference frame. This matrix form of the
cross product is called the skew symmetric form because the matrix so defined is skew symmetric.
A useful type of 3 vector is the angular rate vector which defines the instantaneous rate of rotation of something relative
to something else. If for instance the rotation of a body b is considered relative to a reference frame a then we write ab .
Note that whether we consider the rotation of a body or a reference frame makes no essential difference since the orientation
of a body can be taken to define implicitly a reference frame attached to the body.

The definition of angular rate vector has been given in section 3.2 but for convenience it is restated here. The instantaneous
angular rate vector, also called the angular velocity, of a reference frame b is measured relative to an arbitrary frame a and
is written ab t . The definition of angular rate derives from consideration of rotation by a small angle. Rotation by a small
angle is to first order equivalent to a plane rotation about a fixed axis. If this rotation takes place in finite time then in the
limit of infinitesimal angle, is defined as the vector in the direction of the rotation axis, and with magnitude equal to the
limit of angular displacement divided by rotation time. The sense of rotation is defined by the right hand rule.

Angular rate vectors are true vectors and so obey the laws of vector algebra. One useful aspect of this is a sort of chain rule
for expressing angular rates when each rate depends on another intermediate reference frame. As an example, imagine a
body rotating in its self defined reference frame b relative to a navigation frame n, while the n frame rotates relative to the
Earth fixed frame e, and the Earth rotates relative to an inertial frame i. The rotation rate of the body relative to the inertial
frame can be computed by this formula

ib

ie

en

nb

(A.5)

The notation is designed to make this chain rule easy to remember. The rule is that the inner subscripts cancel for the
addition of rate vectors.

80

LV1b_IMU0.03

A less general but still correct way to write (A.5) is


i
ib

i
ie

i
en

i
nb

(A.6)

The superscripts mean (as was mentioned above) that the vector is written with respect to a particular basis, that is, in a
particular coordinate system, in this case the i frame inertial coordinates. Vectors are defined to be entities whose properties
are independent of the coordinates in which they are measured, however in computing with vector quantities, if two vectors
are represented in different coordinates they usually have to be brought into a common coordinate system before the
computations can be completed. Because this document is concerned with the efficient calculation of many vector quantities
the vectors herein will often specify the coordinate frame in which they are expressed, and often vector operations will be
arranged so that the vector arguments are in the same frame.

A common operation with rate vectors is the cross product. For example (1.2) expresses a fundamental property of angular
rate in terms of a cross product. The situation is common enough that there is a special notation for the cross product of the
angular rate. Referring to (A.4) define

3
2

(A.7)

By moving this cross product into matrix form a subtle change is effected. Vectors, as has been stated, are implicitly
coordinate free, that is when writing a vector operation such as a+b the implication is that no matter what coordinates a and
b are measured in, if any, the calculation will be adjusted so that it properly accounts for the coordinate systems and the
result is independent of coordinate choice. The convention for matrices is different. For example, by convention when
conformable matrices are added the result is simply the matrix of corresponding sums, it is up to the generator of the
arguments to assure that the addition is meaningful. Not that this observation is a fundamental distinction between vector
and matrix operations, rather it is a distinction between vector and matrix notation. The difference in interpretation of a
vector operation versus a matrix one is the reason for the slightly odd non equality of (A.3). The idea is that by coordinatizing a vector the vector assumes a matrix like form.

The upshot of this applied to (A.7) is that most often when dealing with matrices derived from vector quantities the frame
i
ie

will be noted explicitly, writing

rather than

ie

By convention matrices are written in uppercase boldface or by element or as lists, for example if A

a11 a12
a21 a22

{{a11 , a12 }, {a21 , a22 }}

(A.8)

A Useful 33 matrix is called the direction cosine matrix (DCM). This matrix transforms a vector by rotating it about the
origin. The DCM can be thought of as a specific representation of an operator for rotating vectors, such operators are called
rotators. If two frames differ only by a rotation one can be transformed into the other by application of a rotator. The rotator
that transforms the a frame to the b frame can be written in DCM form as

Rba

(A.9)

Using this notation a vector can be rotated from the a frame to the b frame like this

vb

Rba va

(A.10)

Considering the properties of matrix multiplication its not surprising that we can define a chain rule for rotation matrices

Rda

Rdc Rcb Rba

(A.11)

LV1b_IMU0.03

81

As was the case in (A.5), the notation in (A.11) is designed to be mnemonic. The chain rule for rotators can be remembered
by noticing the subscript on the left cancels with the superscript on the right.
The DCM is only one possible representation for a rotator. Two other representations used here are the quaternion and the
vector representations. Whatever representation is used the transformation defined by the rotator is exactly the same and
each representation can be converted to any other representation.
The vector representation of a rotator, called the rotator vector (or vector rotator), is defined similarly to the angular rate
vector. A vector rotator represents a single plane rotation and is defined so that is parallel to the rotation axis, and the
magnitude of is equal to the angular displacement of the rotation. The sense of rotation being defined by the right hand
rule. In this document the use of superscripts and subscripts on the vector rotator to describe which frames are being transformed is avoided. Theres nothing wrong with using this sub/superscript notation with vector rotators, but for our purposes
it is more convenient to write the rotator vector as an ordinary vector.

The quaternion representation of a rotator is based on some interesting properties of the quaternion field. Multiplication of
complex numbers can be considered as representing a rotation by the sum of the polar angles of the numbers multiplied. Of
course complex numbers are limited to a single plane. Quaternions are an extension of the complex numbers, and contain
them as a subfield. Quaternions retain a rotational property, which is detailed in Appendix C
As far as notation, quaternions are written like vectors with lowercase bold letters. Quaternions have 4 components and are
always coordinatized the same so that is not an issue, but when written in column vector or list form the quaternion basis
elements {1, i, j, k} have an assumed order that must be stated. For a quaternion q we write

ib

jc

kd

a
b
c
d

a, b, c, d

(A.12)

The element a in (A.12) is called the scalar component of the quaternion q, while the remainder is called the vector component or sometimes the pure quaternion part.
The quaternion rotator is written similarly to the DCM form. In fact

qda

qdc qcb qba

(A.13)

Expresses a chain rule for quaternion rotators almost identical to the DCM chain rule (A.11). The small open circles in
(A.13) denote quaternion multiplication.
Besides all the above there is a frequent need to index a quantity by the time instant to which it corresponds. When there is
no conflict with another subscript, the value of a quantity b at time instant tn is written bn . When there is a conflict with
another subscript a quantity such as be it is written with square brackets be n .

82

LV1b_IMU0.03

Here is a summary of the scalar, vector, matrix and quaternion notations used in this document

a
a
A
q
va
Oa

scalar, lowercase italic


vector, lowercase bold
matrix, uppercase bold
quaternion, lowercase bold
vector coordinatized in frame a
vector definining the origin of reference frame a

Rba

rotator from a to b, direction cosine form

qba
c
ab

rotator from a to b, quaternion form

v
bn
be n

skew symmetric form of vector cross product, see A.4


quantity b at time t tn
alternate form for quantity be at time t tn , used when subscripts conflict

angular rate vector of frame b relative to frame a coordinatized in frame c

Table 6

To all of the above notation there are occasionally added modifiers which distinguish between various forms of the same
theoretical quantity. For example an overbar denotes a predicted or extrapolated value. Table 7 lists the modifiers used and
their meanings.
a

none, exact value

hat, calculated value, or current estimate

a
a
a
a

bar, predicted value


tilde, measured value
small delta, error, defined as a a occasionally small change rather than error
big delta, change in value over specified interval

Table 7

Table 8 gives an alphabetical list of the major symbols used in this document

a
a
A
q
va
Oa

scalar, lowercase italic


vector, lowercase bold
matrix, uppercase bold
quaternion, lowercase bold
vector coordinatized in frame a
vector definining the origin of reference frame a

Rba

rotator from a to b, direction cosine form

qba
c
ab

rotator from a to b, quaternion form

v
bn
be n

skew symmetric form of vector cross product, see A.4


quantity b at time t tn
alternate form for quantity be at time t tn , used when subscripts conflict

angular rate vector of frame b relative to frame a coordinatized in frame c

Table 8

LV1b_IMU0.03

83

Elements of Vector & Matrix


Theory

Appendix B

Note that in the interest of brevity the results in these summaries have not been stated very cautiously. As a result a careless
reader could be lead astray by applying a rule where it was invalid. For example is makes no sense to consider the matrix
inverse when the matrix is singular, or to divide by zero, be careful.
Vector dot product (v u) properties (s, v are scalars, u, v, w are vectors)

u v v u
u v w
u v w
su v w su w

v w

v2

v v
v
u v
u

commutative
associative
distributive

normative
Cauchy Schwarz inequality

Vector cross product (v u) properties (s, v are scalars, u, v, w, z are vectors)

u
u
u
u
u
u
u
u
v
u

v
v u
v w
u v w
sv w su v u w
v w v w u w u v
u, v, w
v w
u w v
u v w
v w
u w v
v w u
v w z
u w v z
v w u z
v w z
u, w, z v v, w, z u
v 0
u v u v u 0

u v

u v

anti commutative skew symmetry


NOT associative
distributive
scalar triple product
vector triple product left
vector triple product right
dot of crosses
cross of crosses
orthogonality
orthogonality to arguments

Lagrange identity

84

LV1b_IMU0.03

Matrix properties
AB BA
AB C A BC
s A B C s AC

NOT commutative
associative
distributive

AB

AT T

1
s

inverse with scalar

double conjugate

AB

inverse of transpose

1 T

inverse of product

definition of inverse

sA

AT

double inverse
1

AB

transpose of product
double transpose

BC

AT

AA
A

BT

UUT

conjugate of transpose

definition of adjoint modern usage


also called Hermitian transpose
reduces to transpose for real matrices

definition of Hermitian

UT

UU

conjugate of product

AB

AT

definition of orthogonal also called orthonormal


I

Tr A B Tr A
Tr s A s Tr A
Tr A B Tr B A

definition of unitary
same as orthogonal for real matrices
trace of sum
trace with scalar
trace of product

Tr B

Tr AT

Tr A

Tr A

trace of transpose

n 1

trace as part of characteristic equation

Tr CAC

Tr A

trace invariant under similarity transform

Any matrix A can be written as the sum of its symmetric and antisymmetric parts

A
U

1
A
2

1
A
2

AT

AT

(B.1)

UT

symmetric part

(B.2)

ZT

antisymmetric part

(B.3)

A matrix Z with the property (B.3) is also called a skew symmetric matrix
For a square matrix B we define the quadratic form of B as

LV1b_IMU0.03

85

x Bx

1
x
2

BT

B x

(B.4)

which is a scalar function of x . The quadratic form depends only on the symmetric part of B .
Any matrix B is positive definite iff

x Bx

(B.5)

That is if its quadratic form is always positive. A matrix is positive semidefinite if its quadratic form is never negative, and
likewise for negative definite and semidefinite.
For our purposes we restrict U to be a real symmetric matrix. A real symmetric matrix U is positive definite iff there
exists a real nonsingular matrix C such that

CC

(B.6)

The null space of a matrix A is the set of vectors x such that A x = 0


The range of a matrix A is the set of vectors b such that for some vector x, A x = b
Let X be the set of all possible vectors x, let the range of A be denoted A(X) and the null space be N(A), then

dim N A

dim A X

dim X

(B.7)

The rank of A is the dimension of the range of A


A matrix can be used to represent linear transformations. Rotations are a type of linear transformation important in inertial
navigation, where vectors in one reference frame are often rotated into alignment with another frame. Let the initial reference frame a have basis vectors {a, b, c}, and the final frame b have basis {u, v, w} then a matrix Rba , by linearity will
have the correct transformation property if

u a u b u c
v a v b v c
w a w b w c

Rba

u v w

a b c

(B.8)

In other words to transform a to b, project the basis for a onto b. To see that (B.8) is correct, consider a vector in the
a frame va v1 a v2 b v3 c

Rba

u v w

u v w

v1 a

v2 b

(B.9)

v3 c

v1 u a v2 u b v3 u c
v1 v a v2 v b v3 v c
v1 w a v2 w b v3 w c

v1
v2
v3

a b c

vb

Referring back to (B.8), Rba is a matrix of 9 dot products. Since all the arguments are unit vectors the dot products are
numerically equal to the cosines of the included angles. For this reason the matrix Rba is called the direction cosine matrix
(DCM).

86

LV1b_IMU0.03

A useful fact about Rba is that it is a unitary matrix, meaning that its inverse is its transpose.

Rab

Rba

(B.10)

To see that this is true consider the matrix of orthonormal basis vectors A

a b c

a b c

a, b, c as before, clearly

(B.11)

Since A is manifestly nonsingular with A 1 AT it is also true that A AT I . This means that though by construction the
columns of A are orthonormal the rows of A are also orthonormal, which though perhaps geometrically obvious is algebraically a somewhat remarkable fact. Applying this remarkable fact to Rba establishes (B.10) because

Rba Rba
where A

a, b, c and U

UT A UT A

UT A A T U

UT I U

UT U

(B.12)

u, v, w are matrices of orthonormal basis vectors as before.

The rotation represented by the DCM is expressible in a number of ways. Often the vector rotator is used (see appendix A
and section 3.2). A vector rotator is a 3 dimensional entity expressing a rotation equivalent to the DCM, which of course has
9 elements. The DCM has only 3 degrees of freedom however, because it must satisfy 3 normality constraints and 3 orthogonality constraints. Its desirable to be able to move from one representation to the other so the next task will be to provide
expressions for the DCM in terms of the vector rotator. Deriving the relation directly is not very intuitive, so our approach
will be to consider the time derivative of the DCM.
To get at the derivative of the DCM consider a rotation by a small angle. Let A and U be defined as in (B.12) but suppose
that they differ by only an infinitesimally small rotation. A may be brought into alignment with U by 3 infinitesimal rotations about the u, v, w axes. These rotations may be represented by a vector with proportional components along the
axes. Such a vector is in the form of a vector rotator. Consider a small rotation about the u axis, referring to (B.9) the
diagonal terms of the rotator matrix are either unity or the cosine of the rotation angle, which for small angles is just 1. The
projection of the rotation onto the u axis is exactly zero, and the since the a axis is almost parallel projections onto it are
zero to first order. Therefore all the off diagonal terms involving a and u are zero. This leaves only two nonzero off diagonal terms, both are proportional to the sine of the angle, which means proportional to the angle for small angles. The tricky
question is whether the sign of the element is positive or negative. In a sense theres no good answer since it depends on the
handedness of the coordinate system and the like, but if a right handed x, y, z style coordinate system is assumed an
answer can be given. Assume that a vector in the A frame is to be expressed in the U frame. This can be achieved by
starting with the frames aligned, then rotating the U frame through a small positive angle (defined by the right hand rule).
The initial rotation about the a axis will project the w axis onto the b axis with negative sign. The same rotation projects the
v axis onto the c with positive sign. Let the small angle vector rotator be aba
, ,
then, so far, the matrix rotator
around the a axis has been shown to be.

1
0
0

0 0
1
1

Proceeding identically for the b and c axes the small angle rotator matrix is found by composition. For small angles the
order of rotation is not important because only first order terms are retained, and the rotator is

1
0
0

0 0
1
1

1 0
0 1
0

0
1

0
1 0
0 0 1

a
ba

(B.13)

where aba is the skew symmetric form of the cross product for the small angle rotator vector. (B.13) actually states a
rather obvious fact, at least in retrospect, that to first order, rotation by a small angle deflects a vector in a direction perpendicular to the rotation axis.

LV1b_IMU0.03

87

The derivative of a matrix rotator can be found from the definition of the derivative
b

Ra

Rba t

lim

Rba t

Rba t lim

a
ba

Rba t

a
ba

(B.14)

also
b T

Rb

Ra

a T
ba

Rba t

a T
ba

Rba t

a
ba

Rab t

(B.15)

To generate the DCM from the vector rotator (B.15) can be integrated.
a

Rb

a
ba

0
0

Exp

a
ba

t
t0

Exp

Rab t
a

t Rb

a
ba

t
t0

Exp

t
t0

t Rab

a
ba

a
ba

Rab
(B.16)

a
ba

t
t0

Exp

t Rab t

Rab t
Let

t
t0

t,

a
ba

t
t0

v22

Exp

v1 v2

v3
0
v1

v23

v1 v3

a
ba

t Rab t0

Rab t0

t Rab t0

v2
v1
0

(B.17)

v1 v2

v1 v3

v21

v2 v3

v23

v2 v3

t
t0

a
ba

t , then these recurrence relations hold

0
v3
v2

t0
t0

Exp

v21

a
ba

(B.18)

v22

(B.19)

(B.20)

Therefore

(B.21)

88

LV1b_IMU0.03

Exp

a
ba

t0

3
Sin

1
4

1
5

(B.22)

1
2

Cos

1
3

1
2

1
2

Substitute (B.22) into (B.16) to get

Rab t

Sin

Cos

a
ba

be a constant vector and

t
t0

Sin

a
ba

t then

Rab t0

Cos

and

(B.23)

is a vector rotator, if we assume zero rotation

where

at t0 then finally

Rab

If we let

(B.24)

is the vector rotator from frame b to a.

The rotator

is coordinatized exactly the same in both frames, this can be seen by applying (B.24)

Rab

Sin

B.1

Cos

(B.25)

Properties of the Generalized Inverse

A generalized inverse (GI) X of A can be classified by its adherence to these fundamental equations
(1)

AXA = A

equation solving

(2)

XAX = X

defined null space

(3)

AX

= AX least squares property

(4)

XA

= XA minimum norm property for x

Any GI which satisfies as many as 3 of these equations is called an {i,j,k} inverse (a {1,2,3,4} inverse, which adheres to all
4 equations is usually denoted with a dagger). For example, a {1,3} inverse is written as A 1,3 or A{1,3} and has the
property that for x=A 1,3 b, x satisfies Ax=b, if possible, and in any case minimizes A xb .
These 4 statements, related to the A 1,3 inverse, are equivalent
u is a least squares solution of Ax=b
u is a solution of Ax AA b
u is a solution of A Ax A b
u = A b+h , where h N(A)

known as the normal equation

LV1b_IMU0.03

89

Basic properties of the pseudoinverse A satisfying above properties {1,2,3,4}

AB
A

B A

UAV

inverse of adjoint

NO inverse of product

sA

double inverse

A , if s
A A

inverse with scalar


inverse of adjoint product

AA

A AA

adjoint rewriting rule

A U

, where U, V are unitary matrices

unitary transform

Facts about A

AB

B A (not equal in general, some exceptions), likewise A

A2

If matrix A does not have either full column rank or row rank then
K
, > 0 matrix E , E <
A E A
K

apeqr "eMatRot3"

Appendix C

Quaternions

Quaternions can be used to represent rotational transformations. The chief advantage of doing this is the lack of singularity.
Most of the material in this appendix is lifted from [13]
A quaternion can be written as if it were a 4 vector with basis {1, i, j, k}. A quaternion b which represents a rotation vector
is written

Cos
E Sin

b=

2
2

, where

and E =

Note that b = 1
The quaternion product b c may be written in one of two ways depending on convenience

AlgebraQuaternions

(C.1)

90

LV1b_IMU0.03

Quaternion b1 , b2 , b3 , b4

Quaternion c1 , c2 , c3 , c4

Quaternion b1 c1 b2 c2 b3 c3 b4 c4 , b2 c1 b1 c2 b4 c3
b3 c1 b4 c2 b1 c3 b2 c4 , b4 c1 b3 c2 b2 c3 b1 c4

Apply List, %8
b1
b2
b3
b4

c1
c1
c1
c1

Flatten

b2
b1
b4
b3

c2
c2
c2
c2

b1
b2
b3
b4

c3
c3
c3
c3

b2
b1
b4
b3

MatrixForm
b3
b4
b1
b2

b4
b3
b2
b1

b3
b4
b1
b2

c4
c4
c4
c4

b4
c1
b3
c
. 2
c3
b2
c4
b1

%13

FullSimplify

%13

FullSimplify

True

Flatten

c1
c2
c3
c4

c2
c1
c4
c3

c3
c4
c1
c2

c4
b1
c3
b
. 2
b3
c2
b4
c1

True

Transpose

c1
c2
c3
c4

c2
c1
c4
c3

c3
c4
c1
c2

c4
c3
c2
c1

b3 c4 ,

LV1b_IMU0.03

91

b1
b2
b c=
b3
b4
c1
c2
=
c3
c4

b2
b1
b4
b3
c2
c1
c4
c3

b3
b4
b1
b2
c3
c4
c1
c2

b4
b3
b2
b1
c4
c3
c2
c1

c1
c2
= Yb c
c3
c4
b1
b2
= ZTc b
b3
b4

(C.2)

From the definitions given in (C.2) we can derive these properties for Y and Z

YT , Z

1


ZT , and YZ

1


ZY

(C.3)

To rotate a vector r from frame a to b using the quaternion approach we write r as a 4 vector and use

= Yb Zb ra

rb = b ra b

where b

b1

b2

b3

b4

(C.4)

and ra = 0 r1 r2 r3

From (C.4) we can easily compute the rotation matrix Rba in terms of b by comparing rb = Rba ra to (C.4).
b21

b22

b23

b24

b21

Yb Zb =

b22

b23

2 b2 b3

0
b24

2 b2 b3
b21

b1 b4

2 b2 b4

b1 b3

b22

0
b1 b4

b23

2 b1 b2

2 b1 b3

b24

2 b3 b4
b21

b3 b4

b22

b2 b4

b1 b2

b23

So Rba is found merely by dropping the first row and column. Recall we have assumed b21

b24
b22

b23

b24 = 1 .

Reference [13] gives an efficient algorithm for computing Rba from b which produces a normalized R even if b is not
normalized. We repeat it here, note that Rij means the i j element of matrix Rba

(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)

b21

p1
p2
p3 b23
if p1 p2 p5 0 { p6 2 p1 p2 p5 } else {p6
R11 1 p5 p6
R22 1 p6 p2 p4
p2 p6 b2
p3 p6 b3
p5 p6 b1 b4 p6 p2 b3
R12 p6 p5
R21 p6 p5
p5 p3 b1
p6 p2 b4
R31 p6 p5
R13 p6 p5
p5 p2 b1
p6 p3 b4
R23 p6 p5
R32 p6 p5

b22

Calculation of the quaternion b from

1
2

4 b1

b=

R13 R31

4 b1

Rba

R11 R22 R33


R32 R23

R21 R12

4 b1

p4

is straightforward

0}
R33

b24

p6 p2

p5
p3

p3

p4

92

LV1b_IMU0.03

Euler angles from quaternions: (Warning, singularities!???)


Sin[ ] = 2 b2 b4 b1 b3
= arctan2[ 2 b2 b3 b1 b4 , 1 2 b21
= arctan2[ 2 b1 b2 b3 b4 , 1 2 b22

b22 ]
b23 ]

LV1b_IMU0.03

93

References
Note, local availability is sometimes given. Except as noted PSU means the reference is available at Portland State University main library, Bevo means Beaverton (Oregon) city library main branch, and MoCo refers to Multnomah county library
central branch.

1.
2.

3.

4.
5.
6.
7.
8.
9.
10.
11.

12.
13.
14.

"Navstar GPS User Equipment Introduction, Public Release Version"


Anonomous,
http://www.navcen.uscg.mil/gps/geninfo/gpsdocuments/(GPS
User Equipment Introduction), Sep.1996
"Piezoelectric Ceramic Cylinder Vibratory Gyroscope"
Abe, Hiroshi, Yoshida, Tetsuo and Turuga, Kikuo, Japanese Journal of
Applied Physics 31(1)3061 3063, 1992
"Monolithic Accelerometer With Signal Conditioning Datasheet for the ADXL50
Rev.B"
Analog Devices Inc.,1996,C1808b53/96, available on the web as a pdf
document
"Datasheet for the ADXL150/ADXL250 Rev.0"
Analog Devices Inc., 1998,C294984/98, available on the web as a pdf
document
"Datasheet for the ADXL202 Rev.A"
Analog Devices Inc., 1998,C3037a08/98, available on the web as a pdf
document
"Generalized Inverses: theory & applications"
BenIsrael, Adi and Greville, Thomas N.E., John Wiley, 1974, PSU
QA188.B46
"Inertial Navigation Systems Analysis"
Britting, Kenneth, R., Wiley & Sons, 1971, PSU TL588.5.B75
"Integrated Navigation Systems & Kalman Filtering: A Perspective"
Brown, Robert Grover, Navigation: Journal of the Institute of Navigation,
19(4)355362,1972
"Introduction to Random Signal Analysis & Kalman Filtering"
Brown, Robert Grover, John Wiley, 1992, PSU TK5102.5.B696(1983)
"Generalized Inverses of Linear Transformations"
Campbell, S.L. and Meyer, C.D., Pitman, 1979, PSU QA188.C36
"Zodiac GPS Receiver Family Designers Guide", December 16 1996,
Order#GPS33
Conexant Systems, Inc. a subsidiary of Rockwell International
(www.conexant.com) A more recent version of this document was unfindable
on the conexant website. A possible location for this document is
http://www.unitronic.de/rockwell/GPS999.htm
"CRC Handbook of Chemistry & Physics 1995199676th edition"
CRC Press 1995 ???
"The Global Positioning System & Inertial Navigation"
Farrell, Jay and Barth, Matthew, McGrawHill,1999, Bevo 623.89
"Physical Geodesy"
Heiskanen & Moritz, Freeman Press 1967, PSU QB281.H4

94

LV1b_IMU0.03

15.

16.
17.
18.

19.

20.

21.

22.

"Rapid Development of Tightly Coupled GPS/INS Systems"


Knight, Donald T., IEEE Aerospace & Electronic Systems Magazine,
Feb.1997, http://www.knightsys.com/aesm1.htm
"Analysis & Compensation of Imperfection Effects in Piezoelectric Vibratory
Gyroscopes"
Loveday, Philip Wayne, PhD thesis Virginia Polytechnic Institute, Feb.1999
"PIC17C7XX Data Sheet"
Microchip Technology Inc., 1998, Document number DS30289A
"Filter Facts"
Portland State University Aeronautical & Space Systems Society, internal
publication,
Portland State University Electrical & Computer Engineering Department PO.
Box 751 Portland Oregon 972070751,http://ee.pdx.edu/~aess/???
"Strapdown System Algorithms"
Savage, Paul, G., Advances in Strapdown Inertial Systems, NATA AGARD
Lecture Series 133, Neuilly Sur Seine, France, May 1984
"Strapdown inertial navigation integration algorithm design, Part1: Attitude
algorithms"
Savage,Paul,G., Journal of Guidance, Control & Dynamics, 21(1)1928, Jan
Feb, 1998
"Strapdown inertial navigation integration algorithm design, Part2: Velocity &
Position algorithms"
Savage,Paul,G., Journal of Guidance, Control & Dynamics, 21(2)208221,
MarApr,1998
"ntc_notes.pdf"
Thermometrics Inc., http://www.thermometrics.com, 1999

You might also like