Browse Source

AP_TECS: added reset() method

used at end of VTOL takeoff
c415-sdk
Andrew Tridgell 5 years ago
parent
commit
176d3c0b2f
  1. 3
      libraries/AP_TECS/AP_TECS.cpp
  2. 8
      libraries/AP_TECS/AP_TECS.h

3
libraries/AP_TECS/AP_TECS.cpp

@ -911,7 +911,7 @@ void AP_TECS::_update_pitch(void) @@ -911,7 +911,7 @@ void AP_TECS::_update_pitch(void)
void AP_TECS::_initialise_states(int32_t ptchMinCO_cd, float hgt_afe)
{
// Initialise states and variables if DT > 1 second or in climbout
if (_DT > 1.0f)
if (_DT > 1.0f || _need_reset)
{
_integTHR_state = 0.0f;
_integSEB_state = 0.0f;
@ -927,6 +927,7 @@ void AP_TECS::_initialise_states(int32_t ptchMinCO_cd, float hgt_afe) @@ -927,6 +927,7 @@ void AP_TECS::_initialise_states(int32_t ptchMinCO_cd, float hgt_afe)
_flags.reached_speed_takeoff = false;
_DT = 0.1f; // when first starting TECS, use a
// small time constant
_need_reset = false;
}
else if (_flight_stage == AP_Vehicle::FixedWing::FLIGHT_TAKEOFF || _flight_stage == AP_Vehicle::FixedWing::FLIGHT_ABORT_LAND)
{

8
libraries/AP_TECS/AP_TECS.h

@ -117,6 +117,11 @@ public: @@ -117,6 +117,11 @@ public:
_use_synthetic_airspeed_once = true;
}
// reset on next loop
void reset(void) override {
_need_reset = true;
}
// this supports the TECS_* user settable parameters
static const struct AP_Param::GroupInfo var_info[];
@ -320,6 +325,9 @@ private: @@ -320,6 +325,9 @@ private:
float _land_pitch_min = -90;
// need to reset on next loop
bool _need_reset;
// internal variables to be logged
struct {
float SKE_weighting;

Loading…
Cancel
Save