00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef PICONTROLLER_H
00012 #define PICONTROLLER_H
00013
00014 #include <sys/time.h>
00015
00020 class PIController {
00021
00022
00023
00024 public:
00025 virtual ~PIController();
00032 PIController(const double kr, const double tr);
00036 double step(const double xDesired, const double xNow);
00040 void setIFade(const double iFade);
00044 void setKr(const double kr);
00048 void setTr(const double tr);
00052 void setPFade(const double pFade);
00053
00054
00055
00056 private:
00060 PIController();
00061
00062
00063
00064 private:
00068 double _kr;
00072 double _tr;
00076 double _tSample;
00080 timeval _start;
00084 timeval _stop;
00088 double _xdk;
00092 double _xdkOld;
00096 double _yk;
00100 bool _firstRun;
00104 double _pFade;
00108 double _iFade;
00109 };
00110
00111 #endif