diff --git a/src/boards/Parafoil/Configs/WingConfig.h b/src/boards/Parafoil/Configs/WingConfig.h index 72b5f04fc4d834f28ab15cac9f34deba5d3e71c0..93b9ffae02061127d76b60ece48b9c7795e9f2ea 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 5e41d446cea2d6ef44b46d06f8c5a273dcbb24df..796bfb9a48f03796d16191fb450fc552e4a20c97 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); }