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=-1.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=-1.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()
PID |
( |
double |
_p = 0.0 , |
|
|
double |
_i = 0.0 , |
|
|
double |
_d = 0.0 , |
|
|
double |
_imax = 0.0 , |
|
|
double |
_imin = 0.0 , |
|
|
double |
_cmdMax = -1.0 , |
|
|
double |
_cmdMin = 0.0 |
|
) |
| |
Constructor, zeros out Pid values when created and initialize Pid-gains and integral term limits:[iMax:iMin]-[I1:I2].
Disable command clamping by setting _cmdMin to a value larger than _cmdMax. Command clamping is disabled by default.
- 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()
◆ GetCmd()
Return current command for this PID controller.
- Returns
- the command value
◆ GetCmdMax()
double GetCmdMax |
( |
| ) |
const |
Get the maximum value for the command.
- Returns
- The maximum value
◆ GetCmdMin()
double GetCmdMin |
( |
| ) |
const |
Get the maximum value for the command.
- Returns
- The maximum value
◆ GetDGain()
double GetDGain |
( |
| ) |
const |
Get the derivative Gain.
- Returns
- The derivative gain value
◆ GetErrors()
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. |
◆ GetIGain()
double GetIGain |
( |
| ) |
const |
Get the integral Gain.
- Returns
- The integral gain value
◆ GetIMax()
Get the integral upper limit.
- Returns
- The integral upper limit value
◆ GetIMin()
Get the integral lower limit.
- Returns
- The integral lower limit value
◆ GetPGain()
double GetPGain |
( |
| ) |
const |
Get the proportional Gain.
- Returns
- The proportional gain value
◆ Init()
void Init |
( |
double |
_p = 0.0 , |
|
|
double |
_i = 0.0 , |
|
|
double |
_d = 0.0 , |
|
|
double |
_imax = 0.0 , |
|
|
double |
_imin = 0.0 , |
|
|
double |
_cmdMax = -1.0 , |
|
|
double |
_cmdMin = 0.0 |
|
) |
| |
Initialize PID-gains and integral term limits:[iMax:iMin]-[I1:I2].
Disable command clamping by setting _cmdMin to a value larger than _cmdMax. Command clamping is disabled by default.
- 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. |
◆ operator=()
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().
◆ Reset()
◆ SetCmd()
void SetCmd |
( |
double |
_cmd | ) |
|
Set current target command for this PID controller.
- Parameters
-
◆ SetCmdMax()
void SetCmdMax |
( |
double |
_c | ) |
|
Set the maximum value for the command.
- Parameters
-
◆ SetCmdMin()
void SetCmdMin |
( |
double |
_c | ) |
|
Set the maximum value for the command.
- Parameters
-
◆ SetDGain()
void SetDGain |
( |
double |
_d | ) |
|
Set the derivtive Gain.
- Parameters
-
[in] | _p | dertivative gain value |
◆ SetIGain()
void SetIGain |
( |
double |
_i | ) |
|
Set the integral Gain.
- Parameters
-
[in] | _p | integral gain value |
◆ SetIMax()
void SetIMax |
( |
double |
_i | ) |
|
Set the integral upper limit.
- Parameters
-
[in] | _p | integral upper limit value |
◆ SetIMin()
void SetIMin |
( |
double |
_i | ) |
|
Set the integral lower limit.
- Parameters
-
[in] | _p | integral lower limit value |
◆ SetPGain()
void SetPGain |
( |
double |
_p | ) |
|
Set the proportional Gain.
- Parameters
-
[in] | _p | proportional gain value |
◆ Update()
Update the Pid loop with nonuniform time step size.
- Parameters
-
The documentation for this class was generated from the following file: