APM:Libraries
|
Copter PID control class. More...
#include <AC_PID.h>
Classes | |
struct | ac_pid_flags |
Public Member Functions | |
AC_PID (float initial_p, float initial_i, float initial_d, float initial_imax, float initial_filt_hz, float dt, float initial_ff=0) | |
void | set_dt (float dt) |
void | set_input_filter_all (float input) |
void | set_input_filter_d (float input) |
float | get_pid () |
float | get_pi () |
float | get_p () |
float | get_i () |
float | get_d () |
float | get_ff (float requested_rate) |
void | reset_I () |
void | reset_filter () |
void | load_gains () |
void | save_gains () |
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 More... | |
AP_Float & | kP () |
AP_Float & | kI () |
AP_Float & | kD () |
AP_Float & | filt_hz () |
float | imax () const |
float | get_filt_alpha () const |
float | ff () const |
void | kP (const float v) |
void | kI (const float v) |
void | kD (const float v) |
void | imax (const float v) |
void | filt_hz (const float v) |
void | ff (const float v) |
float | get_integrator () const |
void | set_integrator (float i) |
void | set_desired_rate (float desired) |
const DataFlash_Class::PID_Info & | get_pid_info (void) const |
Static Public Attributes | |
static const struct AP_Param::GroupInfo | var_info [] |
Protected Attributes | |
AP_Float | _kp |
AP_Float | _ki |
AP_Float | _kd |
AP_Float | _imax |
AP_Float | _filt_hz |
AP_Float | _ff |
struct AC_PID::ac_pid_flags | _flags |
float | _dt |
float | _integrator |
float | _input |
float | _derivative |
DataFlash_Class::PID_Info | _pid_info |
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 = 0 |
||
) |
|
inline |
void AC_PID::filt_hz | ( | const float | v | ) |
float AC_PID::get_d | ( | ) |
Definition at line 155 of file AC_PID.cpp.
Referenced by get_pid(), AR_AttitudeControl::get_steering_out_rate(), AR_AttitudeControl::get_throttle_out_speed(), loop(), AC_AttitudeControl_Heli::rate_bf_to_motor_roll_pitch(), AC_AttitudeControl::rate_target_to_motor_pitch(), AC_AttitudeControl::rate_target_to_motor_roll(), AC_AttitudeControl_Heli::rate_target_to_motor_yaw(), AC_AttitudeControl::rate_target_to_motor_yaw(), AC_PosControl::run_z_controller(), and AP_Winch_Servo::update().
float AC_PID::get_ff | ( | float | requested_rate | ) |
Definition at line 162 of file AC_PID.cpp.
Referenced by AR_AttitudeControl::get_steering_out_rate(), AR_AttitudeControl::get_throttle_out_speed(), AC_AttitudeControl_Heli::rate_bf_to_motor_roll_pitch(), AC_AttitudeControl::rate_target_to_motor_pitch(), AC_AttitudeControl::rate_target_to_motor_roll(), AC_AttitudeControl_Heli::rate_target_to_motor_yaw(), and AC_AttitudeControl::rate_target_to_motor_yaw().
float AC_PID::get_filt_alpha | ( | ) | const |
Definition at line 217 of file AC_PID.cpp.
Referenced by imax(), AC_AttitudeControl::max_rate_step_bf_pitch(), AC_AttitudeControl::max_rate_step_bf_roll(), AC_AttitudeControl::max_rate_step_bf_yaw(), set_input_filter_all(), and set_input_filter_d().
float AC_PID::get_i | ( | ) |
Definition at line 140 of file AC_PID.cpp.
Referenced by get_pi(), get_pid(), AR_AttitudeControl::get_steering_out_rate(), AR_AttitudeControl::get_throttle_out_speed(), loop(), AC_AttitudeControl_Heli::rate_bf_to_motor_roll_pitch(), AC_AttitudeControl::rate_target_to_motor_pitch(), AC_AttitudeControl::rate_target_to_motor_roll(), AC_AttitudeControl_Heli::rate_target_to_motor_yaw(), AC_AttitudeControl::rate_target_to_motor_yaw(), AC_PosControl::run_z_controller(), and AP_Winch_Servo::update().
|
inline |
Definition at line 76 of file AC_PID.h.
Referenced by AR_AttitudeControl::get_steering_out_rate(), AR_AttitudeControl::get_throttle_out_speed(), AC_AttitudeControl_Heli::rate_bf_to_motor_roll_pitch(), AC_AttitudeControl::rate_target_to_motor_pitch(), AC_AttitudeControl::rate_target_to_motor_roll(), AC_AttitudeControl_Heli::rate_target_to_motor_yaw(), AC_AttitudeControl::rate_target_to_motor_yaw(), AC_PosControl::run_z_controller(), and AP_Winch_Servo::update().
float AC_PID::get_p | ( | ) |
Definition at line 134 of file AC_PID.cpp.
Referenced by get_pi(), get_pid(), AR_AttitudeControl::get_steering_out_rate(), AR_AttitudeControl::get_throttle_out_speed(), loop(), AC_AttitudeControl_Heli::rate_bf_to_motor_roll_pitch(), AC_AttitudeControl::rate_target_to_motor_pitch(), AC_AttitudeControl::rate_target_to_motor_roll(), AC_AttitudeControl_Heli::rate_target_to_motor_yaw(), AC_AttitudeControl::rate_target_to_motor_yaw(), AC_PosControl::run_z_controller(), and AP_Winch_Servo::update().
float AC_PID::get_pi | ( | ) |
float AC_PID::get_pid | ( | ) |
|
inline |
Definition at line 82 of file AC_PID.h.
Referenced by AC_AttitudeControl::control_monitor_update().
|
inline |
Definition at line 64 of file AC_PID.h.
Referenced by loop(), and AC_PosControl::run_z_controller().
|
inline |
|
inline |
Definition at line 62 of file AC_PID.h.
Referenced by loop(), AC_AttitudeControl::max_rate_step_bf_pitch(), AC_AttitudeControl::max_rate_step_bf_roll(), and AC_AttitudeControl::max_rate_step_bf_yaw().
|
inline |
|
inline |
Definition at line 60 of file AC_PID.h.
Referenced by loop(), AC_AttitudeControl::max_rate_step_bf_pitch(), AC_AttitudeControl::max_rate_step_bf_roll(), and AC_AttitudeControl::max_rate_step_bf_yaw().
void AC_PID::load_gains | ( | ) |
Definition at line 184 of file AC_PID.cpp.
Referenced by reset_filter().
void AC_PID::operator() | ( | float | p, |
float | i, | ||
float | d, | ||
float | imaxval, | ||
float | input_filt_hz, | ||
float | dt, | ||
float | ffval = 0 |
||
) |
operator function call for easy initialisation
Overload the function call operator to permit easy initialisation.
Definition at line 205 of file AC_PID.cpp.
Referenced by reset_filter().
|
inline |
Definition at line 48 of file AC_PID.h.
Referenced by AR_AttitudeControl::get_steering_out_rate(), and AR_AttitudeControl::get_throttle_out_speed().
void AC_PID::reset_I | ( | ) |
Definition at line 179 of file AC_PID.cpp.
Referenced by AC_AttitudeControl::relax_attitude_controllers(), and AC_AttitudeControl::reset_rate_controller_I_terms().
void AC_PID::save_gains | ( | ) |
Definition at line 195 of file AC_PID.cpp.
Referenced by reset_filter().
|
inline |
Definition at line 80 of file AC_PID.h.
Referenced by AR_AttitudeControl::get_steering_out_rate(), AR_AttitudeControl::get_throttle_out_speed(), AC_AttitudeControl_Heli::rate_bf_to_motor_roll_pitch(), AC_AttitudeControl::rate_target_to_motor_pitch(), AC_AttitudeControl::rate_target_to_motor_roll(), AC_AttitudeControl_Heli::rate_target_to_motor_yaw(), AC_AttitudeControl::rate_target_to_motor_yaw(), and AC_PosControl::run_z_controller().
void AC_PID::set_dt | ( | float | dt | ) |
Definition at line 69 of file AC_PID.cpp.
Referenced by AR_AttitudeControl::get_steering_out_rate(), AR_AttitudeControl::get_throttle_out_speed(), and AC_PosControl::set_dt().
void AC_PID::set_input_filter_all | ( | float | input | ) |
Definition at line 87 of file AC_PID.cpp.
Referenced by AR_AttitudeControl::get_steering_out_rate(), AR_AttitudeControl::get_throttle_out_speed(), loop(), AC_AttitudeControl_Heli::rate_bf_to_motor_roll_pitch(), AC_AttitudeControl_Heli::rate_target_to_motor_yaw(), AC_AttitudeControl::rate_target_to_motor_yaw(), AC_PosControl::run_z_controller(), and AP_Winch_Servo::update().
void AC_PID::set_input_filter_d | ( | float | input | ) |
Definition at line 112 of file AC_PID.cpp.
Referenced by AC_AttitudeControl::rate_target_to_motor_pitch(), and AC_AttitudeControl::rate_target_to_motor_roll().
|
inline |
Definition at line 77 of file AC_PID.h.
Referenced by AC_PosControl::init_takeoff(), AC_AttitudeControl_Heli::rate_bf_to_motor_roll_pitch(), and AC_PosControl::relax_alt_hold_controllers().
|
protected |
Definition at line 106 of file AC_PID.h.
Referenced by get_d(), set_input_filter_all(), and set_input_filter_d().
|
protected |
Definition at line 103 of file AC_PID.h.
Referenced by get_filt_alpha(), get_i(), AC_HELI_PID::get_leaky_i(), operator()(), set_dt(), set_input_filter_all(), and set_input_filter_d().
|
protected |
|
protected |
Definition at line 94 of file AC_PID.h.
Referenced by filt_hz(), get_filt_alpha(), load_gains(), operator()(), and save_gains().
|
protected |
Referenced by AC_PID(), reset_filter(), set_input_filter_all(), and set_input_filter_d().
|
protected |
Definition at line 93 of file AC_PID.h.
Referenced by AC_PID(), get_i(), AC_HELI_PID::get_leaky_i(), imax(), load_gains(), operator()(), and save_gains().
|
protected |
Definition at line 105 of file AC_PID.h.
Referenced by get_i(), AC_HELI_PID::get_leaky_i(), get_p(), set_input_filter_all(), and set_input_filter_d().
|
protected |
Definition at line 104 of file AC_PID.h.
Referenced by get_i(), get_integrator(), AC_HELI_PID::get_leaky_i(), reset_I(), and set_integrator().
|
protected |
Definition at line 92 of file AC_PID.h.
Referenced by AC_PID(), get_d(), kD(), load_gains(), operator()(), and save_gains().
|
protected |
Definition at line 91 of file AC_PID.h.
Referenced by AC_PID(), get_i(), AC_HELI_PID::get_leaky_i(), kI(), load_gains(), operator()(), and save_gains().
|
protected |
Definition at line 90 of file AC_PID.h.
Referenced by AC_PID(), get_p(), kP(), load_gains(), operator()(), and save_gains().
|
protected |
Definition at line 108 of file AC_PID.h.
Referenced by AC_PID(), get_d(), get_ff(), get_i(), AC_HELI_PID::get_leaky_i(), get_p(), get_pid_info(), and set_desired_rate().
|
static |