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@11:8faa068940f1, 2015-12-05 (annotated)
- Committer:
- jasonliujc
- Date:
- Sat Dec 05 02:07:16 2015 +0000
- Revision:
- 11:8faa068940f1
- Parent:
- 10:332a4ad5911d
parameters to be adjusted!
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jasonliujc | 4:d59328f14363 | 1 | |
jasonliujc | 4:d59328f14363 | 2 | |
ahmedallibhoy | 1:45f1f67eab62 | 3 | #ifndef PID_H |
ahmedallibhoy | 1:45f1f67eab62 | 4 | #define PID_H |
jasonliujc | 10:332a4ad5911d | 5 | |
jasonliujc | 10:332a4ad5911d | 6 | |
jasonliujc | 10:332a4ad5911d | 7 | |
jasonliujc | 4:d59328f14363 | 8 | #include"mbed.h" |
jasonliujc | 8:1ce513eff545 | 9 | #include "util.h" |
ahmedallibhoy | 1:45f1f67eab62 | 10 | |
jasonliujc | 10:332a4ad5911d | 11 | |
jasonliujc | 10:332a4ad5911d | 12 | |
jasonliujc | 4:d59328f14363 | 13 | class ctrl{ |
jasonliujc | 4:d59328f14363 | 14 | public: |
jasonliujc | 10:332a4ad5911d | 15 | ctrl(){ |
jasonliujc | 10:332a4ad5911d | 16 | setKp(0); |
jasonliujc | 10:332a4ad5911d | 17 | setKi(0); |
jasonliujc | 10:332a4ad5911d | 18 | setKd(0); |
jasonliujc | 10:332a4ad5911d | 19 | setprevErr(0); |
jasonliujc | 10:332a4ad5911d | 20 | setErr(0); |
jasonliujc | 10:332a4ad5911d | 21 | setCorrection(0); |
jasonliujc | 10:332a4ad5911d | 22 | floategrater=1; |
jasonliujc | 10:332a4ad5911d | 23 | decay=1; |
jasonliujc | 10:332a4ad5911d | 24 | TErr=0; |
jasonliujc | 10:332a4ad5911d | 25 | RErr=0; |
jasonliujc | 10:332a4ad5911d | 26 | prevTime=0; |
jasonliujc | 10:332a4ad5911d | 27 | timer.start(); |
jasonliujc | 10:332a4ad5911d | 28 | } |
jasonliujc | 10:332a4ad5911d | 29 | |
ahmedallibhoy | 1:45f1f67eab62 | 30 | |
jasonliujc | 5:0975b797bf54 | 31 | void setKp(float num); |
jasonliujc | 5:0975b797bf54 | 32 | void setKi(float num); |
jasonliujc | 5:0975b797bf54 | 33 | void setKd(float num); |
jasonliujc | 5:0975b797bf54 | 34 | void setprevErr(float num); |
jasonliujc | 5:0975b797bf54 | 35 | void setErr(float num); |
jasonliujc | 5:0975b797bf54 | 36 | void setCorrection(float num); |
jasonliujc | 5:0975b797bf54 | 37 | float pctrl(); |
jasonliujc | 5:0975b797bf54 | 38 | float ictrl(); |
jasonliujc | 5:0975b797bf54 | 39 | float dctrl(); |
jasonliujc | 5:0975b797bf54 | 40 | float getT(); |
jasonliujc | 5:0975b797bf54 | 41 | float getR(); |
jasonliujc | 5:0975b797bf54 | 42 | float total(); |
jasonliujc | 8:1ce513eff545 | 43 | void adjust(float xSpeed,float L, float R); |
jasonliujc | 6:95722ada4706 | 44 | void setErr(); |
jasonliujc | 8:1ce513eff545 | 45 | void updateErr(float e); |
jasonliujc | 6:95722ada4706 | 46 | |
jasonliujc | 4:d59328f14363 | 47 | private: |
jasonliujc | 5:0975b797bf54 | 48 | float error; |
jasonliujc | 5:0975b797bf54 | 49 | float ki; |
jasonliujc | 5:0975b797bf54 | 50 | float kd; |
jasonliujc | 10:332a4ad5911d | 51 | float prevTime; |
jasonliujc | 5:0975b797bf54 | 52 | float kp; |
jasonliujc | 5:0975b797bf54 | 53 | float prevErr; |
jasonliujc | 5:0975b797bf54 | 54 | float correction; |
jasonliujc | 5:0975b797bf54 | 55 | float floategrater; |
jasonliujc | 5:0975b797bf54 | 56 | float decay; |
jasonliujc | 5:0975b797bf54 | 57 | float TErr; |
jasonliujc | 5:0975b797bf54 | 58 | float RErr; |
jasonliujc | 10:332a4ad5911d | 59 | Timer timer; |
ahmedallibhoy | 1:45f1f67eab62 | 60 | }; |
ahmedallibhoy | 1:45f1f67eab62 | 61 | |
jasonliujc | 4:d59328f14363 | 62 | #endif //PID_H |
jasonliujc | 11:8faa068940f1 | 63 | |
jasonliujc | 11:8faa068940f1 | 64 | |
jasonliujc | 11:8faa068940f1 | 65 | //#ifndef PID_H |
jasonliujc | 11:8faa068940f1 | 66 | //#define PID_H |
jasonliujc | 11:8faa068940f1 | 67 | // |
jasonliujc | 11:8faa068940f1 | 68 | //#include "mbed.h" |
jasonliujc | 11:8faa068940f1 | 69 | // |
jasonliujc | 11:8faa068940f1 | 70 | //class PIDController |
jasonliujc | 11:8faa068940f1 | 71 | //{ |
jasonliujc | 11:8faa068940f1 | 72 | //public: |
jasonliujc | 11:8faa068940f1 | 73 | // PIDController(void (*output)(float), float (*error)(void), |
jasonliujc | 11:8faa068940f1 | 74 | // float Kp, float Ki, float Kd, |
jasonliujc | 11:8faa068940f1 | 75 | // float dt = .1) : |
jasonliujc | 11:8faa068940f1 | 76 | // m_Kp(Kp), m_Ki(Ki), m_Kd(Kd), |
jasonliujc | 11:8faa068940f1 | 77 | // m_dt(dt), m_integral(0), m_pError(0) |
jasonliujc | 11:8faa068940f1 | 78 | // { |
jasonliujc | 11:8faa068940f1 | 79 | // m_out = output; |
jasonliujc | 11:8faa068940f1 | 80 | // m_error = error; |
jasonliujc | 11:8faa068940f1 | 81 | // }; |
jasonliujc | 11:8faa068940f1 | 82 | // |
jasonliujc | 11:8faa068940f1 | 83 | // void onLoop(); |
jasonliujc | 11:8faa068940f1 | 84 | // void reset(); |
jasonliujc | 11:8faa068940f1 | 85 | //private: |
jasonliujc | 11:8faa068940f1 | 86 | // float iController(float error); |
jasonliujc | 11:8faa068940f1 | 87 | // float dController(float error); |
jasonliujc | 11:8faa068940f1 | 88 | // |
jasonliujc | 11:8faa068940f1 | 89 | // float m_integral; |
jasonliujc | 11:8faa068940f1 | 90 | // float m_pError; |
jasonliujc | 11:8faa068940f1 | 91 | // |
jasonliujc | 11:8faa068940f1 | 92 | // float m_dt; |
jasonliujc | 11:8faa068940f1 | 93 | // |
jasonliujc | 11:8faa068940f1 | 94 | // float m_Kp, m_Ki, m_Kd; |
jasonliujc | 11:8faa068940f1 | 95 | // void (*m_out)(float); |
jasonliujc | 11:8faa068940f1 | 96 | // float (*m_error)(void); |
jasonliujc | 11:8faa068940f1 | 97 | //}; |
jasonliujc | 11:8faa068940f1 | 98 | // |
jasonliujc | 11:8faa068940f1 | 99 | // |
jasonliujc | 11:8faa068940f1 | 100 |