1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-19 22:35:23 +03:00

D scaling adjusted to match normal Cleanflight

This commit is contained in:
borisbstyle 2015-10-08 16:34:11 +02:00
parent 8d8d57a1f4
commit 4cbff888df
2 changed files with 7 additions and 7 deletions

View file

@ -147,13 +147,13 @@ static void resetPidProfile(pidProfile_t *pidProfile)
pidProfile->P8[ROLL] = 40;
pidProfile->I8[ROLL] = 30;
pidProfile->D8[ROLL] = 50;
pidProfile->D8[ROLL] = 20;
pidProfile->P8[PITCH] = 40;
pidProfile->I8[PITCH] = 30;
pidProfile->D8[PITCH] = 50;
pidProfile->D8[PITCH] = 20;
pidProfile->P8[YAW] = 95;
pidProfile->I8[YAW] = 50;
pidProfile->D8[YAW] = 20;
pidProfile->D8[YAW] = 10;
pidProfile->P8[PIDALT] = 50;
pidProfile->I8[PIDALT] = 0;
pidProfile->D8[PIDALT] = 0;

View file

@ -289,7 +289,7 @@ static void pidMultiWii(pidProfile_t *pidProfile, controlRateConfig_t *controlRa
delta = filterApplyPt1(delta, &DTermState[axis], pidProfile->dterm_cut_hz, dT);
}
DTerm = (delta * dynD8[axis]) / 32;
DTerm = (delta * 3 * dynD8[axis]) / 32; // Multiplied by 3 to match old scaling
axisPID[axis] = PTerm + ITerm - DTerm;
#ifdef GTUNE
@ -374,7 +374,7 @@ static void pidMultiWii23(pidProfile_t *pidProfile, controlRateConfig_t *control
delta = filterApplyPt1(delta, &DTermState[axis], pidProfile->dterm_cut_hz, dT);
}
DTerm = ((int32_t)delta * dynD8[axis]) >> 5; // 32 bits is needed for calculation
DTerm = ((int32_t)delta * 3 * dynD8[axis]) >> 5; // 32 bits is needed for calculation. Multiplied by 3 to match old scaling
axisPID[axis] = PTerm + ITerm - DTerm;
@ -498,7 +498,7 @@ static void pidMultiWiiHybrid(pidProfile_t *pidProfile, controlRateConfig_t *con
delta = filterApplyPt1(delta, &DTermState[axis], pidProfile->dterm_cut_hz, dT);
}
DTerm = (delta * dynD8[axis]) / 32;
DTerm = (delta * 3 * dynD8[axis]) / 32; // Multiplied by 3 to match old scaling
axisPID[axis] = PTerm + ITerm - DTerm;
#ifdef GTUNE
@ -785,7 +785,7 @@ static void pidRewrite(pidProfile_t *pidProfile, controlRateConfig_t *controlRat
delta = filterApplyPt1(delta, &DTermState[axis], pidProfile->dterm_cut_hz, dT);
}
DTerm = (delta * pidProfile->D8[axis] * PIDweight[axis] / 100) >> 8; // Multiplied by 3 to match old scaling
DTerm = (delta * 3 * pidProfile->D8[axis] * PIDweight[axis] / 100) >> 8; // Multiplied by 3 to match old scaling
// -----calculate total PID output
axisPID[axis] = PTerm + ITerm + DTerm;