stock mbed AnalogReads current loop closed and working
Fork of priustroller_2 by
meta/filters.h@56:85a26f839af2, 2016-01-31 (annotated)
- Committer:
- bwang
- Date:
- Sun Jan 31 06:44:58 2016 +0000
- Revision:
- 56:85a26f839af2
- Parent:
- 50:16b43e8fe04f
latest rev
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
bwang | 11:dccbaa9274c5 | 1 | #ifndef __FILTERS_H |
bwang | 11:dccbaa9274c5 | 2 | #define __FILTERS_H |
bwang | 11:dccbaa9274c5 | 3 | |
bwang | 11:dccbaa9274c5 | 4 | class LtiFilter { |
bwang | 11:dccbaa9274c5 | 5 | public: |
bwang | 11:dccbaa9274c5 | 6 | virtual float Update(float x) {return x;} |
bwang | 11:dccbaa9274c5 | 7 | }; |
bwang | 11:dccbaa9274c5 | 8 | |
bwang | 11:dccbaa9274c5 | 9 | class MeanFilter: public LtiFilter { |
bwang | 11:dccbaa9274c5 | 10 | public: |
bwang | 11:dccbaa9274c5 | 11 | MeanFilter(float strength); |
bwang | 11:dccbaa9274c5 | 12 | virtual float Update(float x); |
bwang | 11:dccbaa9274c5 | 13 | private: |
bwang | 11:dccbaa9274c5 | 14 | float _mean; |
bwang | 11:dccbaa9274c5 | 15 | float _strength; |
bwang | 11:dccbaa9274c5 | 16 | }; |
bwang | 11:dccbaa9274c5 | 17 | |
bwang | 11:dccbaa9274c5 | 18 | class PidController { |
bwang | 11:dccbaa9274c5 | 19 | public: |
bwang | 11:dccbaa9274c5 | 20 | PidController(float ki, float kp, float kd, float out_max = 1.0f, float out_min = 0.0f); |
bwang | 11:dccbaa9274c5 | 21 | float Update(float ref, float in); |
nki | 50:16b43e8fe04f | 22 | void ZeroIntegrator(); |
bwang | 11:dccbaa9274c5 | 23 | private: |
bwang | 11:dccbaa9274c5 | 24 | float _ki, _kp, _kd; |
bwang | 11:dccbaa9274c5 | 25 | float _last_in, _integral; |
bwang | 11:dccbaa9274c5 | 26 | float _out_max, _out_min; |
bwang | 11:dccbaa9274c5 | 27 | }; |
bwang | 11:dccbaa9274c5 | 28 | #endif |