LRT14  1.0
 All Classes Namespaces Functions Variables Enumerations Enumerator
ProfiledPID.h
1 #ifndef PROFILED_PID_H_
2 #define PROFILED_PID_H_
3 
4 #include "PID.h"
5 #include "MotionProfile.h"
6 #include "Timer.h"
7 
11 class ProfiledPID : public PID
12 {
13 public:
14  ProfiledPID(MotionProfile *profile, double p_gain, double i_gain, double d_gain, double ff_gain = 1.0,
15  double i_decay = 0.5, bool feedforward = true);
16 
17  ProfiledPID(MotionProfile *profile);
18  virtual ~ProfiledPID();
19 
25  virtual double Update(double dt);
26 
31  virtual void SetSetpoint(double setpoint);
32 
33  void SetMotionProfile(MotionProfile *profile);
34 
35 private:
36  double m_setpoint;
37  MotionProfile* m_profile;
38  Timer m_timer;
39 };
40 #endif