Browse Source

AC_PID - added more paranoid checking that imax is positive in constructor, operator() and load_gains methods

master
rmackay9 13 years ago
parent
commit
24a471ff8f
  1. 1
      libraries/AC_PID/AC_PID.cpp
  2. 4
      libraries/AC_PID/AC_PID.h

1
libraries/AC_PID/AC_PID.cpp

@ -120,6 +120,7 @@ AC_PID::load_gains() @@ -120,6 +120,7 @@ AC_PID::load_gains()
_ki.load();
_kd.load();
_imax.load();
_imax = abs(_imax);
}
void

4
libraries/AC_PID/AC_PID.h

@ -33,7 +33,7 @@ public: @@ -33,7 +33,7 @@ public:
_kp (initial_p),
_ki (initial_i),
_kd (initial_d),
_imax(initial_imax)
_imax(abs(initial_imax))
{
// no need for explicit load, assuming that the main code uses AP_Param::load_all.
}
@ -78,7 +78,7 @@ public: @@ -78,7 +78,7 @@ public:
const float i,
const float d,
const int16_t imaxval) {
_kp = p; _ki = i; _kd = d; _imax = imaxval;
_kp = p; _ki = i; _kd = d; _imax = abs(imaxval);
}
float kP() const { return _kp.get(); }

Loading…
Cancel
Save