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