Introduction

Flying vehicles usually use ‘initial alignment’ as the first step of navigation1; this means that they correct their directions at the beginning of a flight. Alignment means the relationship between the Body (B) and the Navigation (N) coordinate system2. The word ‘leveling’ refers to calculating the angles of roll and pitch, which are the vehicle deviation from the horizon. The meaning of ‘gyrocompassing’ is finding the direction of the geographic north.

Inaccurate initial alignment causes imprecise navigation. Thus, achieving a high degree of alignment over a short time is necessary. If the initial alignment is accomplished in a stationary mode, the level angles (ϕ and θ) extraction is performed by the accelerometers; Thus, the trouble of the alignment procedure will be gyrocompassing (north-finding). Usually, there is a limited time to calculate the heading angle, however most gyrocompassing algorithms are time-consuming. Therefore, it is necessary to access a gyrocompassing algorithm with a short time and high accuracy.

Various alignment techniques can be divided into inertial, non-inertial, and hybrid methods. The inertial methods use inertial sensors to generate the transformation matrix from the body to the navigation coordinate system and work based on gravity and Earth rate measurements. Non-inertial methods are based on other physical properties; For example, the magnetic compass utilizes the Earth’s magnetic field and finds the magnetic north instead of the true north. Hybrid methods integrate the information from the inertial and non-inertial methods and have the advantage of these two categories simultaneously.

In inertial alignment, the goal is to determine the level and heading angles by strapdown inertial sensors, including three gyros and three accelerometers, and use an algorithm implemented in the processor. The alignment algorithm estimates the navigation system errors (including inertial sensor, numerical computation, and initial condition errors) and corrects the navigation solution.

In general, it can be stated that inertial alignment is categorized as ‘stationary alignment’ and ‘in-motion alignment’. Stationary alignment (the subject of this study) is completed in two successive phases, and accuracy is improved at each phase. These steps are ‘Coarse alignment’3 and ‘Fine alignment’4. The first phase (coarse alignment) provides a rough estimate of initial attitudes. In the second phase (fine alignment), a filter (regularly Kaman filters/KF) is used to refine the alignment and estimate inertial sensor errors before flight5. In this paper we have proposed a new algorithm which combines the advantages of the two conventional alignment algorithms (i.e., coarse and fine). The new algorithm is as fast as the coarse alignment and as accurate as the fine alignment. In other words, the new alignment algorithm is fast and accurate.

Reference6 proposes an algorithm for the stationary alignment of rocket navigation systems. A filter is utilized to decrease the noise in the inertial measurement. Reference7 proposes an approach based on the expansion of the measurements, where the sensors’ biases are estimated more quickly and accurately. Despite the effectiveness of the proposed approach, it could not improve the convergence rate of the platform misalignments; since it depends directly on the unobservable uncompensated biases, which the Kalman filter cannot estimate.

In Ref.8, a new method is proposed for the initial alignment. A Kalman Filter is applied for the fine alignment, while the horizontal acceleration of gravity is also taken into the measurement equations. This approach enhances the tracking ability of the KF for the attitude angle’s change. In Ref.9, a multi-rate self-alignment algorithm enhances the KF capability in estimating biases. In Ref.10, the design principle of a dual-axis rotating SINS is proposed to improve the slow convergence rate and the low accuracy during the initial alignment and self-calibration.

Reference11 presents a SINS error analysis of coarse alignment formulations. The proposed formulation does not imply normality and orthogonality errors. In Ref.12 general expression for the SINS coarse alignment errors is derived, which is valid regardless of the inertial measurement unit (IMU) orientation.

The fine alignment problem has been studied in many references, such as13,14,15,16,17,18,19. Reference20 provides a quick method for accurate alignment; in this method, the roll and pitch rates are used to estimate the heading angle. In Ref.21, the navigation block is triggered with a particular mechanical motion, increasing precision and reducing fine alignment time. In Ref.22, the ‘multi-position’ technique is described in fine alignment; In the proposed method, the attitude of the IMU carrier is changed, and consequently, the observability of the inertial navigation system is improved. This technique reduces the alignment error.

A free IMU can perform fine alignment algorithms in a stationary mode without external aids. ‘Self-alignment’ is a process that is independent of external aiding navigation systems23. The advantage of this method is the independence of the INS from any external data; the disadvantages are as follows: some parameters become non-observable, sensitivity to noise of the inertial sensors is high, and the time required for the convergence of the algorithm is about 5–10 min.

As mentioned, the coarse alignment algorithm is fast and imprecise, while the fine alignment algorithm is slow and accurate. The algorithm presented in this paper is fast as the coarse alignment and accurate as the fine alignment. In other words, the proposed algorithm has the advantages of both traditional algorithms.

The organization of this paper is as follows: in “Rotation of small angles”, the relation between the small rotation angles and the Euler angles is derived. In “The proposed algorithm formulation”, the mathematical formulation of the new algorithm is presented. In “Methods”, the proposed algorithm is simulated and verified numerically, and lastly, the conclusion is made in “Simulation and experiments”.

Rotation of small angles

The following relation holds between two frames when the rotation angles are small24:

$$ {\mathbf{R}}^{{{\hat{\text{N}}\text{N}}}} = {\mathbf{E}} + {\upvarepsilon }{\mathbf{R}}^{{{\hat{\text{N}}\text{N}}}} $$
(1)

In the above equation, \({\mathbf{R}}^{{{\hat{\text{N}}\text{N}}}}\) is the rotation tensor of the estimated navigation frame (\({\hat{\text{N}}}\)) relative to the true navigation frame (N); E is the identity tensor and \({\upvarepsilon }{\mathbf{R}}^{{{\hat{\text{N}}\text{N}}}}\) is the skew-symmetric form of the perturbation tensor (\({\upvarepsilon }{\mathbf{r}}^{{{\hat{\text{N}}\text{N}}}}\)), which is modeled as follows:

$$ [{\upvarepsilon }{\mathbf{r}}^{{{\hat{\text{N}}\text{N}}}} ]^{{{\hat{\text{N}}}}} = [{\upvarepsilon }{\mathbf{r}}^{{{\hat{\text{N}}\text{N}}}} ]^{{\text{N}}} = [\begin{array}{*{20}c} {{\upvarepsilon }\varphi } & {{\upvarepsilon }\theta } & {{\upvarepsilon }\psi } \\ \end{array} ]^{{\text{T}}} \to [{\upvarepsilon }{\mathbf{R}}^{{{\hat{\text{N}}\text{N}}}} ]^{{\text{N}}} = \left[ {\begin{array}{*{20}c} 0 & { - \varepsilon \psi } & {\varepsilon \theta } \\ {\varepsilon \psi } & 0 & { - \varepsilon \varphi } \\ { - \varepsilon \theta } & {\varepsilon \varphi } & 0 \\ \end{array} } \right] $$
(2)

where \({\upvarepsilon }\varphi\), \({\upvarepsilon }\theta\) and \({\upvarepsilon }\psi\) represent three small rotation angles. According to Ref.24, \([{\mathbf{R}}^{{{\hat{\text{N}}\text{N}}}} ]^{{\text{N}}} = [\overline{{\text{T}}} ]^{{{\hat{\text{N}}\text{N}}}}\) where \([{\text{T}}]^{{{\hat{\text{N}}\text{N}}}}\) is the transformation matrix of the N frame to the \({\hat{\text{N}}}\) frame; Utilizing this property, Eq. (1) can be expressed in the navigation frame:

$$ [\varepsilon {\mathbf{R}}^{{\widehat{{\text{N}}}{\text{N}}}} ]^{{\text{N}}} = [{\mathbf{R}}^{{\widehat{{\text{N}}}{\text{N}}}} ]^{{\text{N}}} - [{\mathbf{E}}]^{{\text{N}}} = [\overline{{\text{T}}} ]^{{\widehat{{\text{N}}}{\text{N}}}} - [{\mathbf{E}}]^{{\text{N}}} = [{\text{T}}]^{{{\text{N}}\widehat{{\text{N}}}}} - [{\mathbf{E}}]^{{\text{N}}} = [{\text{T}}]^{{{\text{NB}}}} [{\text{T}}]^{{\widehat{{{\text{BN}}}}}} - [{\mathbf{E}}]^{{\text{N}}} $$
(3)

Transposing Eq. (3) results in:

