library to use pid easier

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?

UserRevisionLine numberNew 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