library to use pid easier
PID_lib.h@2:77ef3d60d8d9, 23 months ago (annotated)
- Committer:
- fachrizi_kiki
- Date:
- Sun Oct 16 11:14:26 2022 +0000
- Revision:
- 2:77ef3d60d8d9
- Parent:
- 1:ebb9cfc0cff5
- Child:
- 3:80e7ed9fdb02
PID library for use control method easier
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 | 2:77ef3d60d8d9 | 31 | void pid_pwm(float target_, float kp_, float ki_, float kd_, float rpm); |
fachrizi_kiki | 2:77ef3d60d8d9 | 32 | |
fachrizi_kiki | 1:ebb9cfc0cff5 | 33 | private: |
fachrizi_kiki | 0:e14308f43fdf | 34 | Timer t; |
fachrizi_kiki | 0:e14308f43fdf | 35 | DigitalOut dir1; |
fachrizi_kiki | 2:77ef3d60d8d9 | 36 | DigitalOut dir2; |
fachrizi_kiki | 2:77ef3d60d8d9 | 37 | PwmOut pwm; |
fachrizi_kiki | 0:e14308f43fdf | 38 | float rpm; |
fachrizi_kiki | 0:e14308f43fdf | 39 | float e; |
fachrizi_kiki | 0:e14308f43fdf | 40 | float laste; |
fachrizi_kiki | 0:e14308f43fdf | 41 | float eI; |
fachrizi_kiki | 0:e14308f43fdf | 42 | float eD; |
fachrizi_kiki | 0:e14308f43fdf | 43 | float dt; |
fachrizi_kiki | 0:e14308f43fdf | 44 | float tim; |
fachrizi_kiki | 0:e14308f43fdf | 45 | float lastime; |
fachrizi_kiki | 0:e14308f43fdf | 46 | float pidPwm; |
fachrizi_kiki | 0:e14308f43fdf | 47 | float pwmLebih; |
fachrizi_kiki | 0:e14308f43fdf | 48 | float lastPid; |
fachrizi_kiki | 0:e14308f43fdf | 49 | float hP; |
fachrizi_kiki | 0:e14308f43fdf | 50 | float hI; |
fachrizi_kiki | 0:e14308f43fdf | 51 | float hD; |
fachrizi_kiki | 0:e14308f43fdf | 52 | float setI; |
fachrizi_kiki | 0:e14308f43fdf | 53 | |
fachrizi_kiki | 1:ebb9cfc0cff5 | 54 | float rpmFilt; |
fachrizi_kiki | 1:ebb9cfc0cff5 | 55 | float rpmFiltn1; |
fachrizi_kiki | 1:ebb9cfc0cff5 | 56 | float rpmn1; |
fachrizi_kiki | 2:77ef3d60d8d9 | 57 | |
fachrizi_kiki | 2:77ef3d60d8d9 | 58 | |
fachrizi_kiki | 0:e14308f43fdf | 59 | }; |
fachrizi_kiki | 0:e14308f43fdf | 60 | |
fachrizi_kiki | 2:77ef3d60d8d9 | 61 | #endif |