Change scale for I and D for inflight adjustments to PIDs of FP based
PID.
This commit is contained in:
parent
1f3c9ab0db
commit
d21a009d40
|
@ -410,9 +410,9 @@ void applyStepAdjustment(controlRateConfig_t *controlRateConfig, uint8_t adjustm
|
|||
break;
|
||||
case ADJUSTMENT_PITCH_ROLL_I:
|
||||
if (IS_PID_CONTROLLER_FP_BASED(pidProfile->pidController)) {
|
||||
newFloatValue = pidProfile->I_f[PIDPITCH] + (float)(delta / 10.0f);
|
||||
newFloatValue = pidProfile->I_f[PIDPITCH] + (float)(delta / 100.0f);
|
||||
pidProfile->I_f[PIDPITCH] = constrainf(newFloatValue, 0, 100); // FIXME magic numbers repeated in serial_cli.c
|
||||
newFloatValue = pidProfile->I_f[PIDROLL] + (float)(delta / 10.0f);
|
||||
newFloatValue = pidProfile->I_f[PIDROLL] + (float)(delta / 100.0f);
|
||||
pidProfile->I_f[PIDROLL] = constrainf(newFloatValue, 0, 100); // FIXME magic numbers repeated in serial_cli.c
|
||||
} else {
|
||||
newValue = (int)pidProfile->I8[PIDPITCH] + delta;
|
||||
|
@ -423,9 +423,9 @@ void applyStepAdjustment(controlRateConfig_t *controlRateConfig, uint8_t adjustm
|
|||
break;
|
||||
case ADJUSTMENT_PITCH_ROLL_D:
|
||||
if (IS_PID_CONTROLLER_FP_BASED(pidProfile->pidController)) {
|
||||
newFloatValue = pidProfile->D_f[PIDPITCH] + (float)(delta / 10.0f);
|
||||
newFloatValue = pidProfile->D_f[PIDPITCH] + (float)(delta / 1000.0f);
|
||||
pidProfile->D_f[PIDPITCH] = constrainf(newFloatValue, 0, 100); // FIXME magic numbers repeated in serial_cli.c
|
||||
newFloatValue = pidProfile->D_f[PIDROLL] + (float)(delta / 10.0f);
|
||||
newFloatValue = pidProfile->D_f[PIDROLL] + (float)(delta / 1000.0f);
|
||||
pidProfile->D_f[PIDROLL] = constrainf(newFloatValue, 0, 100); // FIXME magic numbers repeated in serial_cli.c
|
||||
} else {
|
||||
newValue = (int)pidProfile->D8[PIDPITCH] + delta;
|
||||
|
@ -445,7 +445,7 @@ void applyStepAdjustment(controlRateConfig_t *controlRateConfig, uint8_t adjustm
|
|||
break;
|
||||
case ADJUSTMENT_YAW_I:
|
||||
if (IS_PID_CONTROLLER_FP_BASED(pidProfile->pidController)) {
|
||||
newFloatValue = pidProfile->I_f[PIDYAW] + (float)(delta / 10.0f);
|
||||
newFloatValue = pidProfile->I_f[PIDYAW] + (float)(delta / 100.0f);
|
||||
pidProfile->I_f[PIDYAW] = constrainf(newFloatValue, 0, 100); // FIXME magic numbers repeated in serial_cli.c
|
||||
} else {
|
||||
newValue = (int)pidProfile->I8[PIDYAW] + delta;
|
||||
|
@ -454,7 +454,7 @@ void applyStepAdjustment(controlRateConfig_t *controlRateConfig, uint8_t adjustm
|
|||
break;
|
||||
case ADJUSTMENT_YAW_D:
|
||||
if (IS_PID_CONTROLLER_FP_BASED(pidProfile->pidController)) {
|
||||
newFloatValue = pidProfile->D_f[PIDYAW] + (float)(delta / 10.0f);
|
||||
newFloatValue = pidProfile->D_f[PIDYAW] + (float)(delta / 1000.0f);
|
||||
pidProfile->D_f[PIDYAW] = constrainf(newFloatValue, 0, 100); // FIXME magic numbers repeated in serial_cli.c
|
||||
} else {
|
||||
newValue = (int)pidProfile->D8[PIDYAW] + delta;
|
||||
|
|
|
@ -674,12 +674,12 @@ TEST(RcControlsTest, processPIDIncreasePidController2)
|
|||
EXPECT_EQ(0.1f, pidProfile.P_f[PIDPITCH]);
|
||||
EXPECT_EQ(5.1f, pidProfile.P_f[PIDROLL]);
|
||||
EXPECT_EQ(7.1f, pidProfile.P_f[PIDYAW]);
|
||||
EXPECT_EQ(10.1f, pidProfile.I_f[PIDPITCH]);
|
||||
EXPECT_EQ(15.1f, pidProfile.I_f[PIDROLL]);
|
||||
EXPECT_EQ(17.1f, pidProfile.I_f[PIDYAW]);
|
||||
EXPECT_EQ(20.1f, pidProfile.D_f[PIDPITCH]);
|
||||
EXPECT_EQ(25.1f, pidProfile.D_f[PIDROLL]);
|
||||
EXPECT_EQ(27.1f, pidProfile.D_f[PIDYAW]);
|
||||
EXPECT_EQ(10.01f, pidProfile.I_f[PIDPITCH]);
|
||||
EXPECT_EQ(15.01f, pidProfile.I_f[PIDROLL]);
|
||||
EXPECT_EQ(17.01f, pidProfile.I_f[PIDYAW]);
|
||||
EXPECT_EQ(20.001f, pidProfile.D_f[PIDPITCH]);
|
||||
EXPECT_EQ(25.001f, pidProfile.D_f[PIDROLL]);
|
||||
EXPECT_EQ(27.001f, pidProfile.D_f[PIDYAW]);
|
||||
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue