Now you can download a copy of these docs so you can use them offline! Download now

#include <PIDController.h>

Inheritance diagram for PIDController:
Collaboration diagram for PIDController:

Public Member Functions

 PIDController (float p, float i, float d, PIDSource *source, PIDOutput *output, float period=0.05)
 
 PIDController (float p, float i, float d, float f, PIDSource *source, PIDOutput *output, float period=0.05)
 
virtual ~PIDController ()
 
virtual float Get ()
 
virtual void SetContinuous (bool continuous=true)
 
virtual void SetInputRange (float minimumInput, float maximumInput)
 
virtual void SetOutputRange (float mimimumOutput, float maximumOutput)
 
virtual void SetPID (float p, float i, float d)
 
virtual void SetPID (float p, float i, float d, float f)
 
virtual float GetP ()
 
virtual float GetI ()
 
virtual float GetD ()
 
virtual float GetF ()
 
virtual void SetSetpoint (float setpoint)
 
virtual float GetSetpoint ()
 
virtual float GetError ()
 
virtual void SetTolerance (float percent)
 
virtual void SetAbsoluteTolerance (float absValue)
 
virtual void SetPercentTolerance (float percentValue)
 
virtual bool OnTarget ()
 
virtual void Enable ()
 
virtual void Disable ()
 
virtual bool IsEnabled ()
 
virtual void Reset ()
 
virtual void InitTable (ITable *table)
 

Protected Member Functions

void Calculate ()
 
 DISALLOW_COPY_AND_ASSIGN (PIDController)
 

Protected Attributes

ITablem_table
 

Detailed Description

Class implements a PID Control Loop.

Creates a separate thread which reads the given PIDSource and takes care of the integral calculations, as well as writing the given PIDOutput

Definition at line 26 of file PIDController.h.

Constructor & Destructor Documentation

PIDController::PIDController ( float  Kp,
float  Ki,
float  Kd,
PIDSource source,
PIDOutput output,
float  period = 0.05 
)

Allocate a PID object with the given constants for P, I, D

Parameters
Kpthe proportional coefficient
Kithe integral coefficient
Kdthe derivative coefficient
sourceThe PIDSource object that is used to get values
outputThe PIDOutput object that is set to the output value
periodthe loop time for doing calculations. This particularly effects calculations of the integral and differental terms. The default is 50ms.

Definition at line 33 of file PIDController.cpp.

PIDController::PIDController ( float  Kp,
float  Ki,
float  Kd,
float  Kf,
PIDSource source,
PIDOutput output,
float  period = 0.05 
)

Allocate a PID object with the given constants for P, I, D

Parameters
Kpthe proportional coefficient
Kithe integral coefficient
Kdthe derivative coefficient
sourceThe PIDSource object that is used to get values
outputThe PIDOutput object that is set to the output value
periodthe loop time for doing calculations. This particularly effects calculations of the integral and differental terms. The default is 50ms.

Definition at line 51 of file PIDController.cpp.

PIDController::~PIDController ( )
virtual

Free the PID object

Definition at line 107 of file PIDController.cpp.

Member Function Documentation

void PIDController::Calculate ( )
protected

Read the input, calculate the output accordingly, and write to the output. This should only be called by the Notifier indirectly through CallCalculate and is created during initialization.

Definition at line 131 of file PIDController.cpp.

void PIDController::Disable ( )
virtual

Stop running the PIDController, this sets the output to zero before stopping.

Implements Controller.

Definition at line 520 of file PIDController.cpp.

void PIDController::Enable ( )
virtual

Begin running the PIDController

Implements Controller.

Definition at line 504 of file PIDController.cpp.

float PIDController::Get ( )
virtual

Return the current PID result This is always centered on zero and constrained the the max and min outs

Returns
the latest calculated output

Definition at line 307 of file PIDController.cpp.

float PIDController::GetD ( )
virtual

Get the Differential coefficient

Returns
differential coefficient

Definition at line 280 of file PIDController.cpp.

float PIDController::GetError ( )
virtual

Retruns the current difference of the input from the setpoint

Returns
the current error

Definition at line 417 of file PIDController.cpp.

float PIDController::GetF ( )
virtual

Get the Feed forward coefficient

Returns
Feed forward coefficient

Definition at line 293 of file PIDController.cpp.

float PIDController::GetI ( )
virtual

Get the Integral coefficient

Returns
integral coefficient

Definition at line 267 of file PIDController.cpp.

float PIDController::GetP ( )
virtual

Get the Proportional coefficient

Returns
proportional coefficient

Definition at line 254 of file PIDController.cpp.

float PIDController::GetSetpoint ( )
virtual

Returns the current setpoint of the PIDController

Returns
the current setpoint

Definition at line 402 of file PIDController.cpp.

void PIDController::InitTable ( ITable subtable)
virtual

Initializes a table for this sendable object.

Parameters
subtableThe table to put the values in.

Implements Sendable.

Definition at line 568 of file PIDController.cpp.

bool PIDController::IsEnabled ( )
virtual

Return true if PIDController is enabled.

Definition at line 537 of file PIDController.cpp.

void PIDController::Reset ( )
virtual

Reset the previous error,, the integral term, and disable the controller.

Definition at line 551 of file PIDController.cpp.

void PIDController::SetContinuous ( bool  continuous = true)
virtual

Set the PID controller to consider the input to be continuous, Rather then using the max and min in as constraints, it considers them to be the same point and automatically calculates the shortest route to the setpoint.

Parameters
continuousSet to true turns on continuous, false turns off continuous

Definition at line 325 of file PIDController.cpp.

void PIDController::SetInputRange ( float  minimumInput,
float  maximumInput 
)
virtual

Sets the maximum and minimum values expected from the input.

Parameters
minimumInputthe minimum value expected from the input
maximumInputthe maximum value expected from the output

Definition at line 341 of file PIDController.cpp.

void PIDController::SetOutputRange ( float  minimumOutput,
float  maximumOutput 
)
virtual

Sets the minimum and maximum values to write.

Parameters
minimumOutputthe minimum value to write to the output
maximumOutputthe maximum value to write to the output

Definition at line 359 of file PIDController.cpp.

void PIDController::SetPID ( float  p,
float  i,
float  d 
)
virtual

Set the PID Controller gain parameters. Set the proportional, integral, and differential coefficients.

Parameters
pProportional coefficient
iIntegral coefficient
dDifferential coefficient

Definition at line 206 of file PIDController.cpp.

void PIDController::SetPID ( float  p,
float  i,
float  d,
float  f 
)
virtual

Set the PID Controller gain parameters. Set the proportional, integral, and differential coefficients.

Parameters
pProportional coefficient
iIntegral coefficient
dDifferential coefficient
fFeed forward coefficient

Definition at line 231 of file PIDController.cpp.

void PIDController::SetSetpoint ( float  setpoint)
virtual

Set the setpoint for the PIDController

Parameters
setpointthe desired setpoint

Definition at line 373 of file PIDController.cpp.


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

Generated on Sat Apr 26 2014 12:26:46 for WPILibC++ by doxygen 1.8.6