You are on page 1of 26

Hindawi Publishing Corporation

Modelling and Simulation in Engineering


Volume 2012, Article ID 264537, 25 pages
doi:10.1155/2012/264537

Research Article
Mathematical Model and Matlab Simulation of Strapdown
Inertial Navigation System

Wen Zhang,1 Mounir Ghogho,2, 3 and Baolun Yuan1


1 College of Opto-Electronic Science and Technology, National University of Defense Technology, Changsha 410073, China
2 School of Electronic and Electrical Engineering, University of Leeds, Leeds LS2 9JT, UK
3 International University of Rabat, Rabat 11 100, Morocco

Correspondence should be addressed to Wen Zhang, zhangwendaisy@hotmail.com

Received 24 December 2010; Accepted 5 September 2011

Academic Editor: Ahmed Rachid

Copyright © 2012 Wen Zhang et al. This is an open access article distributed under the Creative Commons Attribution License,
which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

Basic principles of the strapdown inertial navigation system (SINS) using the outputs of strapdown gyros and accelerometers are
explained, and the main equations are described. A mathematical model of SINS is established, and its Matlab implementation
is developed. The theory is illustrated by six examples which are static status, straight line movement, circle movement, s-shape
movement, and two sets of real static data.

1. Introduction shown in Figure 1. In Section 2, the INS-related orthogonal


coordinates (the body frame, the inertial frame, the Earth
Many navigation books and papers on inertial navigation frame, the navigation frame, the ENU-frame, and the wander
system (INS) provide readers with the basic principle of INS. azimuth navigation frame) are described and figures to illus-
Some also superficially describe simulation methods and trate the relationship between the frames are provided. The
rarely provide the free code which can be used by new INS basic principle of SINS is described in the wander azimuth
users to help them understand the theory and develop INS navigation frame (p-frame). In Section 3, two important
applications. Commercial simulation software is available direction cosine matrices (DCMs), the vehicle attitude DCM
but is not free. The objective of this paper is to develop and the position DCM, and the related important attitude
an easy-to-understand step-by-step development method for and position angles are defined. In Section 4, the simulation
simulating INS. Here we consider the most popular INS for data generation of gyros and accelerometers is described
which is the strapdown inertial navigation system (SINS). in ENU-frame. Instead of p-frame, ENU-frame is chosen
The mathematical operations required in our work are because the outputs of gyros and accelerometers are easier
mostly matrix manipulations and more generally basic linear to obtain in this frame. The Matlab implementation is
algebra [1]. In this paper, Matlab [2] is chosen as the simula- given and described step by step. Four kinds of scenarios
tion environment. It is a popular computing environment to (static, straight, circle, and s-shape) are set as examples
perform complex matrix calculations and to produce sophis- of different kinds of vehicle trajectories. In Section 5, the
ticated graphics in a relatively easy manner. A large collection mathematical model of SINS is set up and the calculation
of Matlab scripts are now available for a wide variety of steps in p-frame are provided. In Section 6, the required
applications and are often used for university courses. Matlab initial parameters and other initial data calculation for the
is also becoming more and more popular in industrial SINS model are given for the different simulation scenarios.
research centers in the design and simulation stages. In Section 7, Matlab implementation code functions are
The main purposes of this paper are to establish a listed and described. Further, simulation results for the
mathematical model and to develop a comprehensive Matlab four above-mentioned scenarios are presented; two examples
implementation for SINS. The structure of the proposed from real SINS experiment data are also provided to verify
mathematical model and Matlab simulation of SINS is the validity of the developed codes. Finally, conclusions
2 Modelling and Simulation in Engineering

Introduction of SINS - Definition of important


related frames; DCMs to show the
principle of SINS relations among b-, e-, p-,
and ENU-frames

Initial parameters and


Gyro and accelerometer intial data calculation
data generator proposed in
the ENU-frame Matlab implementation
mechanization and 6 SINS examples:
(1) Static
(2) Straight line
Trajectory simulation (3) Circle shape
based on sensor data (4) S-shape
proposed in the p-frame (5) Real static data set A
mechanization (6) Real static data set B

Figure 1: The schema of the proposed mathematical model and Matlab simulation of SINS.

zb
Yaw

yb
xb Roll
Pitch

Figure 2: The b-frame illustration and the definition of axis rotations.

are drawn. Mathematical details are given in Appendices with the pitch Pxb axis, roll P yb axis, and yaw Pzb
A–D. axis of the vehicle in which the navigation system is
installed.
2. Principles
(2) The inertial frame (i-frame): the i-frame, depicted in
A fundamental aspect of inertial navigation is the precise def- Figure 3, has its origin at the center of the Earth and
inition of a number of Cartesian coordinate reference frames. its axes nonrotating with respect to fixed stars; these
Each frame is an orthogonal, right-handed, coordinate frame axes are denoted by Oxi , Oyi , and Ozi , with Ozi being
or axis set. For all the coordinate frames used in this paper, a coincident with the Earth polar axis.
positive rotation about each axis is taken to be in a clockwise
direction looking along the axis from the origin, as indicated (3) The Earth frame (e-frame): the e-frame, depicted in
in Figure 2. A negative rotation corresponds to an anti- Figure 3, has its origin at the center of the Earth and
clockwise direction. This convention is used throughout this axes nonrotating with respect to the Earth; these axes
paper. It is also worth pointing out that a change in attitude are denoted by Oxe , Oye , and Oze . The axis Oze is the
of a body, which is subjected to a series of rotations about Earth polar axis. The axis Oxe is along the intersection
different axes, is not only a function of the rotation angles, of the plane of the Greenwich meridian and the
but also on the order in which the rotations occur. In this Earth equatorial plane. The Earth frame rotates with
paper, the following coordinate frames are used [3]. respect to the inertial frame at a rate ωie about the axis
Ozi .
(1) The body frame (b-frame): the b-frame, depicted in
Figure 2, is an orthogonal axis set which has its origin (4) The navigation frame (n-frame): the n-frame,
at the center of the vehicle, point P, and is aligned depicted in Figure 3, is a local geographic navigation
Modelling and Simulation in Engineering 3

frame which has its origin at the location of the navi- This matrix propagates in accordance with the following
gation system, point P (the navigation system is fixed equation:
inside the vehicle and we assume that the navigation
system is located exactly at the center of the vehicle), p p
and axes aligned with the directions of east PE, north Ċb = Cb Ωbpb , (2)
PN and the local vertical up PU. When the n-frame
is defined in this way, it is called the “ENU-frame.”
The turn rate of the navigation frame with respect to where Ωbpb is the skew symmetric form of ωbpb , the b-frame
the Earth-fixed frame, ωen , is governed by the motion angular rate with respect to the p-frame.
of the point P with respect to the Earth. This is often Equation (1) is integrated to generate estimates of the
p
referred to as the transport rate. vehicle speed in the wander azimuth frame, ve . This is then
used to generate the turn rate of the wander frame with
(5) The wander azimuth navigation frame (p-frame): p
the p-frame, depicted in Figure 3, may be used to respect to the Earth frame, ωep . The direction cosine matrix
p
avoid the singularities in the computation which which relates the wander frame to the Earth frame, Ce , may
occur at the poles of the n-frame. Like the n-frame, be updated using the following equation:
it is of a local level but rotates through the wander
angle about the local vertical. Here we do not call this p
Ċep = Cep Ωep , (3)
frame w-frame (w for wander) for notation clarity
since w and ω may look similar when printed. Letter  T  p T  T p
 T
