tecs one line setters and group

This commit is contained in:
Daniel Agar
2017-10-22 20:37:40 +02:00
committed by Lorenz Meier
parent 4f2d571c89
commit 31a8e047d7
2 changed files with 33 additions and 120 deletions
-1
View File
@@ -31,7 +31,6 @@
* *
****************************************************************************/ ****************************************************************************/
#include "tecs.h" #include "tecs.h"
#include <ecl/ecl.h> #include <ecl/ecl.h>
+33 -119
View File
@@ -129,18 +129,12 @@ public:
* *
* @return true if airspeed is enabled for control * @return true if airspeed is enabled for control
*/ */
bool airspeed_sensor_enabled() bool airspeed_sensor_enabled() { return _airspeed_enabled; }
{
return _airspeed_enabled;
}
/** /**
* Set the airspeed enable state * Set the airspeed enable state
*/ */
void enable_airspeed(bool enabled) void enable_airspeed(bool enabled) { _airspeed_enabled = enabled; }
{
_airspeed_enabled = enabled;
}
/** /**
* Updates the following vehicle kineamtic state estimates: * Updates the following vehicle kineamtic state estimates:
@@ -165,10 +159,7 @@ public:
float get_pitch_setpoint() { return _pitch_setpoint; } float get_pitch_setpoint() { return _pitch_setpoint; }
float get_speed_weight() { return _pitch_speed_weight; } float get_speed_weight() { return _pitch_speed_weight; }
void reset_state() void reset_state() { _states_initalized = false; }
{
_states_initalized = false;
}
enum ECL_TECS_MODE { enum ECL_TECS_MODE {
ECL_TECS_MODE_NORMAL = 0, ECL_TECS_MODE_NORMAL = 0,
@@ -177,140 +168,61 @@ public:
ECL_TECS_MODE_CLIMBOUT ECL_TECS_MODE_CLIMBOUT
}; };
enum ECL_TECS_MODE _tecs_mode; void set_detect_underspeed_enabled(bool enabled) { _detect_underspeed_enabled = enabled; }
void set_time_const(float time_const)
{
_pitch_time_constant = time_const;
}
void set_time_const_throt(float time_const_throt) void set_time_const(float time_const) { _pitch_time_constant = time_const; }
{ void set_integrator_gain(float gain) { _integrator_gain = gain; }
_throttle_time_constant = time_const_throt;
}
void set_min_sink_rate(float rate) void set_min_sink_rate(float rate) { _min_sink_rate = rate; }
{ void set_max_sink_rate(float sink_rate) { _max_sink_rate = sink_rate; }
_min_sink_rate = rate; void set_max_climb_rate(float climb_rate) { _max_climb_rate = climb_rate; }
}
void set_max_sink_rate(float sink_rate) void set_height_comp_filter_omega(float omega) { _hgt_estimate_freq = omega; }
{ void set_heightrate_ff(float heightrate_ff) { _height_setpoint_gain_ff = heightrate_ff; }
_max_sink_rate = sink_rate; void set_heightrate_p(float heightrate_p) { _height_error_gain = heightrate_p; }
}
void set_max_climb_rate(float climb_rate) void set_indicated_airspeed_max(float airspeed) { _indicated_airspeed_max = airspeed; }
{ void set_indicated_airspeed_min(float airspeed) { _indicated_airspeed_min = airspeed; }
_max_climb_rate = climb_rate;
}
void set_throttle_damp(float throttle_damp) void set_pitch_damping(float damping) { _pitch_damping_gain = damping; }
{ void set_vertical_accel_limit(float limit) { _vert_accel_limit = limit; }
_throttle_damping_gain = throttle_damp;
}
void set_integrator_gain(float gain) void set_speed_comp_filter_omega(float omega) { _tas_estimate_freq = omega; }
{ void set_speed_weight(float weight) { _pitch_speed_weight = weight; }
_integrator_gain = gain; void set_speedrate_p(float speedrate_p) { _speed_error_gain = speedrate_p; }
}
void set_vertical_accel_limit(float limit) void set_time_const_throt(float time_const_throt) { _throttle_time_constant = time_const_throt; }
{ void set_throttle_damp(float throttle_damp) { _throttle_damping_gain = throttle_damp; }
_vert_accel_limit = limit; void set_throttle_slewrate(float slewrate) { _throttle_slewrate = slewrate; }
}
void set_height_comp_filter_omega(float omega) void set_roll_throttle_compensation(float compensation) { _load_factor_correction = compensation; }
{
_hgt_estimate_freq = omega;
}
void set_speed_comp_filter_omega(float omega) // TECS status
{ uint64_t timestamp() { return _pitch_update_timestamp; }
_tas_estimate_freq = omega; ECL_TECS_MODE tecs_mode() { return _tecs_mode; }
}
void set_roll_throttle_compensation(float compensation)
{
_load_factor_correction = compensation;
}
void set_speed_weight(float weight)
{
_pitch_speed_weight = weight;
}
void set_pitch_damping(float damping)
{
_pitch_damping_gain = damping;
}
void set_throttle_slewrate(float slewrate)
{
_throttle_slewrate = slewrate;
}
void set_indicated_airspeed_min(float airspeed)
{
_indicated_airspeed_min = airspeed;
}
void set_indicated_airspeed_max(float airspeed)
{
_indicated_airspeed_max = airspeed;
}
void set_heightrate_p(float heightrate_p)
{
_height_error_gain = heightrate_p;
}
void set_heightrate_ff(float heightrate_ff)
{
_height_setpoint_gain_ff = heightrate_ff;
}
void set_speedrate_p(float speedrate_p)
{
_speed_error_gain = speedrate_p;
}
void set_detect_underspeed_enabled(bool enabled)
{
_detect_underspeed_enabled = enabled;
}
float hgt_setpoint_adj() { return _hgt_setpoint_adj; } float hgt_setpoint_adj() { return _hgt_setpoint_adj; }
float vert_pos_state() { return _vert_pos_state; } float vert_pos_state() { return _vert_pos_state; }
float TAS_setpoint_adj() { return _TAS_setpoint_adj; } float TAS_setpoint_adj() { return _TAS_setpoint_adj; }
float tas_state() { return _tas_state; } float tas_state() { return _tas_state; }
float hgt_rate_setpoint() { return _hgt_rate_setpoint; } float hgt_rate_setpoint() { return _hgt_rate_setpoint; }
float vert_vel_state() { return _vert_vel_state; } float vert_vel_state() { return _vert_vel_state; }
float TAS_rate_setpoint() { return _TAS_rate_setpoint; } float TAS_rate_setpoint() { return _TAS_rate_setpoint; }
float speed_derivative() { return _speed_derivative; } float speed_derivative() { return _speed_derivative; }
float STE_error() { return _STE_error; } float STE_error() { return _STE_error; }
float STE_rate_error() { return _STE_rate_error; } float STE_rate_error() { return _STE_rate_error; }
float SEB_error() { return _SEB_error; } float SEB_error() { return _SEB_error; }
float SEB_rate_error() { return _SEB_rate_error; } float SEB_rate_error() { return _SEB_rate_error; }
float throttle_integ_state() { return _throttle_integ_state; } float throttle_integ_state() { return _throttle_integ_state; }
float pitch_integ_state() { return _pitch_integ_state; } float pitch_integ_state() { return _pitch_integ_state; }
int tecs_mode() { return _tecs_mode; }
uint64_t timestamp() { return _pitch_update_timestamp; }
/** /**
* Handle the altitude reset * Handle the altitude reset
* *
@@ -333,6 +245,8 @@ public:
private: private:
enum ECL_TECS_MODE _tecs_mode;
// timestamps // timestamps
uint64_t _state_update_timestamp; ///< last timestamp of the 50 Hz function call uint64_t _state_update_timestamp; ///< last timestamp of the 50 Hz function call
uint64_t _speed_update_timestamp; ///< last timestamp of the speed function call uint64_t _speed_update_timestamp; ///< last timestamp of the speed function call
@@ -453,12 +367,12 @@ private:
/** /**
* Detect if the system is not capable of maintaining airspeed * Detect if the system is not capable of maintaining airspeed
*/ */
void _detect_underspeed(void); void _detect_underspeed();
/** /**
* Update specific energy * Update specific energy
*/ */
void _update_energy_estimates(void); void _update_energy_estimates();
/** /**
* Update throttle setpoint * Update throttle setpoint
@@ -468,12 +382,12 @@ private:
/** /**
* Detect an uncommanded descent * Detect an uncommanded descent
*/ */
void _detect_uncommanded_descent(void); void _detect_uncommanded_descent();
/** /**
* Update the pitch setpoint * Update the pitch setpoint
*/ */
void _update_pitch_setpoint(void); void _update_pitch_setpoint();
/** /**
* Initialize the controller * Initialize the controller
@@ -484,6 +398,6 @@ private:
/** /**
* Calculate specific total energy rate limits * Calculate specific total energy rate limits
*/ */
void _update_STE_rate_lim(void); void _update_STE_rate_lim();
}; };