k

Dependencies:   Servo ServoArm mbed

Committer:
beacon
Date:
Mon May 22 11:24:46 2017 +0000
Revision:
0:15a8480061e8
o

Who changed what in which revision?

UserRevisionLine numberNew contents of line
beacon 0:15a8480061e8 1 /*
beacon 0:15a8480061e8 2 * PIDControl.h
beacon 0:15a8480061e8 3 *
beacon 0:15a8480061e8 4 * Created on: 16.04.2017
beacon 0:15a8480061e8 5 * Author: chris
beacon 0:15a8480061e8 6 */
beacon 0:15a8480061e8 7
beacon 0:15a8480061e8 8 #ifndef COMMON_PID_CONTROL_H_
beacon 0:15a8480061e8 9 #define COMMON_PID_CONTROL_H_
beacon 0:15a8480061e8 10
beacon 0:15a8480061e8 11 /**
beacon 0:15a8480061e8 12 * This class calculates a PID control
beacon 0:15a8480061e8 13 */
beacon 0:15a8480061e8 14 class PID_Control
beacon 0:15a8480061e8 15 {
beacon 0:15a8480061e8 16 public:
beacon 0:15a8480061e8 17 PID_Control();
beacon 0:15a8480061e8 18 virtual ~PID_Control();
beacon 0:15a8480061e8 19
beacon 0:15a8480061e8 20 float calc(float e, float period);
beacon 0:15a8480061e8 21 void setPIDValues(float p, float i, float d, float max, float min, float _iMax);
beacon 0:15a8480061e8 22
beacon 0:15a8480061e8 23 private:
beacon 0:15a8480061e8 24 /**
beacon 0:15a8480061e8 25 * the proportional gain
beacon 0:15a8480061e8 26 */
beacon 0:15a8480061e8 27 float kp;
beacon 0:15a8480061e8 28
beacon 0:15a8480061e8 29 /**
beacon 0:15a8480061e8 30 * integral gain
beacon 0:15a8480061e8 31 */
beacon 0:15a8480061e8 32 float ki;
beacon 0:15a8480061e8 33
beacon 0:15a8480061e8 34 /**
beacon 0:15a8480061e8 35 * differential gain
beacon 0:15a8480061e8 36 */
beacon 0:15a8480061e8 37 float kd;
beacon 0:15a8480061e8 38
beacon 0:15a8480061e8 39 /**
beacon 0:15a8480061e8 40 * Sum of all the errors
beacon 0:15a8480061e8 41 */
beacon 0:15a8480061e8 42 float iSum;
beacon 0:15a8480061e8 43
beacon 0:15a8480061e8 44 /**
beacon 0:15a8480061e8 45 * Error value one iteration befor
beacon 0:15a8480061e8 46 */
beacon 0:15a8480061e8 47 float eOld;
beacon 0:15a8480061e8 48
beacon 0:15a8480061e8 49 float max;
beacon 0:15a8480061e8 50 float min;
beacon 0:15a8480061e8 51 float iMax;
beacon 0:15a8480061e8 52
beacon 0:15a8480061e8 53 };
beacon 0:15a8480061e8 54
beacon 0:15a8480061e8 55 #endif /* COMMON_PID_CONTROL_H_ */