From 39dfdfb7dc2576df255e3248a3c13d1974fc66c9 Mon Sep 17 00:00:00 2001 From: Marco D'Agostini Date: Sun, 26 Aug 2018 10:22:45 -0500 Subject: [PATCH] outputSum is now capped after merging with output --- PID_v1.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/PID_v1.cpp b/PID_v1.cpp index cb6637c..20601a3 100644 --- a/PID_v1.cpp +++ b/PID_v1.cpp @@ -71,9 +71,6 @@ bool PID::Compute() /*Add Proportional on Measurement, if P_ON_M is specified*/ if(!pOnE) outputSum-= kp * dInput; - if(outputSum > outMax) outputSum= outMax; - else if(outputSum < outMin) outputSum= outMin; - /*Add Proportional on Error, if P_ON_E is specified*/ double output; if(pOnE) output = kp * error; @@ -82,6 +79,9 @@ bool PID::Compute() /*Compute Rest of PID Output*/ output += outputSum - kd * dInput; + if(outputSum > outMax) outputSum= outMax; + else if(outputSum < outMin) outputSum= outMin; + if(output > outMax) output = outMax; else if(output < outMin) output = outMin; *myOutput = output;