$$ - [{\upvarepsilon }{\mathbf{R}}^{{{\hat{\text{N}}\text{N}}}} ]^{{\text{N}}} = [{\overline{\text{T}}}]^{{{{\text{B}\hat{\text{N}}}}}} [{\overline{\text{T}}}]^{{{\text{NB}}}} - [{\mathbf{E}}]^{{\text{N}}} \,\,\,\,\,\, \to \,\,\,\,[{\upvarepsilon }{\mathbf{R}}^{{{\hat{\text{N}}\text{N}}}} ]^{{\text{N}}} = [{\mathbf{E}}]^{{\text{N}}} - [{\overline{\text{T}}}]^{{{{\text{B}\hat{\text{N}}}}}} [{\text{T}}]^{{{\text{BN}}}} $$
(4)

Now suppose that \([{\text{T}}]^{{{\text{BN}}}} = f(\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } ,\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } ,\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\varphi } )\) and \([{\text{T}}]^{{{{\text{B}\hat{\text{N}}}}}} = f(\hat{\psi },\hat{\theta },\hat{\varphi })\); where \(\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } ,\,\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } ,\,\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\varphi }\) are true and \(\hat{\psi },\,\hat{\theta },\,\hat{\varphi }\) are estimated Euler angles and ‘f’ is a matrix function that transforms navigation to body frame and is defined as follows24:

$$ f(\psi ,\theta ,\varphi ) = \left[ {\begin{array}{*{20}c} {\cos \psi \cos \theta } & {\sin \psi \cos \theta } & { - \sin \theta } \\ {\cos \psi \sin \theta \sin \varphi - \sin \psi \cos \phi } & {\sin \psi \sin \theta \sin \varphi + \cos \psi \cos \varphi } & {\cos \theta \sin \varphi } \\ {\cos \psi \sin \theta \cos \varphi + \sin \psi \sin \phi } & {\sin \psi \sin \theta \cos \varphi - \cos \psi \sin \varphi } & {\cos \theta \cos \varphi } \\ \end{array} } \right] $$
(5)

Now consider the following definitions:

$$ \Delta \psi = \hat{\psi } - \psi ,\,\,\,\,\,\Delta \theta = \hat{\theta } - \theta ,\,\,\,\,\,\Delta \varphi = \hat{\varphi } - \varphi $$
(6)

where \(\Delta\) defines the difference between the true and estimated value of a parameter. Utilizing Eq. (6), Eq. (4) can be written as follows:

$$ \begin{aligned} [{\upvarepsilon }{\mathbf{R}}^{{{\hat{\text{N}}\text{N}}}} ]^{{\text{N}}} & = [{\mathbf{E}}]^{{\text{N}}} - [{\overline{\text{T}}}]^{{{{\text{B}\hat{\text{N}}}}}} [{\text{T}}]^{{{\text{BN}}}} = [{\mathbf{E}}]^{{\text{N}}} - f^{ - 1} (\hat{\psi },\hat{\theta },\hat{\varphi }) \times f(\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } ,\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } ,\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\varphi } ) \\ & = [{\mathbf{E}}]^{{\text{N}}} - f^{ - 1} (\psi + \Delta \psi ,\,\theta + \Delta \theta ,\varphi + \Delta \varphi ) \times f(\psi ,\theta ,\varphi ) \\ & = [{\mathbf{E}}]^{{\text{N}}} - f^{ - 1} (\hat{\psi },\hat{\theta },\hat{\varphi }) \times f(\hat{\psi } - \Delta \psi ,\hat{\theta } - \Delta \theta ,\hat{\varphi } - \Delta \varphi ) \\ \end{aligned} $$
(7)

Expanding the above equation, \([{\upvarepsilon }{\mathbf{R}}^{{{\hat{\text{N}}\text{N}}}} ]^{{\text{N}}}\) can be found as:

$$ \begin{aligned} & [{\upvarepsilon }{\mathbf{R}}^{{{\hat{\text{N}}\text{N}}}} ]^{{\text{N}}} = \left[ {\begin{array}{*{20}c} 0 & { - {\upvarepsilon }\psi } & {{\upvarepsilon }\theta } \\ {{\upvarepsilon }\psi } & 0 & { - {\upvarepsilon }\phi } \\ { - {\upvarepsilon }\theta } & {{\upvarepsilon }\phi } & 0 \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} 0 & { - \Delta_{3} } & {\Delta_{2} } \\ {\Delta_{1} } & 0 & { - \Delta_{1} } \\ { - \Delta_{2} } & {\Delta_{1} } & 0 \\ \end{array} } \right] \\ & \Delta_{1} = \Delta \theta \,{\text{sin}}\hat{\psi } - \Delta \phi \,{\text{cos}}\hat{\psi }\,{\text{cos}}\hat{\theta } - \Delta \psi \,\Delta \theta \,{\text{cos}}\hat{\psi } - \Delta \phi \,\Delta \psi \,{\text{cos}}\hat{\theta }\,{\text{sin}}\hat{\psi } \\ & \Delta_{2} = - \Delta \theta \,{\text{cos}}\hat{\psi } - \Delta \phi \,{\text{cos}}\hat{\theta }\,{\text{sin}}\hat{\psi } - \Delta \phi \,\Delta \theta \,{\text{sin}}\hat{\psi }\,{\text{sin}}\hat{\theta } \\ & \Delta_{3} = \Delta \phi \,{\text{sin}}\hat{\theta } - \Delta \psi - \Delta \phi \,\Delta \theta \,{\text{cos}}^{{2}} \hat{\psi }\,{\text{cos}}\hat{\theta } - \Delta \phi \,\Delta \psi \,\Delta \theta \,{\text{cos}}\hat{\psi }\,{\text{cos}}\hat{\theta }\,{\text{sin}}\hat{\psi } \\ \end{aligned} $$
(8)

The above equation can be written as Eqs. (9) or (10):

$$ \begin{aligned} & {\upvarepsilon }\phi = \Delta \theta \,{\text{sin}}\hat{\psi } - \Delta \phi \,{\text{cos}}\hat{\psi }\,{\text{cos}}\hat{\theta } - \Delta \psi \,\Delta \theta \,{\text{cos}}\hat{\psi } - \Delta \phi \,\Delta \psi \,{\text{cos}}\hat{\theta }\,{\text{sin}}\hat{\psi } \\ & {\upvarepsilon }\theta = - \Delta \theta \,{\text{cos}}\hat{\psi } - \Delta \phi \,{\text{cos}}\hat{\theta }\,{\text{sin}}\hat{\psi } - \Delta \phi \,\Delta \theta \,{\text{sin}}\hat{\psi }\,{\text{sin}}\hat{\theta } \\ & {\upvarepsilon }\psi = \Delta \phi \,{\text{sin}}\hat{\theta } - \Delta \psi - \Delta \phi \,\Delta \theta \,{\text{cos}}^{{2}} \hat{\psi }\,{\text{cos}}\hat{\theta } - \Delta \phi \,\Delta \psi \,\Delta \theta \,{\text{cos}}\hat{\psi }\,{\text{cos}}\hat{\theta }\,{\text{sin}}\hat{\psi } \\ \end{aligned} $$
(9)
$$ \begin{aligned} & {\upvarepsilon }\phi = \Delta \theta \,{\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } - \Delta \phi \,{\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } \,{\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } - \Delta \psi \,\Delta \theta \,{\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } - \Delta \phi \,\Delta \psi \,{\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } \,{\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } \\ & {\upvarepsilon }\theta = - \Delta \theta \,{\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } - \Delta \phi \,{\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } \,{\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } - \Delta \phi \,\Delta \theta \,{\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } \,{\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } \\ & {\upvarepsilon }\psi = \Delta \phi \,{\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } - \Delta \psi - \Delta \phi \,\Delta \theta \,{\text{cos}}^{{2}} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } \,{\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } - \Delta \phi \,\Delta \psi \,\Delta \theta \,{\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } \,{\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } \,{\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } \\ \end{aligned} $$
(10)

According to Eq. (6), Eq. (10) is rewritten as follows:

$$ \begin{aligned} & {\upvarepsilon }\phi = (\hat{\theta } - \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } )\,{\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } - (\hat{\phi } - \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\phi } )\,{\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } \,{\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } - (\hat{\psi } - \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } )\,(\hat{\theta } - \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } )\,{\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } - (\hat{\phi } - \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\phi } )\,(\hat{\psi } - \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } )\,{\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } \,{\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } \\ & {\upvarepsilon }\theta = - (\hat{\theta } - \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } )\,{\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } - (\hat{\phi } - \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\phi } )\,{\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } \,{\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } - (\hat{\phi } - \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\phi } )\,(\hat{\theta } - \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } )\,{\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } \,{\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } \\ & {\upvarepsilon }\psi = (\hat{\phi } - \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\phi } )\,{\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } - (\hat{\psi } - \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } ) - (\hat{\phi } - \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\phi } )\,(\hat{\theta } - \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } )\,{\text{cos}}^{{2}} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } \,{\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } - (\hat{\phi } - \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\phi } )\,(\hat{\psi } - \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } )\,(\hat{\theta } - \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } )\,{\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } \,{\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } \,{\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } \\ \end{aligned} $$
(11)

The above equation demonstrates the relationship between the small rotation angles and the Euler angles. The expanded form of Eq. (11) is also as follows:

$$ \begin{aligned} \varepsilon \phi & = \hat{\theta }\,\sin \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } - \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } \,\sin \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } - \hat{\phi }\,\cos \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } \,\cos \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } + \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\phi } \,\cos \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } \,\cos \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } + \hat{\psi }\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } \,\cos \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } - \hat{\psi }\hat{\theta }\,\cos \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } \\ & \quad + \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } \hat{\theta }\,\cos \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } - \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } \,\cos \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } + \hat{\phi }\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } \,\cos \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } \,\sin \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } - \hat{\phi }\hat{\psi }\,\cos \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } \,\sin \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } + \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\phi } \hat{\psi }\,\cos \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } \,\sin \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } - \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\phi } \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } \,\cos \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } \,\sin \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } \\ \varepsilon \theta & = - \hat{\theta }\,\cos \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } + \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } \,\cos \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } - \hat{\phi }\,\cos \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } \,\sin \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } + \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\phi } \,\cos \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } \,\sin \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } + \hat{\phi }\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } \,\sin \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } \,\sin \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } \\ & \quad - \hat{\phi }\hat{\theta }\,\sin \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } \,\sin \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } + \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\phi } \hat{\theta }\,\sin \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } \,\sin \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } - \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\phi } \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } \,\sin \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } \,\sin \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } \\ \varepsilon \psi & = \hat{\phi }\,\sin \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } - \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\phi } \,\sin \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } - \hat{\psi } + \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } + \hat{\phi }\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } \,\cos ^{2} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } \,\cos \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } - \hat{\phi }\hat{\theta }\,\cos ^{2} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } \,\cos \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } + \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\phi } \hat{\theta }\,\cos ^{2} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } \,\cos \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } - \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\phi } \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } \,\cos ^{2} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } \,\cos \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } \\ & \quad + \hat{\phi }\hat{\psi }\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } \,\cos \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } \,\cos \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } \,\sin \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } - \hat{\phi }\hat{\psi }\hat{\theta }\,\cos \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } \,\cos \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } \,\sin \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } + \hat{\phi }\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } \hat{\theta }\,\cos \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } \,\cos \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } \,\sin \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } + \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\phi } \hat{\psi }\hat{\theta }\,\cos \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } \,\cos \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } \,\sin \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } \\ & \quad - \hat{\phi }\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } \,\cos \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } \,\cos \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } \,\sin \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } - \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\phi } \hat{\psi }\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } \,\cos \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } \,\cos \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } \,\sin \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } - \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\phi } \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } \hat{\theta }\,\cos \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } \,\cos \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } \,\sin \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } + \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\phi } \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } \,\cos \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } \,\cos \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } \,\sin \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } \\ \end{aligned} $$
(12)

In the next section, the above equation is used to extract the error of IMU sensors in a stand-alone mode.

The proposed algorithm formulation

Consider the set of velocity and attitude navigation error equations. These equations are given in Ref.25 as follows:

$$ \begin{aligned} \varepsilon \dot{v}_{{\text{n}}} & = {\text{T}}_{{{11}}}^{{{\text{NB}}}} \delta f_{{\text{x}}} + {\text{T}}_{{{12}}}^{{{\text{NB}}}} \delta f_{{\text{y}}} + {\text{T}}_{{{13}}}^{{{\text{NB}}}} \delta f_{{\text{z}}} + f_{{\text{e}}} \varepsilon \psi - f_{{\text{d}}} \varepsilon \theta - \left( {\frac{{v_{{\text{e}}}^{2} \sec^{2} \lambda }}{{{\text{R}}_{{\text{e}}} }} + 2\omega_{{\text{n}}} v_{{\text{e}}} } \right)\varepsilon \lambda \\ & \quad + \frac{{(v_{{\text{e}}}^{2} \tan \lambda - v_{{\text{n}}} v_{{\text{d}}} )}}{{{\text{R}}_{{\text{e}}}^{2} }}\varepsilon h + \frac{{v_{{\text{d}}} }}{{{\text{R}}_{{\text{e}}} }}\varepsilon v_{{\text{n}}} + \left( {2\omega_{{\text{d}}} - \frac{{2v_{{\text{e}}} \tan \lambda }}{{{\text{R}}_{{\text{e}}} }}} \right)\varepsilon v_{{\text{e}}} + \frac{{v_{{\text{n}}} }}{{{\text{R}}_{{\text{e}}} }}\varepsilon v_{{\text{d}}} \\ \varepsilon \dot{v}_{{\text{e}}} & = {\text{T}}_{{{21}}}^{{{\text{NB}}}} \delta f_{{\text{x}}} + {\text{T}}_{{{22}}}^{{{\text{NB}}}} \delta f_{{\text{y}}} + {\text{T}}_{{{23}}}^{{{\text{NB}}}} \delta f_{{\text{z}}} - f_{{\text{n}}} \varepsilon \psi + f_{{\text{d}}} \varepsilon \phi + \left( {\frac{{v_{{\text{e}}} v_{{\text{n}}} \sec^{2} \lambda }}{{{\text{R}}_{{\text{e}}} }} + 2\omega_{{\text{n}}} v_{{\text{n}}} + 2\omega_{{\text{d}}} v_{{\text{d}}} } \right)\varepsilon \lambda \\ & \quad - \frac{{(v_{{\text{e}}} v_{{\text{n}}} \tan \lambda + v_{{\text{e}}} v_{{\text{d}}} )}}{{{\text{R}}_{{\text{e}}}^{2} }}\varepsilon h + \left( {\frac{{v_{{\text{e}}} }}{{{\text{R}}_{{\text{e}}} }} + 2\omega_{{\text{n}}} } \right)\varepsilon v_{{\text{d}}} + \left( {\frac{{v_{{\text{e}}} \tan \lambda }}{{{\text{R}}_{{\text{e}}} }} - 2\omega_{{\text{d}}} } \right)\varepsilon v_{{\text{n}}} + \frac{{(v_{{\text{n}}} \tan \lambda + v_{{\text{d}}} )}}{{{\text{R}}_{{\text{e}}} }}\varepsilon v_{{\text{e}}} \\ \varepsilon \dot{v}_{{\text{d}}} & = {\text{T}}_{{{31}}}^{{{\text{NB}}}} \delta f_{{\text{x}}} + {\text{T}}_{{{32}}}^{{{\text{NB}}}} \delta f_{{\text{y}}} + {\text{T}}_{{{33}}}^{{{\text{NB}}}} \delta f_{{\text{z}}} + f_{{\text{n}}} \varepsilon \theta - f_{{\text{e}}} \varepsilon \phi - 2\omega_{{\text{d}}} v_{{\text{e}}} \varepsilon \lambda \\ & \quad + \frac{{(v_{{\text{e}}}^{2} + v_{{\text{n}}}^{2} )}}{{{\text{R}}_{{\text{e}}}^{2} }}\varepsilon h + \delta {\text{g}} - \frac{{2v_{{\text{n}}} }}{{{\text{R}}_{{\text{e}}} }}\varepsilon v_{{\text{n}}} - \left( {\frac{{2v_{{\text{e}}} }}{{{\text{R}}_{{\text{e}}} }} + 2\omega_{{\text{n}}} } \right)\varepsilon v_{{\text{e}}} \\ \end{aligned} $$
(13)
$$ \begin{aligned} \varepsilon \dot{\phi } & = \omega_{{\text{d}}} \varepsilon \lambda - \frac{{v_{{\text{e}}} }}{{{\text{R}}_{{\text{e}}}^{2} }}\varepsilon h + \frac{1}{{{\text{R}}_{{\text{e}}} }}\varepsilon v_{{\text{e}}} + \left( {\omega_{{\text{d}}} - \frac{{v_{{\text{e}}} \tan \lambda }}{{{\text{R}}_{{\text{e}}} }}} \right)\varepsilon \theta + \frac{{v_{{\text{n}}} }}{{{\text{R}}_{{\text{e}}} }}\varepsilon \psi \\ & \quad - {\text{T}}_{{{11}}}^{{{\text{NB}}}} \delta \omega_{{\text{x}}} - {\text{T}}_{{{12}}}^{{{\text{NB}}}} \delta \omega_{{\text{y}}} - {\text{T}}_{{{13}}}^{{{\text{NB}}}} \delta \omega_{{\text{z}}} \\ \varepsilon \dot{\theta } & = \frac{{v_{{\text{n}}} }}{{{\text{R}}_{{\text{e}}}^{2} }}\varepsilon h - \frac{1}{{{\text{R}}_{{\text{e}}} }}\varepsilon v_{{\text{n}}} + \left( {\frac{{v_{{\text{e}}} \tan \lambda }}{{{\text{R}}_{{\text{e}}} }} - \omega_{{\text{d}}} } \right)\varepsilon \phi + \left( {\omega_{{\text{n}}} + \frac{{v_{{\text{e}}} }}{{{\text{R}}_{{\text{e}}} }}} \right)\varepsilon \psi \\ & \quad - {\text{T}}_{{{21}}}^{{{\text{NB}}}} {\updelta }\omega_{{\text{x}}} - {\text{T}}_{{{22}}}^{{{\text{NB}}}} {\updelta }\omega_{{\text{y}}} - {\text{T}}_{{{23}}}^{{{\text{NB}}}} {\updelta }\omega_{{\text{z}}} \\ \varepsilon \dot{\psi } & = - \left( {\omega_{{\text{n}}} + \frac{{v_{{\text{e}}} \sec^{2} \lambda }}{{{\text{R}}_{{\text{e}}} }}} \right)\varepsilon \lambda + \frac{{v_{{\text{e}}} \tan \lambda }}{{{\text{R}}_{{\text{e}}}^{2} }}\varepsilon h - \frac{\tan \lambda }{{{\text{R}}_{{\text{e}}} }}\varepsilon v_{{\text{e}}} - \frac{{v_{{\text{n}}} }}{{{\text{R}}_{{\text{e}}} }}\varepsilon \phi - \left( {\omega_{{\text{n}}} + \frac{{v_{{\text{e}}} }}{{{\text{R}}_{{\text{e}}} }}} \right)\varepsilon \theta \\ & \quad - {\text{T}}_{{{31}}}^{{{\text{NB}}}} \delta \omega_{{\text{x}}} - {\text{T}}_{{{32}}}^{{{\text{NB}}}} \delta \omega_{{\text{y}}} - {\text{T}}_{{{33}}}^{{{\text{NB}}}} \delta \omega_{{\text{z}}} \\ \end{aligned} $$
(14)

