LRT14  1.0
 All Classes Namespaces Functions Variables Enumerations Enumerator
PID Class Reference

Simple implementation of a PID controller. More...

#include <PID.h>

Inheritance diagram for PID:

Public Member Functions

 PID (double p_gain, double i_gain, double d_gain, double ff_gain=1.0, double i_decay=0.5, bool feedforward=true, double filterFreq=7.0)
 Constructs a PID controller. All gains are in constant (not timebase) form.
 
 PID ()
 Constructs a PID controller with no gains set.
 
void SetParameters (double p_gain, double i_gain, double d_gain, double ff_gain=1.0, double i_decay=0.87, bool feedforward=true, double filterFreq=7.0)
 Sets PID parameters. All gains are in constant (not timebase) form.
 
virtual double Update (double dt)
 Updates the PID controller, call on each loop.
 
void SetInput (double input)
 Sets the feedback input.
 
virtual void SetSetpoint (double setpoint)
 Sets the setpoint.
 
double GetOutput ()
 Gets the PID output.
 
double GetProportionalGain ()
 Gets the p gain.
 
double GetIntegralGain ()
 Gets the i gain.
 
double GetDerivativeGain ()
 Gets the d gain.
 
double GetFeedForwardGain ()
 Gets the feed forward gain.
 
double GetIntegralDecay ()
 Gets the integral decay rate.
 
double GetInput ()
 Gets the input value.
 
double GetSetpoint ()
 Gets the setpoint value.
 
double GetError ()
 Gets the error value.
 
double GetAccumulatedError ()
 Gets the accumulated running sum.
 
double GetPreviousError ()
 Gets the previous error (one iteration ago).
 
bool IsFeedForward ()
 m_status flag for feed-forward PID.
 
void Reset ()
 Resets PID setpoint, input, error, accumulated error, differential, and output.
 
void DisablePID ()
 Disables PID (output returns setpoint).
 
void EnablePID ()
 Enables PID.
 
void SetIIREnabled (bool enabled)
 Enables an IIR filter on output.
 
void SetIIRDecay (double decay)
 Sets the IFR Decay rate.
 

Detailed Description

Simple implementation of a PID controller.

Constructor & Destructor Documentation

PID::PID ( double  p_gain,
double  i_gain,
double  d_gain,
double  ff_gain = 1.0,
double  i_decay = 0.5,
bool  feedforward = true,
double  filterFreq = 7.0 
)

Constructs a PID controller. All gains are in constant (not timebase) form.

Parameters
p_gainproportional gain
i_gainintegral gain
d_gainderivative gain
ff_gainfeedforward gain (defaults to 1.0)
i_decayintegral decay (defaults to 0.5)
feedforwardwhether or not feedforward is used
filterFreqthe frequency of the low pass filter

Here is the call graph for this function:

Member Function Documentation

double PID::GetAccumulatedError ( )

Gets the accumulated running sum.

Returns
running sum
double PID::GetDerivativeGain ( )

Gets the d gain.

Returns
derivative PID gain
double PID::GetError ( )

Gets the error value.

Returns
error
double PID::GetFeedForwardGain ( )

Gets the feed forward gain.

Returns
feed forward gain
double PID::GetInput ( )

Gets the input value.

Returns
input
double PID::GetIntegralDecay ( )

Gets the integral decay rate.

Returns
integral decay rate
double PID::GetIntegralGain ( )

Gets the i gain.

Returns
integral PID gain
double PID::GetOutput ( )

Gets the PID output.

Returns
PID output
double PID::GetPreviousError ( )

Gets the previous error (one iteration ago).

Returns
previous error
double PID::GetProportionalGain ( )

Gets the p gain.

Returns
proportional PID gain
double PID::GetSetpoint ( )

Gets the setpoint value.

Returns
setpoint
bool PID::IsFeedForward ( )

m_status flag for feed-forward PID.

Returns
whether this controller uses feedforward PID
void PID::SetInput ( double  input)

Sets the feedback input.

Parameters
inputPID input
void PID::SetParameters ( double  p_gain,
double  i_gain,
double  d_gain,
double  ff_gain = 1.0,
double  i_decay = 0.87,
bool  feedforward = true,
double  filterFreq = 7.0 
)

Sets PID parameters. All gains are in constant (not timebase) form.

This method does reset accumulated error and differential error

Parameters
p_gainproportional gain
i_gainintegral gain
d_gainderivative gain
ff_gainfeedforward gain (defaults to 1.0)
i_decayintegral decay (defaults to 0.5)
feedforwardwhether or not feedforward is used
filterFreqthe frequency of the low pass filter

Here is the call graph for this function:

Here is the caller graph for this function:

void PID::SetSetpoint ( double  setpoint)
virtual

Sets the setpoint.

Parameters
setpointthe setpoint to set

Reimplemented in ProfiledPID.

Here is the caller graph for this function:

double PID::Update ( double  dt)
virtual

Updates the PID controller, call on each loop.

Parameters
dttime differential
Returns
pid output

Reimplemented in ProfiledPID.

Here is the call graph for this function:

Here is the caller graph for this function:


The documentation for this class was generated from the following files: