Control Library by altb

Dependents:   My_Libraries IndNav_QK3_T265

Committer:
altb2
Date:
Mon Aug 26 07:07:02 2019 +0000
Revision:
5:d8c53cece01b
Parent:
3:27595dd9e433
Child:
9:074f4f94b584
Added "Safe" parameters P,I,D to scale

Who changed what in which revision?

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