where \(\lambda\), \(\ell\), \(v_{{\text{n}}}\), \(v_{{\text{e}}}\) and \(v_{{\text{d}}}\) denote latitude, longitude, and north, east, and down terrestrial velocities, respectively. \({\text{R}}_{{\text{e}}}\) is the radius of the Earth and \({\upvarepsilon }\) is the perturbation operator. The attitude error between the true and computed navigation frames is defined by \({\upvarepsilon }\phi\), \({\upvarepsilon }\theta\) and \({\upvarepsilon }\psi\). Also, \({\upomega }^{{{\text{EI}}}}\) is the Earth’s angular velocity and \({\upomega }_{{\text{n}}}\), \({\upomega }_{{\text{d}}}\), \(f_{{\text{n}}}\), \(f_{{\text{e}}}\) and \(f_{{\text{d}}}\) are defined as follows:

$$ [{{\varvec{\upomega}}}^{{{\text{EI}}}} ]^{{\text{N}}} = \left[ {\begin{array}{*{20}c} {{\upomega }^{{{\text{EI}}}} \cos \lambda } \\ {0} \\ { - {\upomega }^{{{\text{EI}}}} \sin \lambda } \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} {{\upomega }_{{\text{n}}} } \\ {0} \\ {{\upomega }_{{\text{d}}} } \\ \end{array} } \right] $$
(15)
$$ {[}{\mathbf{a}}_{{\text{B}}}^{{\text{I}}} {]}^{{\text{N}}} = \left[ {\begin{array}{*{20}c} {f_{{\text{n}}} } \\ {f_{{\text{e}}} } \\ {f_{{\text{d}}} } \\ \end{array} } \right] = [{\text{T}}]^{{{\text{NB}}}} \left[ {\begin{array}{*{20}c} {f_{{\text{x}}} } \\ {f_{{\text{y}}} } \\ {f_{{\text{z}}} } \\ \end{array} } \right] $$
(16)

Applying stationary conditions (\([{\mathbf{v}}_{{\text{B}}}^{{\text{E}}} ]^{{\text{N}}} = [\begin{array}{*{20}c} 0 & 0 & 0 \\ \end{array} ]^{{\text{T}}}\) and \([{\mathbf{f}}]^{{\text{N}}} = [ - {\mathbf{g}}]^{{\text{N}}} = [\begin{array}{*{20}c} 0 & 0 & { - {\text{g}}} \\ \end{array} ]^{{\text{T}}}\)) to Eqs. (13)–(14), assuming spherical Earth, neglecting position parameters (\({\upvarepsilon }\lambda\) and \({\upvarepsilon }h\)), ignoring the gravity model error (\({\delta g} = {0}\)), navigation error equations are simplified as follows:

$$ \begin{aligned} & {\upvarepsilon }\dot{v}_{{\text{n}}} = {\updelta }f_{{\text{n}}} + 2{\upomega }_{{\text{d}}} {\upvarepsilon }v_{{\text{e}}} + {{\text{g}\varepsilon }}\theta \\ & {\upvarepsilon }\dot{v}_{{\text{e}}} = {\updelta }f_{{\text{e}}} - 2{\upomega }_{{\text{d}}} {\upvarepsilon }v_{{\text{n}}} + 2{\upomega }_{{\text{n}}} {\upvarepsilon }v_{{\text{d}}} - {{\text{g}\varepsilon }}\phi \\ & {\upvarepsilon }\dot{v}_{{\text{d}}} = {\updelta }f_{{\text{d}}} - 2{\upomega }_{{\text{n}}} {\upvarepsilon }v_{{\text{e}}} \\ & {\upvarepsilon }\dot{\phi } = - {\updelta }\omega_{{\text{n}}} + \left( {{1 \mathord{\left/ {\vphantom {1 {{\text{R}}_{{\text{e}}} }}} \right. \kern-0pt} {{\text{R}}_{{\text{e}}} }}} \right){\upvarepsilon }v_{{\text{e}}} + {\upomega }_{{\text{d}}} {\upvarepsilon }\theta \\ & {\upvarepsilon }\dot{\theta } = - {\updelta }\omega_{{\text{e}}} - \left( {{1 \mathord{\left/ {\vphantom {1 {{\text{R}}_{{\text{e}}} }}} \right. \kern-0pt} {{\text{R}}_{{\text{e}}} }}} \right){\upvarepsilon }v_{{\text{n}}} - {\upomega }_{{\text{d}}} {\upvarepsilon }\phi + \,{\upomega }_{{\text{n}}} {\upvarepsilon }\psi \\ & {\upvarepsilon }\dot{\psi } = - {\updelta }\omega_{{\text{d}}} - \left( {{1 \mathord{\left/ {\vphantom {1 {{\text{R}}_{{\text{e}}} }}} \right. \kern-0pt} {{\text{R}}_{{\text{e}}} }}} \right)\tan \lambda {\upvarepsilon }v_{{\text{e}}} - {\upomega }_{{\text{n}}} {\upvarepsilon }\theta \\ \end{aligned} $$
(17)

IMU calibration

