aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAnton Babushkin <anton.babushkin@me.com>2013-06-20 12:33:35 +0400
committerAnton Babushkin <anton.babushkin@me.com>2013-06-20 12:33:35 +0400
commitbf0de775329acfc8c450b2958222a83f2a32f977 (patch)
tree84d3b08b296af82e36abc46b4f79bde395355dac /src
parentdec1fdbde0c7bb6f3eacae97ab9656f77294cbfc (diff)
downloadpx4-firmware-bf0de775329acfc8c450b2958222a83f2a32f977.tar.gz
px4-firmware-bf0de775329acfc8c450b2958222a83f2a32f977.tar.bz2
px4-firmware-bf0de775329acfc8c450b2958222a83f2a32f977.zip
Critical bugfix in PID
Diffstat (limited to 'src')
-rw-r--r--src/modules/systemlib/pid/pid.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/modules/systemlib/pid/pid.c b/src/modules/systemlib/pid/pid.c
index ada364e37..2aafe0636 100644
--- a/src/modules/systemlib/pid/pid.c
+++ b/src/modules/systemlib/pid/pid.c
@@ -155,7 +155,7 @@ __EXPORT float pid_calculate(PID_t *pid, float sp, float val, float val_dot, flo
pid->error_previous_filtered = error_filtered;
} else if (pid->mode == PID_MODE_DERIVATIV_CALC_NO_SP) {
- error_filtered = pid->error_previous_filtered + (val - pid->error_previous_filtered) * pid->diff_filter_factor;
+ error_filtered = pid->error_previous_filtered + (- val - pid->error_previous_filtered) * pid->diff_filter_factor;
d = (error_filtered - pid->error_previous_filtered) / fmaxf(dt, 0.003f); // fail-safe for too low dt
pid->error_previous_filtered = error_filtered;
} else if (pid->mode == PID_MODE_DERIVATIV_SET) {