2nd Library

Dependents:   cuboid_balance_ros cuboid_balance mirror_actuator_V1

Committer:
altb2
Date:
Thu Apr 01 13:38:43 2021 +0000
Revision:
3:e3b84ea63c0f
Parent:
2:b54eb3e24d2d
PIDT2 added

Who changed what in which revision?

UserRevisionLine numberNew contents of line
altb2 2:b54eb3e24d2d 1 #ifndef PID_CNTRL_H_
altb2 2:b54eb3e24d2d 2 #define PID_CNTRL_H_
altb2 2:b54eb3e24d2d 3
altb2 0:a201a6cd4c0c 4 class PID_Cntrl
altb2 0:a201a6cd4c0c 5 {
altb2 0:a201a6cd4c0c 6 public:
altb2 0:a201a6cd4c0c 7
altb2 0:a201a6cd4c0c 8 PID_Cntrl(float P, float I, float D, float tau_f, float Ts, float uMin, float uMax);
altb2 0:a201a6cd4c0c 9
altb2 0:a201a6cd4c0c 10 float operator()(float error) {
altb2 0:a201a6cd4c0c 11 return doStep((double)error);
altb2 0:a201a6cd4c0c 12 }
altb2 0:a201a6cd4c0c 13
altb2 0:a201a6cd4c0c 14 virtual ~PID_Cntrl();
altb2 0:a201a6cd4c0c 15
altb2 0:a201a6cd4c0c 16 void reset(float initValue);
altb2 0:a201a6cd4c0c 17 float doStep(double error);
altb2 0:a201a6cd4c0c 18 void set_limits(double ,double );
altb2 0:a201a6cd4c0c 19 float get_ulimit(void);
altb2 0:a201a6cd4c0c 20
altb2 0:a201a6cd4c0c 21 private:
altb2 0:a201a6cd4c0c 22
altb2 0:a201a6cd4c0c 23 double Iold;
altb2 0:a201a6cd4c0c 24 double eold,yold,del;
altb2 0:a201a6cd4c0c 25 double uMax;
altb2 0:a201a6cd4c0c 26 double uMin;
altb2 0:a201a6cd4c0c 27 double Ts;
altb2 0:a201a6cd4c0c 28 double P,I,D;
altb2 0:a201a6cd4c0c 29 double p, Ka;
altb2 0:a201a6cd4c0c 30 void setCoefficients(float P, float I, float D, float tau_f, float Ts);
altb2 0:a201a6cd4c0c 31
altb2 0:a201a6cd4c0c 32 };
altb2 2:b54eb3e24d2d 33
altb2 2:b54eb3e24d2d 34 #endif