Bayley Wang
/
priustroller
Prius IPM controller
Fork of analoghalls5_5 by
Diff: meta/filters.h
- Revision:
- 11:dccbaa9274c5
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/meta/filters.h Sun Mar 08 08:37:38 2015 +0000 @@ -0,0 +1,27 @@ +#ifndef __FILTERS_H +#define __FILTERS_H + +class LtiFilter { +public: + virtual float Update(float x) {return x;} +}; + +class MeanFilter: public LtiFilter { +public: + MeanFilter(float strength); + virtual float Update(float x); +private: + float _mean; + float _strength; +}; + +class PidController { +public: + PidController(float ki, float kp, float kd, float out_max = 1.0f, float out_min = 0.0f); + float Update(float ref, float in); +private: + float _ki, _kp, _kd; + float _last_in, _integral; + float _out_max, _out_min; +}; +#endif \ No newline at end of file