Next Article in Journal
Detection of Single-Nucleotide Polymorphism on uidA Gene of Escherichia coli by a Multiplexed Electrochemical DNA Biosensor with Oligonucleotide-Incorporated Nonfouling Surface
Previous Article in Journal
Broadband Wide Angle Lens Implemented with Dielectric Metamaterials
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Field Programmable Gate Array Based Parallel Strapdown Algorithm Design for Strapdown Inertial Navigation Systems

1
Department of Control Science and Engineering, Zhejiang University, Hangzhou 310027, China
2
Institute of Navigation Guidance and Control, Zhejiang University, Hangzhou 310027, China
*
Author to whom correspondence should be addressed.
Sensors 2011, 11(8), 7993-8017; https://doi.org/10.3390/s110807993
Submission received: 4 July 2011 / Revised: 3 August 2011 / Accepted: 11 August 2011 / Published: 15 August 2011
(This article belongs to the Section Physical Sensors)

Abstract

: A new generalized optimum strapdown algorithm with coning and sculling compensation is presented, in which the position, velocity and attitude updating operations are carried out based on the single-speed structure in which all computations are executed at a single updating rate that is sufficiently high to accurately account for high frequency angular rate and acceleration rectification effects. Different from existing algorithms, the updating rates of the coning and sculling compensations are unrelated with the number of the gyro incremental angle samples and the number of the accelerometer incremental velocity samples. When the output sampling rate of inertial sensors remains constant, this algorithm allows increasing the updating rate of the coning and sculling compensation, yet with more numbers of gyro incremental angle and accelerometer incremental velocity in order to improve the accuracy of system. Then, in order to implement the new strapdown algorithm in a single FPGA chip, the parallelization of the algorithm is designed and its computational complexity is analyzed. The performance of the proposed parallel strapdown algorithm is tested on the Xilinx ISE 12.3 software platform and the FPGA device XC6VLX550T hardware platform on the basis of some fighter data. It is shown that this parallel strapdown algorithm on the FPGA platform can greatly decrease the execution time of algorithm to meet the real-time and high precision requirements of system on the high dynamic environment, relative to the existing implemented on the DSP platform.

1. Introduction

In a strapdown inertial navigation system (SINS), inertial sensors are rigidly attached to the vehicle, which leads to the system suffering from the highly dynamic vehicle movement environment. In addition, inertial sensors may be subject to high frequency motion as a result of body bending and engine-induced vibration. The strapdown algorithms adopted by most modern SINSs are constructed based on a general two-speed structure by which the position, velocity and attitude (PVA) updating operations are divided into two parts [1,2]: an exact moderate-speed updating routine (e.g., 50 ∼ 200 Hz) typically designed to update each PVA based on the maximum angular rate and acceleration of vehicle; and a high-speed updating routine (e.g., 1 ∼ 4 KHz for an aircraft INS with the positioning accuracy of less than 1 nmile/h) designed to accurately account for vibration-induced coning and sculling effects based on the anticipated vibration condition of the system. The original intention of the two-speed structure is to overcome the throughput limitations of early computer techniques, but the limitation is rapidly becoming insignificant with the continuous improvement in the performance of modern high-speed computers [3]. On the other hand, along with the fast progress of modern vehicles in ultra-high speed and other maneuvering performances, there exist more and more urgent demands to promote the navigation and control precision of the vehicles in high dynamic motion. It provides the motivation to return to a simpler single-speed structure of the strapdown algorithm in which all computations are executed at a single updating rate that is sufficiently high to accurately account for high frequency angular rate and acceleration rectification effects.

Two key compensation algorithms designed to operate in severe maneuvering and vibratory environments are critical in determining the performance of a SINS, i.e., the coning compensation that works when the vehicle’s angular rate vector is rotating, and the sculling compensation that takes effect when the vehicle’s angular rate or specific force acceleration vector is rotating, or when the ratio of the angular rate to specific force is not constant. Thus in order to improve the navigation accuracy of the system, particularly in the environments where the angular rate vector or the specific force vector of the vehicle is large, several algorithms have been developed for the coning and sculling compensation. A substantial number of integration algorithms have been designed for coning compensation to improve the attitude accuracy without sacrificing computer throughput [411]. Analogous to the coning compensation algorithm adopted in attitude updating, a number of sculling compensation algorithms have also been designed for velocity updating, and the equivalence between coning and sculling compensation algorithms is discussed in [12,13]. A detailed statement of the coning and sculling compensation algorithms is given in [1,3,1417]. Most algorithms for the coning and sculling compensations are based on truncated Taylor series expansion approximations for the angular rate of vehicle over updating cycles [2,3,6,7,911,18]. The accuracy of the coning and sculling compensation algorithms is determined by the updating rate of the coning and sculling compensations and the order of the truncated Taylor series expansion for the angular rate and specific force. Generally, in order to improve the accuracy of these algorithms, the updating rate must be increased to keep track of vehicle angular and linear motions more accurately. Among these existing algorithms, however, when the sampling rates of inertial sensors remain constant, and the number of the gyro incremental angle samples for coning compensation and the number of the accelerometer incremental velocity samples for sculling compensation are selected, the updating rates of these algorithms are also determined. The increase of the updating rates results in the decrease of the number of the gyro incremental angle samples and the number of the accelerometer incremental velocity samples for the coning and sculling compensation (namely, the decrease of order of the coning and sculling compensation algorithms), which in turn reduces the accuracy of the algorithms.

Furthermore, in recent SINS applications the strapdown algorithm with coning and sculling compensations is commonly implemented in a Digital Signal Processor (DSP) platform supplemented with Field Programmable Gate Array (FPGA) for data acquisition and noise filtering. Due to the serial execution mode of the DSP, however, it cannot support an updating rate fast enough for a high-order algorithm. In order to tackle the conflict between the computation complexity of the high-order algorithm and the updating speed of the algorithm implemented on a DSP platform, Xie [19] proposed a strapdown algorithm architecture on dual DSPs and FPGA which in essence works in a parallel computation mode. Jew [20] presented a framework for designing inertial navigation systems on a single-chip FPGA, in which the strapdown algorithm is implemented by the PowerPC hardcore of the FPGA. Although to some extent these methods improved the performance of the strapdown algorithms, they all work in a serial mode, thus it did not make full use of the parallel computation characteristics of the FPGA. Some other researchers [21,22] suggested using a single-chip FPGA to implement multi-processing cores and parallel computing, but there is no any implementation scheme discussed in detail.

In this paper, a new generalized optimum strapdown algorithm with coning and sculling compensations is presented in Section 2, in which the PVA updating operations are carried out based on the single-speed structure in which all computations are executed at a single updating rate that is sufficiently high to accurately account for high frequency angular rate and acceleration rectification effects. Different from existing algorithms, the updating rates of the coning and sculling compensations are unrelated with the number of the gyro incremental angle samples and the number of the accelerometer incremental velocity samples. Then, in order to implement the new strapdown algorithm in a single chip FPGA, the parallelization of the algorithm is designed in Section 3, and its computational complexity is analyzed in Section 4. In Section 5, the performance of the proposed parallel strapdown algorithm is tested on the software platform of Xilinx ISE 12.3 and the hardware platform of FPGA device XC6VLX550T on the basis of some fighter aircraft data. The contributions of this paper are finally summarized in Section 6.

