diff --git a/src/main/fc/config.c b/src/main/fc/config.c index 1be550c2fe..52a6e35021 100755 --- a/src/main/fc/config.c +++ b/src/main/fc/config.c @@ -174,7 +174,7 @@ static void resetPidProfile(pidProfile_t *pidProfile) pidProfile->pidAtMinThrottle = PID_STABILISATION_ON; pidProfile->levelAngleLimit = 55; pidProfile->levelSensitivity = 55; - pidProfile->setpointRelaxRatio = 25; + pidProfile->setpointRelaxRatio = 20; pidProfile->dtermSetpointWeight = 190; pidProfile->yawRateAccelLimit = 10.0f; pidProfile->rateAccelLimit = 0.0f; diff --git a/src/main/flight/pid.c b/src/main/flight/pid.c index 3ee6ff0963..4594337f33 100644 --- a/src/main/flight/pid.c +++ b/src/main/flight/pid.c @@ -271,7 +271,7 @@ void pidController(const pidProfile_t *pidProfile, const rollAndPitchTrims_t *an } else { float dynC = dtermSetpointWeight; if (pidProfile->setpointRelaxRatio < 100) { - dynC *= MIN(getRcDeflectionAbs(axis) * relaxFactor, 1.0f); + dynC *= MIN(sq(getRcDeflectionAbs(axis)) * relaxFactor, 1.0f); } const float rD = dynC * currentPidSetpoint - gyroRate; // cr - y // Divide rate change by dT to get differential (ie dr/dt)