Prius IPM controller

Dependencies:   mbed

Fork of analoghalls5_5 by N K

Committer:
bwang
Date:
Mon Mar 16 15:40:07 2015 +0000
Revision:
35:83cf9564bd0c
Parent:
11:dccbaa9274c5
Set for 3A Iq, 0A Id, Ki = 1e-3, Kp = Kd = 0, loop still oscillates but is passable

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