p in p-frame stands for platform; indeed the wander Ċep = Ωep Cep = −Ωep Cep , (4)
azimuth navigation frame is of a local level and thus
forms a horizontal platform. where the superscript T means matrix transposition.
p p
In this paper, we choose the p-frame as the navigation Since (Ċep )T = Ċe , (Cep )T = Ce and skew symmetric
p p
frame for vehicle trajectory calculation, for the following matrix is (Ωep )T = −Ωep (see Appendix A), (4) can be
reason. In the local geographic navigation frame mecha- rewritten as
nization, the n-frame is required to rotate continuously as
the system moves over the surface of the Earth in order to p p p
keep its P yN axis pointing to the true north. In order to Ċe = −Ωep Ce , (5)
achieve this condition worldwide, the n-frame must rotate
at much greater rates about its PzU axis as the navigation p
where Ωep is a skew symmetric matrix formed from the
system moves over the surface of the Earth in the polar p p
regions, compared to the rates required at lower latitudes. elements of the angular rate vector ωep ; we could have ωep =
It is clear that near the polar areas the local geographic −ωepe when the rotation angles are reciprocal. Because the
p p
navigation frame must rotate about its PzU axis rapidly z-component of ωep is set to zero, ωepz = 0, the matrix
p p p p
in order to maintain the P yN axis pointing to the pole. expression of ωep is ωep = [ωepx ωepy 0]T . This process is
The heading direction will abruptly change by 180◦ when implemented iteratively and enables any singularities to be
moving past the pole. In the most extreme case, the turn avoided.
rate becomes infinite when passing over the pole. One way In the next section, the two important DCMs, the vehicle
of avoiding the singularity, and also providing a navigation attitude DCM and vehicle position DCM, are defined, as well
system with worldwide capability, is to adopt a wander as the vehicle-attitude-related attitude angles and vehicle-
p
azimuth mechanization in which the z-component of ωep is position-related position angles.
p
always set to zero, that is, ωepz = 0. A wander axis system
is a local level frame which moves over the Earth surface
with the moving vehicle, as depicted in Figure 3. However, 3. Direction Cosine Matrices (DCMs)
as the name implies, the azimuth angle α between P yN axis In this section, the vehicle attitude DCM with the corre-
and P y p axis varies with the vehicle position on Earth. This sponding attitude angles and the vehicle position DCM with
variation is chosen in order to avoid discontinuities in the the corresponding position angles are described separately.
orientation of the wander frame with respect to Earth as the
vehicle passes over either the north or south pole.
p
In the remainder of this section, the main principle of 3.1. Vehicle Attitude DCM Cb . The definition of the rotation
SINS in the p-frame is described. sequence from p-frame to b-frame is (see Figure 4)
Along the same lines as in [3], a navigation equation for
a wander azimuth system can be constructed as follows:
z p , ψG y p , θ y p , γ
p p
 p p
p x p y p z p −−−→ xe ye ze −−−→ xe ye ze −−−→ xb yb zb , (6)
v̇e = Cb f b − 2Ce ωeie + ωep ve p
+g , (1)
p
where Cb is the direction cosine matrix used to transform where ψG is the gird azimuth angle (0–360◦ ), θ is the pitch
the measured specific force vector in b-frame into p-frame. angle (−90◦ –90◦ ), and γ is the roll angle (−180◦ –180◦ ). The
4 Modelling and Simulation in Engineering
⎡ ⎤
above rotation can be written in the following matrix form: cos ψG sin ψG 0
⎢ ⎥
⎢ ⎥
× ⎢− sin ψG cos ψG 0⎥.
Cbp = C3 C2 C1 ⎣ ⎦
⎡ ⎤⎡ ⎤ 0 0 1
cos γ 0 − sin γ 1 0 0
⎢ ⎥⎢ ⎥ (7)
⎢ ⎥⎢
=⎢ 0 1 0 ⎥ ⎢0 cos θ sin θ ⎥

⎣ ⎦⎣ ⎦
p
sin γ 0 cos γ 0 − sin θ cos θ The vehicle attitude DCM Tb is then obtained as

⎡ ⎤
cos γ cos ψG − sin γ sin θ sin ψG − cos θ sin ψG sin γ cos ψG + cos γ sin θ sin ψG
 T ⎢ ⎥

sin γ sin ψG − cos γ sin θ cos ψG ⎥
p
Cb = Cbp = ⎢ cos γ sin ψG + sin γ sin θ cos ψG cos θ cos ψG ⎥. (8)
⎣ ⎦
− sin γ cos θ sin θ cos γ cos θ

For the p-frame system, the angle between the grid north y p So the direction cosine matrix Cnb from b-frame to n-frame is
and the true north yN is the wander azimuth angle α. So the
angle between the horizontal projection along y p axis of the
vehicle’s vertical axis zb and the real north yN is the heading
angle ψ. We have that

ψ = ψG + α. (9)

⎡ ⎤
cos γ cos ψ − sin γ sin θ sin ψ − cos θ sin ψ sin γ cos ψ + cos γ sin θ sin ψ
⎢ ⎥
⎢ ⎥
Cnb = ⎢ cos γ sin ψ + sin γ sin θ cos ψ cos θ cos ψ sin γ sin ψ − cos γ sin θ cos ψ ⎥. (10)
⎣ ⎦
− sin γ cos θ sin θ cos γ cos θ

p p
The gimbal angles ψ, θ, and γ and the gimbal rates ψ̇, 3.2. Vehicle Position DCM Ce . Position matrix Ce is the
b
θ̇, and γ̇ are related to the body rate ωnb , which is the turn DCM from e-frame to p-frame. It has the following rotating
rate of the b-frame with respect to n-frame and measured in sequence (see Figure 5):
b-frame as follows:
⎡ b
⎤ ⎡ ⎤ ⎡ ⎤ ⎡ ⎤ y p ,90◦ −ϕ
ωnbx z,λ
0 θ̇ 0 e
xe ye ze −− → xe ye ze −−−−−→ xe ye ze
⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢ b ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ (12)
⎢ωnby ⎥ = ⎢γ̇⎥ + C3 ⎢0⎥ + C3 C2 ⎢ 0 ⎥
⎣ ⎦ ⎣ ⎦ ⎣ ⎦ ⎣ ⎦ zp , 90◦ zU , α
−−−−→ xE yN zU −−−→ x p y p z p ,
b
ωnbz 0 0 ψ̇
⎡ ⎤ (11)
cos γθ̇ − sin γ cos θ ψ̇ where λ is the longitude angle (−180◦ –180◦ ), ϕ is the latitude
⎢ ⎥
⎢ ⎥ angle (−90◦ –90◦ ), and α is the wander azimuth angle (0–
=⎢ γ̇ + sin θ ψ̇ ⎥.
⎣ ⎦ 360◦ ). The above rotation can be written in the following
sin γθ̇ + cos γ cos θ ψ̇ matrix form:

⎡ ⎤
− sin α sin ϕ cos λ − cos α sin λ − sin α sin ϕ sin λ + cos α cos λ sin α cos ϕ
⎢ ⎥

p ⎥
Ce = ⎢ − cos α sin ϕ cos λ + sin α sin λ − cos α sin ϕ sin λ − sin α cos λ cos α cos ψ ⎥. (13)
⎣ ⎦
cos ϕ cos λ cos ϕ sin λ sin ϕ

In Section 4, a trajectory simulation method in the to derive the desired trajectory and attitude from the
ENU-frame is described step by step to generate sen- simulated sensor data or real sensor data; Section 6
sor data. In Section 5, a trajectory and attitude simu- provides the initial parameters and initial data calcula-
lator method in the p-frame is described step by step tion.
Modelling and Simulation in Engineering 5

ωie 4.1. The Initial Parameters. For the designed trajectory, the
initial parameters are
North pole
Greenwich zi y z n-frame (1) initial position, latitude ϕ0 , longitude λ0 , height h0 ;
meridian ze yN p zUp
xE
α xp p-frame (2) initial velocity v = [vE0 , vN0 , vU0 ];
P
Local
meridian
(3) the designed variation of acceleration a, which varies
ye plane with time according to the designed trajectory;
i-frame xi O
yi (4) the designed variations of the attitude angles, pitch
xe θ, roll γ, and heading ψ, and attitude angle rates,
e-frame
θ̇, γ̇, and ψ̇, which vary with time according to the
Equatorial designed trajectory.
plane

4.2. The Update of Velocity. The velocity is updated as

v ←− v + aΔt , (14)
Figure 3: The reference frames.
where Δt is the time step.

zb z
p z p , zp 4.3. The Update of Position. The position is updated as
γ
Yaw θ ˙ G
Ψ vN Δt
latitude: L ←− L + ,
RN
vE Δt secL , (15)
longitude: λ ←− λ +
xp RE
ΨG P
θ
γ˙
 altitude: h ←− h + vU Δt.
γ
˙
θ x
p, x
p ΨG yb , y 
α p
xb y p 4.4. The Update of Attitude. The attitude angles are updated
Ψ as
yp Roll
yt
Pitch
pitch: θ ←− θ + Δθ,
roll: γ ←− γ + Δγ, (16)
Figure 4: The relation between b-frame and p-frame.
heading: ψ ←− ψ + Δψ.

The attitude rates are updated as


