37 float GNSS_negative_altitude,
38 float pressure_altitude,
44 vario_uncompensated_pressure = KalmanVario_pressure.
update (
46 speed_compensation_IAS = kinetic_energy_differentiator.
respond (
48 vario_averager_pressure.
respond (
49 speed_compensation_IAS - vario_uncompensated_pressure);
54 vario_uncompensated_GNSS = vario_uncompensated_pressure;
55 speed_compensation_GNSS = speed_compensation_IAS;
57 speed_compensation_IAS - vario_uncompensated_pressure);
67 acceleration[
DOWN] = KalmanVario_GNSS.
get_x ( KalmanVario_PVA_t::ACCELERATION_OBSERVED);
84 speed_compensation_kalman_2 =
85 (Kalman_v_a_observer_N.
get_x ( Kalman_V_A_Aoff_observer_t::VELOCITY) * Kalman_v_a_observer_N.
get_x ( Kalman_V_A_Aoff_observer_t::ACCELERATION)
86 + Kalman_v_a_observer_E.
get_x ( Kalman_V_A_Aoff_observer_t::VELOCITY) * Kalman_v_a_observer_E.
get_x ( Kalman_V_A_Aoff_observer_t::ACCELERATION)
87 + KalmanVario_GNSS.
get_x (KalmanVario_PVA_t::VARIO) * KalmanVario_GNSS.
get_x ( KalmanVario_PVA_t::ACCELERATION_OBSERVED))
91 speed_compensation_energy_3 = specific_energy_differentiator.
respond ( specific_energy);
100 acceleration[
NORTH] = Kalman_v_a_observer_N.
get_x ( Kalman_V_A_Aoff_observer_t::ACCELERATION);
101 acceleration[
EAST] = Kalman_v_a_observer_E.
get_x ( Kalman_V_A_Aoff_observer_t::ACCELERATION);
102 acceleration[
DOWN] = KalmanVario_GNSS.
get_x ( KalmanVario_PVA_t::ACCELERATION_OBSERVED);
109 speed_compensation_GNSS = GNSS_INS_speedcomp_fusioner.
respond( 0.5 * (speed_compensation_INS_GNSS_1 + speed_compensation_kalman_2), speed_compensation_energy_3);
110 vario_averager_GNSS.
respond ( vario_uncompensated_GNSS + speed_compensation_GNSS);
void update_at_100Hz(const float3vector &gnss_velocity, const float3vector &ahrs_acceleration, const float3vector &heading_vector, float GNSS_altitude, float pressure_altitude, float IAS, const float3vector &wind_average, bool GNSS_fix_avaliable)
calculate instant windspeed and variometer data, update @ 100 Hz