Program listing for file control/src/Controller/PID.hpp#
Return to documentation for this file
1#ifndef PID_H
2#define PID_H
3
4#include "Actuator.hpp"
5#include "SiconosAlgebraTypeDef.hpp"
6#include <boost/circular_buffer.hpp>
7
8class PID : public Actuator
9{
10private:
11
12 PID() {};
13
14
15 ACCEPT_SERIALIZATION(PID);
16
17
18 std::shared_ptr<boost::circular_buffer<double> > _err;
19
20
21 double _ref;
22
23 double _curDeltaT;
24
25
26 SP::SiconosVector _K;
27
28public:
29
30
31 PID(SP::ControlSensor sensor, SP::SimpleMatrix B = std::shared_ptr<SimpleMatrix>());
32
33
34 virtual ~PID();
35
36
37 virtual void initialize(const NonSmoothDynamicalSystem& nsds, const Simulation& s);
38
39
40 void actuate();
41
42
43 void setK(SP::SiconosVector K);
44
45
46 void inline setRef(double reference)
47 {
48 _ref = reference;
49 }
50
51
52 virtual void setTimeDiscretisation(const TimeDiscretisation& td);
53
54 void setDeltaT(double deltaT)
55 {
56 _curDeltaT = deltaT;
57 }
58
59
60 virtual void display() const;
61
62};
63#endif