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.
pid.h@4:d59328f14363, 2015-12-04 (annotated)
- Committer:
- jasonliujc
- Date:
- Fri Dec 04 05:12:57 2015 +0000
- Revision:
- 4:d59328f14363
- Parent:
- 1:45f1f67eab62
- Child:
- 5:0975b797bf54
pid update;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jasonliujc | 4:d59328f14363 | 1 | //#ifndef PID_H |
jasonliujc | 4:d59328f14363 | 2 | //#define PID_H |
jasonliujc | 4:d59328f14363 | 3 | // |
jasonliujc | 4:d59328f14363 | 4 | //#include "mbed.h" |
jasonliujc | 4:d59328f14363 | 5 | // |
jasonliujc | 4:d59328f14363 | 6 | //class PIDController |
jasonliujc | 4:d59328f14363 | 7 | //{ |
jasonliujc | 4:d59328f14363 | 8 | //public: |
jasonliujc | 4:d59328f14363 | 9 | // PIDController(void (*output)(float), float (*error)(void), |
jasonliujc | 4:d59328f14363 | 10 | // float Kp, float Ki, float Kd, |
jasonliujc | 4:d59328f14363 | 11 | // float dt = .1) : |
jasonliujc | 4:d59328f14363 | 12 | // m_Kp(Kp), m_Ki(Ki), m_Kd(Kd), |
jasonliujc | 4:d59328f14363 | 13 | // m_dt(dt), m_integral(0), m_pError(0) |
jasonliujc | 4:d59328f14363 | 14 | // { |
jasonliujc | 4:d59328f14363 | 15 | // m_out = output; |
jasonliujc | 4:d59328f14363 | 16 | // m_error = error; |
jasonliujc | 4:d59328f14363 | 17 | // }; |
jasonliujc | 4:d59328f14363 | 18 | // |
jasonliujc | 4:d59328f14363 | 19 | // void onLoop(); |
jasonliujc | 4:d59328f14363 | 20 | // void reset(); |
jasonliujc | 4:d59328f14363 | 21 | //private: |
jasonliujc | 4:d59328f14363 | 22 | // float iController(float error); |
jasonliujc | 4:d59328f14363 | 23 | // float dController(float error); |
jasonliujc | 4:d59328f14363 | 24 | // |
jasonliujc | 4:d59328f14363 | 25 | // float m_integral; |
jasonliujc | 4:d59328f14363 | 26 | // float m_pError; |
jasonliujc | 4:d59328f14363 | 27 | // |
jasonliujc | 4:d59328f14363 | 28 | // float m_dt; |
jasonliujc | 4:d59328f14363 | 29 | // |
jasonliujc | 4:d59328f14363 | 30 | // float m_Kp, m_Ki, m_Kd; |
jasonliujc | 4:d59328f14363 | 31 | // void (*m_out)(float); |
jasonliujc | 4:d59328f14363 | 32 | // float (*m_error)(void); |
jasonliujc | 4:d59328f14363 | 33 | //}; |
jasonliujc | 4:d59328f14363 | 34 | // |
jasonliujc | 4:d59328f14363 | 35 | // |
jasonliujc | 4:d59328f14363 | 36 | |
jasonliujc | 4:d59328f14363 | 37 | |
ahmedallibhoy | 1:45f1f67eab62 | 38 | #ifndef PID_H |
ahmedallibhoy | 1:45f1f67eab62 | 39 | #define PID_H |
jasonliujc | 4:d59328f14363 | 40 | #include"mbed.h" |
ahmedallibhoy | 1:45f1f67eab62 | 41 | |
ahmedallibhoy | 1:45f1f67eab62 | 42 | |
jasonliujc | 4:d59328f14363 | 43 | class ctrl{ |
jasonliujc | 4:d59328f14363 | 44 | public: |
ahmedallibhoy | 1:45f1f67eab62 | 45 | |
jasonliujc | 4:d59328f14363 | 46 | void setKp(double num); |
jasonliujc | 4:d59328f14363 | 47 | void setKi(double num); |
jasonliujc | 4:d59328f14363 | 48 | void setKd(double num); |
jasonliujc | 4:d59328f14363 | 49 | void setprevErr(double num); |
jasonliujc | 4:d59328f14363 | 50 | void setErr(double num); |
jasonliujc | 4:d59328f14363 | 51 | void setCorrection(double num); |
jasonliujc | 4:d59328f14363 | 52 | double pctrl(); |
jasonliujc | 4:d59328f14363 | 53 | double ictrl(); |
jasonliujc | 4:d59328f14363 | 54 | double dctrl(); |
jasonliujc | 4:d59328f14363 | 55 | double total(); |
jasonliujc | 4:d59328f14363 | 56 | void adjust(double xSpeed,double ySpeed,double k1, double k2); |
ahmedallibhoy | 1:45f1f67eab62 | 57 | |
jasonliujc | 4:d59328f14363 | 58 | private: |
jasonliujc | 4:d59328f14363 | 59 | double error; |
jasonliujc | 4:d59328f14363 | 60 | double ki; |
jasonliujc | 4:d59328f14363 | 61 | double kd; |
jasonliujc | 4:d59328f14363 | 62 | double kp; |
jasonliujc | 4:d59328f14363 | 63 | double prevErr; |
jasonliujc | 4:d59328f14363 | 64 | double correction; |
jasonliujc | 4:d59328f14363 | 65 | double doubleegrater; |
jasonliujc | 4:d59328f14363 | 66 | double decay; |
jasonliujc | 4:d59328f14363 | 67 | |
ahmedallibhoy | 1:45f1f67eab62 | 68 | }; |
ahmedallibhoy | 1:45f1f67eab62 | 69 | |
jasonliujc | 4:d59328f14363 | 70 | #endif //PID_H |