AC_AttControl: do not limit rate if ATC_ACCEL_MAX param is zero

This commit is contained in:
Leonard Hall 2016-11-23 14:43:19 +09:00 committed by Randy Mackay
parent 8c3f7832d2
commit 297dbbe22f
1 changed files with 6 additions and 2 deletions

View File

@ -480,8 +480,12 @@ float AC_AttitudeControl::input_shaping_angle(float error_angle, float smoothing
float ang_vel = sqrt_controller(error_angle, smoothing_gain, accel_max);
// Acceleration is limited directly to smooth the beginning of the curve.
float delta_ang_vel = accel_max * _dt;
return constrain_float(ang_vel, target_ang_vel-delta_ang_vel, target_ang_vel+delta_ang_vel);
if (accel_max > 0) {
float delta_ang_vel = accel_max * _dt;
return constrain_float(ang_vel, target_ang_vel-delta_ang_vel, target_ang_vel+delta_ang_vel);
} else {
return ang_vel;
}
}
// limits the acceleration and deceleration of a velocity request