Control Library by altb

Dependents:   My_Libraries IndNav_QK3_T265

Committer:
pmic
Date:
Thu Jan 16 09:12:50 2020 +0000
Revision:
15:c70cad2f4e64
Parent:
12:81787539c2cb
Revisit IIR_filter.h and IIR_filter.cpp. Change internal double to float arithmetic.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
altb 1:1010530120ce 1 #ifndef PID_CNTRL_H_
altb 1:1010530120ce 2 #define PID_CNTRL_H_
altb 1:1010530120ce 3
altb 0:d49418189c5c 4 class PID_Cntrl
altb 0:d49418189c5c 5 {
altb 0:d49418189c5c 6 public:
altb 0:d49418189c5c 7
altb 0:d49418189c5c 8 PID_Cntrl(float P, float I, float D, float tau_f, float Ts, float uMin, float uMax);
altb2 12:81787539c2cb 9 PID_Cntrl(){};
altb 0:d49418189c5c 10
altb 0:d49418189c5c 11 float operator()(float error) {
altb2 2:e7c9e50a2e46 12 return doStep(error);
altb 0:d49418189c5c 13 }
altb2 10:447f6a864598 14 float operator()(float error,float y) {
altb2 10:447f6a864598 15 return doStep(error,y);
altb2 10:447f6a864598 16 }
altb 0:d49418189c5c 17
altb 0:d49418189c5c 18 virtual ~PID_Cntrl();
altb 0:d49418189c5c 19
altb 0:d49418189c5c 20 void reset(float initValue);
altb2 2:e7c9e50a2e46 21 float doStep(float error);
altb2 10:447f6a864598 22 float doStep(float error,float y);
altb2 2:e7c9e50a2e46 23 void set_limits(float ,float );
altb 0:d49418189c5c 24 float get_ulimit(void);
altb2 5:d8c53cece01b 25 float get_P_gain(void);
altb2 3:27595dd9e433 26 void setCoeff_P(float);
altb2 3:27595dd9e433 27 void setCoeff_I(float);
altb2 3:27595dd9e433 28 void setCoeff_D(float);
altb2 5:d8c53cece01b 29 void scale_PID_param(float);
altb2 12:81787539c2cb 30 void setCoefficients(float P, float I, float D, float tau_f, float Ts);
altb2 12:81787539c2cb 31 void setCoefficients(float P, float I, float D, float tau_f, float Ts,float uMin, float uMax);
altb 0:d49418189c5c 32
altb 0:d49418189c5c 33 private:
altb 0:d49418189c5c 34
altb2 2:e7c9e50a2e46 35 float Iold;
altb2 10:447f6a864598 36 float eold,yold,del,Dpart_old;
altb2 2:e7c9e50a2e46 37 float uMax;
altb2 2:e7c9e50a2e46 38 float uMin;
altb2 3:27595dd9e433 39 float Ts,tau_f;
altb2 2:e7c9e50a2e46 40 float P,I,D_;
altb2 5:d8c53cece01b 41 float P_init, I_init, D__init;
altb2 2:e7c9e50a2e46 42 float p, Ka;
altb2 11:7ea3efaf0469 43
altb 1:1010530120ce 44 };
altb 1:1010530120ce 45
altb 1:1010530120ce 46 #endif // #PID_CNTRL_H