library to use pid easier
PID_lib.h@1:ebb9cfc0cff5, 23 months ago (annotated)
- Committer:
- fachrizi_kiki
- Date:
- Sun Oct 16 10:07:21 2022 +0000
- Revision:
- 1:ebb9cfc0cff5
- Parent:
- 0:e14308f43fdf
- Child:
- 2:77ef3d60d8d9
update
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
fachrizi_kiki | 0:e14308f43fdf | 1 | #ifndef PID_lib |
fachrizi_kiki | 0:e14308f43fdf | 2 | #define PID_lib |
fachrizi_kiki | 0:e14308f43fdf | 3 | |
fachrizi_kiki | 0:e14308f43fdf | 4 | #include "mbed.h" |
fachrizi_kiki | 0:e14308f43fdf | 5 | |
fachrizi_kiki | 1:ebb9cfc0cff5 | 6 | class PID_lib { |
fachrizi_kiki | 1:ebb9cfc0cff5 | 7 | public: |
fachrizi_kiki | 1:ebb9cfc0cff5 | 8 | /* |
fachrizi_kiki | 1:ebb9cfc0cff5 | 9 | initialization |
fachrizi_kiki | 1:ebb9cfc0cff5 | 10 | |
fachrizi_kiki | 1:ebb9cfc0cff5 | 11 | -------------- |
fachrizi_kiki | 1:ebb9cfc0cff5 | 12 | |
fachrizi_kiki | 1:ebb9cfc0cff5 | 13 | inisialisasi |
fachrizi_kiki | 1:ebb9cfc0cff5 | 14 | */ |
fachrizi_kiki | 1:ebb9cfc0cff5 | 15 | PID_lib(PinName dir1, PinName dir2, PinName pwm, float rpm=100); |
fachrizi_kiki | 1:ebb9cfc0cff5 | 16 | /* |
fachrizi_kiki | 1:ebb9cfc0cff5 | 17 | get the pid pwm |
fachrizi_kiki | 1:ebb9cfc0cff5 | 18 | |
fachrizi_kiki | 1:ebb9cfc0cff5 | 19 | -------------- |
fachrizi_kiki | 1:ebb9cfc0cff5 | 20 | |
fachrizi_kiki | 1:ebb9cfc0cff5 | 21 | keluarkan nilai pwm pid |
fachrizi_kiki | 1:ebb9cfc0cff5 | 22 | */ |
fachrizi_kiki | 1:ebb9cfc0cff5 | 23 | void pid_pwm(float target_, float kp_, float ki_, float kd_); |
fachrizi_kiki | 1:ebb9cfc0cff5 | 24 | private: |
fachrizi_kiki | 0:e14308f43fdf | 25 | Timer t; |
fachrizi_kiki | 0:e14308f43fdf | 26 | DigitalOut dir1; |
fachrizi_kiki | 0:e14308f43fdf | 27 | DigitalOut dir2 |
fachrizi_kiki | 0:e14308f43fdf | 28 | PwmOut pwm_; |
fachrizi_kiki | 1:ebb9cfc0cff5 | 29 | protected: |
fachrizi_kiki | 0:e14308f43fdf | 30 | float rpm; |
fachrizi_kiki | 0:e14308f43fdf | 31 | float e; |
fachrizi_kiki | 0:e14308f43fdf | 32 | float laste; |
fachrizi_kiki | 0:e14308f43fdf | 33 | float eI; |
fachrizi_kiki | 0:e14308f43fdf | 34 | float eD; |
fachrizi_kiki | 0:e14308f43fdf | 35 | float dt; |
fachrizi_kiki | 0:e14308f43fdf | 36 | float tim; |
fachrizi_kiki | 0:e14308f43fdf | 37 | float lastime; |
fachrizi_kiki | 0:e14308f43fdf | 38 | float pidPwm; |
fachrizi_kiki | 0:e14308f43fdf | 39 | float pwmLebih; |
fachrizi_kiki | 0:e14308f43fdf | 40 | float lastPid; |
fachrizi_kiki | 0:e14308f43fdf | 41 | float hP; |
fachrizi_kiki | 0:e14308f43fdf | 42 | float hI; |
fachrizi_kiki | 0:e14308f43fdf | 43 | float hD; |
fachrizi_kiki | 0:e14308f43fdf | 44 | float setI; |
fachrizi_kiki | 0:e14308f43fdf | 45 | |
fachrizi_kiki | 1:ebb9cfc0cff5 | 46 | float rpmFilt; |
fachrizi_kiki | 1:ebb9cfc0cff5 | 47 | float rpmFiltn1; |
fachrizi_kiki | 1:ebb9cfc0cff5 | 48 | float rpmn1; |
fachrizi_kiki | 0:e14308f43fdf | 49 | }; |
fachrizi_kiki | 0:e14308f43fdf | 50 | |
fachrizi_kiki | 0:e14308f43fdf | 51 | #endif |