My Controller Library
Diff: GPA.h
- Revision:
- 0:e2a7d7f91e49
diff -r 000000000000 -r e2a7d7f91e49 GPA.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/GPA.h Fri Sep 28 08:34:20 2018 +0000 @@ -0,0 +1,58 @@ +class GPA +{ +public: + + GPA(float fMin, float fMax, int NfexcDes, int NperMin, int NmeasMin, float Ts, float Aexc0, float Aexc1); + GPA(float f0, float f1, float *fexcDes, int NfexcDes, int NperMin, int NmeasMin, float Ts, float Aexc0, float Aexc1); + GPA(float *fexcDes, int NfexcDes, int NperMin, int NmeasMin, float Ts, float Aexc0, float Aexc1); + + float operator()(float inp, float out) { + return update((double)inp, (double)out); + } + + virtual ~GPA(); + + void reset(); + float update(double inp, double out); + + void printGPAfexcDes(); + void printGPAmeasPara(); + void printGPAmeasTime(); + void printNfexcDes(); + +private: + + int NfexcDes; + int NperMin; + int NmeasMin; + double Ts; + double *fexcDes; + double aAexcDes; + double bAexcDes; + + double fnyq; + double pi2; + double pi2Ts; + double piDiv2; + + int Nmeas; + int Nper; + double fexc; + double fexcPast; + int ii; + int jj; + double scaleG; + double cr; + double ci; + double *sU; + double *sY; + double sinarg; + int NmeasTotal; + double Aexc; + double pi2Tsfexc; + + void fexcDesLogspace(double fMin, double fMax, int NfexcDes); + void calcGPAmeasPara(double fexcDes_i); + void printLine(); + +}; \ No newline at end of file