46 AC_PID::AC_PID(
float initial_p,
float initial_i,
float initial_d,
float initial_imax,
float initial_filt_hz,
float dt,
float initial_ff) :
58 _imax = fabsf(initial_imax);
90 if (!isfinite(input)) {
115 if (!isfinite(input)) {
205 void AC_PID::operator() (
float p,
float i,
float d,
float imaxval,
float input_filt_hz,
float dt,
float ffval)
210 _imax = fabsf(imaxval);
struct AC_PID::ac_pid_flags _flags
AC_PID(float initial_p, float initial_i, float initial_d, float initial_imax, float initial_filt_hz, float dt, float initial_ff=0)
Generic PID algorithm, with EEPROM-backed storage of constants.
#define AP_GROUPINFO(name, idx, clazz, element, def)
static auto MAX(const A &one, const B &two) -> decltype(one > two ? one :two)
float get_filt_alpha() const
#define AC_PID_FILT_HZ_MIN
void set_input_filter_d(float input)
bool is_zero(const T fVal1)
static const struct AP_Param::GroupInfo var_info[]
float get_ff(float requested_rate)
#define AC_PID_FILT_HZ_DEFAULT
void operator()(float p, float i, float d, float imaxval, float input_filt_hz, float dt, float ffval=0)
operator function call for easy initialisation
void set_input_filter_all(float input)
DerivativeFilter< float, 11 > derivative
Copter PID control class.
static void setup_object_defaults(const void *object_pointer, const struct GroupInfo *group_info)
DataFlash_Class::PID_Info _pid_info