4. Sensor Data Generator
pitch: θ̇ ←− θ̇ + Δθ̇,
The purpose of trajectory simulation is to generate data of
the 3 orthogonal gyros and the 3 orthogonal accelerometers roll: γ̇ ←− γ̇ + Δγ̇, (17)
according to the designed trajectory. It is mentioned in
Section 2 that p-frame is set up to avoid the singularities heading: ψ̇ ←− ψ̇ + Δψ̇.
when the vehicle passes over either the north or south
pole. But in most applications, the SINS systems are seldom The expressions for Δθ, Δγ, Δψ, Δθ̇, Δγ̇, and Δψ̇ depend on
operated under this extreme environment. The ENU-frame the designed trajectory.
can be implemented easier than p-frame, so it is chosen as The direction cosine matrix Cnb can be calculated using
the navigation frame. Figure 6 shows the whole process of the matrix expression (10). We have that Cbn = (Cnb )T .
SINS principal in the ENU-frame mechanization. First, the
vehicle trajectory in the ENU-frame is set. Then, the sensor
4.5. Gyro Data Generator. The output of the gyros is
ideal output is derived using the inverse principle of INS.
The sensor simulation data can be obtained by adding noise  

to the ideal data. Then, we use the simulated sensor data ωbib = I − Sg Cbn ωnie + ωnen + ωbnb + εb , (18)
to derive the noise-corrupted simulated trajectory. Besides,
the difference between the ideal and simulated state vectors where ωbib is the simulated actual output, I is the 3 × 3
can be set as the input for the observed measurements in the unit matrix, Sg is the 3 × 3 diagonal matrix whose diagonal
Kalman filter. elements correspond to the 3 gyros’ scale factor errors, and
6 Modelling and Simulation in Engineering

ωie

North pole
ze , z p , zU
ze , ze y yp xp p-frame
N
α α
xE , y 
e n-frame
P
90◦ −ϕ x e
ye , ye

ϕ λ
O ye

λ x
e
xe
e-frame
xe 90◦ − ϕ

Figure 5: The relation between e-frame and p-frame.

Local gravity vector

g = 9.7803 + 0.51799 C33


