1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-16 12:55:19 +03:00

fix abs control #7863

This commit is contained in:
Thorsten Laux 2019-03-24 18:49:09 +01:00
parent ae5c924c96
commit bd708d6741

View file

@ -1335,12 +1335,13 @@ void FAST_CODE pidController(const pidProfile_t *pidProfile, timeUs_t currentTim
&currentPidSetpoint, &errorRate); &currentPidSetpoint, &errorRate);
#endif #endif
const float iterm = pidData[axis].I; const float previousIterm = pidData[axis].I;
float itermErrorRate = errorRate; float itermErrorRate = errorRate;
#if defined(USE_ITERM_RELAX) #if defined(USE_ITERM_RELAX)
if (!launchControlActive) { if (!launchControlActive && !inCrashRecoveryMode) {
applyItermRelax(axis, iterm, gyroRate, &itermErrorRate, &currentPidSetpoint); applyItermRelax(axis, previousIterm, gyroRate, &itermErrorRate, &currentPidSetpoint);
errorRate = currentPidSetpoint - gyroRate;
} }
#endif #endif
@ -1361,7 +1362,7 @@ void FAST_CODE pidController(const pidProfile_t *pidProfile, timeUs_t currentTim
#else #else
const float Ki = pidCoefficient[axis].Ki; const float Ki = pidCoefficient[axis].Ki;
#endif #endif
pidData[axis].I = constrainf(iterm + Ki * itermErrorRate * dynCi, -itermLimit, itermLimit); pidData[axis].I = constrainf(previousIterm + Ki * itermErrorRate * dynCi, -itermLimit, itermLimit);
// -----calculate pidSetpointDelta // -----calculate pidSetpointDelta
float pidSetpointDelta = 0; float pidSetpointDelta = 0;