Program listing for file control/src/Controller/Actuator.hpp

Program listing for file control/src/Controller/Actuator.hpp#

  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