2
ωien = [0 ωie cos L ωie sin L]T
− 0.94114 × 10−6 h, g0 = 9.791719
n =[ −vN vE vE tan L T
ωen ]
RN + h RE + h RN + h Gravity
Re (1 − e2 ) Re computer
RN = , RE =
(1 − e2 sin2 L)3/2 (1 − e2 sin2 L)1/2 n n ) × vn
−(2ωie + ωen e
WGS84: Re = 6378140 m,
ωie = 7.2921151467e−5 rad/s Coriolis
e = 0.00335281066475 computer
Position
Body mounted fb Resolution of fn ren
specific force S S Navigation
accelerometers computer
measurement Initial estimates of Velocity
velocity and position
ven = [vN vE vD ]
Cbn Attitude calculation
b
ωib ωien + ωen
n Attitude
Body mounted Attitude
gyroscopes computer
b b n
ωnb = ωib − Cnb (ωie n )
+ ωen

C˙ bn = Cbn Ωbnb
Initial estimates of attitude v̇en = Cbn f b − (2ωien + ωen
n ) × vn + g n
e l

Figure 6: SINS ENU-frame mechanization.

εb is the gyro’s drift and can be simulated as the sum of a In a static base, ωbnb is equal to zero, whereas, in a moving
b
constant noise and a random white noise: εb = εconst
b +εrandom : base it is obtained as
⎡ ⎤ ⎡ ⎤
0 cos γθ̇ − sin γ cos θ ψ̇
⎢ ⎥ ⎢ ⎥
⎢ ⎥
ωnie = ⎢ωie cos L⎥. (19) ωbnb = ⎢

γ̇ + sin θ ψ̇ ⎥
⎥. (20)
⎣ ⎦ ⎣ ⎦
ωie sin L sin γθ̇ + cos γ cos θ ψ̇
Modelling and Simulation in Engineering 7

p p p
C˙ e = −Ωep Ce WGS84: Re = 6378140 m,
p p p p p
ωie = 7.2921151467e−5 rad/s
ωie = Ce ωiee = ωie [Ce13 Ce23 Ce33 ]T e = 0.00335281066475
p
p p p Ce
ωep = [ωepx ωepy 0]T
g = 9.7803 + 0.51799 C33
2
p p
ωepx −1/τa −1/R y p vex − 0.94114 × 10−6 h, g0 = 9.791719 Position
p = [λ ϕ α]
ωepy 1/Rx p 1/τa p
vey
Gravity p
Tb
1/R y p = (1/Re )(1 − eC33
2 2
+ 2eC23 ) computer
p p p
1/Rx p = (1/Re )(1 − eC33
2 2
+ 2eC13 ) −(2ωie + ωep )×ve Attitude
1/τa = (2e/Re )C13 C23 [ΨG θ γ]
Coriolis
computer
Ψ = ΨG + α
fb Resolution of fp
Body-mounted
specific force S S Navigation Results
accelerometers computer
measurement
Velocity
p p p
p veP = [vex vey vez ]
Tb
Attitude calculation Initial velocity
ven = [vN vE vD ]T
b p p and position
Body-mounted ωib ωie + ωep
Attitude p p
gyroscopes computer p p
Aey cos(α) − Aex sin(α)
Ċb = Cb Ωbpb = p p
Aey sin(α) + Aex cos(α)
p p p p
b
ωbpb = ωib − (Cb )−1 (ωie + ωep ) Aez
p p p p p
Initial v̇e = Cb f b − (2ωie + ωep ) × ve + g p
attitude

Figure 7: SINS p-frame mechanization.

Begin

Gyro and
accelerometer data Stop

Initial parameters Yes


and initial data calculation
No
End?
Time step
increases one

Compute Compute
angular velocity attitude angle

Compute Compute
quaternion position

Compute Compute
attitude matrix position matrix

Compute Compute
velocity attitude matrix

Figure 8: SINS program structure.


8 Modelling and Simulation in Engineering

−0.5 54 54

53.8 53.8

−1 53.6 53.6

53.4 53.4

True latitude (deg)


True latitude (deg)
−1.5
True longitude (deg)

53.2 53.2

53 53

−2 52.8 52.8

52.6 52.6

−2.5 52.4 52.4

52.2 52.2

−3 52 52
0 2000 4000 0 2000 4000 −4 −2 0
Time (s) Time (s) True longitude (deg)
(a) (b) (c)

Figure 9: The designed trajectory of static simulation.

ωnen is related to velocity v = [vE , vN , vU ]T and can be which means that the pitch angle, roll angle, and altitude are
expressed as constants during the simulation process:
⎤ ⎡ Δθ = 0,
−vN
⎢ RN ⎥ Δγ = 0,
⎢ ⎥
⎢ vE ⎥
⎢ ⎥ (23)
ωnen = ⎢
⎢ RE ⎥
⎥. (21) Δθ̇ = 0,
⎢ ⎥
⎣ vE tan L ⎦
RN Δγ̇ = 0,
The calculation method for the other parameters for the
4.6. Accelerometer Data Generator. The measurement of the four situations is described as follows.
accelerometer is the specific force: (1) Static:

L = constant,
f b = (I − Sa )Cbn f n + ηb ,

(22) λ = constant,
f n = a + 2ωnie + ωnen × v − g,
vE = constant,
fb
where is the simulated actual output, I is the 3 × 3 unit (24)
vN = constant,
matrix. Sa is the 3 × 3 diagonal matrix whose diagonal
elements correspond to the 3 accelerometers’ scale factor Δψ = 0,
errors, ηb is the bias considered as the sum of a constant noise
and a random white noise ηb = ηbconst + ηbrandom . g = [0 0 g]T , Δψ̇ = 0.
and g = 9.7803 + 0.051799C33 2
− 0.94114 × 10−6 h (m/s2 ),
p
where C33 is the 9th element of Ce and h is the vehicle (2) Straight line:
altitude. aE = constant,

4.7. Examples. For four examples of static, straight line, aN = constant,


circle, and s-shape situations, details will be given next under vE = vE + aE Δt,
the conditions that the vehicle is moving on the surface of the
Earth with no attitude change except for the heading angle, vN = vN + aN Δt,
Modelling and Simulation in Engineering 9

1.5 1.2 1.5

1 1
1

0.8
0.5
0.5
courseAngle error (minute)

pitchAngle error (minute)


0.6

tiltAngle error (minute)


0

0.4 0
−0.5

0.2 −0.5
−1
0
−1
−1.5
−0.2

−1.5
−2 −0.4

−2.5 −0.6 −2
0 2000 4000 0 2000 4000 0 2000 4000
Time (s) Time (s) Time (s)
(a) (b) (c)

Figure 10: Angle error of static simulation.

  
vE vg sin ψ0 + Asshape sin 2πt/Tsshape
ψ = ψ0 + arctan ,
vN aN = −
Tsshape
a v − aE vN  
ψ̇ = N E2 .
vE + vN2 2πAsshape cos 2πt/Tsshape
· ,
(25) Tsshape
 
(3) Circle: 2πt
ψ = ψ0 + Asshape sin .
Tsshape
vg = constant,
 
2πAsshape cos 2πt/Tsshape
2πΔt
Δψ = mod , 2π , ψ̇ = .
Tcircle Tsshape
2π (27)
Δψ̇ = ,
Tcircle (26)
2πvg cos ψ
aE = − , 5. Mathematical Model and Trajectory
Tcircle
Calculation Steps
2πvg sin ψ
aN = − . After the gyro and accelerometer data are simulated using the
Tcircle
method described in the previous section under the designed
scenario, the next step we have to do is to figure out the math-
(4) S-shape: ematical model of SINS and the calculation steps to process
the sensor data to get the calculated trajectories. Based on the
vg = constant,
basic principles of strapdown inertial navigation system [4],
   we draw the mathematical model in the p-frame mechaniza-
vg cos ψ0 + Asshape sin 2πt/Tsshape
aE = − , tion in Figure 7. The calculation steps are described below.
Tsshape Although the situation that the vehicle passes over either the
  north or south pole seldom happens, the universal p-frame
2πAsshape cos 2πt/Tsshape is still chosen instead of the simpler ENU-frame to give a
· ,
Tsshape navigation illustration in a different frame.
10 Modelling and Simulation in Engineering

6 0

Longitude error (minute)

Latitude error (minute)


4 −1

2 −2

0 −3
0 1000 2000 3000 4000 0 1000 2000 3000 4000
Time (s) Time (s)
(a) (b)
4 4

Ground velocity error (m/s)


3 3
Distance error (nm)

2 2

1 1

0 0
0 1000 2000 3000 4000 0 1000 2000 3000 4000
Time (s) Time (s)
(c) (d)

Figure 11: Position and velocity error of static simulation.

p p
5.1. Quaternion Q Update and Optimal Normalization. 5.2. Cb Calculation. Cb is vehicle attitude DCM which
There are three kinds of strapdown attitude representations: transforms the measured angle in the b-frame to the p-
DCM, Euler angle, and quaternion. In this paper, we frame, with its 9 components Ti j , i, j = 1, 2, 3. (Here we use
choose quaternion. The reason why quaternion is chosen is Ti j to distinguish it from the components Ci j , i, j = 1, 2, 3 of
p
explained in [3]. Ce which is used below.)
p
The quaternion formed by a rotating body frame around After obtaining q0 , q1 , q2 , and q3 using (29), Cb can be
the platform frame is calculated as
Q = q0 + q1 ib + q2 jb + q3 kb . (28) p
Cb
The update for the quaternion can be obtained by solving the ⎡ ⎤
following quaternion differential equation: T11 T12 T13
⎢ ⎥
⎡ ⎤⎡ ⎤ ⎢ ⎥
⎡ ⎤ = ⎢T21 T22 T23 ⎥
q̇0 0 −ωbpbx −ωbpby −ωbpbz q ⎣ ⎦
⎢ ⎥ ⎢ ⎥⎢ 0 ⎥ T31 T32 T33
⎢q̇ ⎥ ⎢ b b ⎥ ⎢q ⎥
⎢ 1⎥ 1 ⎢ ω pbx 0 ωbpbz −ω pby ⎥
⎥⎢ 1⎥
⎢ ⎥= ⎢ ⎢ ⎥. ⎡


⎢ ⎥ 2⎢ ⎢ω b b b

⎥ ⎢ ⎥ (29) q02 + q12 − q22 − q32 2 q1 q2 − q0 q3 2
q1 q3 + q0 q2
⎢q̇2 ⎥ ⎢ pby −ω pbz 0 ω pbx ⎥⎢ q2 ⎥ ⎢

⎣ ⎦ ⎣ ⎦⎣ ⎦ = ⎣ 2
q1 q2 + q0 q3 q02
− q12 + q22 − q32 2 q2 q3 − q0 q1 ⎦.
q̇3 ωbpbz ωbpby −ωbpbx 0 q3 2 q1 q3 − q0 q2 2 q2 q3 + q0 q1 q0 − q1 − q2 + q3
2 2 2 2

(31)
Based on the Euclide norm minimized indicator [4], the
optimal normalization for the quaternion is
5.3. Specific Force Transformation from f b in b-Frame to f p
Q in p-Frame. The specific force f b in the b-frame can be
Q ←−  . (30)
q02 + q12 + q22 + q32 transformed to f p in the p-frame by multiplication with
Modelling and Simulation in Engineering 11

−0.7 54.4 54.4

−0.8
54.2 54.2
−0.9

−1
54 54

True latitude (deg)


True latitude (deg)
True longitude (deg)

−1.1
53.8 53.8

−1.2

53.6 53.6
−1.3

−1.4 53.4 53.4

−1.5
53.2 53.2
−1.6

−1.7 53 53
0 2000 4000 0 2000 4000 −2 −1 0
Time (s) Time (s) True longitude (deg)
(a) (b) (c)

Figure 12: The designed trajectory of straight line simulation.

p
DCM Cb : The ground speed is the vehicle velocity projection on the
horizontal plane:
p
f p = Cb f b , 
vg = vx2 + v2y . (34)
⎡ p⎤ ⎡ ⎤
fx fxb (32)
⎢ ⎥ ⎢ ⎥ p
⎢ p⎥ p⎢ ⎥
⎢ f y ⎥ = Cb ⎢ f yb ⎥, 5.5. Position Matrix Ce Update. The update for the position
⎣ ⎦ ⎣ ⎦ p
p matrix Ce can be obtained by solving the following differen-
fz fzb p
tial equation, noticing that ωepz = 0:
p p p p p
5.4. Velocity ve Calculation. The velocity ve update can be Ċe = −Ωep Ce ,
obtained by solving the following differential equation: ⎡ ⎤
C11 C12 C13
  ⎢ ⎥
p p p p p ⎢ ⎥
v̇e = f p − 2ωie + ωep ve + g p , Ce = ⎢C21 C22 C23 ⎥,
⎣ ⎦
⎡ ⎤ ⎡ p⎤ ⎡ ⎤ C31 C32 C33
v̇x fx 0
⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎡ ⎤ ⎡ p ⎤⎡ ⎤
⎢ ⎥ ⎢ p⎥ ⎢ ⎥ Ċ11 Ċ12 Ċ13 0 0 −ωepy C11 C12 C13
⎢v̇ y ⎥ = ⎢ f y ⎥ − ⎢0⎥ ⎢ ⎥ ⎢ ⎥⎢ ⎥
⎣ ⎦ ⎣ ⎦ ⎣ ⎦ ⎢ ⎥ ⎢ p ⎥⎢ ⎥
v̇z p
fz g ⎢Ċ21 Ċ22 Ċ23 ⎥ = ⎢ 0 0 ωepx ⎥⎢C21 C22 C23 ⎥.
⎣ ⎦ ⎣ ⎦⎣ ⎦
p p
⎡  p ⎤ Ċ31 Ċ32 Ċ33 ωepy −ωepx 0 C31 C32 C33
p p
0 2ωiez − 2ωiey +ωepy (35)
⎢ ⎥
⎢ p p p ⎥
+⎢
⎢ −2ωiez 0 2ωiex + ωepx ⎥⎥
⎣  p  ⎦ p
p
2ωiey +ωepy
p p
− 2ωiex +ωepx 0 5.6. Position Angular Velocity ωep Update. In the chosen
p
⎡ ⎤ wander azimuth navigation frame, we have ωepz = 0, and
vx ⎡ ⎤
⎢ ⎥
⎢ ⎥ ⎡ p ⎤
1 1 ⎡ p⎤
× ⎢v y ⎥. ωepx ⎢− τ − R ⎥ vex
⎣ ⎦
⎣ ⎦=⎢
⎢ 1a y p ⎥⎣ ⎦
vz p ⎣ 1 ⎥ p ,
⎦ vey
(36)
ωepy
(33) Rx p τa
12 Modelling and Simulation in Engineering

1 1.2 1.5

0.5 1 1

0 0.8 0.5
courseAngle error (minute)

pitchAngle error (minute)

tiltAngle error (minute)


−0.5 0.6 0

−1 0.4 −0.5

−1.5 0.2 −1

−2 0 −1.5

−2.5 −0.2 −2
0 2000 4000 0 2000 4000 0 2000 4000
Time (s) Time (s) Time (s)
(a) (b) (c)
Figure 13: Angle error of straight line simulation.

6 1
Longitude error (minute)

Latitude error (minute)

0
4

−1

2
−2

0 −3
0 1000 2000 3000 4000 0 1000 2000 3000 4000
Time (s) Time (s)
(a) (b)
4 1
Ground velocity error (m/s)

3
Distance error (nm)

−1
1

0 −2
0 1000 2000 3000 4000 0 1000 2000 3000 4000
Time (s) Time (s)
(c) (d)
Figure 14: Position and velocity error of straight line simulation.
Modelling and Simulation in Engineering 13

53.002
−1.7 53.002

−1.7005 53.0015
53.0015

−1.701
53.001
53.001
−1.7015

True latitude (deg)


True longitude (deg)

True latitude (deg)


53.0005
−1.702 53.0005

−1.7025
53
53

−1.703 52.9995
52.9995
−1.7035
52.999
52.999
−1.704

52.9985
−1.7045

−1.704
52.9985

−1.7
−1.702
0

2000

4000

2000

4000

Time (s) Time (s) True longitude (deg)


(a) (b) (c)

Figure 15: The designed trajectory of circle simulation.

2 1.5 1.5

0
1 1

−2
courseAngle error (minute)

pitchAngle error (minute)

0.5 0.5
tiltAngle error (minute)

−4

−6 0 0

−8
−0.5 −0.5

−10

−1 −1
−12

−14 −1.5 −1.5


0 2000 4000 0 2000 4000 0 2000 4000
Time (s) Time (s) Time (s)
(a) (b) (c)

Figure 16: Angle error of circle simulation.


14 Modelling and Simulation in Engineering

3 1

Longitude error (minute)

Latitude error (minute)


0
2

−1

1
−2

0 −3
0 1000 2000 3000 4000 0 1000 2000 3000 4000
Time (s) Time (s)
(a) (b)
3 4

Ground velocity error (m/s)


Distance error (nm)

2 2

1 0

0 −2
0 1000 2000 3000 4000 0 1000 2000 3000 4000
Time (s) Time (s)
(c) (d)

Figure 17: Position and velocity error of circle simulation.

p
where 5.7. Earth Angular Velocity ωie and Attitude Angular Velocity
ωbpb Calculation. We have that
1 1

= 1 − eC33
2 2
+ 2eC23 ,
Ry p Re
⎡ ⎤⎡ ⎤ ⎡ ⎤
1 1
C11 C12 C13 0 ωie C13
= 1 − eC33
2 2 ⎢ ⎥⎢ ⎥ ⎢ ⎥
+ 2eC13 , (37) p p ⎢ ⎥⎢ ⎥ ⎢ ⎥
Rx p Re ωie = Ce ωeie = ⎢C21 C22 C23 ⎥⎢ 0 ⎥ = ⎢ωie C23 ⎥, (38)
⎣ ⎦⎣ ⎦ ⎣ ⎦
1 2e C31 C32 C33 ωie ωie C33
= C13 C23 ,
τa Re   
p −1 p p

ωbpb = ωbib − ωbip = ωbib − Cb ωie + ωep , (39)
p
where the elements of position matrix Ce can be obtained 5.8. Attitude Angle Calculation. The relation between atti-
using (35). p
tude matrix Cb and the three attitude angles, grid azimuth
angle ψG , pitch angle θ, and roll angle γ, is

⎡ ⎤
cos γ cos ψG − sin γ sin θ sin ψG − cos θ sin ψG sin γ cos ψG + cos γ sin θ sin ψG
⎢ ⎥
p ⎢ ⎥
Cb = ⎢ cos γ sin ψG + sin γ sin θ cos ψG cos θ cos ψG sin γ sin ψG − cos γ sin θ cos ψG ⎥. (40)
⎣ ⎦
− sin γ cos θ sin θ cos γ cos θ
Modelling and Simulation in Engineering 15

−1.699 53.04 53.04

−1.6995 53.035 53.035

−1.7 53.03 53.03

True latitude (deg)


−1.7005 53.025 53.025

True latitude (deg)


True longitude (deg)

−1.701 53.02 53.02

−1.7015 53.015 53.015

−1.702 53.01 53.01

−1.7025 53.005 53.005

−1.703 53 53
0 2000 4000 0 2000 4000 −1.71 −1.7 −1.69
Time (s) Time (s) True longitude (deg)
(a) (b) (c)

Figure 18: The designed trajectory of s-shape simulation.



Thus, the principal values of ψG , θ, and γ are ⎪γprincipal ,


if T33 > 0,

θprincipal = sin−1 T32 , γ ←− ⎪γprincipal + 180 , ◦
if T 33 < 0, γprincipal < 0,



⎩γ
principal − 180◦ , if T 33 < 0, γprincipal > 0,
−1 −T31
γprincipal = tan ,
T33 (41) ⎧

⎪ ψGprincipal , if T22 > 0, ψGprincipal > 0,



−1 −T12
ϕGprincipal = tan . ψG ←− ⎪ψGprincipal + 360◦ , if T22 > 0, ψGprincipal < 0, (42)
T22 ⎪


⎩ψ
Gprincipal + 180◦ , if T 22 < 0.
Considering the defined range of the angles, the expressions
of the real values of ψG , θ, γ, and are 5.9. Position Angle Calculation. The relation between posi-
p
tion matrix Ce and the 3 position angles, longitude λ, latitude
θ ←− θprincipal , ϕ, and wander azimuth angle α, is

⎡ ⎤
− sin α sin ϕ cos λ − cos α sin λ − sin α sin ϕ sin λ + cos α cos λ sin α cos ϕ
⎢ ⎥
p ⎢ ⎥
Ce = ⎢ − cos α sin ϕ cos λ + sin α sin λ − cos α sin ϕ sin λ − sin α cos λ cos α cos ψ ⎥. (43)
⎣ ⎦
cos ϕ cos λ cos ϕ sin λ sin ϕ

Thus, the principal values of ϕ, λ, and α are Considering the defined range of the angles, the expressions
−1 of the real values of ϕ, λ, and α are
ϕprincipal = sin C33 ,
ϕ ←− ϕprincipal ,
C32 ⎧
λprincipal = tan−1 , ⎪
⎨λprincipal ,
⎪ if C31 > 0,
C31 (44)
C13 λ ←− ⎪λprincipal + 180◦ , if C31 < 0, λprincipal < 0,
αprincipal = tan−1 . ⎪
⎩λ
C23

principal − 180 , if C31 < 0, λprincipal > 0,
16 Modelling and Simulation in Engineering

1.5 1.5 1.5

1
1
1

0.5
0.5
courseAngle error (minute)

pitchAngle error (minute)


0.5

tiltAngle error (minute)


0
0
−0.5 0
−0.5
−1
−0.5
−1
−1.5

−1
−1.5
−2

−2.5 −1.5 −2
0 2000 4000 0 2000 4000 0 2000 4000
Time (s) Time (s) Time (s)
(a) (b) (c)

Figure 19: Angle error of s-shape simulation.



⎪ αprincipal , if C23 > 0, αprincipal > 0, 5.13. Local Gravity g Calculation. The local gravity g is


⎨ calculated as [5]
α ←− ⎪αprincipal + 360 , ◦
if C23 > 0, αprincipal < 0,




⎩α g = 9.7803 + 0.051799C33
2
− 0.94114 × 10−6 h m/s2 , (49)
principal + 180◦ , if C23 < 0.
(45) where C33 = sin ϕ, ϕ is the latitude and h is the altitude above
sea level.
5.10. Heading Angle Calculation. The heading angle ψ is Before we carry out the implementation of the above de-
calculated as scribed mathematical model of SINS, we have to know the
initial parameters of the system, which will be described in
ψ = ψG + α. (46) the following Section.

To make sure that ψ will not be out of range, we should 6. Initial Parameters and Initial
determine it according to
Data Calculation

⎨ψ, if ψ < 360◦ , For the calculations in Section 5, we first need to know the
ψ ←− ⎩ (47) given initial parameters and the corresponding initial data.
ψ − 360◦ , if ψ ≥ 360◦ .

6.1. Initial Parameters


5.11. Velocity ven in n-Frame Calculation. We have that
⎡ ⎤ ⎡ ⎤ (1) Initial position, latitude ϕ0 , longitude λ0 , height h0 .
p p
vE vey cos α − vex sin α The values of these parameters should be the same as
⎢ ⎥ ⎢ ⎥
⎢ ⎥ ⎢ p p ⎥ the corresponding ones in Section 4.1.
ven = ⎢vN ⎥ = ⎢ vey sin α + vex cos α ⎥. (48)
⎣ ⎦ ⎣ ⎦
vU p (2) Initial wander azimuth angle α0 . We could choose
vez
α0 = 0 at the very beginning. The value should be
the same as the corresponding ones in Section 4.1.
5.12. Altitude Calculation. For the calculation of the altitude,
(3) Initial velocity vE0 , vN0 , vU0 .
damped methods should be used because it diverges with
time. To simplify problems, in our simulations, we set the (4) If barometric altimeter applied, initial external refer-
altitude to zero, that is, surface of the Earth. ence height href0 can be supplied.
Modelling and Simulation in Engineering 17

6.2. Initial Alignment Data At this point, the whole SINS model, including sensor
data generator and initial parameters, is fully described. The
(1) Initial attitude matrix is determined by initial align- following Section will provide a Matlab implementation of
p p
ment process Cb0 . Cb0 = Cnb0 when α0 = 0. the SINS theory.
(2) Initial position matrix is determined by initial align-
p p
ment process Ce0 . Ce0 = Cne0 when α0 = 0. 7. Matlab Implementation and
Simulation Examples
6.3. Initial Data Calculation.
First, the Matlab program structure and the main codes are
(1) Initial attitude angles ϕ0 , λ0 , and α0 determination: given. The Matlab implementation is illustrated using six ex-
The initial attitude angles ψG0 , θ0 , and γ0 can be amples: static, straight, circle, s-shape, and the other two
calculated using (41) and (42). Because α0 = 0, from real SINS experimental data.
heading angle ψ0 = ψG0 .
(2) Initial quaternion calculation: From the diagonal 7.1. Matlab Implementation and Codes. The program struc-
elements in (31) and the quaternion constraint ture is given in Figure 8. The program starts from “Begin”
equation, we have that and ends at “Stop.” The gyro and accelerometer data are
obtained either from a sensor data generator described in
q02 + q12 − q22 − q32 = T11 , Section 4 or from the real SINS experiment logged files. Pro-
cessing the sensor data with the initial parameters, using the
q02 − q12 + q22 − q32 = T22 , method described in Section 5, we get the attitude, velocity
(50) and position values of the system at specific times. After all
q02 − q12 − q22 + q32 = T33 ,
data are processed, the program will stop and the results will
q02 + q12 + q22 + q32 = 1, be provided.
The main Matlab codes are presented next.
The solution to (50) (1) Initial settings:
  1
q1  = 1 + T11 − T22 − T33 , (a) initSettings.m contains initial parameters and
2 constants used in the simulation project.
  1
q2  = 1 − T11 + T22 − T33 ,
2 (2) Trajectory part:
(51)
 
q3  = 1 (a) initialCalculation static.m gives the initial cal-
1 − T11 − T22 + T33 ,
2 culation for the static situation;
   (b) trajectorySimulater static.m simulates gyro and
q0  = 1 − q 2 − q 2 − q 2 .
1 2 3 accelerometer data for the static situation;
Assuming q0 to be positive, according to (31), we have (c) initialCalculation straight.m gives the initial
that calculation for the straight line situation;

(d) trajectorySimulater straight.m simulates gyro
sign q0 = sign(1), and accelerometer data for the straight line

situation;
sign q1 = sign(T32 − T23 ),
(52) (e) initialCalculation cirlce.m gives the initial cal-


sign q2 = sign(T13 − T31 ), culation for the circle situation;

(f) trajectorySimulater circle.m simulates gyro and
sign q3 = sign(T21 − T12 ). accelerometer data for the circle situation;
(g) initialCalculation Sshape.m gives the initial cal-
p
(3) Initial position matrix Ce0 : Substituting initial posi- culation for the s-shape situation;
tion, latitude ϕ0 , longitude λ0 and initial wander (h) trajectorySimulater Sshape.m simulates gyro
azimuth α0 = 0 into (43), we can obtain the initial and accelerometer data for the s-shape situa-
p
position matrix Ce0 . tion;
p
(4) Initial Earth angular velocity ωie0 and initial attitude
(3) Simulation part:
angular velocity ωbpb0 calculations: use (38) and (39).
p (a) INSmain.m is the main program; the simulation
(5) Initial position angular velocity ωep0 calculation: use
(36) and (37). starts from here;
(b) AltitudeParamete.m calculates the four damping
(6) Initial gravity g0 calculation: use (49) and element C33
p parameters to damp the altitude error according
in Ce0 . to the input parameters k4 and τ, to be used
(7) Initial ground velocity vg0 calculation: use (34). with the external reference altitude;
18 Modelling and Simulation in Engineering

6 1
Longitude error (minute)

Latitude error (minute)


0
4

−1

2
−2

0 −3
0 1000 2000 3000 4000 0 1000 2000 3000 4000
Time (s) Time (s)
(a) (b)
4 4
Ground velocity error (m/s)

3
Distance error (nm)

0
1

0 −2
0 1000 2000 3000 4000 0 1000 2000 3000 4000
Time (s) Time (s)
(c) (d)
Figure 20: Position and velocity error of s-shape simulation.

(c) InitializePosition.m gives the initial position (h) ComputeAttitudeMatrix.m computes the atti-
initLong, initLat, initAlt, the external reference tude matrix and transfers the raw data of the
altitude extAlt, and the wander azimuth angle accelerometers to the p-frame;
wanderAzimuth; it calculates the initial position (i) ComputeVelocity.m computes the velocity, in the
matrix and then orthogonalizes the matrix; wander azimuth frame (p-frame) and ENU-
frame, the ground velocity and altitude;
(d) InitializeAttitude.m gives the initial alignment
(j) ComputePositionMatrix.m computes the posi-
error and calculates the attitude matrix (strap-
tion matrix.
down matrix);
(k) ComputePosition.m computes latitude, longi-
(e) InitializeQuaternion.m calculates the quater- tude and wanderAzimuth;
nion according to the input attitude matrix; (l) ComputeAttitudeAngle.m computes the attitude
angle of pitchAngle, tiltAngle, gridAzimuth and
(f) ComputeAngularVelocity.m calculates the posi- courseAngle;
tion angular velocity, earth angular velocity, and
(m) OrthogonalizeMatrix.m computes matrix or-
position angle increment in the p-frame and
thogonalization; see Appendix D;
resets the gyroscopes and accelerometers;
(n) QuaCofMatrix.m is called by ComputeQuater-
(g) ComputeQuaternionRungeKutta.m computes nionRungeKutta.m;
the quaternion using Runge-Kutta method [6]; (o) PlotResult.m plots the results of the simulation
see Appendices B and C; project.
Modelling and Simulation in Engineering 19

114 29.5 29.5

113.5 29 29
True longitude (deg)

True latitude (deg)

True latitude (deg)


113 28.5 28.5

112.5 28 28

112 27.5 27.5

111.5 27 27
0 5 10 0 5 10 110 112 114
Time (s) ×104 Time (s) ×104
True longitude (deg)
(a) (b) (c)

Figure 21: The trajectory of real data set A.

40 3 3

30
2 2
20

10
courseAngle error (minute)

pitchAngle error (minute)

1 1
tiltAngle error (minute)

−10 0 0

−20

−1 −1
−30

−40
−2 −2

−50

−60 −3 −3
0 5 10 0 5 10 0 5 10
Time (s) ×104 Time (s) ×104 Time (s) ×104

(a) (b) (c)

Figure 22: Angle error of real data set A.


20 Modelling and Simulation in Engineering

50 100

Longitude error (minute)

Latitude error (minute)


0 50

−50 0

−100 −50
0 5 10 0 5 10
Time (s) ×104 Time (s) ×104

(a) (b)
100 20

Ground velocity error (m/s)


80
15
Distance error (nm)

60
10
40

5
20

0 0
0 5 10 0 5 10
Time (s) ×104 Time (s) ×104

(c) (d)
Figure 23: Position and velocity error of real data set A.

7.2. Simulation Examples. In this subsection, there are 6 Example 1 (Static situation simulation). The static situation
SINS simulation examples. Example 1 is the static situation is the most basic and simple situation where the output of the
simulation, where the vehicle trajectory in the n-frame gyro is the Earth rotating angular velocity and the output of
is a fixed point. Example 2 is the straight line situation the accelerometer is the gravity. Figure 9 shows the designed
simulation, where the vehicle trajectory in the n-frame true trajectory. Figure 10 shows the difference between the
is a straight line. Example 3 is the circle situation sim- calculated angle and the true angle. Figure 11 shows the
ulation, where the vehicle trajectory in the n-frame is a differences between the calculated PV (position and velocity)
circle. Example 4 is the s-shape situation simulation, where and the true PV. The maximum value of the distance error in
the vehicle trajectory in the n-frame is an s-shape line. 1 hour is 3.5 nm (nautical mile).
Here, high-accuracy SINS simulation is applied to the four
Example 2 (Straight line situation simulation). The straight
situations. The initial latitude and longitude errors are
line situation corresponds to a vehicle moving along the
set to be 1 minute. The simulation time is set to 3600
northwest direction. Figure 12 shows the designed true tra-
seconds. The initial positions are dependent on the designed
jectory. Figure 13 shows the difference between the calculated
trajectories.
angle and the true angle. Figure 14 shows the differences
In order to verity the validity of the Matlab codes further, between the calculated PV and the true PV. The maximum
two sets of real static data are used, and we refer to these as value of the distance error in 1 hour is 3.7 nm.
Examples 5 and 6. The two sets of real data, set A and set B,
are collected from the same SINS in the same place but at Example 3 (Circle situation simulation). The circle situation
different times. The 2 data sets are 24 hours long. corresponds to a vehicle moving along a circle. Figure 15
All the errors (the angle error, the velocity error, and the shows the designed true trajectory. Figure 16 shows the
position error) will contribute to the distance error in the difference between the calculated angle and the true angle.
INS trajectory calculation. Thus, the distance error is a key Figure 17 shows the difference between the calculated PV and
index of an INS system. The distance error will increase with the true PV. The maximum value of the distance error in 1
time, so it is always associated with a time stamp. hour is 3.0 nm.
Modelling and Simulation in Engineering 21

114 29.5 29.5

113.5 29 29
True longitude (deg)

True latitude (deg)

True latitude (deg)


113 28.5 28.5

112.5 28 28

112 27.5 27.5

111.5 27 27
0 5 10 0 5 10 110 112 114
Time (s) ×104 Time (s) ×104
True longitude (deg)
(a) (b) (c)

Figure 24: The trajectory of real data set B.

50 3 2

40
2 1
30

20 1.5
courseAngle error (minute)

pitchAngle error (minute)

1
tiltAngle error (minute)

10
0.5
0 0

−10
0
−1
−20
−1
−30
−2
−1.5
−40

−50 −3 −2
0 5 10 0 5 10 0 5 10
Time (s) ×104 Time (s) ×104 Time (s) ×104

(a) (b) (c)

Figure 25: Angle error of real data set B.


22 Modelling and Simulation in Engineering

20 100

Longitude error (minute)

Latitude error (minute)


0
50

−20

0
−40

−60 −50
0 5 10 0 5 10
Time (s) ×104 Time (s) ×104

(a) (b)
60 15

Ground velocity error (m/s)


Distance error (nm)

40 10

20 5

0 0
0 5 10 0 5 10
Time (s) ×104 Time (s) ×104

(c) (d)

Figure 26: Position and velocity error of real data set B.

Example 4 (S-shape situation simulation). The s-shape sit- is processed in a much higher rate and thus its input is more
uation corresponds to a vehicle moving along an s-shaped accurate than the simulated system.
line. Figure 18 shows the designed true trajectory of s-shape
situation simulation. Figure 19 shows the difference between Example 6 (Real static data set B simulation). Figure 24
the calculated angle and the true angle. Figure 20 shows the shows the trajectory of the real data set B; from the figure
differences between the calculated PV and the true PV. The we can conclude that the system is static too. In Figure 25,
maximum value of the distance error in 1 hour is 3.3 nm. the red line corresponds to the three attitude angle errors
of the real system, while the blue line corresponds to the
Example 5 (Real static data set A simulation). First, we proc- three attitude angle errors obtained by the Matlab code
ess data set A [7]. Figure 21 shows the trajectory for the when applied to the real raw sensor data set B. We can
real data set A; from the figure we can conclude that the also see that the difference between the red and blue lines
system is static. In Figure 22, the red line corresponds to the is negligible. In Figure 26, the red line corresponds to the
three attitude angle errors of the real system, while the blue position and velocity errors of the real system, while the blue
line corresponds to the three attitude angle errors processed line corresponds to the position and velocity errors obtained
by the Matlab code. We can also show that the difference by the Matlab code when applied to the real raw sensor data
between the red and blue lines is negligible. In Figure 23, the set B. We can also see that the difference between the red
red line corresponds to the position and velocity errors of the and blue lines is negligible, and this further validates the
real system, while the blue line corresponds to the position correctness of the Matlab code.
and velocity errors processed by the Matlab code. We can
also see that the difference between the red and blue lines 8. Conclusions
is negligible and this validates the correctness of the Matlab
code. The error described by the red lines (output from the In this paper, a mathematical model for the strapdown
real system) is slightly smaller than that described by the blue inertial navigation system (SINS) is built and its Matlab
lines (simulation). This is due to the fact that the real system implementation is developed. First, a number of Cartesian
Modelling and Simulation in Engineering 23



coordinate reference frames that relate to SINS are intro- k2 = f ωi+1/2 , yi+1/2 , ti+1/2 ,
duced, the basic principle of SINS in the wander azimuth τ (B.2)

navigation frame (p-frame) is explained, and the main yi+1/2 = yi + k2 .
2
equations are described. Second, the important attitude
direction cosine matrix and position direction cosine matrix
in the p-frame are defined in detail. Third, the mathematical
model for SINS simulation is described in detail. Fourth, a (3) Calculate slope k3 , again the slope at the midpoint, to
trajectory simulator model is set up to generate data from determine the yi+1 value:
three orthogonal gyros and three orthogonal accelerometers.


The initial parameters and initial data calculations for k3 = f ωi+1/2 , yi+1/2 , ti+1/2 ,
the mathematical model are also carried out. Finally, a (B.3)
yi+1 = yi + τk3 .
Matlab implementation of SINS is developed. The proposed
simulation method is illustrated with four examples, static,
straight line, circle, and s-shape trajectories; details are given (4) Calculate slope k4 , the slope at the end of the interval,
under the condition that the pitch angle, roll angle, and with its yi+1 value determined using k3 :
altitude are constant during the simulation process. Further,
two sets of real experimental data are processed to verify the

k4 = f ωi+1 , yi+1 , ti+1 . (B.4)
validity of the Matlab code.

Appendices (5) Average the four slopes; greater weights are given to
the slopes at the midpoint:
A. Symmetric Matrix Basic Operation
1
T k = (k1 + 2k2 + 2k3 + k4 ). (B.5)
For a vector ω = [ωx ω y ωz ] , its skew symmetric matrix Ω 6
is
⎡ ⎤ (6) Finally, using the average slope k, the value of yi+1 is
0 −ωz ωy
⎢ ⎥
⎢ ⎥
Ω = ⎢ ωz 0 −ωx ⎥. (A.1) yi+1 = yi + τk. (B.6)
⎣ ⎦
−ω y ωx 0
C. Angular Velocity Extraction
We can easily show that
From Appendix B and (29), we need to provide the attitude
ΩT = −Ω. (A.2) angular velocity ωbpb in a period of τ/2 to update the
quaternion. By inspecting the expression of ωbpb in (39), we
p p b
B. Fourth-Order Runge-Kutta Method know that the variations of ωep and ωie are slow, while ωib
b
changes quickly. So, only ωib needs to be given in a period of
For numerical analysis, the fourth-order Runge-Kutta b
τ/2. We know that ωib (we next use ω to simplify notation)
method is an important iterative method for the approxima-
is the output of gyro which gives data in the form of angle
tion of solutions of ordinary differential equations. Here, in
increment Δθi during the time interval τ. For first-order
this paper, the fourth-order Runge-Kutta method is adopted
angular velocity extraction, we have that
to update the quaternion.
The steps for the fourth-order Runge-Kutta method are
Δθi
the following. ω= . (C.1)
τ
(1) Calculate slope k1 , the slope at the beginning of the
interval, to determine the value of yi+1/2 at the point In order to provide ω(ti )ω(ti+1/2 ) and ω(ti+1 ), we need to do
ti+1/2 using the Euler method: second-order angular velocity extraction:

3Δθi1 − Δθi2
k1 = f ωi , yi , ti , ω(ti ) = ,
(B.1) τ
τ
yi+1/2 = yi + k1 , Δθi1 + Δθi2
2 ω(ti+1/2 ) = , (C.2)
τ
where τ is the time step between time ti and time ti+1 ,
−Δθi1 + 3Δθi2
τ = ti+1 − ti . ω(ti+1 ) = ,
τ
(2) Calculate slope k2 , the slope at the midpoint of the

interval, to determine the value of yi+1/2 at the point where Δθi1 is the angle increment from time ti to ti+1/2 and
ti+1/2 using Euler’s method: Δθi2 is the angle increment from time ti+1/2 to time ti+1 .
24 Modelling and Simulation in Engineering

D. Matrix Orthogonalization Method AT : Transpose of matrix A


p
ve : Velocity vector measured in p-frame
For the direction cosine matrix C, the optimal orthogonaliza- with respect to e-frame
tion method is to get C which makes the following Euclidian p
Cb : Vehicle attitude DCM used to
function have the minimum value [8]: transform the measured angle
in b-frame to p-frame, with its 9

3 
⎤ 1/2 components Ti j , i, j = 1, 2, 3

3   p
D=⎣ Ci j − Ci j ⎦. (D.1) Cbp : Transpose of Cb is used to transform
i=1 j =1 the measured vector in p-frame to
b-frame
p
Ce : Vehicle position DCM used to
 is thus
The expression for C transform the measured vector
in e-frame to p-frame, with its 9
 −3/2 components Ci j , i, j = 1, 2, 3
p
 = ±C CT C
C , (D.2) Cep : Transpose of Ce is used to transform
the measured vector in p-frame to
e-frame
where the superscript T means the transpose operator. It is Cnb : Vehicle attitude DCM used to
difficult to solve the above equation directly. Instead, we use transform the measured angle
an iterative method. Assume C0 to be initial matrix, and Cn in b-frame to n-frame
to be the matrix obtained after n iterations. The iteration f p : Specific force vector measured in
process is as follows: p-frame
f n : Specific force vector measured in
n-frame
C0 = C, f b : Specific force vector measured in
.. b-frame; the output of the 3
. (D.3)
1
accelerometers
Cn+1 = Cn − Cn CT Cn − C . ωie : Constant value of the turn rate of the
2
Earth, ωie = 7.2921151467 ×
10−5 rad/s
If at the n + 1 step, the following function: ωnie : Turn rate of the Earth measured in
n-frame
 3 
3  2 ωbib : Turn rate of the b-frame with respect
fn = Ci j − Ci jn (D.4) to i-frame, which is measured in
i=1 j =1 b-frame; the output of the 3 gyros
ωnen : Transport rate of the n-frame with
respect to e-frame, which is
satisfies fn+1 − fn ≤  (e.g.,  = 10−10 ), then the iteration measured in n-frame
procedure can be stopped and Cn+1 is taken to be the final ωeie : Turn rate of the e-frame with respect
result. to i-frame, which is measured in
e-frame
p
ωep : Turn rate of the p-frame with respect
Abbreviations and Symbols to e-frame, which is measured in
SINS:Strapdown inertial navigation system p-frame
DCM: Direction cosine matrix ωepe : Turn rate of the e-frame with respect
O: Center of the Earth to p-frame, which is measured in
P: Center of the vehicle e-frame
b
x, y, z:
3 orthogonal axes or the 3 ω pb : Turn rate of the b-frame with respect
components of a Cartesian to p-frame, which is measured in
coordinate b-frame
b: Body frame ωbnb : Turn rate of the b-frame with respect
i: Inertial frame to n-frame, which is measured in
e: Earth frame b-frame
n: Navigation frame Ωbpb : Skew matrix form of ωbpb
p p
ENU: East-North-UP navigation frame, Ωep : Skew matrix form of ωep
which is identical to the n-frame in p
g : Gravity vector measured in p-frame
this paper g: Local gravity scalar
p: Wander azimuth frame g0 : Local gravity scalar at sea level
Modelling and Simulation in Engineering 25

ψG : Grid azimuth angle of the vehicle in [4] Z. Chen, Strapdown Inertial Navigation System Principles, China
b-frame with respect to p-frame Astronautic Publishing House, Beijng, China, 1986.
α: Wander azimuth angle of p-frame [5] P. S. Maybeck, “Wander azimuth implimentation algorithm
with respect to n-frame for a strapdown inertial system,” Air Force Flight Dynamics
ψ: Heading angle of the vehicle in Laboratory AFFDL-TR-73-80, Tech. Rep., Ohio, USA, 1973.
b-frame with respect to n-frame [6] J. C. Butcher, Numerical Methods for Ordinary Differencial
Equations, John Wiley & Sons, New York, NY, USA, 2003.
θ: Grid pitch angle of the vehicle in
[7] B. Yuan, Research on Rotating Inertial Navigation System with
b-frame with respect to n-frame Four-Frequency Differential Laser Gyroscope, Graduate School of
or p-frame National University of Defense Technology, Changsha, China,
γ: Grid roll angle of the vehicle in 2007.
b-frame with respect to n-frame [8] I. Y. Bar-Itzhack, “Iterative optimal orthogonalization of the
or p-frame strapdowm matrix,” IEEE Transactions on Aerospace and Elec-
Δψ: Increase of the heading angle ψ tronic Systems, vol. 11, no. 1, pp. 30–37, 1975.
Δθ: Increase of the grid pitch angle θ
Δγ: Increase of the grid roll angle γ
λ: Longitude of the vehicle
ϕ, L: Latitude of the vehicle
h: Altitude of the vehicle above the sea
level of the Earth
ϕ0 , λ0 , h0 : Initial vehicle position (latitude,
longitude, height)
Δt: Time step
a: Vehicle acceleration
v0 = [vE0 , vN0 , vU0 ]: Initial vehicle velocity (east, north,
up)
v = [vE , vN , vU ] : Vehicle velocity (east, north, up)
vg : Vehicle ground velocity
rne : Vehicle position measured in n-frame
with respect to e-frame
e: Major eccentricity of the ellipsoid of
the Earth
Re : Length of the semi-major axis of the
Earth
RN : Meridian radius of curvature of the
Earth
RE : Transverse radius of curvature of the
Earth
Rx p , R y p : Free curvature radiuses
1/τa : Turn torsion
Q: Quaternion
q1 , q2 , q3 , q4 : Four components of the quaternion
Q
Tcircle : Period of the circle trajectory in
simulation
Tsshape : Period of the s-shape trajectory in
simulation
Asshape : Amplitude of the s-shape trajectory
in simulation
PV: Position and velocity.

References
[1] H. Schneider and N. E. George Philip Barker, Matrices and
Linear Algebra, Dover Publications, New York, NY, USA, 1989.
[2] A. Gilat, Matlab: An Introduction with Applications, John Wiley
& Sons, New York, NY, USA, 3rd edition, 2008.
[3] D. H. Titterton and J. L. Weston, Strapdown Inertial Navigation
Technology, Institution of Engineering and Technology, Steve-
nage, UK, 2004.
International Journal of

Rotating
Machinery

The Scientific
Engineering
Journal of Advances in
Journal of Mechanical
World Journal
Hindawi Publishing Corporation Hindawi Publishing Corporation Hindawi Publishing Corporation
Sensors
Hindawi Publishing Corporation
Engineering
Hindawi Publishing Corporation
http://www.hindawi.com Volume 2014 http://www.hindawi.com Volume 2014 http://www.hindawi.com Volume 2014 http://www.hindawi.com Volume 2014 http://www.hindawi.com Volume 2014

International Journal of
Distributed Advances in
Sensor Networks
Hindawi Publishing Corporation
Civil Engineering
Hindawi Publishing Corporation
http://www.hindawi.com Volume 2014 http://www.hindawi.com Volume 2014

Advances in Submit your manuscripts at


OptoElectronics http://www.hindawi.com

Journal of
Robotics
Hindawi Publishing Corporation
Hindawi Publishing Corporation Volume 2014 http://www.hindawi.com Volume 2014
http://www.hindawi.com

VLSI Design

Modelling &
International Journal of Simulation
International Journal of Navigation and in Engineering Advances in
Chemical Engineering Observation Acoustics and Vibration
Hindawi Publishing Corporation Hindawi Publishing Corporation Hindawi Publishing Corporation Hindawi Publishing Corporation
http://www.hindawi.com Volume 2014 http://www.hindawi.com Volume 2014 http://www.hindawi.com Volume 2014 http://www.hindawi.com Volume 2014
Hindawi Publishing Corporation
http://www.hindawi.com Volume 2014

Journal of

Control Science
and Engineering

International Journal of Journal of


Active and Passive Antennas and Electrical and Computer
Electronic Components Propagation Shock and Vibration Engineering
Hindawi Publishing Corporation Hindawi Publishing Corporation Hindawi Publishing Corporation Hindawi Publishing Corporation Hindawi Publishing Corporation
http://www.hindawi.com Volume 2014 http://www.hindawi.com Volume 2014 http://www.hindawi.com Volume 2014 http://www.hindawi.com Volume 2014 http://www.hindawi.com Volume 2014

You might also like