l1 controller: simpler way of doing slew rate limiting

Signed-off-by: Roman <bapstroman@gmail.com>
This commit is contained in:
Roman 2018-07-24 10:16:44 +02:00 committed by Lorenz Meier
parent fe4e6779f3
commit 4a8a3a4079

View File

@ -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;