fw pos ctrl: lower underspeed detection bound for landing airspeed

This commit is contained in:
Thomas Stastny 2022-06-30 16:17:56 +02:00 committed by Daniel Agar
parent 41b0a6c62c
commit 4b0a8565fe
1 changed files with 8 additions and 0 deletions

View File

@ -1631,6 +1631,12 @@ FixedwingPositionControl::control_auto_landing(const hrt_abstime &now, const flo
const Vector2f landing_approach_vector = calculateLandingApproachVector(); const Vector2f landing_approach_vector = calculateLandingApproachVector();
const float airspeed_land = _param_fw_lnd_airspd_sc.get() * _param_fw_airspd_min.get(); const float airspeed_land = _param_fw_lnd_airspd_sc.get() * _param_fw_airspd_min.get();
if (airspeed_land < _param_fw_airspd_min.get()) {
// adjust underspeed detection bounds for landing airspeed
_tecs.set_equivalent_airspeed_min(airspeed_land);
}
float target_airspeed = get_auto_airspeed_setpoint(control_interval, airspeed_land, ground_speed); float target_airspeed = get_auto_airspeed_setpoint(control_interval, airspeed_land, ground_speed);
// calculate the altitude setpoint based on the landing glide slope // calculate the altitude setpoint based on the landing glide slope
@ -1788,6 +1794,8 @@ FixedwingPositionControl::control_auto_landing(const hrt_abstime &now, const flo
_att_sp.thrust_body[0] = (_landed) ? 0.0f : get_tecs_thrust(); _att_sp.thrust_body[0] = (_landed) ? 0.0f : get_tecs_thrust();
} }
_tecs.set_equivalent_airspeed_min(_param_fw_airspd_min.get()); // reset after TECS calculation
_att_sp.roll_body = constrainRollNearGround(_att_sp.roll_body, _current_altitude, terrain_alt); _att_sp.roll_body = constrainRollNearGround(_att_sp.roll_body, _current_altitude, terrain_alt);
// Apply flaps and spoilers for landing. Amount of deflection is handled in the FW attitdue controller // Apply flaps and spoilers for landing. Amount of deflection is handled in the FW attitdue controller