baseline build

Dependencies:   FastPWM mbed-os mbed

Committer:
jrhodes5150
Date:
Mon Jun 19 16:04:47 2017 +0000
Revision:
1:909f2393bc01
Parent:
0:8a420ac6394e
added fastPWM

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jrhodes5150 0:8a420ac6394e 1 #ifndef __PID_H__
jrhodes5150 0:8a420ac6394e 2 #define __PID_H__
jrhodes5150 0:8a420ac6394e 3
jrhodes5150 0:8a420ac6394e 4 class PID
jrhodes5150 0:8a420ac6394e 5 {
jrhodes5150 0:8a420ac6394e 6 public:
jrhodes5150 0:8a420ac6394e 7 PID(void);
jrhodes5150 0:8a420ac6394e 8
jrhodes5150 0:8a420ac6394e 9 void AddSample(double sampleValue,double control);
jrhodes5150 0:8a420ac6394e 10 double GetOutput(void) { return currentOutput; }
jrhodes5150 0:8a420ac6394e 11 double GetPidSampleValue(void) { return pidSampleValue; }
jrhodes5150 0:8a420ac6394e 12 void Reset(void);
jrhodes5150 0:8a420ac6394e 13 void SetOutputRange(double minOutput, double maxOutput);
jrhodes5150 0:8a420ac6394e 14 void SetPeriodMilliseconds(double period) { msPeriod = period; }
jrhodes5150 0:8a420ac6394e 15 void SetPID(double kp, double ki, double kd);
jrhodes5150 0:8a420ac6394e 16 void SetTarget(double target) { this->target = target; }
jrhodes5150 0:8a420ac6394e 17 double GetTarget(void){return target;}
jrhodes5150 0:8a420ac6394e 18 private:
jrhodes5150 0:8a420ac6394e 19 double minOutput, maxOutput;
jrhodes5150 0:8a420ac6394e 20 double kp, ki, kd;
jrhodes5150 0:8a420ac6394e 21 double errorIntegral;
jrhodes5150 0:8a420ac6394e 22 double lastError;
jrhodes5150 0:8a420ac6394e 23 double msPeriod;
jrhodes5150 0:8a420ac6394e 24 double target;
jrhodes5150 0:8a420ac6394e 25 double currentOutput;
jrhodes5150 0:8a420ac6394e 26 double pidSampleValue;
jrhodes5150 0:8a420ac6394e 27 };
jrhodes5150 0:8a420ac6394e 28
jrhodes5150 0:8a420ac6394e 29
jrhodes5150 0:8a420ac6394e 30 #endif
jrhodes5150 0:8a420ac6394e 31