Takumi Nakagawara / PID
Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers PID.h Source File

PID.h

00001 #ifndef PID_H
00002 #define PID_H
00003 
00004 #include "mbed.h"
00005 
00006 typedef enum{
00007     pos_PID,
00008     vec_PID,
00009     P_D,
00010     PI_D,
00011     I_PD
00012 } PID_Mode;
00013 
00014 class PID {
00015 public:
00016   PID(double* _Input, double* _Output, double* _Setpoint, double _Kp, double _Ki, double _Kd, PID_Mode _mode, Timer *_timer);
00017   void control();
00018   void setParameter_pid(double new_Kp, double new_Ki, double new_Kd);
00019   void setParameter_KuPu(double new_Ku, double new_Pu);
00020   void setPIDMode(PID_Mode);
00021   void setOutputLimits(double, double);
00022   void reset(double target);
00023 
00024 private:
00025   void Initialize();
00026 
00027   double Ku;
00028   double Pu;
00029   double Kp;
00030   double Ti;
00031   double Td;
00032   double Ki;
00033   double Kd;
00034 
00035   Timer *timer;
00036 
00037   double *Input;
00038   double *Output;
00039   double *Setpoint;
00040 
00041   double lastTime;
00042   double outMin, outMax;
00043   double lastInput;
00044   double lastError;
00045   double outputSum;
00046   double SampleTime;
00047   double derror[2];
00048     
00049   PID_Mode mode;
00050 };
00051 
00052 #endif