EVE 1.0
PID controller
Collaboration diagram for PID controller:

Data Structures

struct  pid_controller_t
 PID controller instance data. More...
 

Functions

void PidInit (struct pid_controller_t *Pid, float K, float Ti, float Td, float MinIntegral, float MaxIntegral)
 Initialize PID controller data. Function gets standard coefficients from PID formula: f(n) = K * ( Error(n) + SUM(Error(0) * dt(0)...Error(n) * dt(n)) / Ti + Td * Error(n) / dt(n)) More...
 
void PidReset (struct pid_controller_t *Pid)
 Reset PID controller. More...
 
float PidFunc (struct pid_controller_t *Pid, float Error, float ErrorDiff, float TimeDelta)
 Calculate PID function. More...
 

Detailed Description

Function Documentation

void PidInit ( struct pid_controller_t Pid,
float  K,
float  Ti,
float  Td,
float  MinIntegral,
float  MaxIntegral 
)

Initialize PID controller data. Function gets standard coefficients from PID formula: f(n) = K * ( Error(n) + SUM(Error(0) * dt(0)...Error(n) * dt(n)) / Ti + Td * Error(n) / dt(n))

Parameters
PidPointer to PID controller data
KK coefficient from standard PID formula.
TiTi coefficient from standard PID formula.
TdTd coefficient from standard PID formula.
MinIntegralMinimal allowed integrated part value.
MaxIntegralMaximal allowed integrated part value.
void PidReset ( struct pid_controller_t Pid)
inline

Reset PID controller.

Parameters
PidPointer to PID controller data

Definition at line 91 of file pid-controller.h.

References pid_controller_t::IntegralValue, PidFunc(), and pid_controller_t::PreviousErrorDiff.

float PidFunc ( struct pid_controller_t Pid,
float  Error,
float  ErrorDiff,
float  TimeDelta 
)

Calculate PID function.

Parameters
PidPointer to PID controller data
ErrorDesired value minus current value
ErrorDiffError for differencial part. For classic PID it should be set equal to Error. To avoid peak output on sharp desired value change, tis can be set to (-) current value.
TimeDeltaTime between this and previous Error calculation/measurement.
Returns
Calculated PID value

Referenced by PidReset().