Calibration of inertial sensors is an important procedure which affects the performance of navigation products. Due to stochastic nature of sensor’s noises, factory calibration is not a perfect process. Performing in-motion or in-run calibration may increase the IMU accuracy. In this section, a new method for IMU calibration is proposed and its application in initial alignment is discussed.

The problem of IMU calibration is investigated by many researchers. Reference26 explores the present state and upcoming directions of MEMS inertial sensor calibration technology. It discusses the existing advancements in this field while shedding light on potential future trends. The authors analyze the significance of accurate calibration for MEMS sensors and highlight the challenges involved. Reference27 presents a systematic method for calibrating inertial sensors on gravity recovery satellites. The authors introduce a comprehensive approach for achieving accurate calibration, emphasizing its importance for gravity recovery missions. The study outlines the calibration process and its benefits. This work contributes to the enhancement of satellite-based gravity recovery systems through robust inertial sensor calibration techniques.

Reference28 introduces a novel self-calibration method for inertial measurement units (IMUs) utilizing distributed inertial sensors. The authors propose an innovative approach that leverages multiple sensors to calibrate IMUs autonomously. This method enhances the accuracy and reliability of IMU measurements by exploiting distributed information. The study outlines the self-calibration process and its benefits, highlighting its potential to improve IMU performance in various applications.

Reference29 focuses on the extrinsic calibration of visual and inertial sensors for autonomous vehicles. The authors present a method for accurately calibrating the relative positions and orientations of both types of sensors to facilitate robust perception and navigation. The study emphasizes the importance of precise extrinsic calibration in enhancing the perception capabilities of autonomous vehicles. Reference30 presents a self-calibration method for arrays of inertial sensors. The authors propose an innovative approach that enables the automatic calibration of multiple inertial sensors within an array. This method aims to enhance the accuracy and reliability of sensor measurements by leveraging inter-sensor correlations and spatial relationships.

Accelerometers calibration

Consider the velocity error in Eq. (17) and assume that \({\upvarepsilon }\theta = {\upvarepsilon }\phi = 0\), the following simplified equations are obtained:

$$ \begin{aligned} & {\upvarepsilon }\dot{v}_{{\text{n}}} = {\updelta }f_{{\text{n}}} + 2{\upomega }_{{\text{d}}} {\upvarepsilon }v_{{\text{e}}} \\ & {\upvarepsilon }\dot{v}_{{\text{e}}} = {\updelta }f_{{\text{e}}} - 2{\upomega }_{{\text{d}}} {\upvarepsilon }v_{{\text{n}}} + 2{\upomega }_{{\text{n}}} {\upvarepsilon }v_{{\text{d}}} \\ & {\upvarepsilon }\dot{v}_{{\text{d}}} = {\updelta }f_{{\text{d}}} - 2{\upomega }_{{\text{n}}} {\upvarepsilon }v_{{\text{e}}} \\ \end{aligned} $$
(18)

Integrating the above equations in the time domain leads to:

$$ \begin{aligned} & \int_{0}^{t} {{\upvarepsilon }\dot{v}_{{\text{n}}} {\text{d}}t} = \int_{0}^{t} {{\updelta }f_{{\text{n}}} {\text{d}}t} + \int_{0}^{t} {2{\upomega }_{{\text{d}}} {\upvarepsilon }v_{{\text{e}}} {\text{d}}t} \\ & \int_{0}^{t} {{\upvarepsilon }\dot{v}_{{\text{e}}} {\text{d}}t} = \int_{0}^{t} {{\updelta }f_{{\text{e}}} {\text{d}}t} - \int_{0}^{t} {2{\upomega }_{{\text{d}}} {\upvarepsilon }v_{{\text{n}}} {\text{d}}t} + \int_{0}^{t} {2{\upomega }_{{\text{n}}} {\upvarepsilon }v_{{\text{d}}} {\text{d}}t} \\ & \int_{0}^{t} {{\upvarepsilon }\dot{v}_{{\text{d}}} {\text{d}}t} = \int_{0}^{t} {{\updelta }f_{{\text{d}}} {\text{d}}t} - \int_{0}^{t} {2{\upomega }_{{\text{n}}} {\upvarepsilon }v_{{\text{e}}} {\text{d}}t} \\ \end{aligned} $$
(19)

The above equation is expanded as follows:

$$ \begin{aligned} & {\upvarepsilon }v_{{\text{n}}} (t) - {\upvarepsilon }v_{{\text{n}}} (0) = {\updelta }f_{{\text{n}}} (t - 0) + 2{\upomega }_{{\text{d}}} \int_{0}^{t} {{\upvarepsilon }v_{{\text{e}}} {\text{d}}t} \\ & {\upvarepsilon }v_{{\text{e}}} (t) - {\upvarepsilon }v_{{\text{e}}} (0) = {\updelta }f_{{\text{e}}} (t - 0) - 2{\upomega }_{{\text{d}}} \int_{0}^{t} {{\upvarepsilon }v_{{\text{n}}} {\text{d}}t} + 2{\upomega }_{{\text{n}}} \int_{0}^{t} {{\upvarepsilon }v_{{\text{d}}} {\text{d}}t} \\ & {\upvarepsilon }v_{{\text{d}}} (t) - {\upvarepsilon }v_{{\text{d}}} (0) = {\updelta }f_{{\text{d}}} (t - 0) - 2{\upomega }_{{\text{n}}} \int_{0}^{t} {{\upvarepsilon }v_{{\text{e}}} {\text{d}}t} \\ \end{aligned} $$
(20)

Assuming \({\upvarepsilon }v_{{\text{n}}} (0) = {\upvarepsilon }v_{{\text{e}}} (0) = {\upvarepsilon }v_{{\text{d}}} (0) = 0\), The above equation is simplified as follows:

$$ \begin{aligned} & {\updelta }f_{{\text{n}}} t = {\upvarepsilon }v_{{\text{n}}} (t) - 2{\upomega }_{{\text{d}}} \int_{0}^{t} {{\upvarepsilon }v_{{\text{e}}} {\text{d}}t} \\ & {\updelta }f_{{\text{e}}} t = {\upvarepsilon }v_{{\text{e}}} (t) + 2{\upomega }_{{\text{d}}} \int_{0}^{t} {{\upvarepsilon }v_{{\text{n}}} {\text{d}}t} - 2{\upomega }_{{\text{n}}} \int_{0}^{t} {{\upvarepsilon }v_{{\text{d}}} {\text{d}}t} \\ & {\updelta }f_{{\text{d}}} t = {\upvarepsilon }v_{{\text{d}}} (t) + 2{\upomega }_{{\text{n}}} \int_{0}^{t} {{\upvarepsilon }v_{{\text{e}}} {\text{d}}t} \\ \end{aligned} $$
(21)

Based on the definition of the \({\upvarepsilon }\) operator (Appendix A) and that the true velocity is zero in stationary mode, \({\upvarepsilon }v_{i} \,\,(i = {\text{n,}}\,{\text{e,}}\,{\text{d)}}\) will be simplified as:

$$ \begin{aligned} & {\upvarepsilon }v_{{\text{n}}} (t) = v_{{\text{n}}} (t) - 0 = v_{{\text{n}}} (t) \\ & {\upvarepsilon }v_{{\text{e}}} (t) = v_{{\text{e}}} (t) - 0 = v_{{\text{e}}} (t) \\ & {\upvarepsilon }v_{{\text{d}}} (t) = v_{{\text{d}}} (t) - 0 = v_{{\text{d}}} (t) \\ \end{aligned} $$
(22)

Based on the above relation, Eq. (21) is rewritten as follows:

$$ \begin{aligned} & {\updelta }f_{{\text{n}}} = \frac{{v_{{\text{n}}} (t) - 2{\upomega }_{{\text{d}}} \int_{0}^{t} {v_{{\text{e}}} (t){\text{d}}t} }}{t} \\ & {\updelta }f_{{\text{e}}} = \frac{{v_{{\text{e}}} (t) + 2{\upomega }_{{\text{d}}} \int_{0}^{t} {v_{{\text{n}}} (t){\text{d}}t - 2{\upomega }_{{\text{n}}} \int_{0}^{t} {v_{{\text{d}}} (t){\text{d}}t} } }}{t} \\ & {\updelta }f_{{\text{d}}} = \frac{{v_{{\text{d}}} (t) + 2{\upomega }_{{\text{n}}} \int_{0}^{t} {v_{{\text{e}}} (t){\text{d}}t} }}{t} \\ \end{aligned} $$
(23)

