update with altimeter, swimfile.txt endleg.txt, etc see changes_13sep.txt also reset_PI()
Dependencies: mbed MODSERIAL FATFileSystem
PidController/PidController.hpp@104:426224a55f5f, 2019-09-13 (annotated)
- Committer:
- joel_ssc
- Date:
- Fri Sep 13 19:15:40 2019 +0000
- Revision:
- 104:426224a55f5f
- Parent:
- 59:4c04d5c7aed1
slight change includes reset_PI
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
tnhnrl | 59:4c04d5c7aed1 | 1 | #ifndef PIDCONTROLLER_H |
tnhnrl | 59:4c04d5c7aed1 | 2 | #define PIDCONTROLLER_H |
tnhnrl | 59:4c04d5c7aed1 | 3 | |
tnhnrl | 59:4c04d5c7aed1 | 4 | #include "mbed.h" |
tnhnrl | 59:4c04d5c7aed1 | 5 | |
tnhnrl | 59:4c04d5c7aed1 | 6 | class PIDController { |
tnhnrl | 59:4c04d5c7aed1 | 7 | public: |
tnhnrl | 59:4c04d5c7aed1 | 8 | PIDController(); |
tnhnrl | 59:4c04d5c7aed1 | 9 | |
tnhnrl | 59:4c04d5c7aed1 | 10 | void update(float position, float velocity, float dt); |
tnhnrl | 59:4c04d5c7aed1 | 11 | float getOutput(); |
tnhnrl | 59:4c04d5c7aed1 | 12 | |
tnhnrl | 59:4c04d5c7aed1 | 13 | void setPgain(float gain); |
tnhnrl | 59:4c04d5c7aed1 | 14 | void setIgain(float gain); |
tnhnrl | 59:4c04d5c7aed1 | 15 | void setDgain(float gain); |
tnhnrl | 59:4c04d5c7aed1 | 16 | |
tnhnrl | 59:4c04d5c7aed1 | 17 | void writeSetPoint(float cmd); |
tnhnrl | 59:4c04d5c7aed1 | 18 | |
tnhnrl | 59:4c04d5c7aed1 | 19 | void setHiLimit(float high_limit); |
tnhnrl | 59:4c04d5c7aed1 | 20 | void setLoLimit(float low_limit); |
tnhnrl | 59:4c04d5c7aed1 | 21 | |
tnhnrl | 59:4c04d5c7aed1 | 22 | void toggleDeadBand(bool toggle); |
tnhnrl | 59:4c04d5c7aed1 | 23 | void setDeadBand(float deadband); |
tnhnrl | 59:4c04d5c7aed1 | 24 | |
tnhnrl | 59:4c04d5c7aed1 | 25 | void setHeadingFlag(bool heading_flag); |
tnhnrl | 59:4c04d5c7aed1 | 26 | |
tnhnrl | 59:4c04d5c7aed1 | 27 | protected: |
tnhnrl | 59:4c04d5c7aed1 | 28 | float _setPoint; |
tnhnrl | 59:4c04d5c7aed1 | 29 | float _error; |
tnhnrl | 59:4c04d5c7aed1 | 30 | float _integral; |
tnhnrl | 59:4c04d5c7aed1 | 31 | float _output; |
tnhnrl | 59:4c04d5c7aed1 | 32 | |
tnhnrl | 59:4c04d5c7aed1 | 33 | float _Pgain; |
tnhnrl | 59:4c04d5c7aed1 | 34 | float _Dgain; |
tnhnrl | 59:4c04d5c7aed1 | 35 | float _Igain; |
tnhnrl | 59:4c04d5c7aed1 | 36 | float _hiLimit; //these parameters clamp the allowable output |
tnhnrl | 59:4c04d5c7aed1 | 37 | float _loLimit; //these parameters clamp the allowable output |
tnhnrl | 59:4c04d5c7aed1 | 38 | float _deadband; |
tnhnrl | 59:4c04d5c7aed1 | 39 | bool _deadbandFlag; |
tnhnrl | 59:4c04d5c7aed1 | 40 | bool _headingFlag; |
tnhnrl | 59:4c04d5c7aed1 | 41 | |
tnhnrl | 59:4c04d5c7aed1 | 42 | float _temp_velocity; |
tnhnrl | 59:4c04d5c7aed1 | 43 | }; |
tnhnrl | 59:4c04d5c7aed1 | 44 | |
tnhnrl | 59:4c04d5c7aed1 | 45 | #endif |