File control/src/Observer/LuenbergerObserver.hpp#

Go to the source code of this file

Classical discrete-time Luenberger Observer

class LuenbergerObserver : public Observer

Public Functions

inline LuenbergerObserver(SP::ControlSensor sensor, const SiconosVector &xHat0)

Constructor with a TimeDiscretisation, a ControlSensor and an initial estimate of the state.

Parameters:
  • sensor – the SP::ControlSensor that feed us with measurements

  • xHat0 – the initial guess for the state

inline LuenbergerObserver(SP::ControlSensor sensor, const SiconosVector &xHat0, SP::SiconosMatrix C, SP::SiconosMatrix L)

Constructor with all the data.

Parameters:
  • sensor – the ControlSensor that feeds the Observer

  • xHat0 – the initial guess for the state

  • C – the observation matrix

  • L – the gain matrix

virtual void process()

Compute the new control law at each event.

virtual void initialize(const NonSmoothDynamicalSystem &nsds, const Simulation &s)

Initialization.

Parameters:
  • nsds – current nonsmooth dynamical system

  • s – current simulation setup

inline void setLPtr(SP::SiconosMatrix L)

Set the L matrix.

Parameters:

L – the new L matrix

inline void setCPtr(SP::SiconosMatrix C)

Set the C matrix.

Parameters:

C – the new C matrix

Protected Attributes

SP::SiconosMatrix _C#

the vector defining the measurements ( \( y = Cx \))

SP::SiconosMatrix _L#

matrix describing the relation between the control value and sgn(s)

double _theta#
bool _pass#

Private Functions

ACCEPT_SERIALIZATION(LuenbergerObserver)#
inline LuenbergerObserver()#

default constructor