Takeuchi Issei / Mbed 2 deprecated 4Omunisleeve3

Dependencies:   mbed Eigen

Committer:
e2011220
Date:
Wed Apr 14 07:26:19 2021 +0000
Revision:
0:ee7e9405e1c7
first

Who changed what in which revision?

UserRevisionLine numberNew contents of line
e2011220 0:ee7e9405e1c7 1 #ifndef PID_H_
e2011220 0:ee7e9405e1c7 2 #define PID_H_
e2011220 0:ee7e9405e1c7 3
e2011220 0:ee7e9405e1c7 4 #include "mbed.h"
e2011220 0:ee7e9405e1c7 5
e2011220 0:ee7e9405e1c7 6 class PID
e2011220 0:ee7e9405e1c7 7 {
e2011220 0:ee7e9405e1c7 8 public:
e2011220 0:ee7e9405e1c7 9 PID(): _pid_state()
e2011220 0:ee7e9405e1c7 10 {}
e2011220 0:ee7e9405e1c7 11 ~PID()
e2011220 0:ee7e9405e1c7 12 {
e2011220 0:ee7e9405e1c7 13 _tick_i.detach();
e2011220 0:ee7e9405e1c7 14 _tick_d.detach();
e2011220 0:ee7e9405e1c7 15 }
e2011220 0:ee7e9405e1c7 16
e2011220 0:ee7e9405e1c7 17 double get_control();
e2011220 0:ee7e9405e1c7 18 void set_state(double target, double current);
e2011220 0:ee7e9405e1c7 19
e2011220 0:ee7e9405e1c7 20 void set_PID(double k, double Ti, double Td);
e2011220 0:ee7e9405e1c7 21 void reset();
e2011220 0:ee7e9405e1c7 22 protected:
e2011220 0:ee7e9405e1c7 23 typedef struct pid_con_s{
e2011220 0:ee7e9405e1c7 24 double k;
e2011220 0:ee7e9405e1c7 25 double Ti;
e2011220 0:ee7e9405e1c7 26 double Td;
e2011220 0:ee7e9405e1c7 27 double current;
e2011220 0:ee7e9405e1c7 28 double target;
e2011220 0:ee7e9405e1c7 29 }pid_con_t;
e2011220 0:ee7e9405e1c7 30
e2011220 0:ee7e9405e1c7 31 pid_con_t _pid_state;
e2011220 0:ee7e9405e1c7 32
e2011220 0:ee7e9405e1c7 33 virtual double _get_control() = 0;
e2011220 0:ee7e9405e1c7 34 virtual void _calc_p() = 0;
e2011220 0:ee7e9405e1c7 35 virtual void _calc_i() = 0;
e2011220 0:ee7e9405e1c7 36 virtual void _calc_d() = 0;
e2011220 0:ee7e9405e1c7 37 virtual void _reset() = 0;
e2011220 0:ee7e9405e1c7 38 private:
e2011220 0:ee7e9405e1c7 39 Ticker _tick_i, _tick_d;
e2011220 0:ee7e9405e1c7 40
e2011220 0:ee7e9405e1c7 41 void _on_isr_i();
e2011220 0:ee7e9405e1c7 42 void _on_isr_d();
e2011220 0:ee7e9405e1c7 43 };
e2011220 0:ee7e9405e1c7 44
e2011220 0:ee7e9405e1c7 45 #endif