diff --git a/src/main/flight/pid.c b/src/main/flight/pid.c index cc1742b8a4..015788ce81 100644 --- a/src/main/flight/pid.c +++ b/src/main/flight/pid.c @@ -621,6 +621,7 @@ void pidInitConfig(const pidProfile_t *pidProfile) itermRelax = pidProfile->iterm_relax; itermRelaxType = pidProfile->iterm_relax_type; itermRelaxCutoff = pidProfile->iterm_relax_cutoff; + // 20.0f below is current default itermRelaxCutoff value, to adapt setpoint to change from cutoff itermRelaxSetpointThreshold = ITERM_RELAX_SETPOINT_THRESHOLD * 20.0f / itermRelaxCutoff; #endif diff --git a/src/main/flight/pid.h b/src/main/flight/pid.h index 57475e17ef..42d8fcf46f 100644 --- a/src/main/flight/pid.h +++ b/src/main/flight/pid.h @@ -44,8 +44,8 @@ // This value gives the same "feel" as the previous Kd default of 26 (26 * DTERM_SCALE) #define FEEDFORWARD_SCALE 0.013754f -// Full iterm suppression at 40deg/sec * default cutoff of 20 -#define ITERM_RELAX_SETPOINT_THRESHOLD 30.0f +// Full iterm suppression in setpoint mode at high-passed setpoint rate > 40deg/sec +#define ITERM_RELAX_SETPOINT_THRESHOLD 40.0f typedef enum { PID_ROLL,