According to the above equation, the projection of accelerometers error in the navigation coordinate is obtained; these errors can be compensated, and thus the IMU accuracy is improved.

Gyros calibration

Consider the attitude error terms in Eq. (17) and integrating them over time leads to:

$$ \begin{aligned} & \int_{0}^{t} {{\upvarepsilon }\dot{\phi }{\text{d}}t} = - \int_{0}^{t} {{\updelta }\omega_{{\text{n}}} {\text{d}}t} + \int_{0}^{t} {\frac{1}{{{\text{R}}_{{\text{e}}} }}{\upvarepsilon }v_{{\text{e}}} {\text{d}}t} + \int_{0}^{t} {{\upomega }_{{\text{d}}} {\upvarepsilon }\theta \,{\text{d}}t} \\ & \int_{0}^{t} {{\upvarepsilon }\dot{\theta }{\text{d}}t} = - \int_{0}^{t} {{\updelta }\omega_{{\text{e}}} {\text{d}}t} - \int_{0}^{t} {\frac{1}{{{\text{R}}_{{\text{e}}} }}{\upvarepsilon }v_{{\text{n}}} {\text{d}}t} - \int_{0}^{t} {{\upomega }_{{\text{d}}} {\upvarepsilon }\phi {\text{d}}t} + \int_{0}^{t} {{\upomega }_{{\text{n}}} {\upvarepsilon }\psi \,{\text{d}}t} \\ & \int_{0}^{t} {{\upvarepsilon }\dot{\psi }{\text{d}}t} = - \int_{0}^{t} {{\updelta }\omega_{{\text{d}}} {\text{d}}t} - \int_{0}^{t} {\frac{\tan \lambda }{{{\text{R}}_{{\text{e}}} }}{\upvarepsilon }v_{{\text{e}}} {\text{d}}t} - \int_{0}^{t} {{\upomega }_{{\text{n}}} {\upvarepsilon }\theta \,{\text{d}}t} \\ \end{aligned} $$
(24)

Equation (24) is rewritten as follows:

$$ {\updelta }\omega_{{\text{n}}} t = + \frac{1}{{{\text{R}}_{{\text{e}}} }}\int_{0}^{\,t} {v_{{\text{e}}} {\text{d}}t} + {\upomega }_{{\text{d}}} \int_{0}^{\,t} {\,{{[\varepsilon }}\theta ]{\text{d}}t} - {\upvarepsilon }\phi (t) + {\upvarepsilon }\phi (0) $$
(25)
$$ {\updelta }\omega_{{\text{e}}} t = - \frac{1}{{{\text{R}}_{{\text{e}}} }}\int_{0}^{\,t} {v_{{\text{n}}} {\text{d}}t} - {\upomega }_{{\text{d}}} \int_{0}^{\,t} {\,{{[\varepsilon }}\phi ]{\text{d}}t} + {\upomega }_{{\text{n}}} \int_{0}^{t} {\,{{[\varepsilon }}\psi ]{\text{d}}t} - {\upvarepsilon }\theta (t) + {\upvarepsilon }\theta (0) $$
(26)
$$ {\updelta }\omega_{{\text{d}}} t = - \frac{\tan \lambda }{{{\text{R}}_{{\text{e}}} }}\int_{0}^{t} {v_{{\text{e}}} {\text{d}}t} - {\upomega }_{{\text{n}}} \int_{0}^{t} {{{[\upvarepsilon }}\theta ]{\text{d}}t} - {\upvarepsilon }\psi (t) + {\upvarepsilon }\psi (0) $$
(27)

Now consider the following assumptions which come from the stationary condition:

$$ \begin{aligned} & \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\phi } (t) = \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\phi } (0) = {\text{constant}} \\ & \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (t) = \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0) = {\text{constant}} \\ & \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (t) = \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) = {\text{constant}} \\ \end{aligned} $$
(28)

Replacing Eqs. (12) and (28) into Eq. (25) leads to:

$$ \begin{aligned} {{\delta }}\omega _{{\text{n}}} t & = + \frac{1}{{{\text{R}}_{{\text{e}}} }}\int_{0}^{t} {v_{{\text{e}}} {\text{(}}t{\text{)d}}t} - {{\omega }}_{{\text{d}}} {\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0)\int_{0}^{t} {\hat{\theta }{\text{(t)d}}t} + {{\omega }}_{{\text{d}}} {\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0)\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0)\int_{0}^{t} {{\text{d}}t} \\ & \quad - {{\omega }}_{{\text{d}}} {\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0)\int_{0}^{t} {\hat{\varphi }{\text{(t)d}}t} + {{\omega }}_{{\text{d}}} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\varphi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0)\int_{0}^{t} {{\text{d}}t} \\ & \quad + {{\omega }}_{{\text{d}}} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0)\int_{0}^{t} {\hat{\varphi }{\text{(t)d}}t} - {{\omega }}_{{\text{d}}} {\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0)\int_{0}^{t} {\hat{\varphi }{\text{(t)}}\hat{\theta }{\text{(t)d}}t} \\ & \quad + {{\omega }}_{{\text{d}}} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\varphi } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0)\int_{0}^{t} {\hat{\theta }{\text{(t)d}}t} - {{\omega }}_{{\text{d}}} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\varphi } (0)\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0)\int_{0}^{t} {{\text{d}}t} \\ & \quad - \hat{\theta }(t){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) + \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) + \hat{\varphi }(t){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0) - \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\varphi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0) \\ & \quad - \hat{\psi }(t)\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) + \hat{\psi }(t)\hat{\theta }(t){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) - \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0)\hat{\theta }(t){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) + \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0)\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) \\ & \quad - \hat{\varphi }(t)\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) + \hat{\varphi }(t)\hat{\psi }(t){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) - \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\varphi } (0)\hat{\psi }(t){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) \\ & \quad + \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\varphi } (0)\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) - \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\varphi } (0)\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) \\ & \quad + \hat{\theta }(0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) - \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) - \hat{\varphi }(0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0) + \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\varphi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0) \\ & \quad + \hat{\psi }(0)\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) - \hat{\psi }(0)\hat{\theta }(0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{ + }}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0)\hat{\theta }(0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) - \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0)\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) \\ & \quad + \hat{\varphi }(0)\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) - \hat{\varphi }(0)\hat{\psi }(0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) + \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\varphi } (0)\hat{\psi }(0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) \\ \end{aligned} $$
(29)

Replacing Eqs. (12) and (28) into Eq. (26) leads to:

