โปรแกรมของบอร์ด Motion

Dependencies:   BEAR_Reciever Motor eeprom iSerial mbed

Fork of DogPID by Digital B14

Committer:
soulx
Date:
Wed Feb 03 14:49:46 2016 +0000
Revision:
36:1561b6d61095
Parent:
34:0cf04acfe422
???code

Who changed what in which revision?

UserRevisionLine numberNew contents of line
soulx 34:0cf04acfe422 1 #ifndef _PIDCONTROL_H_
soulx 34:0cf04acfe422 2 #define _PIDCONTROL_H_
soulx 34:0cf04acfe422 3
soulx 34:0cf04acfe422 4 #include "mbed.h"
soulx 34:0cf04acfe422 5
soulx 34:0cf04acfe422 6 class PID{
soulx 34:0cf04acfe422 7 public:
soulx 34:0cf04acfe422 8 PID();
soulx 34:0cf04acfe422 9 PID(float p,float i,float d);
soulx 34:0cf04acfe422 10 void setGoal(float ref);
soulx 34:0cf04acfe422 11 //float getGoal();
soulx 34:0cf04acfe422 12 void setCurrent(float sensor);
soulx 34:0cf04acfe422 13 float compute();
soulx 34:0cf04acfe422 14
soulx 34:0cf04acfe422 15 void setMargin(float gap);
soulx 34:0cf04acfe422 16 float getMargin();
soulx 34:0cf04acfe422 17 void setIntegalLimit(float limit);
soulx 34:0cf04acfe422 18 float getIntegalLimit();
soulx 34:0cf04acfe422 19
soulx 34:0cf04acfe422 20 float getErrorNow();
soulx 34:0cf04acfe422 21 float getErrorLast();
soulx 34:0cf04acfe422 22 float getErrorDiff();
soulx 34:0cf04acfe422 23 float getErrorIntegal();
soulx 34:0cf04acfe422 24
soulx 34:0cf04acfe422 25 void setKp(float);
soulx 34:0cf04acfe422 26 void setKi(float);
soulx 34:0cf04acfe422 27 void setKd(float);
soulx 34:0cf04acfe422 28
soulx 34:0cf04acfe422 29 float getKp();
soulx 34:0cf04acfe422 30 float getKi();
soulx 34:0cf04acfe422 31 float getKd();
soulx 34:0cf04acfe422 32
soulx 34:0cf04acfe422 33 private:
soulx 34:0cf04acfe422 34 float e_n; //error now
soulx 34:0cf04acfe422 35 float e_n_1; //error last time
soulx 34:0cf04acfe422 36 float e_i; //error integal
soulx 34:0cf04acfe422 37 float il; //integal limit
soulx 34:0cf04acfe422 38 float margin; //output margin
soulx 34:0cf04acfe422 39
soulx 34:0cf04acfe422 40 float Kp,Ki,Kd;
soulx 34:0cf04acfe422 41
soulx 34:0cf04acfe422 42 float setpoint;
soulx 34:0cf04acfe422 43 float input;
soulx 34:0cf04acfe422 44 float output;
soulx 34:0cf04acfe422 45 };
soulx 34:0cf04acfe422 46
soulx 34:0cf04acfe422 47
soulx 34:0cf04acfe422 48
soulx 34:0cf04acfe422 49 #endif