From 131bbd9f0add5105feebf628542ff4323980e578 Mon Sep 17 00:00:00 2001 From: templeofshadow Date: Tue, 30 Jun 2026 00:16:39 -0500 Subject: [PATCH] adjust PID update function return value --- main.lua | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/main.lua b/main.lua index a362ea9..aff73a0 100644 --- a/main.lua +++ b/main.lua @@ -864,13 +864,13 @@ function CreatePID(kp, ki, kd) minOutput = 0.0, maxOutput = 64.0, update = function(self, setpoint, pv, dt) + if dt <= 0 then return 0.0 end local error = setpoint - pv local P = self.kp * error - local D = 0 - if dt > 0 then D = self.kd * ((error - self.lastError) / dt) else D = 0 end + local D = self.kd * ((error - self.lastError) / dt) local potential_i = self.integral + (self.ki * error * dt) @@ -880,7 +880,7 @@ function CreatePID(kp, ki, kd) local clampedOutput = 0 - if self.minOutput <= potential_i and potential_i <= self.maxOutput then + if raw_output >= self.minOutput and raw_output <= self.maxOutput then self.integral = potential_i clampedOutput = raw_output else @@ -889,9 +889,7 @@ function CreatePID(kp, ki, kd) self.lastError = error - local normalizedOutput = (clampedOutput - self.minOutput) / (self.maxOutput - self.minOutput) - - return normalizedOutput + return clampedOutput end } end