Cube_Mini_Template

Dependencies:   mbed QEI MPU6050_2 BLE_API nRF51822 MCP4725 eMPL_MPU6050

Committer:
BoulusAJ
Date:
Fri Jan 31 17:59:21 2020 +0000
Revision:
0:8e87cdf07037
Child:
16:762867ba6aaa
Latest changes.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
BoulusAJ 0:8e87cdf07037 1 #ifndef PID_CNTRL_H_
BoulusAJ 0:8e87cdf07037 2 #define PID_CNTRL_H_
BoulusAJ 0:8e87cdf07037 3
BoulusAJ 0:8e87cdf07037 4 // PID Controller Class
BoulusAJ 0:8e87cdf07037 5 class PID_Cntrl
BoulusAJ 0:8e87cdf07037 6 {
BoulusAJ 0:8e87cdf07037 7 public:
BoulusAJ 0:8e87cdf07037 8
BoulusAJ 0:8e87cdf07037 9 PID_Cntrl(float Kp, float Ki, float Kd, float Tf, float Ts, float uMin, float uMax);
BoulusAJ 0:8e87cdf07037 10
BoulusAJ 0:8e87cdf07037 11 float operator()(float error) {
BoulusAJ 0:8e87cdf07037 12 return update((double)error);
BoulusAJ 0:8e87cdf07037 13 }
BoulusAJ 0:8e87cdf07037 14
BoulusAJ 0:8e87cdf07037 15 virtual ~PID_Cntrl();
BoulusAJ 0:8e87cdf07037 16
BoulusAJ 0:8e87cdf07037 17 void reset(float initValue);
BoulusAJ 0:8e87cdf07037 18 float update(double error);
BoulusAJ 0:8e87cdf07037 19
BoulusAJ 0:8e87cdf07037 20 private:
BoulusAJ 0:8e87cdf07037 21
BoulusAJ 0:8e87cdf07037 22 // controller parameters (member variables)
BoulusAJ 0:8e87cdf07037 23 float Kp_, Ki_, Kd_, Tf_, Ts_, uMin_, uMax_;
BoulusAJ 0:8e87cdf07037 24
BoulusAJ 0:8e87cdf07037 25 // storage for signals (member variables)
BoulusAJ 0:8e87cdf07037 26 float P_new, I_new, D_new, PID_output, P_old, I_old, D_old, delta_error, error, e_old;
BoulusAJ 0:8e87cdf07037 27 };
BoulusAJ 0:8e87cdf07037 28 #endif