From 62d3c19c3100d6ffe4ee106bd3df35cb068c0443 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Thu, 7 Sep 2017 08:58:24 +1000 Subject: [PATCH] Adjust for full sensitivity scale on ideal PID controller --- speeduino/src/PID_v1/PID_v1.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/speeduino/src/PID_v1/PID_v1.cpp b/speeduino/src/PID_v1/PID_v1.cpp index 3b81dcb5..1e69e71f 100755 --- a/speeduino/src/PID_v1/PID_v1.cpp +++ b/speeduino/src/PID_v1/PID_v1.cpp @@ -428,7 +428,7 @@ bool integerPID_ideal::Compute() if(timeChange >= *mySampleTime) { /*Compute all the working error variables*/ - uint16_t sensitivity = 5001 - *mySensitivity; + uint16_t sensitivity = 10001 - (*mySensitivity * 2); long unitless_setpoint = (((long)*mySetpoint - 0) * 10000L) / (sensitivity - 0); long unitless_input = (((long)*myInput - 0) * 10000L) / (sensitivity - 0); long error = unitless_setpoint - unitless_input; @@ -530,6 +530,7 @@ void integerPID_ideal::Initialize() { ITerm = 0; lastInput = *myInput; + lastError = 0; } /* SetControllerDirection(...)*************************************************