-
Notifications
You must be signed in to change notification settings - Fork 0
/
controllerpid.h
31 lines (27 loc) · 891 Bytes
/
controllerpid.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#ifndef CONTROLLERPID_H
#define CONTROLLERPID_H
#include "controller.h"
class ControllerPID : public Controller
{
public:
ControllerPID();
ControllerPID(int, int, double, double, double);
int positionControl(int, int); // calculate frame delta w/ sample freq
int positionControl(int, int, double); // provide frame delta & des pos
int positionControl(int, double); // provide frame delta and curr pos
void setGainI(double);
void setGainD(double);
double getGainI();
double getGainD();
private:
double gainI;
double gainD;
double integral;
double derivative;
double samplingFreq;
double previousError;
void computeError();
double integralCorrection(double delta);
double derivativeCorrection(double delta);
};
#endif // CONTROLLERPID_H