Function navtk::inertial::apply_aiding_alt_accel
Defined in File inertial_functions.hpp
Function Documentation
-
double navtk::inertial::apply_aiding_alt_accel(double r_zero, Vector3 *accel_vector, AidingAltData *aiding_alt_data, double alt0, double dt, const Vector3 &g)
Helps mitigate vertical drift by correcting down acceleration/velocity prior to integration.
The correction is based upon the difference between the inertial altitude and the provided aiding altitude. Note that
accel_vectoris not returned but is modified in place, and will likely have changed after calling this function.If using altitude aiding, ensure the INS is not reset, as that is incompatible with the aiding algorithm and will produce invalid results. The aiding algorithm is a third-order control loop, taking into account the difference between the INS altitude and that of an external sensor, and adjusting the acceleration, velocity, and position of the INS altitude solution. Note that the algorithm applies its corrections to accelerations with the effects of gravity already removed. Applying our altitude aiding will require conversion from dv’s and dth’s to accelerations with the corresponding dt.
The altitude aiding algorithm is taken from \( \textit{Applied Mathematics in Integrated Navigation Systems, Third Edition} \), by Robert M. Rogers (p 118 - p 120). Vertical channel dynamics are given by the following equations:
\( \dot{h} = v_z^n - C_1 (h-h_B) \) (eq 5.70)
\( \dot{v}_z^n = f_z + g_z + (\rho+2\Omega)_x v_y^n - (\rho+2\Omega)_y x_y^n - C_2(h-h_B) - C_3 \int (h-h_B)dt \) (eq 5.71)
with the coefficients defined as:
\( C_1 = 3 \lambda \) \( C_2 = 4 \lambda^2 + \frac{2g}{R} \) \( C_3 = 2 \lambda^3 \) (eq 5.83)
When choosing a value for \( \lambda \), it is imperative to ensure it is sufficiently small enough for the dynamics of the tracking loop.
- Parameters
r_zero – Ellipsoidal Earth radius, meters.
accel_vector – 3x1 vector of acceleration in the NED frame, m/s^2.
aiding_alt_data – Container holding aiding altitude, error, and method.
alt0 – Current inertial altitude, m HAE.
dt – Delta time that
accel_vectoris to be integrated over, sec.g – Gravity estimate, m/s^2.
- Returns
A scaling term, C1, to be used in correcting the altitude.