From 53a176de2f867cc38d79b5f58e136dffed73d50b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kr=C3=B3lik=20Uszasty?= Date: Sun, 13 Oct 2019 00:10:34 +0200 Subject: [PATCH] Fix for last fix for speed control --- McZapkie/Mover.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/McZapkie/Mover.cpp b/McZapkie/Mover.cpp index fb47561b..a6d66e66 100644 --- a/McZapkie/Mover.cpp +++ b/McZapkie/Mover.cpp @@ -6657,7 +6657,7 @@ void TMoverParameters::CheckSpeedCtrl(double dt) } double error = (std::max(SpeedCtrlValue + SpeedCtrlUnit.Offset, 0.0) - Vel); double factorP = error > 0 ? SpeedCtrlUnit.FactorPpos : SpeedCtrlUnit.FactorPneg; - double eSCP = clamp(factorP * error, -1.2, UniCtrlList[MainCtrlPos].MaxCtrlVal); //P module + double eSCP = clamp(factorP * error, -1.2, 1.0); //P module if (eSCP < -1.0) { SpeedCtrlUnit.BrakeInterventionBraking = (eSCP < -1.1) && (Vel < hydro_TC_UnlockSpeed); @@ -6673,7 +6673,7 @@ void TMoverParameters::CheckSpeedCtrl(double dt) else { eimicSpeedCtrlIntegral = 0; } - eimicSpeedCtrl = clamp(eimicSpeedCtrlIntegral + eSCP, -SpeedCtrlUnit.DesiredPower, SpeedCtrlUnit.DesiredPower); + eimicSpeedCtrl = clamp(eimicSpeedCtrlIntegral + eSCP, -SpeedCtrlUnit.DesiredPower, SpeedCtrlUnit.DesiredPower*double(UniCtrlList[MainCtrlPos].SpeedUp > 0)); if (Vel < SpeedCtrlUnit.FullPowerVelocity) { eimicSpeedCtrl = std::min(eimicSpeedCtrl, SpeedCtrlUnit.InitialPower); }