From 51eb1b1ebdb7271ca83d343f9c6e90bc570d52e7 Mon Sep 17 00:00:00 2001
From: Radu Raul <raul.radu@skywarder.eu>
Date: Sat, 29 Jul 2023 11:11:05 +0200
Subject: [PATCH] [WingController] PIController constants are now set in the
 config file

---
 src/boards/Parafoil/Configs/WingConfig.h            | 3 +++
 src/boards/Parafoil/Wing/AutomaticWingAlgorithm.cpp | 5 +++--
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/boards/Parafoil/Configs/WingConfig.h b/src/boards/Parafoil/Configs/WingConfig.h
index 72b5f04fc..93b9ffae0 100644
--- a/src/boards/Parafoil/Configs/WingConfig.h
+++ b/src/boards/Parafoil/Configs/WingConfig.h
@@ -71,6 +71,9 @@ constexpr int WING_ALTITUDE_TRIGGER_CONFIDENCE = 10;  // [number of sample]
 constexpr int WING_ALTITUDE_TRIGGER_FALL       = 50;  // [meters]
 constexpr int WING_STRAIGHT_FLIGHT_TIMEOUT     = 15 * 1000000;  // [us]
 
+constexpr float PI_CONTROLLER_SATURATION_MAX_LIMIT = 0.1;
+constexpr float PI_CONTROLLER_SATURATION_MIN_LIMIT = -0.1;
+
 struct WingConfigStruct
 {
 
diff --git a/src/boards/Parafoil/Wing/AutomaticWingAlgorithm.cpp b/src/boards/Parafoil/Wing/AutomaticWingAlgorithm.cpp
index 5e41d446c..796bfb9a4 100644
--- a/src/boards/Parafoil/Wing/AutomaticWingAlgorithm.cpp
+++ b/src/boards/Parafoil/Wing/AutomaticWingAlgorithm.cpp
@@ -45,8 +45,9 @@ AutomaticWingAlgorithm::AutomaticWingAlgorithm(float Kp, float Ki,
                                                GuidanceAlgorithm& guidance)
     : WingAlgorithm(servo1, servo2), guidance(guidance)
 {
-    controller =
-        new PIController(Kp, Ki, WING_UPDATE_PERIOD / 1000.0f, -0.1, 0.1);
+    controller = new PIController(Kp, Ki, WING_UPDATE_PERIOD / 1000.0f,
+                                  PI_CONTROLLER_SATURATION_MIN_LIMIT,
+                                  PI_CONTROLLER_SATURATION_MAX_LIMIT);
 }
 
 AutomaticWingAlgorithm::~AutomaticWingAlgorithm() { delete (controller); }
-- 
GitLab