Program listing for file control/src/Observer/LuenbergerObserver.hpp#
Return to documentation for this file
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