2nd Library
Embed:
(wiki syntax)
Show/hide line numbers
PIDT2_Cntrl.h
00001 #ifndef PIDT2_CNTRL_H_ 00002 #define PIDT2_CNTRL_H_ 00003 00004 #include "mbed.h" 00005 00006 class PIDT2_Cntrl 00007 { 00008 public: 00009 00010 PIDT2_Cntrl(float P, float I, float D, float tau_f, float tau_ro, float Ts, float uMin, float uMax); 00011 00012 PIDT2_Cntrl() {}; 00013 00014 float operator()(float e) 00015 { 00016 return update(e); 00017 } 00018 float operator()(float e, float y) 00019 { 00020 return update(e, y); 00021 } 00022 00023 virtual ~PIDT2_Cntrl(); 00024 00025 void reset(float initValue); 00026 void setCoefficients(float P, float I, float D, float tau_f, float tau_ro, float Ts, float uMin, float uMax); 00027 void setCoeff_P(float P); 00028 void setCoeff_I(float D); 00029 void setCoeff_D(float D); 00030 void scale_PIDT2_param(float scale); 00031 float update(float e); 00032 float update(float e, float y); 00033 void set_limits(float uMin, float uMax); 00034 float get_ulimit(); 00035 float get_P_gain(); 00036 float get_I(); 00037 float get_D(); 00038 float get_bd(); 00039 float get_ad(); 00040 float get_bi(); 00041 float get_bf(); 00042 float get_af(); 00043 00044 00045 private: 00046 00047 float IPart, Dpart, d_old, u_old, uf; 00048 float P, I, D, tau_f, tau_ro, Ts, uMin, uMax; 00049 float bi, bd, ad, bf, af; 00050 float P_init, I_init, D_init; 00051 00052 void setCoefficients(float P, float I, float D, float tau_f, float tau_ro, float Ts); 00053 float saturate(float u, float uMin, float uMax); 00054 00055 }; 00056 00057 #endif
Generated on Sun Aug 21 2022 12:52:06 by
1.7.2