From 4a8a3a4079cc3e032219947ca32cff5dfd6be21c Mon Sep 17 00:00:00 2001 From: Roman Date: Tue, 24 Jul 2018 10:16:44 +0200 Subject: [PATCH] l1 controller: simpler way of doing slew rate limiting Signed-off-by: Roman --- l1/ecl_l1_pos_controller.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/l1/ecl_l1_pos_controller.cpp b/l1/ecl_l1_pos_controller.cpp index 196c5c0194..5be25b5c47 100644 --- a/l1/ecl_l1_pos_controller.cpp +++ b/l1/ecl_l1_pos_controller.cpp @@ -58,11 +58,7 @@ void ECL_L1_Pos_Controller::update_roll_setpoint() } // slew rate limiting active - if ((roll_new - _roll_setpoint) / _dt > _roll_slew_rate) { - roll_new = _roll_setpoint + _roll_slew_rate * _dt; - } else if ((roll_new - _roll_setpoint) / _dt < -_roll_slew_rate) { - roll_new = _roll_setpoint - _roll_slew_rate * _dt; - } + roll_new = math::constrain(roll_new, _roll_setpoint - _roll_slew_rate * _dt, _roll_setpoint + _roll_slew_rate * _dt); _roll_setpoint = roll_new;