$$ \begin{aligned} \delta \omega _{{\text{e}}} t & = - \frac{1}{{{\text{R}}_{{\text{e}}} }}\int_{0}^{t} {v_{{\text{n}}} {\text{(}}t{\text{)d}}t} + \omega _{{\text{d}}} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\varphi } (0)\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0)\int_{0}^{t} {{\text{d}}t} \\ & \quad - \omega _{{\text{d}}} {\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0)\int_{0}^{t} {\hat{\theta }(t){\text{d}}t} + \omega _{{\text{d}}} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0)\int_{0}^{t} {{\text{d}}t} + \omega _{{\text{d}}} {\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0)\int_{0}^{t} {\hat{\varphi }(t){\text{d}}t} \\ & \quad - \omega _{{\text{d}}} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\varphi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0)\int_{0}^{t} {{\text{d}}t} - \omega _{{\text{d}}} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0)\int_{0}^{t} {\hat{\psi }(t){\text{d}}t} + \omega _{{\text{d}}} {\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0)\int_{0}^{t} {\hat{\psi }(t)\hat{\theta }(t){\text{d}}t} \\ & \quad - \omega _{{\text{d}}} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0)\int_{0}^{t} {\hat{\theta }(t){\text{d}}t} + \omega _{{\text{d}}} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0)\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0)\int_{0}^{t} {{\text{d}}t} - \omega _{{\text{d}}} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0)\int_{0}^{t} {\hat{\varphi }(t){\text{d}}t} \\ & \quad + \omega _{{\text{d}}} {\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0)\int_{0}^{t} {\hat{\varphi }(t)\hat{\psi }(t){\text{d}}t} - \omega _{{\text{d}}} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\varphi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0)\int_{0}^{t} {\hat{\psi }(t){\text{d}}t} \\ & \quad + \omega _{{\text{n}}} {\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0)\int_{0}^{t} {\hat{\varphi }(t){\text{d}}t} - \omega _{{\text{n}}} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\varphi } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0)\int_{0}^{t} {{\text{d}}t} - \omega _{{\text{n}}} \int_{0}^{t} {\hat{\psi }(t){\text{d}}t} + \omega _{{\text{n}}} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0)\int_{0}^{t} {{\text{d}}t} \\ & \quad + \omega _{{\text{n}}} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{cos}}^{{\text{2}}} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0)\int_{0}^{t} {\hat{\varphi }(t){\text{d}}t} - \omega _{{\text{n}}} {\text{cos}}^{{\text{2}}} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0)\int_{0}^{t} {\hat{\varphi }(t)\hat{\theta }(t){\text{d}}t} \\ & \quad + \omega _{{\text{n}}} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\varphi } (0){\text{cos}}^{{\text{2}}} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0)\int_{0}^{t} {\hat{\theta }(t){\text{d}}t} - \omega _{{\text{n}}} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\varphi } (0)\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{cos}}^{{\text{2}}} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0)\int_{0}^{t} {{\text{d}}t} \\ & \quad + \omega _{{\text{n}}} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0)\int_{0}^{t} {\hat{\varphi }(t)\hat{\psi }(t){\text{d}}t} - \omega _{{\text{n}}} {\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0)\int_{0}^{t} {\hat{\varphi }(t)\hat{\psi }(t)\hat{\theta }(t){\text{d}}t} \\ & \quad + \omega _{{\text{n}}} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0)\int_{0}^{t} {\hat{\varphi }(t)\hat{\theta }(t){\text{d}}t} + \omega _{{\text{n}}} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\varphi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0)\int_{0}^{t} {\hat{\psi }(t)\hat{\theta }(t){\text{d}}t} \\ & \quad - \omega _{{\text{n}}} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0)\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0)\int_{0}^{t} {\hat{\varphi }(t){\text{d}}t} - \omega _{{\text{n}}} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\varphi } (0)\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0)\int_{0}^{t} {\hat{\psi }(t){\text{d}}t} \\ & \quad - \omega _{{\text{n}}} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\varphi } (0)\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0)\int_{0}^{t} {\hat{\theta }(t){\text{d}}t} + \omega _{{\text{n}}} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\varphi } (0)\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0)\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0)\int_{0}^{t} {{\text{d}}t} \\ & \quad + \hat{\theta }(t){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) - \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) + \hat{\varphi }(t){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) - \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\varphi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) \\ & \quad - \hat{\varphi }(t)\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0) + \hat{\varphi }(t)\hat{\theta }(t){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0) - \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\varphi } (0)\hat{\theta }(t){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0) \\ & \quad - \hat{\theta }(0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) + \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) - \hat{\varphi }(0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) \\ & \quad + \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\varphi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) + \hat{\varphi }(0)\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0) - \hat{\varphi }(0)\hat{\theta }(0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0) \\ & \quad + \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\varphi } (0)\hat{\theta }(0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0) - \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\varphi } (0)\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0) \\ & \quad + \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\varphi } (0)\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0) \\ \end{aligned} $$
(30)

Replacing Eqs. (12) and (28) into Eq. (27) leads to:

$$ \begin{aligned} \delta \omega _{{\text{d}}} t & = - \frac{{\tan \lambda }}{{{\text{R}}_{{\text{e}}} }}\int_{0}^{t} {v_{{\text{e}}} {\text{(}}t{\text{)d}}t} + \omega _{{\text{n}}} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\varphi } (0)\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0)\int_{0}^{t} {{\text{d}}t} \\ & \quad + \omega _{{\text{n}}} {\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0)\int_{0}^{t} {\hat{\theta }{\text{(t)d}}t} - \omega _{{\text{n}}} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0)\int_{0}^{t} {{\text{d}}t} + \omega _{{\text{n}}} {\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0)\int_{0}^{t} {\hat{\varphi }{\text{(t)d}}t} \\ & \quad - \omega _{{\text{n}}} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\varphi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0)\int_{0}^{t} {{\text{d}}t} - \omega _{{\text{n}}} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0)\int_{0}^{t} {\hat{\varphi }{\text{(t)d}}t} \\ & \quad + \omega _{{\text{n}}} {\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0)\int_{0}^{t} {\hat{\varphi }{\text{(t)}}\hat{\theta }{\text{(t)d}}t} - \omega _{{\text{n}}} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\varphi } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0)\int_{0}^{t} {\hat{\theta }{\text{(t)d}}t} \\ & \quad - \hat{\varphi }(t){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0) + \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\varphi } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0) + \hat{\psi }(t) - \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) \\ & \quad - \hat{\varphi }(t)\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{cos}}^{{\text{2}}} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0) + \hat{\varphi }(t)\hat{\theta }(t){\text{cos}}^{{\text{2}}} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0) \\ & \quad - \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\varphi } (0)\hat{\theta }(t){\text{cos}}^{{\text{2}}} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0) + \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\varphi } (0)\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{cos}}^{{\text{2}}} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0) \\ & \quad - \hat{\varphi }(t)\hat{\psi }(t)\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) + \hat{\varphi }(t)\hat{\psi }(t)\hat{\theta }(t){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) \\ & \quad - \hat{\varphi }(t)\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0)\hat{\theta }(t){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) + \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\varphi } (0)\hat{\psi }(t)\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) \\ & \quad - \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\varphi } (0)\hat{\psi }(t)\hat{\theta }(t){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) + \hat{\varphi }(t)\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0)\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) \\ & \quad + \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\varphi } (0)\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0)\hat{\theta }(t){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) - \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\varphi } (0)\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0)\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) \\ & \quad + \hat{\varphi }(0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0) - \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\varphi } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0) - \hat{\psi }(0) + \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) + \hat{\varphi }(0)\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0)\hat{\theta }(0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) \\ & \quad + \hat{\varphi }(0)\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{cos}}^{{\text{2}}} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0) - \hat{\varphi }(0)\hat{\theta }(0){\text{cos}}^{{\text{2}}} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0) \\ & \quad + \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\varphi } (0)\hat{\theta }(0){\text{cos}}^{{\text{2}}} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0) - \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\varphi } (0)\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{cos}}^{{\text{2}}} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0) \\ & \quad + \hat{\varphi }(0)\hat{\psi }(0)\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) - \hat{\varphi }(0)\hat{\psi }(0)\hat{\theta }(0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) \\ & \quad + \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\varphi } (0)\hat{\psi }(0)\hat{\theta }(0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) - \hat{\varphi }(0)\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0)\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) \\ & \quad - \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\varphi } (0)\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0)\hat{\theta }(0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) + \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\varphi } (0)\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0)\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) \\ & \quad - \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\varphi } (0)\hat{\psi }(0)\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0){\text{cos}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\theta } (0){\text{sin}}\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{\psi } (0) \\ \end{aligned} $$
(31)

According to Eqs. (29)–(31), the projection of gyros error in the navigation coordinate are obtained; these errors can be compensated, and thus the IMU accuracy is improved. In the next section, the extracted equations are simulated and verified.

Methods

The objective of this section is to provide a detailed explanation of a novel algorithm that aligns SINS systems fast and precisely. The main innovation of this algorithm lies in its use of analytical relations to identify bias errors of gyroscopes and then eliminate them from IMU outputs. Unlike traditional initial alignment algorithms that involve a laborious fine alignment phase, the proposed approach can estimate initial Euler angles by substituting the fine alignment phase with a conventional coarse alignment process. This results in a substantial reduction in the time required to achieve a high level of accuracy. In other words, the proposed algorithm gains the fast computation time of inaccurate conventional coarse alignment phase and accuracy of traditional time-consuming fine alignment techniques at the same time. Figure 1 illustrates a general view of the suggested alignment algorithm. It should be mentioned that the proposed algorithm is operational in the stationary alignment condition.

Figure 1
figure 1

Flowchart of the proposed alignment algorithm.

This algorithm consists of three stages, with the first and third stages being single-shot processes, while the second stage is an iterative process that has a maximum iteration time of Tf. The first stage involves a conventional coarse alignment algorithm while the second stage is the primary contribution of this paper and calculates bias errors in accelerometers and gyroscopes using analytical relations derived in the previous section. Once the second stage reaches its maximum running time condition, the third stage begins by subtracting calculated biases from gyros and accelerometers output and then running a conventional coarse alignment, similar to the first stage. The proposed alignment requires a time period which equals the time required by the coarse alignment and achieves an accuracy which is given by the fine alignment. The algorithm utilizes analytical explicit formulas and there is no tuning procedure as in the fine alignment.

