From 373089d3741be4a9d4193a24a4417036dfacda12 Mon Sep 17 00:00:00 2001 From: templeofshadow Date: Mon, 29 Jun 2026 23:05:23 -0500 Subject: [PATCH] try to fix normalization again --- main.lua | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/main.lua b/main.lua index 922075a..fe7b593 100644 --- a/main.lua +++ b/main.lua @@ -787,6 +787,8 @@ function SetThrusterPower(thruster, power) return end + if power > 1.0 then power = 1.0 elseif power < 0.0 then power = 0.0 end + if Config.Debug then print("DEBUG: thruster "..thruster.name..": power "..power) end if thruster.type == "rotator" then @@ -893,10 +895,6 @@ PIDs = { ForeAftRatePID = CreatePID(0.1, 0.01, 0.05) } --- min and max thrust for thrust normalization -local minThrust = 0 -local maxThrust = 0 - local function createRollingAverage(window) local buffer = {} local index = 0 @@ -919,11 +917,12 @@ local function createRollingAverage(window) end end -MinRollingAverage = createRollingAverage(10) -MaxRollingAverage = createRollingAverage(10) +-- min and max thrust for thrust normalization +local minThrust = math.huge +local maxThrust = -math.huge local function normalize(val, min, max) - if min == max then return 0.0 end + if min == max then return 0.5 end return (val - min) / (max - min) end @@ -973,11 +972,8 @@ function UpdateGlobalThrust() if desiredThrust > maxThrust then maxThrust = desiredThrust end if desiredThrust < minThrust then minThrust = desiredThrust end - local maxAverage = MaxRollingAverage(maxThrust) - local minAverage = MinRollingAverage(minThrust) - -- Normalize the desired thrust to be between 0 and 1 - local normalizedThrust = normalize(desiredThrust, minAverage, maxAverage) + local normalizedThrust = normalize(desiredThrust, minThrust, maxThrust) if normalizedThrust < 0 then normalizedThrust = 0 end