##

PID Class Reference
Common

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. More...

`#include <common/common.hh>`

## Public Member Functions

| 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...

## Detailed Description

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.

## Constructor & Destructor Documentation

## 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()

virtual ~PID | ( |  | ) |

virtual

Destructor.

## Member Function Documentation

## GetCmd()

double 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()

double GetIMax | ( |  | ) | const

Get the integral upper limit.

Returns
  The integral upper limit value

## GetIMin()

double GetIMin | ( |  | ) | const

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()

void Reset | ( |  | ) |

Reset the errors and command.

Referenced by PID::operator=().

## SetCmd()

void SetCmd | ( | double | _cmd | ) |

Set current target command for this PID controller.

Parameters

  [in] | _cmd | New command

## SetCmdMax()

void SetCmdMax | ( | double | _c | ) |

Set the maximum value for the command.

Parameters

  [in] | _c | The maximum value

## SetCmdMin()

void SetCmdMin | ( | double | _c | ) |

Set the maximum value for the command.

Parameters

  [in] | _c | The maximum value

## 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()

double Update | ( | double | _error,
|  | common::Time | _dt
| ) |  |

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:

- PID.hh