Mirror actuator for RT2 lab

Dependencies:   FastPWM

Committer:
altb2
Date:
Sun May 02 08:17:06 2021 +0000
Revision:
15:9f32f64eee5b
commit for students, 2.5.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
altb2 15:9f32f64eee5b 1 #ifndef PIDT2_CNTRL_H_
altb2 15:9f32f64eee5b 2 #define PIDT2_CNTRL_H_
altb2 15:9f32f64eee5b 3
altb2 15:9f32f64eee5b 4 #include "mbed.h"
altb2 15:9f32f64eee5b 5
altb2 15:9f32f64eee5b 6 class PIDT2_Cntrl
altb2 15:9f32f64eee5b 7 {
altb2 15:9f32f64eee5b 8 public:
altb2 15:9f32f64eee5b 9
altb2 15:9f32f64eee5b 10 PIDT2_Cntrl(float P, float I, float D, float tau_f, float tau_ro, float Ts, float uMin, float uMax);
altb2 15:9f32f64eee5b 11
altb2 15:9f32f64eee5b 12 PIDT2_Cntrl() {};
altb2 15:9f32f64eee5b 13
altb2 15:9f32f64eee5b 14 float operator()(float e)
altb2 15:9f32f64eee5b 15 {
altb2 15:9f32f64eee5b 16 return update(e);
altb2 15:9f32f64eee5b 17 }
altb2 15:9f32f64eee5b 18 float operator()(float e, float y)
altb2 15:9f32f64eee5b 19 {
altb2 15:9f32f64eee5b 20 return update(e, y);
altb2 15:9f32f64eee5b 21 }
altb2 15:9f32f64eee5b 22
altb2 15:9f32f64eee5b 23 virtual ~PIDT2_Cntrl();
altb2 15:9f32f64eee5b 24
altb2 15:9f32f64eee5b 25 void reset(float initValue);
altb2 15:9f32f64eee5b 26 void setCoefficients(float P, float I, float D, float tau_f, float tau_ro, float Ts, float uMin, float uMax);
altb2 15:9f32f64eee5b 27 void setCoeff_P(float P);
altb2 15:9f32f64eee5b 28 void setCoeff_I(float D);
altb2 15:9f32f64eee5b 29 void setCoeff_D(float D);
altb2 15:9f32f64eee5b 30 void scale_PIDT2_param(float scale);
altb2 15:9f32f64eee5b 31 float update(float e);
altb2 15:9f32f64eee5b 32 float update(float e, float y);
altb2 15:9f32f64eee5b 33 void set_limits(float uMin, float uMax);
altb2 15:9f32f64eee5b 34 float get_ulimit();
altb2 15:9f32f64eee5b 35 float get_P_gain();
altb2 15:9f32f64eee5b 36 float get_I();
altb2 15:9f32f64eee5b 37 float get_D();
altb2 15:9f32f64eee5b 38 float get_bd();
altb2 15:9f32f64eee5b 39 float get_ad();
altb2 15:9f32f64eee5b 40 float get_bi();
altb2 15:9f32f64eee5b 41 float get_bf();
altb2 15:9f32f64eee5b 42 float get_af();
altb2 15:9f32f64eee5b 43
altb2 15:9f32f64eee5b 44
altb2 15:9f32f64eee5b 45 private:
altb2 15:9f32f64eee5b 46
altb2 15:9f32f64eee5b 47 float IPart, Dpart, d_old, u_old, uf;
altb2 15:9f32f64eee5b 48 float P, I, D, tau_f, tau_ro, Ts, uMin, uMax;
altb2 15:9f32f64eee5b 49 float bi, bd, ad, bf, af;
altb2 15:9f32f64eee5b 50 float P_init, I_init, D_init;
altb2 15:9f32f64eee5b 51
altb2 15:9f32f64eee5b 52 void setCoefficients(float P, float I, float D, float tau_f, float tau_ro, float Ts);
altb2 15:9f32f64eee5b 53 float saturate(float u, float uMin, float uMax);
altb2 15:9f32f64eee5b 54
altb2 15:9f32f64eee5b 55 };
altb2 15:9f32f64eee5b 56
altb2 15:9f32f64eee5b 57 #endif