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 #include "PID.h"
e2011220 0:ee7e9405e1c7 2
e2011220 0:ee7e9405e1c7 3 double PID::get_control()
e2011220 0:ee7e9405e1c7 4 {
e2011220 0:ee7e9405e1c7 5 _calc_p();
e2011220 0:ee7e9405e1c7 6 return _get_control();
e2011220 0:ee7e9405e1c7 7 }
e2011220 0:ee7e9405e1c7 8
e2011220 0:ee7e9405e1c7 9 void PID::set_state(double target, double current)
e2011220 0:ee7e9405e1c7 10 {
e2011220 0:ee7e9405e1c7 11 _pid_state.target = target;
e2011220 0:ee7e9405e1c7 12 _pid_state.current = current;
e2011220 0:ee7e9405e1c7 13 }
e2011220 0:ee7e9405e1c7 14
e2011220 0:ee7e9405e1c7 15 void PID::set_PID(double k, double Ti, double Td)
e2011220 0:ee7e9405e1c7 16 {
e2011220 0:ee7e9405e1c7 17 _pid_state.k = k;
e2011220 0:ee7e9405e1c7 18 _pid_state.Ti = Ti;
e2011220 0:ee7e9405e1c7 19 _pid_state.Td = Td;
e2011220 0:ee7e9405e1c7 20 reset();
e2011220 0:ee7e9405e1c7 21 }
e2011220 0:ee7e9405e1c7 22
e2011220 0:ee7e9405e1c7 23 void PID::reset()
e2011220 0:ee7e9405e1c7 24 {
e2011220 0:ee7e9405e1c7 25 _reset();
e2011220 0:ee7e9405e1c7 26 if(_pid_state.Ti != 0)
e2011220 0:ee7e9405e1c7 27 _tick_i.attach(callback(this, &PID::_on_isr_i), _pid_state.Ti);
e2011220 0:ee7e9405e1c7 28 if(_pid_state.Td != 0)
e2011220 0:ee7e9405e1c7 29 _tick_d.attach(callback(this, &PID::_on_isr_d), _pid_state.Td);
e2011220 0:ee7e9405e1c7 30 }
e2011220 0:ee7e9405e1c7 31
e2011220 0:ee7e9405e1c7 32 void PID::_on_isr_i()
e2011220 0:ee7e9405e1c7 33 {
e2011220 0:ee7e9405e1c7 34 _calc_p();
e2011220 0:ee7e9405e1c7 35 _calc_i();
e2011220 0:ee7e9405e1c7 36 }
e2011220 0:ee7e9405e1c7 37
e2011220 0:ee7e9405e1c7 38 void PID::_on_isr_d()
e2011220 0:ee7e9405e1c7 39 {
e2011220 0:ee7e9405e1c7 40 _calc_p();
e2011220 0:ee7e9405e1c7 41 _calc_d();
e2011220 0:ee7e9405e1c7 42 }