Generic PID controller class.
More...
#include <common/common.hh>
|
| PID (double _p=0.0, double _i=0.0, double _d=0.0, double _imax=0.0, double _imin=0.0, double _cmdMax=0.0, double _cmdMin=0.0) |
| Constructor, zeros out Pid values when created and initialize Pid-gains and integral term limits:[iMax:iMin]-[I1:I2]. More...
|
|
virtual | ~PID () |
| Destructor. More...
|
|
double | GetCmd () |
| Return current command for this PID controller. More...
|
|
double | GetCmdMax () const |
| Get the maximum value for the command. More...
|
|
double | GetCmdMin () const |
| Get the maximum value for the command. More...
|
|
double | GetDGain () const |
| Get the derivative Gain. More...
|
|
void | GetErrors (double &_pe, double &_ie, double &_de) |
| Return PID error terms for the controller. More...
|
|
double | GetIGain () const |
| Get the integral Gain. More...
|
|
double | GetIMax () const |
| Get the integral upper limit. More...
|
|
double | GetIMin () const |
| Get the integral lower limit. More...
|
|
double | GetPGain () const |
| Get the proportional Gain. More...
|
|
void | Init (double _p=0.0, double _i=0.0, double _d=0.0, double _imax=0.0, double _imin=0.0, double _cmdMax=0.0, double _cmdMin=0.0) |
| Initialize PID-gains and integral term limits:[iMax:iMin]-[I1:I2]. More...
|
|
PID & | operator= (const PID &_p) |
| Assignment operator. More...
|
|
void | Reset () |
| Reset the errors and command. More...
|
|
void | SetCmd (double _cmd) |
| Set current target command for this PID controller. More...
|
|
void | SetCmdMax (double _c) |
| Set the maximum value for the command. More...
|
|
void | SetCmdMin (double _c) |
| Set the maximum value for the command. More...
|
|
void | SetDGain (double _d) |
| Set the derivtive Gain. More...
|
|
void | SetIGain (double _i) |
| Set the integral Gain. More...
|
|
void | SetIMax (double _i) |
| Set the integral upper limit. More...
|
|
void | SetIMin (double _i) |
| Set the integral lower limit. More...
|
|
void | SetPGain (double _p) |
| Set the proportional Gain. More...
|
|
double | Update (double _error, common::Time _dt) |
| Update the Pid loop with nonuniform time step size. More...
|
|
Generic PID controller class.
Generic proportiolnal-integral-derivative controller class that keeps track of PID-error states and control inputs given the state of a system and a user specified target state.
PID |
( |
double |
_p = 0.0 , |
|
|
double |
_i = 0.0 , |
|
|
double |
_d = 0.0 , |
|
|
double |
_imax = 0.0 , |
|
|
double |
_imin = 0.0 , |
|
|
double |
_cmdMax = 0.0 , |
|
|
double |
_cmdMin = 0.0 |
|
) |
| |
Constructor, zeros out Pid values when created and initialize Pid-gains and integral term limits:[iMax:iMin]-[I1:I2].
- Parameters
-
[in] | _p | The proportional gain. |
[in] | _i | The integral gain. |
[in] | _d | The derivative gain. |
[in] | _imax | The integral upper limit. |
[in] | _imin | The integral lower limit. |
[in] | _cmdMax | Output max value. |
[in] | _cmdMin | Output min value. |
Return current command for this PID controller.
- Returns
- the command value
double GetCmdMax |
( |
| ) |
const |
Get the maximum value for the command.
- Returns
- The maximum value
double GetCmdMin |
( |
| ) |
const |
Get the maximum value for the command.
- Returns
- The maximum value
double GetDGain |
( |
| ) |
const |
Get the derivative Gain.
- Returns
- The derivative gain value
void GetErrors |
( |
double & |
_pe, |
|
|
double & |
_ie, |
|
|
double & |
_de |
|
) |
| |
Return PID error terms for the controller.
- Parameters
-
[in] | _pe | The proportional error. |
[in] | _ie | The integral error. |
[in] | _de | The derivative error. |
double GetIGain |
( |
| ) |
const |
Get the integral Gain.
- Returns
- The integral gain value
Get the integral upper limit.
- Returns
- The integral upper limit value
Get the integral lower limit.
- Returns
- The integral lower limit value
double GetPGain |
( |
| ) |
const |
Get the proportional Gain.
- Returns
- The proportional gain value
void Init |
( |
double |
_p = 0.0 , |
|
|
double |
_i = 0.0 , |
|
|
double |
_d = 0.0 , |
|
|
double |
_imax = 0.0 , |
|
|
double |
_imin = 0.0 , |
|
|
double |
_cmdMax = 0.0 , |
|
|
double |
_cmdMin = 0.0 |
|
) |
| |
Initialize PID-gains and integral term limits:[iMax:iMin]-[I1:I2].
- Parameters
-
[in] | _p | The proportional gain. |
[in] | _i | The integral gain. |
[in] | _d | The derivative gain. |
[in] | _imax | The integral upper limit. |
[in] | _imin | The integral lower limit. |
[in] | _cmdMax | Output max value. |
[in] | _cmdMin | Output min value. |
PID& operator= |
( |
const PID & |
_p | ) |
|
|
inline |
Assignment operator.
- Parameters
-
[in] | _p | a reference to a PID to assign values from |
- Returns
- reference to this instance
References PID::Reset().
void SetCmd |
( |
double |
_cmd | ) |
|
Set current target command for this PID controller.
- Parameters
-
void SetCmdMax |
( |
double |
_c | ) |
|
Set the maximum value for the command.
- Parameters
-
void SetCmdMin |
( |
double |
_c | ) |
|
Set the maximum value for the command.
- Parameters
-
void SetDGain |
( |
double |
_d | ) |
|
Set the derivtive Gain.
- Parameters
-
[in] | _p | dertivative gain value |
void SetIGain |
( |
double |
_i | ) |
|
Set the integral Gain.
- Parameters
-
[in] | _p | integral gain value |
void SetIMax |
( |
double |
_i | ) |
|
Set the integral upper limit.
- Parameters
-
[in] | _p | integral upper limit value |
void SetIMin |
( |
double |
_i | ) |
|
Set the integral lower limit.
- Parameters
-
[in] | _p | integral lower limit value |
void SetPGain |
( |
double |
_p | ) |
|
Set the proportional Gain.
- Parameters
-
[in] | _p | proportional gain value |
Update the Pid loop with nonuniform time step size.
- Parameters
-
_in] | _error Error since last call (p_state - p_target). |
_in] | _dt Change in time since last update call. Normally, this is called at every time step, The return value is an updated command to be passed to the object being controlled. |
- Returns
- the command value
The documentation for this class was generated from the following file: