Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
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
Generated on Tue Jul 19 2022 10:02:32 by
1.7.2