Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
shared/PID_Control/PPID/PPID.h@0:ee7e9405e1c7, 2021-04-14 (annotated)
- Committer:
- e2011220
- Date:
- Wed Apr 14 07:26:19 2021 +0000
- Revision:
- 0:ee7e9405e1c7
first
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| e2011220 | 0:ee7e9405e1c7 | 1 | #ifndef PPID_H_ |
| e2011220 | 0:ee7e9405e1c7 | 2 | #define PPID_H_ |
| e2011220 | 0:ee7e9405e1c7 | 3 | |
| e2011220 | 0:ee7e9405e1c7 | 4 | #include "PID.h" |
| e2011220 | 0:ee7e9405e1c7 | 5 | |
| e2011220 | 0:ee7e9405e1c7 | 6 | class PPID : public PID |
| e2011220 | 0:ee7e9405e1c7 | 7 | { |
| e2011220 | 0:ee7e9405e1c7 | 8 | public: |
| e2011220 | 0:ee7e9405e1c7 | 9 | PPID(double k = 0, double Ti = 0, double Td = 0, double target = 0, double current = 0) |
| e2011220 | 0:ee7e9405e1c7 | 10 | { |
| e2011220 | 0:ee7e9405e1c7 | 11 | PID::set_PID(k, Ti, Td); |
| e2011220 | 0:ee7e9405e1c7 | 12 | set_state(target, current); |
| e2011220 | 0:ee7e9405e1c7 | 13 | } |
| e2011220 | 0:ee7e9405e1c7 | 14 | ~PPID(){} |
| e2011220 | 0:ee7e9405e1c7 | 15 | |
| e2011220 | 0:ee7e9405e1c7 | 16 | protected: |
| e2011220 | 0:ee7e9405e1c7 | 17 | |
| e2011220 | 0:ee7e9405e1c7 | 18 | virtual double _get_control(); |
| e2011220 | 0:ee7e9405e1c7 | 19 | virtual void _calc_p(); |
| e2011220 | 0:ee7e9405e1c7 | 20 | virtual void _calc_i(); |
| e2011220 | 0:ee7e9405e1c7 | 21 | virtual void _calc_d(); |
| e2011220 | 0:ee7e9405e1c7 | 22 | virtual void _reset(); |
| e2011220 | 0:ee7e9405e1c7 | 23 | |
| e2011220 | 0:ee7e9405e1c7 | 24 | private: |
| e2011220 | 0:ee7e9405e1c7 | 25 | |
| e2011220 | 0:ee7e9405e1c7 | 26 | inline void _update(double *array, double present) |
| e2011220 | 0:ee7e9405e1c7 | 27 | { |
| e2011220 | 0:ee7e9405e1c7 | 28 | array[0] = array[1]; |
| e2011220 | 0:ee7e9405e1c7 | 29 | array[1] = present; |
| e2011220 | 0:ee7e9405e1c7 | 30 | } |
| e2011220 | 0:ee7e9405e1c7 | 31 | double _p, _i, _d; |
| e2011220 | 0:ee7e9405e1c7 | 32 | double _diff[2]; |
| e2011220 | 0:ee7e9405e1c7 | 33 | double _integral; |
| e2011220 | 0:ee7e9405e1c7 | 34 | }; |
| e2011220 | 0:ee7e9405e1c7 | 35 | |
| e2011220 | 0:ee7e9405e1c7 | 36 | #endif |