Program listing for file control/src/Observer/LuenbergerObserver.hpp

Program listing for file control/src/Observer/LuenbergerObserver.hpp#

 1#ifndef LuenbergerObserver_H
 2#define LuenbergerObserver_H
 3
 4#include "Observer.hpp"
 5#include "SiconosAlgebraTypeDef.hpp"
 6
 7class LuenbergerObserver : public Observer
 8{
 9private:
10
11  ACCEPT_SERIALIZATION(LuenbergerObserver);
12
13
14  LuenbergerObserver() {};
15
16protected:
17
18
19  SP::SiconosMatrix _C;
20
21
22  SP::SiconosMatrix _L;
23
24  double _theta;
25
26
27  bool _pass;
28
29public:
30
31
32  LuenbergerObserver(SP::ControlSensor sensor, const SiconosVector& xHat0):
33    Observer(LUENBERGER, sensor, xHat0), _pass(false) {}
34
35
36  LuenbergerObserver(SP::ControlSensor sensor, const SiconosVector& xHat0, SP::SiconosMatrix C, SP::SiconosMatrix L):
37    Observer(LUENBERGER, sensor, xHat0), _C(C), _L(L), _pass(false) {}
38
39
40  virtual void process();
41
42
43  virtual void initialize(const NonSmoothDynamicalSystem & nsds, const Simulation& s);
44
45
46  inline void setLPtr(SP::SiconosMatrix L)
47  {
48    _L = L;
49  };
50
51
52  inline void setCPtr(SP::SiconosMatrix C)
53  {
54    _C = C;
55  };
56
57};
58#endif