Browse Source

FixedWingPositionControl: use target climb/sink rate parameters as maximum

rates in manual altitude controlled modes

Signed-off-by: RomanBapst <bapstroman@gmail.com>
release/1.12
RomanBapst 4 years ago committed by Silvan Fuhrer
parent
commit
19449a4e75
  1. 4
      src/modules/fw_pos_control_l1/FixedwingPositionControl.cpp

4
src/modules/fw_pos_control_l1/FixedwingPositionControl.cpp

@ -567,13 +567,13 @@ FixedwingPositionControl::update_desired_altitude(float dt) @@ -567,13 +567,13 @@ FixedwingPositionControl::update_desired_altitude(float dt)
if (_manual_control_setpoint_altitude > deadBand) {
/* pitching down */
float pitch = -(_manual_control_setpoint_altitude - deadBand) / factor;
_hold_alt += (_param_fw_t_sink_max.get() * dt) * pitch;
_hold_alt += (_param_sinkrate_target.get() * dt) * pitch;
_was_in_deadband = false;
} else if (_manual_control_setpoint_altitude < - deadBand) {
/* pitching up */
float pitch = -(_manual_control_setpoint_altitude + deadBand) / factor;
_hold_alt += (_param_fw_t_clmb_max.get() * dt) * pitch;
_hold_alt += (_param_climbrate_target.get() * dt) * pitch;
_was_in_deadband = false;
} else if (!_was_in_deadband) {

Loading…
Cancel
Save