From 55417aa95c9bab0e99195c44113dae85cf34fe99 Mon Sep 17 00:00:00 2001 From: "Edward T. Kaszubski" Date: Sun, 23 Apr 2017 18:13:00 -0700 Subject: [PATCH] Add optional integral decay to rate mode. --- flight/Modules/Stabilization/stabilization.c | 3 +++ shared/uavobjectdefinition/stabilizationsettings.xml | 1 + 2 files changed, 4 insertions(+) diff --git a/flight/Modules/Stabilization/stabilization.c b/flight/Modules/Stabilization/stabilization.c index c6e0b50ee3..73900010a2 100644 --- a/flight/Modules/Stabilization/stabilization.c +++ b/flight/Modules/Stabilization/stabilization.c @@ -583,6 +583,9 @@ static void stabilizationTask(void* parameters) actuatorDesiredAxis[i] = pid_apply_setpoint(&pids[PID_GROUP_RATE + i], get_deadband(i), rateDesiredAxis[i], gyro_filtered[i], dT_expected); actuatorDesiredAxis[i] = bound_sym(actuatorDesiredAxis[i],1.0f); + // apply integral decay to roll and pitch if integral decay is non-zero + if((i == ROLL || i == PITCH) && settings.IntegralDecay[i] > 0.001f) pids[PID_GROUP_RATE + i].iAccumulator *= powf(0.01f,dT_expected/settings.IntegralDecay[i]); + break; case STABILIZATIONDESIRED_STABILIZATIONMODE_ACRODYNE: diff --git a/shared/uavobjectdefinition/stabilizationsettings.xml b/shared/uavobjectdefinition/stabilizationsettings.xml index b1bce37017..fac35a5d2a 100644 --- a/shared/uavobjectdefinition/stabilizationsettings.xml +++ b/shared/uavobjectdefinition/stabilizationsettings.xml @@ -26,6 +26,7 @@ +