Instrument Neutral Distributed Interface INDI 2.2.5
pid.h
Go to the documentation of this file.
1
25#pragma once
26
27class PIDImpl;
28class PID
29{
30 public:
31 // Kp - proportional gain
32 // Ki - Integral gain
33 // Kd - derivative gain
34 // dt - loop interval time
35 // max - maximum value of manipulated variable
36 // min - minimum value of manipulated variable
37 PID( double dt, double max, double min, double Kp, double Kd, double Ki );
38
39 void setIntegratorLimits(double min, double max);
40 void setTau(double value);
41
42 // PID Gain Setters
43 void setKp(double Kp);
44 void setKi(double Ki);
45 void setKd(double Kd);
46
47 // PID Gain Getters
48 void getGains(double &Kp, double &Ki, double &Kd) const;
49
50 // Returns the manipulated variable given a setpoint and current process value
51 double calculate( double setpoint, double pv );
52
53 // Reset controller state (clears integral, previous error/measurement)
54 void reset();
55
56 // Individual term accessors
57 double proportionalTerm() const;
58 double integralTerm() const;
59 double derivativeTerm() const;
60 ~PID();
61
62 private:
63 PIDImpl *pimpl;
64};
Definition pid.h:29
double derivativeTerm() const
Definition pid.cpp:138
double integralTerm() const
Definition pid.cpp:134
void getGains(double &Kp, double &Ki, double &Kd) const
Definition pid.cpp:155
void setTau(double value)
Definition pid.cpp:118
void setKd(double Kd)
Definition pid.cpp:151
double proportionalTerm() const
Definition pid.cpp:130
~PID()
Definition pid.cpp:160
void setKi(double Ki)
Definition pid.cpp:147
double calculate(double setpoint, double pv)
Definition pid.cpp:122
void setKp(double Kp)
Definition pid.cpp:143
void setIntegratorLimits(double min, double max)
Definition pid.cpp:114
void reset()
Definition pid.cpp:126
double max(void)
#define min(a, b)