Skip to content

Commit

Permalink
TECS throttle gains default reduction and transition values from prev…
Browse files Browse the repository at this point in the history
…ious PX4 version (#22548)

* TECS: reduce default of FW_T_I_GAIN_THR

Signed-off-by: Silvan Fuhrer <[email protected]>

* TECS: reduce default of FW_T_THR_DAMP

Signed-off-by: Silvan Fuhrer <[email protected]>

* TECS: improve param descriptions and meta data of some params

Signed-off-by: Silvan Fuhrer <[email protected]>

* FW Pos C: rename FW_T_THR_DAMP to FW_T_THR_DAMPING

Rename wihtout param translation as the interpretation of this param has changed
recently (a bug was fixed that caused the damping to have a much lower effect than
it should). We want to avoid that users keep the previously tuned value (with the bug)
and do not update the tuning when using the fixed version (v1.14.0 and later).

Signed-off-by: Silvan Fuhrer <[email protected]>

* FW Pos C: rename FW_T_I_GAIN_THR to FW_T_THR_INTEG

Rename wihtout param translation as the interpretation of this param has changed
recently (a bug was fixed that caused the damping to have a much lower effect than
it should). We want to avoid that users keep the previously tuned value (with the bug)
and do not update the tuning when using the fixed version (v1.14.0 and later).

Signed-off-by: Silvan Fuhrer <[email protected]>

---------

Signed-off-by: Silvan Fuhrer <[email protected]>
  • Loading branch information
sfuhrer authored Jan 12, 2024
1 parent 1299702 commit a38abdb
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 22 deletions.
4 changes: 2 additions & 2 deletions src/modules/fw_pos_control/FixedwingPositionControl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -129,8 +129,8 @@ FixedwingPositionControl::parameters_update()
_tecs.set_speed_weight(_param_fw_t_spdweight.get());
_tecs.set_equivalent_airspeed_trim(_performance_model.getCalibratedTrimAirspeed());
_tecs.set_equivalent_airspeed_min(_performance_model.getMinimumCalibratedAirspeed());
_tecs.set_throttle_damp(_param_fw_t_thr_damp.get());
_tecs.set_integrator_gain_throttle(_param_fw_t_I_gain_thr.get());
_tecs.set_throttle_damp(_param_fw_t_thr_damping.get());
_tecs.set_integrator_gain_throttle(_param_fw_t_thr_integ.get());
_tecs.set_integrator_gain_pitch(_param_fw_t_I_gain_pit.get());
_tecs.set_throttle_slewrate(_param_fw_thr_slew_max.get());
_tecs.set_vertical_accel_limit(_param_fw_t_vert_acc.get());
Expand Down
4 changes: 2 additions & 2 deletions src/modules/fw_pos_control/FixedwingPositionControl.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -934,14 +934,14 @@ class FixedwingPositionControl final : public ModuleBase<FixedwingPositionContro

(ParamFloat<px4::params::FW_T_HRATE_FF>) _param_fw_t_hrate_ff,
(ParamFloat<px4::params::FW_T_ALT_TC>) _param_fw_t_h_error_tc,
(ParamFloat<px4::params::FW_T_I_GAIN_THR>) _param_fw_t_I_gain_thr,
(ParamFloat<px4::params::FW_T_THR_INTEG>) _param_fw_t_thr_integ,
(ParamFloat<px4::params::FW_T_I_GAIN_PIT>) _param_fw_t_I_gain_pit,
(ParamFloat<px4::params::FW_T_PTCH_DAMP>) _param_fw_t_ptch_damp,
(ParamFloat<px4::params::FW_T_RLL2THR>) _param_fw_t_rll2thr,
(ParamFloat<px4::params::FW_T_SINK_MAX>) _param_fw_t_sink_max,
(ParamFloat<px4::params::FW_T_SPDWEIGHT>) _param_fw_t_spdweight,
(ParamFloat<px4::params::FW_T_TAS_TC>) _param_fw_t_tas_error_tc,
(ParamFloat<px4::params::FW_T_THR_DAMP>) _param_fw_t_thr_damp,
(ParamFloat<px4::params::FW_T_THR_DAMPING>) _param_fw_t_thr_damping,
(ParamFloat<px4::params::FW_T_VERT_ACC>) _param_fw_t_vert_acc,
(ParamFloat<px4::params::FW_T_STE_R_TC>) _param_ste_rate_time_const,
(ParamFloat<px4::params::FW_T_SEB_R_FF>) _param_seb_rate_ff,
Expand Down
32 changes: 14 additions & 18 deletions src/modules/fw_pos_control/fw_path_navigation_params.c
Original file line number Diff line number Diff line change
Expand Up @@ -465,38 +465,34 @@ PARAM_DEFINE_FLOAT(FW_T_SINK_MAX, 5.0f);
* Increase to add damping to correct for oscillations in speed and height.
*
* @min 0.0
* @max 2.0
* @decimal 2
* @increment 0.1
* @max 1.0
* @decimal 3
* @increment 0.01
* @group FW TECS
*/
PARAM_DEFINE_FLOAT(FW_T_THR_DAMP, 0.1f);
PARAM_DEFINE_FLOAT(FW_T_THR_DAMPING, 0.05f);

/**
* Integrator gain throttle
*
* This is the integrator gain on the throttle part of the control loop.
* Increasing this gain increases the speed at which speed
* and height offsets are trimmed out, but reduces damping and
* increases overshoot. Set this value to zero to completely
* disable all integrator action.
* Integrator gain on the throttle part of the control loop.
* Increase it to trim out speed and height offsets faster,
* with the downside of possible overshoots and oscillations.
*
* @min 0.0
* @max 2.0
* @decimal 2
* @increment 0.05
* @max 1.0
* @decimal 3
* @increment 0.005
* @group FW TECS
*/
PARAM_DEFINE_FLOAT(FW_T_I_GAIN_THR, 0.05f);
PARAM_DEFINE_FLOAT(FW_T_THR_INTEG, 0.02f);

/**
* Integrator gain pitch
*
* This is the integrator gain on the pitch part of the control loop.
* Increasing this gain increases the speed at which speed
* and height offsets are trimmed out, but reduces damping and
* increases overshoot. Set this value to zero to completely
* disable all integrator action.
* Integrator gain on the pitch part of the control loop.
* Increase it to trim out speed and height offsets faster,
* with the downside of possible overshoots and oscillations.
*
* @min 0.0
* @max 2.0
Expand Down

0 comments on commit a38abdb

Please sign in to comment.