From 72407653428f52c0f8e832b0aa8eb88dc5800ce5 Mon Sep 17 00:00:00 2001 From: Robert Lefebvre Date: Thu, 18 Jul 2013 16:52:06 -0400 Subject: [PATCH] TradHeli: Use Leaky Integrator on Yaw Rate controller Use when rotor is not running to prevent the rudder from slowly moving over --- ArduCopter/heli.pde | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ArduCopter/heli.pde b/ArduCopter/heli.pde index 0bf10ef191..8841a12bff 100644 --- a/ArduCopter/heli.pde +++ b/ArduCopter/heli.pde @@ -174,7 +174,11 @@ get_heli_rate_yaw(int32_t target_rate) if (pid_saturated){ i = g.pid_rate_yaw.get_integrator(); // Locked Integrator due to PID saturation on previous cycle } else { - i = g.pid_rate_yaw.get_i(rate_error, G_Dt); + if (motors.motor_runup_complete()){ + i = g.pid_rate_yaw.get_i(rate_error, G_Dt); + } else { + i = g.pid_rate_yaw.get_leaky_i(rate_error, G_Dt, RATE_INTEGRATOR_LEAK_RATE); // If motor is not running use leaky I-term to avoid excessive build-up + } } d = g.pid_rate_yaw.get_d(rate_error, G_Dt);