2. Generalized Optimum Strapdown Algorithm

In order to reduce the computational complexity and decouple the relationship between the updating rates of the coning and sculling compensations and the number of the gyro incremental angle and the accelerometer incremental velocity samples, the strapdown algorithm proposed in this section is constructed on the basis of a single-speed structure, i.e., the PVA are updated in all the intervals [tn–1,tn], n = 1, 2, …, with the equal length Tn = tntn–1 in the whole navigation time [t0 ,t], as is shown in Figure 1.

According to the chain rule of matrix product, the updating of the attitude matrix C B N is generally constructed as follows [1,2]:

C B n N n = C N n 1 N n C B n 1 N n 1 C B n B n 1
where C B n 1 N n 1 and C B n N n are the attitude matrixes relating the B frame to the N frame at time tn–1 and at time tn, respectively; C B n B n 1 is the direction cosine matrix that accounts for angular motion of the B frame from time tn–1 to time tn; C N n 1 N n is the direction cosine matrix that accounts for the N frame rotation frame from time tn–1 to time tn.

According to the velocity rate equation in the N frame [3], the velocity vN at the time tn can be obtained by integrating the specific forces sensed by the accelerometers, the Coriolis accelerations due to the rotations of the navigation and earth frames and the gravity, namely:

v n N = v n 1 N + Δ v SF n N + Δ v G / COR n N
where v n N and v n 1 N are the velocity of the system relative to the E frame at time tn and tn–1, respectively; Δ v SF n N and Δ v G / COR n N are the integrated transformed specific force increment and the gravity-Coriolis velocity increment over the updating interval [tn–1, tn], respectively, calculated by:
Δ v SF n N = t n 1 t n C B N f B dt
Δ v G / COR n N = t n 1 t n [ g P N ( ω EN N + 2 ω IE N ) × v N ] dt

Considering the rotation of the navigation frame and the body frame over the updating interval [tn–1, tn], Δ v SF n N in Equation (3a) can be expanded according to the chain rule of matrix product as follows:

Δ v SF n N = t n 1 t n C B N f B d t = t n 1 t n C N n 1 N n C B n 1 N n 1 C B B n 1 f B dt = C N n 1 N n C B n 1 N n 1 Δ v SF n B n 1
where:
Δ v SF n B n 1 = t n 1 t n C B B n 1 f B dt

Because the variation of the position of the system is small over the updating interval [tn–1, tn] (for example, when the updating interval length Tn is 0.0005 s, the variation of the position of the 6 Mach Hypersonic cruise missile is only approximately equal to 1.0 m), g P N in Equation (3b) can be approximately by its mean value over the updating interval [tn–1, tn]. Similarly, the Coriolis term ( ω EN N + 2 ω IE N ) × v N in Equation (3b) can also be approximately by its mean value over the updating interval [tn–1, tn] in view of the small variations of the angular rates ω IE N and ω IE N as well as the velocity vN over the updating interval. Thus, the gravity-Coriolis velocity increment term Δ v G / COR n N can be approximated by:

Δ v G / COR n N { g P n 1 / 2 N [ 2 ω I E n 1 / 2 N + ω E N n 1 / 2 N ] × v n 1 / 2 N } T n = { g P n 1 / 2 N [ 2 C E n 1 / 2 N ω IE E + F C n 1 / 2 N ( u ZN N × v n 1 / 2 N ) + ρ Z N n 1 / 2 u ZN N ] × v n 1 / 2 N } T n
where u ZN N is the unit vector along the Z-axis of the navigation frame, and u ZN N = [ 0 0 1 ] T.

According to the altitude and position matrix rate equation [3], the altitude h and position matrix C E N at the time tn can be obtained as follows:

h n = h n 1 + Δ h n
C E n N = C N E n 1 N E n C E n 1 N
where hn and hn–1 are the altitudes at the time tn and tn–1, respectively; Δhn is the altitude change from the time tn–1 to the time tn; C E n N and C E n 1 N are the position matrix at the time tn and tn–1, respectively; C N E n 1 N E n is the direction cosine matrix that accounts for the navigation frame rotation relative to the Earth frame from the time tn–1 to the time tn; and:
Δ h n = t n 1 t n u ZN N v N d t = u ZN N Δ R n N

Similar to the attitude matrix updating, C N E n N E n 1 in Equation (7b) can also be approximated in terms of a rotation vector as follows (accurate to second order):

C N E n 1 N E n I ( ξ n × ) + 1 2 ( ξ n × ) ( ξ n × )
where ξn is the rotation vector defining the navigation frame rotation relative to the earth frame from the time tn–1 to the time tn; and ζ n can be approximately expressed as follows:
ξ n t n 1 t n ω EN N d t = F C n 1 / 2 N ( u ZN N × Δ R n N ) + ρ Z N n 1 / 2 u ZN N T n

Note that Δ R n N should be calculated first to obtain the altitude h and the position matrix C E N Considering that the change of the velocity is small over the updating interval [tn–1, tn], Δ R n N can be computed based on a trapezoidal integration algorithm as follows:

Δ R n N 1 2 ( v n N + v n 1 N ) T n

2.1. Body Frame Rotation Update

The direction cosine matrix C B n B n 1 in Equation (1) is used to update the attitude matrix C B N which accounts for the angular rate ω IB B of the B frame relative to the inertial space. According to the relationship between rotation vector and direction cosine matrix, C B n B n 1 can be expressed as follows:

C B n B n 1 = I + sin Φ n Φ n ( Φ n × ) + 1 cos Φ n Φ n 2 ( Φ n × ) ( Φ n × )
where Φn is the rotation vector that accounts for angular motion of the body frame from time tn–1 to time tn; Φn is the magnitude of Φn In practice, Φn can be obtained by the following rotation vector rate equation [4]:
Φ ω IB B + 1 2 Φ × ω IB B + 1 12 Φ × ( Φ × ω IB B )
where ω IB B represents the angular rate of the B frame. The last two terms in Equation (13) are non-commutative, thus have to be calculated and compensated based on the gyro incremental angles in order to improve the computation accuracy. The triple-cross-product term in Equation (13) is usually quite small and can be neglected [4]. Then under the second order accuracy, the rotation vector Φn in Equation (12) can be approximated by the integral of Equation (13) from tn–1 to tn, i.e.,
Φ n = t n 1 t n [ ω IB B + 1 2 ( α ( t ) × ω IB B ) ] d t = α n + β n
where β n is defined as the coning compensation from tn–1 to tn, and:
α n = α ( t n ) ,     α ( t ) = t n 1 t ω IB B d τ
β n = β ( t n ) ,     β ( t ) = 1 2 t n 1 t ( α ( τ ) × ω IB B ) d τ

For a SINS, the coning motion is the worst working condition which will induce serious attitude errors [57,18]. In other words, if in the case of coning movement the attitude errors are made minimal by a certain algorithm, the errors in the other cases will also be minimal by the same algorithm. So in order to develop the new strapdown algorithm, it is assumed that the vehicle is undergoing a pure coning movement, defined by the following angular rate:

ω IB B ( t ) = [ α Ω cos ( Ω t )         b Ω sin ( Ω t )         0 ] T
where Ω is the frequency associated with the coning motion; a and b are the amplitudes of the coning motion.

According to Equations (15a), (15b) and (16), the coning compensation term βn has the following form:

β n = [ 0 0 ab 2 ( Ω T n sin Ω T n ) ] T

Equation (17) shows an interesting property that the coning compensation is constant over all updating cycles, regardless of the absolute time at which the updating cycle begins. It only depends on the duration of the updating cycle.

According to the concept of distance between the cross products [6,11], the cross products with equal distance behave exactly the same in a pure coning environment defined by Equation (16). The coning compensation that uses the concept will have the simplest form, the optimal accuracy and the minimum computational throughput. Taking the advantage of this property, a generalized optimum algorithm for the integral in Equation (15b) consists of the sum of all possible cross products of the gyro incremental angle samples, making up the computation over the updating interval of rotation vector, such as [9]:

β ^ n = i = 1 N 1 k i α n i × α n
where N is the number of gyro incremental angle samples for the calculation of the coning compensation term; αn–i (1, 2,…, N − 1) is the gyro incremental angle sample in the (ni)-th updating cycle; ki (1, 2,…, N − 1) is the constant coefficients for the cross product of αn–i and αn.

Substituting Equations (15a) and (16) into Equation (18), and expanding each terms using Taylor series, the coning compensation term β̂n over the updating interval [tn–1, tn] is obtained as:

β ^ n = [ 0 0 ab i = 1 ( 1 ) i + 1 j = 1 N 1 A ij K j λ 2 i + 1 ] T
where λ = ΩTn; Aij is a constant defined by:
A ij = ( j + 1 ) 2 i + 1 2 j 2 i + 1 + ( j 1 ) 2 i + 1 ( 2 i + 1 ) ! , i = 1 , 2 , , j = 1 , 2 , , N 1

In order to derive ki (1, 2,…, N − 1) in Equation (18), expanding Equation (17) by using Taylor series yields:

β n = [ 0 0 ab i = 1 ( 1 ) i + 1 C i λ 2 i + 1 ] T
where Ci is a constant defined by:
C i = 1 ( 2 i + 1 ) ! × 2

Combining Equation (19) with Equation (21), the following simultaneous equations for constant coefficients Ki, i = 1, 2,…, N − 1), can be obtained:

j = 1 N 1 A ij K j = C i , i = 1 , 2 , N 1

In a matrix form, Equation (23) is equivalent to:

[ A ij ] ( N 1 ) × ( N 1 ) [ K j ] ( N 1 ) × 1 = [ C i ] ( N 1 ) × 1

According to Equation (24), coefficients Ki can be solved as follows:

[ K j ] ( N 1 ) × 1 = [ A ij ] ( N 1 ) × ( N 1 ) 1 [ C i ] ( N 1 ) × 1
where [xi]m×1 and [xij]m×1 are m-dimensional column vector and the m-by-n matrix, respectively.

Note that different from other existing algorithms, the updating rate of the proposed optimal coning compensation algorithm is independent of the number of gyro incremental angle samples in the calculation of the coning compensation. Thus, this algorithm allows the updating speed to be increased, at the same time increasing the number of gyro incremental angle samples, in order to improve the attitude accuracy of the system.

2.3. Integrated Specific Force Increment Update

Similar to the attitude updating algorithm, the integral term Δ v SF n B n 1 in Equation (4) can be formulated based on the first order approximation of C B B n 1 as follows:

Δ v SF n B n 1 t n 1 t n [ I + ( α ( t ) × ] f B d t = υ n + t n 1 t n ( α ( t ) × f B ) dt
where:
υ n = υ ( t n ) ,                 υ ( t ) = t n 1 t f B d τ

The integrand term α(tfB in Equation (28) has the following expression [3]:

α ( t ) × f B = 1 2 d dt ( α ( t ) × υ ( t ) ) + 1 2 ( α ( t ) × f B + υ ( t ) × ω IB B )

Δ v S F n B n 1 can also be expressed as follows:

Δ v S F n B n 1 = υ n + 1 2 ( α n × υ n ) + 1 2 t n 1 t n ( α ( t ) × f B + υ ( t ) × ω IB B ) d t = υ n + Δ v R o t n + Δ v S c u l n
where ΔvRotn denotes the velocity rotation compensation term; ΔvScultn denotes the sculling compensation term; and:
Δ v Rot n = 1 2 ( α n × υ n )
Δ v Scul n = 1 2 t n 1 t n ( α ( t ) × f B + υ ( t ) × ω IB B ) dt

In principle, the approaches used for the coning compensation can also be applied to the sculling compensation. Similar to the optimal generalized coning compensation algorithm in Equation (18), a generalized sculling compensation algorithm that has the simplest form, the optimal accuracy and the minimum computational throughput takes the following form:

Δ v ^ Scul n = [ i = 1 N 1 L i α n i ] × υ n + [ i = 1 N 1 L i υ n i ] × α n
where N is the number of the gyro incremental angle samples and the number of the accelerometer incremental velocity samples for the calculation of the sculling compensation term; αn–i (1, 2,…, N − 1) and υn–i (1, 2,…, N − 1) are the gyro incremental angle and accelerometer incremental velocity in the (ni)-th updating cycle; Li (1, 2,…, N − 1) is the constant coefficients for the cross product of αn–i with υn and υn–i with αn.

Considering the equivalency between the coning compensation and sculling compensation [12,23], similar to Equation (25), the coefficients Li can also be calculated as follows:

[ L j ] ( N 1 ) × 1 = [ A ij ] ( N 1 ) × ( N 1 ) 1 [ C i ] ( N 1 ) × 1
where Aij and Ci can be calculated according to Equations (20) and (22), respectively.

Note that different from other existing algorithms, the updating rate of the proposed optimal sculling compensation algorithm is also independent of the number of gyro incremental angle samples and accelerometer incremental velocity samples. Thus, this algorithm allows the updating speed to be increased, at the same time increasing the number of gyro incremental angle samples and accelerometer incremental velocity samples, in order to improve the accuracy of the related velocity updating algorithm.

2.4. Related Parameters Extrapolation Update

Because the gravity anomaly and the vertical deviation over the earth surface resulting from mass irregular and shape asymmetric distributions are generally small (the maximum value of the gravity anomaly is only tens of mgal; and the maximum value of the vertical deviation is only tens of arcs), the following approximate model of the gravity is used for most SINS applications:

g ( L , h ) = g 0 ( L ) R 0 2 ( h + R 0 ) 2 g 0 ( L ) ( 1 2 h R 0 )
where R 0 = R M R N and g0 is approximated by the following formula based on the WGS-84 data [2427]:
g 0 ( L ) 9.7803253359 ( 1 + 0.001931853 sin 2 L ) 1 0.0066943 sin 2 L

Then the gravity g P N in the navigation frame can be expressed as follows:

g P N = [ 0 0 g ( L , h ) ] T

For the conventional ellipsoidal earth surface model and the E-N-U navigation frame [1,3], ω IE E, ω EN N and C E N can also be expressed in the following form:

ω IE E = [ 0 0 ω IE ] T
ω EN E = F C N ( u ZN N × v N ) + ρ ZN u ZN N
C E N = [ cos α sin λ sin α sin L cos λ cos α cos λ sin α sin L sin λ sin α cos L sin α sin λ cos α sin L cos λ sin α cos λ cos α sin L sin λ cos α cos L cos L cos λ cos L sin λ sin L ]                     = [ C 11 C 12 C 13 C 21 C 22 C 23 C 31 C 32 C 33 ]
with:
F C N = [ ( 1 R N + h 1 R M + h ) sin α cos α ( sin 2 α R N + h + cos 2 α R M + h ) 0 ( cos 2 α R N + h + sin 2 α R M + h ) ( 1 R N + h + 1 R M + h ) sin α cos α 0 0 0 0 ]
R M = R e ( 1 e ) 2 [ 1 ( 2 e ) 2 sin 2 L ] 3 2 R e ( 1 + 2 e 3 e sin 2 L ) R N = R e [ 1 ( 2 e ) e sin 2 L ] 1 2 R e ( 1 + e sin 2 L )
sin 2 L = ( C 33 ) 2 , sin α cos α = C 13 C 23 1 ( C 33 ) 2 , sin 2 α = ( C 13 ) 2 1 ( C 33 ) 2 , cos 2 α = ( C 23 ) 2 1 ( C 33 ) 2
where F C N is the curvature matrix in the navigation frame that is a function of position over the earth; ρZN is the Z-axis component of ω EN N; vN is the velocity vector of the vehicle relative to the earth projected on the navigation frame; RM and RN are the radii of curvature at the earth surface in meridian and in prime vertical, respectively; h is the height; α is the wander angle; L is the latitude; Re is the equatorial radius of earth; e is the flattening of earth; Cij is the i-row and j-column component of C E N.

By the definition of the navigation frame, the orientation of the X axis and the Y axis around the Z axis is somewhat arbitrary. So ρZN in Equation (38b) depends on the selection of the axes orientation of the navigation frame. The navigation frame is generally selected as a wander azimuth navigation frame for most SINSs [3]. In this case, ρZN is given by:

ρ ZN = 0

Because the related parameters ( ) (namely, g P N, F C N, ρZN, vN, ΔRN and C E N) in Equations (6), (10) and (27) are all the functions of position or velocity, and the values of these parameters at the current cycle are not available, thus the ( )n − 1/2 terms can be approximately calculated based on the linear extrapolation formula in the following form:

(   ) n 1 / 2 (   ) n 1 + 1 2 [ (   ) n 1 (   ) n 2 ] = 3 2 (   ) n 1 1 2 (   ) n 2

3. Strapdown Algorithm Parallelization

Although the sampling rate of inertial sensors can be up to 2 kHz or even higher, taking into account the complexity of the employed strapdown algorithm and the ability of the current processors, the updating rate of the strapdown algorithm in a serial mode is limited, usually only 200–500 Hz when implemented in a DSP. An effective way to break through the limitation of commonly used navigation computers is to implement the strapdown algorithm on a purely parallel computing platform such as FPGA, and execute the calculations in the algorithm “as concurrently as possible” to make full use of the capability of the parallel computing platform.

The strapdown algorithm proposed in Section 2 can be divided into six modules doing the following calculations severally: the body frame rotation update (M1), the integrated specific force increment update (M2), the related parameters extrapolation update and the navigation frame rotation update (M3), the attitude update (M4), the velocity update (M5) and the position update (M6), as shown in Figure 2. Among them, M1, M2 and M3 can be executed first in a parallel mode; M4 and M5 have to be executed afterwards but also in a parallel mode; finally, M6 is executed.

3.1. Module of Body Frame Rotation Update (M1)

The calculations involved in the module M1 are described by Equations (12), (14) and (18), as shown in Figure 3. Once the number of the gyro incremental angle samples N is selected, the corresponding coefficients Ki of the coning compensation can firstly be determined offline by Equations (20), (22) and (25) and stored in the memory of the navigation computer for online use; secondly, the coning compensation βn and rotation vector Φn can be successively computed according to Equations (14) and (18), respectively; finally, the direction cosine matrix C B n B n 1 that accounts for the angular motion of the B frame is obtained by Equation (12). Note that since the accuracy of the coning compensation directly determines the attitude accuracy of the system, particularly in high dynamic conditions, the coning compensation is generally designed to accurately account for the vibration induced coning effects by selecting the appropriate number of the gyro incremental angle samples.

Figure 3 shows that Equations (11), (14) and (18) can only be executed in a serial mode. From Equations (12), (14) and (18), it is shown that M1 contains the following operations of related minimum calculation particles: cross-product of vectors, product of a skew symmetric matrix with itself, addition of matrixes or vectors and calculation of sine or cosine function. The operations within these minimum calculation particles can be further concurrently processed, which will be discussed in Section 3.2.

3.2. Module of Integrated Specific Force Increment Update (M2)

The module M2 carries out the calculations defined by Equations (31), (32a) and (33), as shown in Figure 4. Similar to the coning compensation, once the number of the gyro incremental angle and accelerometer incremental velocity samples N is selected, the corresponding coefficients Li of the sculling compensation can firstly be determined offline by Equations (20), (22) and (34) and stored in the memory of the navigation computer for online use; secondly, the sculling compensation ΔvSculn and the velocity rotation compensation ΔvRotn can be successively computed according to Equations (32a) and (33); finally, the integrated specific force increment Δ v SF n B n 1 that accounts for the linear motion of the B frame is calculated by Equation (31). Note that since the accuracy of the sculling compensation directly determines the velocity accuracy of the system, particularly in high dynamic conditions, the sculling compensation is generally designed to accurately account for the vibration induced sculling effects by selecting the appropriate number of the gyro incremental angle and accelerometer incremental velocity samples.

Figure 4 shows that the calculations of the velocity rotation compensation and the sculling compensation can be executed in a parallel mode according to Equations (32a) and (33). From Equations (31), (32a) and (33), it is shown that M2 contains the following operations of related minimum calculation particles: cross-product of vectors and addition of vectors. Similar to the operations within these minimum calculation particles in M1, the operations within these minimum calculation particles can be further processed concurrently, which will be discussed in Section 3.2.

3.3. Module of Related Parameters Extrapolation and Navigation Frame Rotation Update (M3)

The module M3 can be further divided into two serial-process modules: the module of related parameters extrapolation update (M31) and the module of navigation frame rotation update (M32), as shown in Figure 5. The computation tasks completed in M31 and M32 are described by Equations (26), (27) and (3541) respectively.

Figure 5 shows that in M31, the calculation of the gravity and the curvature matrix can be firstly executed in a parallel mode according to Equations (3539), and then the related parameters ( g P n 1 / 2 N, v E n 1 / 2 N, F C n 1 / 2 N, ρZNn–1/2, Δ R n 1 / 2 N and C E n 1 / 2 N) can also be calculated in a parallel mode according to Equation (41); in M32, Equations (26) and (27) can only be executed in a serial mode. From Equations (26), (27) and Equations (3541), it is shown that M31 and M32 contain the following operations of related minimum calculation particles: cross-product of vectors, product of a skew symmetric matrix with its own and addition of matrixes or vectors. Similar to the operations within these minimum calculation particles in module M1, the operations within these minimum calculation particles can be further processed concurrently, which will be discussed in Section 3.2.

3.4. Module of Attitude Update (M4)

The module M4 is used to calculate Equation (1), as shown in Figure 6.

From Equation (1), it is shown that M4 only contains the following operation of related minimum calculation particles: product of matrixes. Similar to the operations within these minimum calculation particles in module M1, the product operation of matrixes can be further processed concurrently, which will be discussed in Section 3.2.

3.5. Module of Velocity Update (M5)

The calculations implemented in the module M5 are defined by Equations (2), (4) and (6), as shown in Figure 7.

Figure 7 shows that the calculation of the integrated transformed specific force increment and the gravity-Coriolis velocity increment can be executed in a parallel mode according to Equations (4) and (6). From Equations (2), (4) and (6), it is shown that M5 contains the following operations of related minimum calculation particles: cross-product of vectors, product of a skew symmetric matrix with its own, product of matrixes or a matrix with a vector and addition of vectors. Similar to the operations within these minimum calculation particles in module M1, the operations within these minimum calculation particles can be further parallelized, which will be discussed in Section 3.2.

3.6. Module of Position Update (M6)

In the module M6, the computations defined by Equations (711) are carried out, as shown in Figure 8.

Figure 8 shows that after the calculation of Δ R n N, the calculation of the altitude h and the position matrix C E N can be executed in a parallel mode according to Equations (710), in which Equations (7b), (9) and (10) can only be executed in a serial mode, and Equations (7a) and (8) can also only be executed in a serial mode. From Equations (711), it is shown that M6 contains the following operations of related minimum calculation particles: cross-product of vectors, product of a matrix with a vector and addition of vectors. Similar to the operations within these minimum calculation particles in module M1, the operations within these minimum calculation particles can be further parallelized, which will be discussed in Section 3.2.

4. Computation Complexity Analysis

From Figure 2, it can be shown that the execution time of the parallel strapdown algorithm on FPGA can be as follows:

T Nov = max { T M 1 , T M 2 , T M 3 } + max { T M 4 , T M 5 } + T M 6
with:
T M 3 = T M 31 + T M 32
where, TM1, TM2, TM3, TM4, TM5 and TM6 are the execution time required by the modules M1, M2, M3, M4, M5 and M6, respectively; TM31 and TM32 are the execution time required by the modules M31 and M32, respectively.

In order to make the updating cycle of the strapdown algorithm shortest, the maximum parallelism degree is usually used as a performance index to optimize the calculation particles involved in the modules M1–M6.

Assume that the execution time of addition (subtraction), multiplication, division, trigonometric and square root operation are defined as TA, TM, TD, TT and TS, respectively. The summation of 3-dimensional vectors, for instance by:

v VA = v 1 + v 2
contains three addition operations which can be executed in a parallel mode. Thus the execution time of the addition operation for two 3-dimensional vectors is
T VA = T A

The addition of two 3-by-3 matrixes, for instance by:

C MA = C 1 + C 2
contains nine addition operations which can also be executed in a parallel mode. Thus the execution time of the addition operation for two 3-by-3 matrixes is
T MA = T A

The cross-product of two 3-dimensional vectors, expressed for instance by:

v VCP = v 1 v 2 = [ 0 V 1 Z V 1 Y V 1 Z 0 V 1 X V 1 Y V 1 X 0 ] [ V 2 X V 2 Y V 2 Z ] = [ V 1 Y V 2 Y V 1 Z V 2 X V 1 Z V 2 X V 1 X V 2 Z V 1 X V 2 Y V 1 Y V 2 X ]
contains six multiplication operations and three subtraction operations. All the multiplication operations or the subtraction operations can be executed in a parallel mode, but the subtraction operations must be executed after the multiplication operations. Thus the execution time of the cross-product operation for two 3-dimensional vectors is:
T VCP = T M + T A

The product of two 3-by-3 matrixes, for instance by:

C C A = C B A C C B
contains 27 multiplication operations and 18 addition operations. The multiplication operations can be executed in a parallel mode, but the addition operations must be executed twice in a parallel mode after the multiplication operations. Thus the execution time of the product operation for two 3-by-3 matrixes is:
T MP = T M + 2 T A

The product of a 3-by-3 matrix with a 3-dimensional vector, which can be defined for instance by:

V A = C B A V B
contains nine multiplication operations and 6 addition operations. The multiplication operations can be executed in a parallel mode, but the addition operations must be executed twice in a parallel mode after the multiplication operations. Thus the execution time of the product operation for a 3-by-3 matrix with a 3-dimensional vector is:
T MVP = T M + 2 T A

The product of a skew symmetric matrix with itself defined, for instance by:

C = ( V 1 ) ( V 1 )             = [ 0 V 1 Z V 1 Y V 1 Z 0 V 1 X V 1 Y V 1 X 0 ] [ 0 V 1 Z V 1 Y V 1 Z 0 V 1 X V 1 Y V 1 X 0 ] [ V 1 Z 2 V 1 Y 2 V 1 X V 1 Y V 1 X V 1 Z V 1 X V 1 Y V 1 Z 2 V 1 X 2 V 1 Y V 1 Z V 1 X V 1 Z V 1 Y V 1 Z V 1 Y 2 V 1 X 2 ]
contains six multiplication operations and three addition operations. The multiplication operations or the addition operations can be executed in a parallel mode, but the addition operations must be executed after the multiplication operations. Thus the execution time of the product operation for a skew symmetric matrix with itself is:
T VCP 2 = T M + T A

Based on the aforementioned execution time analysis of the basic computational operations involved in the modules M1–M6, we can evaluate the computational complexity of each module.

4.1. Analysis of Module M1

In the calculation of the coning compensation term βn defined by Equation (18), the N − 1 vectors cross-product operation can be executed in a parallel mode, and the summation of N − 1 vectors can also be successively executed in a parallel mode [log2(N – 1)] times. Thus the execution time of the coning compensation is:

T Con = T VCP + T M + log 2 ( N 1 ) T VA = 2 T M + [ log 2 ( N 1 ) + 1 ] T A

And in the calculation of the direction cosine matrix C B n B n 1 according to Equation (12), the calculation of Φ n 2, Φn and (Φn ×) (Φn ×) can be executed in a parallel mode. Thus the execution time of the matrix C B n B n 1 calculation is:

T Rot 2 DCM = T M + 2 T A + T S + T T + T A + T D + T M + 2 T A = 2 T M + 4 T A + T D + T S + T T

Based on Equations (56) and (57) and refer to Figure 3, the execution time of module M1 can be obtained as follows:

T M 1 = T Con + T VA + T Rot 2 DCM = 4 T M + [ log 2 ( N 1 ) + 6 ] T A + T D + T S + T T

4.2. Analysis of Module M2

Figure 5 shows that the calculation of the velocity rotation compensation and the sculling compensation can be executed in a parallel mode. According to Equation (48), the execution time of the velocity rotation compensation is:

T Rot = T VCP + T M = 2 T M + T A

Similar to the calculation of the coning compensation term βn, in the calculation of the sculling compensation term ΔvSculn defined by Equation (33), the cross-product operations of the 2(N – 1) vectors can be executed in a parallel mode, and the summation of N − 1 vectors can also be successively executed in a parallel mode [log2(N – 1)] times. Thus the execution time of the coning compensation is:

T scul = T VCP + T M + log 2 ( N 1 ) T VA = 2 T M + [ log 2 ( N 1 ) + 1 ] T A

Based on Equations (59) and (60) and referring to Figure 4, the execution time of module M2 can be obtained as follows:

T M 2 = max { T Rot , T scul } + 2 T VA = 2 T M + [ log 2 ( N 1 ) + 3 ] T A

4.3. Analysis of Module M3

Figure 6 shows that the calculation of the gravity and the curvature matrix can be executed in a parallel mode. According to Equations (3537), the execution time of the gravity calculation is:

T G = max { T G 1 , T G 2 , T G 3 } + 2 T M + T D
where TG1, TG2 and TG3 are the execution time of the calculations for the terms (1+0.001931853sin2 L), 1 0.006694380 sin 2 L and ( 1 2 h R 0 ), respectively; and:
T G 1 = T M + T A
T G 2 = T M + T A + T S
T G 3 = T M + T A + T D

According to Equation (39), the execution time of the curvature matrix calculation is:

T F = max { T F 1 , T F 2 } + T A + T D + 2 T M + T A
where TF1 and TF1 are the execution time of the calculations for RM and RN, respectively; and:
T F 1 = 3 T M + 2 T A
T F 2 = 2 T M + T A
Thus the execution time of module M31 can be obtained as follows:
T M 31 = T M + T A + T M + T D + max { T G , T F } + T M + T A

According to Equations (26) and (27), the execution time of module M32 can be estimated by:

T M 32 = ( T M + T MVP + T A ) + ( T VCP 2 + T M + T A ) = 4 T M + 5 T A

Based on Equations (66) and (67), and refer to Figure 6, the total execution time of module M3 is:

T M 3 = T M 31 + T M 32

4.4. Analysis of Module M4

According to Equation (1), the execution time of module M4 is as follows:

T M 4 = 2 T MP = 2 T M + 4 T A

4.5. Analysis of Module M5

Figure 8 shows that the calculation of the integrated transformed specific force increment and the gravity-Coriolis velocity increment can be executed in a parallel mode. According to Equation (4), the execution time of the integrated transformed specific force increment calculation is:

T SF = T MP + T MVP = 2 T M + 4 T A

According to Equation (6), the execution time of the gravity-Coriolis velocity increment calculation is:

T G C = T MVP + T M + T A + T VCP + T A + T M = 4 T M + 5 T A

Based on Equations (70) and (71), and refer to Figure 8, the execution time of module M5 can be obtained as follows:

T M 5 = max { T SF , T G C } + 2 T A = 4 T M + 7 T A

4.6. Analysis of Module M6

Figure 9 shows that the calculation of the altitude matrix and the position matrix can be executed in a parallel mode. According to Equations (7a), (8) and (11), the execution time of the altitude calculation is:

T Alt = T VA + 2 T M + T A = 2 T M + 2 T A

According to Equations (7b) and Equations (911), the execution time of the position matrix calculation is:

T PosDCM = T VA + 2 T M + T M + T A + T VCP 2 + T M + T A + T MP = 6 T M + 6 T A

Based on Equations (73) and (74) and refer to Figure 9, the execution time of module M6 can be obtained as follows:

T M 6 = max { T Alt , T PosDCM } = 6 T M + 6 T A

The execution times of the floating-point operations TA, TM, TD, TT and TS are slightly different when implemented on different FPGA platforms. But compared with Tm, TA and TD, TT and TS are generally larger and has the following approximate relationship with TM:

T D 4 T M ,         T T 4 T M ,             T S 4 T M ,             T A 2 T M

And the number of the gyro incremental angle samples and the accelerometer incremental velocity samples used in the calculation of the coning compensation and the sculling compensation is generally less than four [2], namely, N ≤ 4.Then according to Equations (42), (58), (61), (68), (69), (72) and (75), the length of the execution time of the parallelized strapdown algorithm can be estimated as follows:

T Nav = max { T M 1 , T M 2 , T M 3 } + max { T M 4 , T M 5 } + T M 6 = T M 3 + T M 5 + T M 6 = 22 T M + 24 T A + 2 T D 78 T M

In contrast with the parallel implementation of the strapdown algorithm proposed in Section 3, the execution time of the original strapdown algorithm in a serial mode given in Section 2 is:

T Nav = T M 1 + T M 2 + T M 3 + T M 4 + T M 5 + T M 6
with:
T M 1 = ( 7 N + 11 ) T M + ( 4 N + 16 ) T A + 2 T D + T S + 2 T T
T M 2 = ( 14 N 5 ) T M + ( 8 N 1 ) T A
T M 3 = 88 T M + 57 T A + 7 T D + T S
T M 4 = 54 T M + 36 T A
T M 5 = 43 T M + 35 T A
T M 6 = 49 T M + 34 T A

Thus according to Equations (7679), the ratio of the execution time of the parallelized strapdown algorithm to the execution time of the original strapdown algorithm can be estimated as follows:

η = T Nav T Nav = 22 T M + 24 T A + 2 T D ( 240 + 21 N ) T M + ( 177 + 12 N ) T A + 9 T D + 2 T S + 2 T T 9.44 %
where N is assumed to be 4. Equation (80) indicate that the parallelization design of the new optimum strapdown algorithm can significantly increase the updating rate of the algorithm, thus providing an important foundation to improve the accuracy of SINS working in high dynamic environments.

5. Implementation and Simulation of Parallel Strapdown Algorithm on FPGA

The parallel strapdown algorithm proposed in Section 3 has been implemented on a FPGA platform in the structure shown in Figure 9. The data acquisition module receives the input signal (the gyro incremental angle αn, the accelerometer incremental velocity υn and the initial alignment data Data_Init) and writes the data to the data register module in the operation controller, then notifies the operation controller to start the strapdown calculations through the signal GD_Rdy. The operation controller sends the data stored in the data register module in a parallel mode to the input registers of the floating point unit (FPU), and starts the FPU by the operation starter. The operation results ( C B n N n, v n N, hn and C N n E) are then exported through the output module. The handshake signals ACK and Data_Rdy are used for the communication between the data acquisition module and the external module such as the initial alignment or noise filtering of inertial sensor output samples that is beyond the scope of this paper; and the operation controller can be reset by the signal RST. The state machine in the operation controller is used to control the execution of operations in an appropriate time sequence.

All floating-point operations are carried out in the FPU which is composed of five arithmetic sub-units executing the operations for addition, multiplication, division, square root calculation and trigonometric calculation, respectively. Among them, the adder unit contains k floating-point adders; the multiplier unit contains l floating-point adders; the divider unit contains m floating-point adders; the square root arithmetic unit contains n floating-point adders; where different values of k, l, m and n can be selected according to the hardware resources of the selected FPGA platform.

The parallel strapdown algorithm has been simulated on the Xilinx ISE 12.3 software platform and the hardware platform of the FPGA device XC6VLX550T. The floating-point adder/subtractor, multiplier and other floating-point operations in FPU are constructed by the Xilinx IP core.

In the simulation, both the number of the gyro incremental angle samples and the number of the accelerometer incremental velocity samples for the calculation of the coning compensation and the sculling compensation are set to two (namely, N = 2), then, according to Equations (20), (22), (25) and (34), the coning compensation term and the sculling compensation term defined in Equations (18) and (33) can be expressed as follows:

β ^ n = 1 12 α n 1 × α n
Δ v ^ Scul n = 1 12 α n 1 × υ n + 1 12 υ n 1 × α n

To demonstrate the performance of the proposed parallel strapdown algorithm, the simulation results in a typical updating interval are shown in Figure 10 as the behavioral simulation waveform graph yielded by Xilinx ISE 12.3, and listed in Table 1 where all the data are accurate to four decimal places. The updating interval length Tn in the simulation is 1.0e−3 s, and the clock frequency of the FPGA is set to 10 ns.

The same simulation scenarios are calculated on a MATLAB R2007a platform with the strapdown algorithm in Section 2, the results are consistent with those shown in Table 1.

Figure 10 shows that the signal GD_Rdy has a pulse output at time 20.47 us, and the signal OUT_Rdy has a pulse output at time 30.66 us. This means that the start time and end time of the parallel strapdown algorithm on the FPGA platform are 20.47 us and 30.66 us, respectively. Then the execution time of this parallel strapdown algorithm is only 10.19 μs, when the clock frequency is selected as 10 ns. But the execution time of a strapdown algorithm on a DSP platform is generally in milliseconds. Thus the execution speed of parallel strapdown algorithm on the FPGA platform is much faster than the conventional algorithm on a DSP platform.

The resource utilization of the parallel strapdown algorithm on the hardware platform of the FPGA device XC6VLX550T is shown in Table 2 where Slice Registers, Slice LUTs and DSP48Es are the registers, the look-up tables and the multipliers based on the intellectual property (IP) hard-core of the Xilinx FPGA, respectively.

6. Conclusions

In this paper, a new generalized optimum strapdown algorithm with the coning and sculling compensation is presented, in which the PVA updating operations are carried out based on the single-speed structure in which all computations are executed at a single updating rate that is sufficiently high to accurately account for high frequency angular rate and acceleration rectification effects. Different from existing algorithms, the updating rates of the coning and sculling compensations are unrelated with the number of the gyro incremental angle samples and the number of the accelerometer incremental velocity samples. When the output sampling rate of inertial sensors remains constant, this algorithm allows increasing the updating rate of the coning and sculling compensation, yet with more numbers of gyro incremental angle and accelerometer incremental velocity in order to improve the accuracy of system. Then, in order to implement the new strapdown algorithm in a single chip FPGA, the parallelization of the algorithm is designed and its computational complexity is analyzed. The performance of the proposed parallel strapdown algorithm is tested on the software platform of Xilinx ISE 12.3 and the FPGA device XC6VLX550T hardware platform on the basis of some fighter data. It is shown that this parallel strapdown algorithm on the FPGA platform can greatly decrease the execution time of algorithm to meet the real-time and high precision requirements of system on the high dynamic environment, relative to the existing implemented on the DSP platform.

Acknowledgments

The authors would like to gratefully acknowledge the financial support from the National Nature Science Foundation of China under grant No. 61070003 and Zhejiang Provincial Natural Science Foundation of China under grant No. R1090052.

References

  1. Savage, PG. Strapdown inertial navigation integration algorithm design. Part 1: Attitude algorithms. J. Guid. Control Dyn 1998, 21, 19–28. [Google Scholar]
  2. Titterton, DH; Weston, JL. Strapdown Inertial Navigation Technology, 2nd ed; AIAA: Reston, VA, USA, 2004. [Google Scholar]
  3. Savage, PG. Strapdown Analytics, 2nd ed; Strapdown Associates, Inc: Maple Plain, MN, USA, 2007. [Google Scholar]
  4. Bortz, JE. A new mathematical formulation for strapdown inertial navigation. IEEE Trans. Aerosp. Electron. Syst 1971, 7, 61–66. [Google Scholar]
  5. Miller, RB. A new strapdown attitude algorithm. J. Guid. Control Dyn 1983, 6, 287–291. [Google Scholar]
  6. Lee, JG; Yoon, YJ. Extension of strapdown attitude algorithm for high-frequency base motion. J. Guid. Control Dyn 1990, 13, 738–743. [Google Scholar]
  7. Jiang, YF; Lin, YP. Improved strapdown coning algorithms. IEEE Trans. Aerosp. Electron. Syst 1992, 28, 484–490. [Google Scholar]
  8. Musoff, H; Murphy, JH. A study of recent strapdown navigation attitude algorithms. Proceedings of AIAA Guidance, Navigation and Control Conference, Monterey, CA, USA, 9–11 August 1993; pp. 1717–1723.
  9. Ignagni, M. Efficient class of optimized coning compensation algorithms. J. Guid. Control Dyn 1996, 19, 424–429. [Google Scholar]
  10. Park, CG; Kim, KJ; Chung, D; Lee, JG. Generalized coning compensation algorithm for strapdown system. Proceedings of AIAA Guidance, Navigation and Control Conference, San Diego, CA, USA; 1996. [Google Scholar]
  11. Park, CG; Kim, KJ. Formalized approach to obtaining optimal coefficients for coning algorithms. J. Guid. Control Dyn 1999, 22, 165–168. [Google Scholar]
  12. Ignagni, MB. Duality of optimal strapdown sculling and coning compensation algorithms. Navigation 1998, 45, 85–95. [Google Scholar]
  13. Roscoe, KM. Equivalency between strapdown inertial navigation coning and sculling integrals/algorithms. J. Guid. Control Dyn 2001, 24, 201–205. [Google Scholar]
  14. Savage, PG. Strapdown inertial navigation integration algorithm design. Part 2: Velocity and position algorithms. J. Guid. Control Dyn 1998, 21, 208–221. [Google Scholar]
  15. Savage, PG. A unified mathematical framework for strapdown algorithm design. J. Guid. Control Dyn 2006, 29, 237–249. [Google Scholar]
  16. Savage, PG. Computational Elements for Strapdown Systems, Available online: http://ftp.rta.nato.int/Public/PubFullText/RTO/EN/RTO-EN-SET-064/EN-SET-064-03.pdf (accessed on 4 July 2011).
  17. Savage, PG. Coning algorithm design by explicit frequency shaping. J. Guid. Control Dyn 2010, 33, 1123–1132. [Google Scholar]
  18. Musoff, H; Murphy, JH. Study of strapdown navigation algorithms. J. Guid. Control Dyn 1995, 18, 287–290. [Google Scholar]
  19. Xie, X; Guo, M-F; Zhou, B. Design of system for high performance navigation computer system base on dual DSPs & FPGA. Control Autom 2009, 25, 1–2. [Google Scholar]
  20. Jew, M; El-Osery, A; Bruder, S. Implementation of an FPGA-based aided IMU on a low-cost autonomous outdoor robot. Proceedings of IEEE/ION Position Location and Navigation Symposium (PLANS 2010), Indian Wells, CA, USA, 4–6 May 2010; pp. 1043–1051.
  21. Jia, SW; Feng, D-Z; Wang, M-G. The reserch on algorithm for SINS based on FPGA. J. Proj. Rocket. Missiles Guid 2006, 26, 953–955. [Google Scholar]
  22. Yang, F; Hao, Y-P; Miao, L. Based on FPGA by constructed multi-processor navigation system design. J. Proj. Rocket. Missiles Guid 2007, 27, 126–128. [Google Scholar]
  23. Geng, YR; Wang, YZ; Cui, ZX. Optimal design for sculling algorithms of SINS. J. Beijing Univ. Aeronaut. Astronaut 2001, 27, 694–697. [Google Scholar]
  24. Grejner-Brzezinska, DA; Yi, Y; Toth, C; Anderson, R; Davenport, J; Kopcha, D; Salman, R. Enhanced gravity compensation for improved inertial navigation accuracy. Proceedings of 16th International Technical Meeting of the Satellite Division of The Institute of Navigation (ION GPS/GNSS 2003), Portland, OR, USA, 9–12 September 2003.
  25. Kwon, JH; Jekeli, C. Gravity requirements for compensation of ultra-precise inertial navigation. J. Navig 2005, 58, 479–492. [Google Scholar]
  26. Akeila, E; Salcic, Z; Swain, A. Direct gravity estimation and compensation in strapdown INS applications. Proceedings of 3rd International Conference on Sensing Technology, Tainan, Taiwan, 30 November–3 December 2008.
  27. Groves, PD. Principles of GNSS, Intertial, and Multisensor Integrated Navigation Systems; Artech House: Norwood, MA, USA, 2008. [Google Scholar]
Figure 1. Intervals associated with strapdown algorithm.
Figure 1. Intervals associated with strapdown algorithm.
Sensors 11 07993f1 1024
Figure 2. Functional-block diagram of parallel strapdown algorithm.
Figure 2. Functional-block diagram of parallel strapdown algorithm.
Sensors 11 07993f2 1024
Figure 3. Diagram of module M1.
Figure 3. Diagram of module M1.
Sensors 11 07993f3 1024
Figure 4. Diagram of module M2.
Figure 4. Diagram of module M2.
Sensors 11 07993f4 1024
Figure 5. Diagram of module M3.
Figure 5. Diagram of module M3.
Sensors 11 07993f5 1024
Figure 6. Diagram of module M4.
Figure 6. Diagram of module M4.
Sensors 11 07993f6 1024
Figure 7. Diagram of module M5.
Figure 7. Diagram of module M5.
Sensors 11 07993f7 1024
Figure 8. Diagram of module M6.
Figure 8. Diagram of module M6.
Sensors 11 07993f8 1024
Figure 9. Implementation of parallel strapdown algorithm base on FPGA.
Figure 9. Implementation of parallel strapdown algorithm base on FPGA.
Sensors 11 07993f9 1024
Figure 10. Behavioral simulation waveform graph of parallel strapdown algorithm.
Figure 10. Behavioral simulation waveform graph of parallel strapdown algorithm.
Sensors 11 07993f10 1024
Table 1. (a) Simulation results—gyro and accelerometer inputs; (b) Simulation results— attitude, velocity and position outputs.
Table 1. (a) Simulation results—gyro and accelerometer inputs; (b) Simulation results— attitude, velocity and position outputs.
Sample timeGyro incremental angle sampleAccelerometer incremental velocity sample
x axis (°)y axis (°)z axis (°)x axis (m/s)y axis (m/s)z axis (m/s)
tn–17.3154e−5−4.0469e−67.0390e−6−1.4102e−43.3985e−49.9255e−3
tn7.1058e−53.9166e−67.8809e−6−2.2112e−41.4560e−49.5916e−3
(a)
Update timeAttitudeVelocityPosition
roll angle (°)pitch angle (°)yaw angle (°)x axis (m/s)y axis (m/s)z axis (ms)latitude (°)longitude (°)altitude (m)
tn–1−0.19431.2738121.8839151.1450−80.75009.325039.8598116.481337.3570
tn−58.11581.2720−0.1906151.1533−80.74979.310339.8598116.481337.3663
(b)
Table 2. Resource utilization of parallel strapdown algorithm.
Table 2. Resource utilization of parallel strapdown algorithm.
Resource TypeSlice RegistersSlice LUTsDSP8Es
Usage Amount24,837 (3%)26,074 (7%)105 (12%)
Available Amount687,360343,680864

Share and Cite

MDPI and ACS Style

Li, Z.-T.; Wu, T.-J.; Lin, C.-L.; Ma, L.-H. Field Programmable Gate Array Based Parallel Strapdown Algorithm Design for Strapdown Inertial Navigation Systems. Sensors 2011, 11, 7993-8017. https://doi.org/10.3390/s110807993

AMA Style

Li Z-T, Wu T-J, Lin C-L, Ma L-H. Field Programmable Gate Array Based Parallel Strapdown Algorithm Design for Strapdown Inertial Navigation Systems. Sensors. 2011; 11(8):7993-8017. https://doi.org/10.3390/s110807993

Chicago/Turabian Style

Li, Zong-Tao, Tie-Jun Wu, Can-Long Lin, and Long-Hua Ma. 2011. "Field Programmable Gate Array Based Parallel Strapdown Algorithm Design for Strapdown Inertial Navigation Systems" Sensors 11, no. 8: 7993-8017. https://doi.org/10.3390/s110807993

Article Metrics

Back to TopTop