Simplify errorGyroIf[axis] formula

This commit is contained in:
borisbstyle 2015-05-09 12:31:03 +02:00
parent 5dee66fee9
commit 174cf545b1
1 changed files with 2 additions and 2 deletions

View File

@ -184,8 +184,8 @@ static void pidLuxFloat(pidProfile_t *pidProfile, controlRateConfig_t *controlRa
// -----calculate P component
PTerm = RateError * pidProfile->P_f[axis] * PIDscaler[axis] / 100;
// -----calculate I component. Note that PIDscaler is divided by 1000, because it is simplified formule from the previous multiply by 10
errorGyroIf[axis] = constrainf(errorGyroIf[axis] + RateError * dT * pidProfile->I_f[axis] * PIDscaler[axis] / 1000, -250.0f, 250.0f);
// -----calculate I component. Note that PIDscaler is divided by 10, because it is simplified formule from the previous multiply by 10
errorGyroIf[axis] = constrainf(errorGyroIf[axis] + RateError * dT * pidProfile->I_f[axis] * PIDscaler[axis] / 10, -250.0f, 250.0f);
// limit maximum integrator value to prevent WindUp - accumulating extreme values when system is saturated.
// I coefficient (I8) moved before integration to make limiting independent from PID settings