Larus glider flight sensor system 3.9.2024
Software-In-The-Loop test and validation system
Loading...
Searching...
No Matches
air_density_observer.h
Go to the documentation of this file.
1/***********************************************************************/
25#ifndef AIR_DENSITY_OBSERVER_H_
26#define AIR_DENSITY_OBSERVER_H_
27
29#include "trigger.h"
30
31#define DENSITY_MEASURMENT_COLLECTS_INTEGER 1
32typedef double evaluation_type;
34
35#define MAX_ALLOWED_VARIANCE 1e-9
36#define MINIMUM_ALTITUDE_RANGE 300.0f
37#define ALTITUDE_TRIGGER_HYSTERESIS 50.0f
38
41{
42public:
44 : density_correction(1.0f),
45 QFF(101325.0f),
46 valid( false)
47 {}
49 float QFF;
50 bool valid;
51};
52
55{
56public:
58 : min_altitude(10000.0f),
59 max_altitude(0.0f),
60 altitude_trigger( ALTITUDE_TRIGGER_HYSTERESIS)
61 {
62 }
63 air_data_result feed_metering( float pressure, float MSL_altitude);
64
65 void initialize( float altitude)
66 {
67 altitude_trigger.initialize(altitude);
68 min_altitude = max_altitude = altitude;
69 density_QFF_calculator.reset();
70 }
71private:
72
73 // linear_least_square_fit<int64_t,evaluation_float_type> density_QFF_calculator;
75 float min_altitude;
76 float max_altitude;
77 trigger altitude_trigger;
78};
79
80#endif /* AIR_DENSITY_OBSERVER_H_ */
linear least square fit for arbitrary data
#define ALTITUDE_TRIGGER_HYSTERESIS
uint64_t measurement_type
double evaluation_type
Maintains offset and slope of the air density measurement.
Measures air density and reference pressure.
air_data_result feed_metering(float pressure, float MSL_altitude)
void initialize(float altitude)
Hysteresis-based triggering on input data.
Definition trigger.h:30
bool initialize(float value, bool _going_up=true)
Definition trigger.h:37
mathematical vector of arbitrary type and size
Definition vector.h:40
class for hysteresis-based triggering on input data