25#ifndef NAV_ALGORITHMS_WIND_OBSERVER_H_
26#define NAV_ALGORITHMS_WIND_OBSERVER_H_
39 :wind_resampler_100_10Hz(0.04f),
52 circling_wind_averager(),
62 return wind_average_observer.get_output();
64 return instant_wind_averager.get_output();
70 return circling_wind_averager.get_average();
72 return wind_average_observer.get_output();
79 wind_resampler_100_10Hz.settle({0});
80 instant_wind_averager.settle({0});
95 wind_average_observer.relax();
97 wind_average_observer.update(
106 relative_wind_observer.reset({0});
112 circling_wind_averager.reset( wind_average_observer.get_output(), 100);
113 relative_wind_observer.reset({0});
118 wind_correction_nav = ahrs.
get_body2nav() * relative_wind_observer.get_output();
119 wind_correction_nav[
DOWN]=0.0f;
121 corrected_wind_averager.respond( wind_resampler_100_10Hz.get_output() - wind_correction_nav);
122 circling_wind_averager.update( wind_resampler_100_10Hz.get_output() - wind_correction_nav);
126 old_circling_state = circling_state;
131 return wind_resampler_100_10Hz.get_output();
136 return relative_wind_observer.get_output()[
RIGHT];
141 return relative_wind_observer.get_output()[
FRONT];
146 return corrected_wind_averager.get_output();
151 return wind_average_observer.get_output();
#define FAST_SAMPLING_TIME
#define SLOW_SAMPLING_TIME
Attitude and heading reference system.
const float3matrix & get_body2nav(void) const
eulerangle< ftype > get_euler(void) const
circle_state_t get_circling_state(void) const
mathematical vector of arbitrary type and size
datatype abs(void) const
vector abs operator returns absolute value
mechanisms to filter wind data
float3vector get_speed_compensator_wind(void) const
float3vector get_average_value(void) const
float3vector get_instant_value(void) const
float get_crosswind(void) const
float3vector get_measurement(void) const
void process_at_10_Hz(const AHRS_type &ahrs)
float get_headwind(void) const
void process_at_100_Hz(const float3vector &instant_wind)
float3vector get_corrected_wind(void) const
float configuration(EEPROM_PARAMETER_ID id)
definitions for persistent data in EEPROM or config. file
tunable second order IIR lowpass filter (butterworth)
specialized averager for circling and straight flight