Program listing for file control/src/Controller/Actuator.hpp#
Return to documentation for this file
1#ifndef Actuator_H
2#define Actuator_H
3
4#include <string>
5#include "SiconosPointers.hpp"
6
7#include "SiconosFwd.hpp"
8
9#include "SiconosAlgebraTypeDef.hpp"
10
11#include "ControlTypeDef.hpp"
12#include "SiconosControlFwd.hpp"
13
14
15class Actuator
16{
17
18private:
19
20
21 ACCEPT_SERIALIZATION(Actuator);
22
23protected:
24
25
26 unsigned int _type;
27
28
29 std::string _id;
30
31
32 SP::SiconosVector _u;
33
34
35 SP::SimpleMatrix _B;
36
37
38 std::string _plugingName;
39
40
41 std::string _pluginJacgxName;
42
43
44 SP::ControlSensor _sensor;
45
46
47 Actuator();
48
49public:
50
51
52 Actuator(unsigned int type, SP::ControlSensor sensor);
53
54
55 Actuator(unsigned int type, SP::ControlSensor sensor, SP::SimpleMatrix B);
56
57
58 virtual ~Actuator();
59
60
61 inline void setId(const std::string& newId)
62 {
63 _id = newId;
64 };
65
66
67 inline const std::string getId() const
68 {
69 return _id;
70 };
71
72
73 inline unsigned int getType() const
74 {
75 return _type;
76 };
77
78
79 inline const SiconosVector& u() const { return *_u; };
80
81
82 void setSizeu(unsigned size);
83
84
85 inline void setB(SP::SimpleMatrix B)
86 {
87 _B = B;
88 };
89
90
91 inline void setg(const std::string& g)
92 {
93 _plugingName = g;
94 };
95
96
97 void addSensorPtr(SP::ControlSensor newSensor);
98
99
100 virtual void setTimeDiscretisation(const TimeDiscretisation& td) {};
101
102
103 virtual void initialize(const NonSmoothDynamicalSystem& nsds, const Simulation & s);
104
105
106 virtual void actuate() = 0;
107
108
109 virtual void display() const;
110
111
112 virtual SP::NonSmoothDynamicalSystem getInternalNSDS() const;
113};
114#endif