In the proposed algorithm, at first, the average value of the IMU’s outputs are computed. This averaging is done to remove the noise effects and causes six numbers (three for accelerometers and three for gyros). The following procedure is then performed:

  1. 1.

    Coarse alignment is executed (by the six numbers from the averaged IMU’s outputs).

  2. 2.

    Differential calibration is done (by the six numbers from the averaged IMU’s outputs and three numbers from the coarse alignment output as the initial condition for roll, pitch and yaw).

  3. 3.

    Another coarse alignment is performed (using the six numbers from the averaged IMU’s outputs and six numbers from the differential calibration output as the biases of accelerometers and gyros).

In above procedure, calibration of inertial sensors (step 2) is performed to remove biases from the six averaged numbers; The averaged numbers are used in steps 1, 2 and 3. In steps 1 and 2, the averaged numbers are contaminated to biases. In step 3, biases are removed from the averaged numbers.

Simulation and experiments

In this section, the relations extracted in the previous section are simulated and verified. The error model of accelerometers and gyroscopes, including misalignment error, scale factor, bias, and noise are assumed as the following:

$$ \left[ {\begin{array}{*{20}c} {\tilde{f}_{{\text{x}}} } \\ {\tilde{f}_{{\text{y}}} } \\ {\tilde{f}_{{\text{z}}} } \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} {S_{{\text{x}}}^{{\text{a}}} } & {M_{{{\text{xy}}}}^{{\text{a}}} } & {M_{{{\text{xz}}}}^{{\text{a}}} } \\ {M_{{{\text{yx}}}}^{{\text{a}}} } & {S_{{\text{y}}}^{{\text{a}}} } & {M_{{{\text{yz}}}}^{{\text{a}}} } \\ {M_{{{\text{zx}}}}^{{\text{a}}} } & {M_{{{\text{zy}}}}^{{\text{a}}} } & {S_{{\text{z}}}^{{\text{a}}} } \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} {f_{{\text{x}}} } \\ {f_{{\text{y}}} } \\ {f_{{\text{z}}} } \\ \end{array} } \right] + \left[ {\begin{array}{*{20}c} {b_{{\text{x}}}^{{\text{a}}} } \\ {b_{{\text{y}}}^{{\text{a}}} } \\ {b_{{\text{z}}}^{{\text{a}}} } \\ \end{array} } \right] + \left[ {\begin{array}{*{20}c} {n_{{\text{x}}}^{{\text{a}}} } \\ {n_{{\text{y}}}^{{\text{a}}} } \\ {n_{{\text{z}}}^{{\text{a}}} } \\ \end{array} } \right] $$
(32)
$$ \left[ {\begin{array}{*{20}c} {\tilde{\omega }_{{\text{x}}} } \\ {\tilde{\omega }_{{\text{y}}} } \\ {\tilde{\omega }_{{\text{z}}} } \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} {S_{{\text{x}}}^{{\text{g}}} } & {M_{{{\text{xy}}}}^{{\text{g}}} } & {M_{{{\text{xz}}}}^{{\text{g}}} } \\ {M_{{{\text{yx}}}}^{{\text{g}}} } & {S_{{\text{y}}}^{{\text{g}}} } & {M_{{{\text{yz}}}}^{{\text{g}}} } \\ {M_{{{\text{zx}}}}^{{\text{g}}} } & {M_{{{\text{zy}}}}^{{\text{g}}} } & {S_{{\text{z}}}^{{\text{g}}} } \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} {\omega_{{\text{x}}} } \\ {\omega_{{\text{y}}} } \\ {\omega_{{\text{z}}} } \\ \end{array} } \right] + \left[ {\begin{array}{*{20}c} {b_{{\text{x}}}^{{\text{g}}} } \\ {b_{{\text{y}}}^{{\text{g}}} } \\ {b_{{\text{z}}}^{{\text{g}}} } \\ \end{array} } \right] + \left[ {\begin{array}{*{20}c} {n_{{\text{x}}}^{{\text{g}}} } \\ {n_{{\text{y}}}^{{\text{g}}} } \\ {n_{{\text{z}}}^{{\text{g}}} } \\ \end{array} } \right] $$
(33)

To verify Eqs. (23), (29)–(31), various scenarios have been created according to Tables 1, 2 and 3. In Table 1, 50 different conditions for the inertial block are generated randomly (including latitude, longitude, altitude, and Euler angles). The calibration error coefficient for accelerometers and gyros are generated in Tables 2 and 3, respectively. Based on Tables 1, 2 and 3, 50 different scenarios are produced.

Table 1 Definition of position and attitude in different scenarios.
Table 2 Definition of accelerometers coefficients in different scenarios.
Table 3 Definition of gyros coefficients in different scenarios.

In Fig. 2, the results of the proposed algorithm are compared with the ‘coarse’ and ‘fine’ alignment methods. For this purpose, a coarse alignment is run at first. Then, the proposed algorithm is run, and the IMU error is compensated. Lastly, another coarse alignment is run by the error-compensated IMU. Results show that the proposed algorithm has achieved fine alignment accuracy in a limited time. In Fig. 3, the values of the accelerometer errors calculated by the proposed algorithm are shown. It is observed that the accelerometer errors are calculated accurately. In Fig. 4, the error values of gyros are shown. It is observed that the proposed algorithm cannot estimate the gyroscope error of the east channel, but in the north and down channels, the errors of the gyros are estimated accurately. It should be mentioned that according to Ref.31, east gyro error is not observable and thus not estimable.

Figure 2
figure 2

Comparison between different alignment algorithms.

Figure 3
figure 3

Estimated value of accelerometers error with the alignment algorithm.

Figure 4
figure 4

Estimated value of gyroscopes error with the alignment algorithm.

In the subsequent tests, the FOG100 gyrocompass data produced by GEM Elettronica, Italy, was utilized to validate the performance of the proposed alignment technique in real conditions. This system consists of three optical fiber gyroscopes with an accuracy of 0.02 deg/h and three quartz accelerometers with an accuracy of 50 µg. The data sampling frequency was 100 Hz. maximum iteration time, Tf, was set by try and error to Tf = 0.05 s. The device was placed on a rate table, and stationary outputs were recorded. This procedure was repeated ten times, and in each trial, five points were selected randomly (fifty points in total). The table was also used to calculate the bias of the sensors by subtracting the measured values from the nominal values.

Figure 5 indicates that the proposed alignment error in gyrocompassing is very similar to the fine alignment approach. According to Appendix B, the accuracy of the proposed algorithm is the same as the fine alignment algorithm. In this figure, the errors represent the difference between the table orientation and the alignment techniques' output. Figure 6 depicts the bias of the accelerometers in the navigation frame, as well as their estimates by the proposed alignment method. According to Ref.31, the bias of the vertical accelerometer is observable; therefore, this bias is precisely calculated. The bias of the gyroscopes in the navigation frame is seen in Fig. 7. The north and vertical gyros biases are observable and thus they are accurately determined.

Figure 5
figure 5

Comparison between different alignment algorithms.

Figure 6
figure 6

Estimated value of accelerometers error with the alignment algorithm.

Figure 7
figure 7

Estimated value of gyroscopes error with the alignment algorithm.

Conclusion

This paper proposes a novel algorithm for inertial gyrocompassing in the stationary stand-alone mode. The proposed algorithm only uses an IMU to solve the initial alignment problem quickly, accurately, and reasonably. The new algorithm is fast as the ‘coarse alignment’ and accurate as the ‘fine alignment’ algorithms. For this purpose, the mathematical relation between the ‘small rotation angles’ and the ‘navigation error equations’ was extracted and used to calculate the error of IMU sensors. These errors can be compensated, and consequently, the accuracy of the IMU is improved; This, in turn, causes the initial alignment procedure to be performed more accurately. Simulations and experiments show that the proposed algorithm can achieve the accuracy of fine alignment in a short time (the same time as needed by the coarse alignment). Therefore, the proposed algorithm is superior to the two standard initial alignment algorithms (coarse and fine alignment).