You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
723 B
31 lines
723 B
#ifndef _PID_H_
|
|
#define _PID_H_
|
|
|
|
class PID {
|
|
|
|
private:
|
|
double Min, Max;
|
|
double Kp; // proportional factor
|
|
double Ki; // integral factor
|
|
double Kd; // derivative factor
|
|
double Integral;
|
|
double PreviousError;
|
|
int64_t PreviousTime;
|
|
|
|
public:
|
|
PID(double min, double max, double kp, double kd, double ki);
|
|
PID();
|
|
~PID();
|
|
|
|
void Start(void);
|
|
void SetParam(double mi, double ma, double p, double i, double d);
|
|
void GetParam(double *mi, double *ma, double *p, double *i, double *d);
|
|
double GetMax() { return Max; };
|
|
double GetMin() { return Min; };
|
|
double Update(double target, double value, int64_t time);
|
|
double Update(double target, double value);
|
|
static int64_t GetTime(void);
|
|
};
|
|
|
|
#endif
|