Prius IPM controller

Dependencies:   mbed

Fork of analoghalls5_5 by N K

Committer:
bwang
Date:
Sun Mar 08 08:37:38 2015 +0000
Revision:
11:dccbaa9274c5
--Initial Commit: 03-08-2015 new context-based code; no more timers (=easier debugging)

Who changed what in which revision?

UserRevisionLine numberNew 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);
bwang 11:dccbaa9274c5 22 private:
bwang 11:dccbaa9274c5 23 float _ki, _kp, _kd;
bwang 11:dccbaa9274c5 24 float _last_in, _integral;
bwang 11:dccbaa9274c5 25 float _out_max, _out_min;
bwang 11:dccbaa9274c5 26 };
bwang 11:dccbaa9274c5 27 #endif