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

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

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

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

  • xHat0: the initial guess for the state

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

Constructor with all the data.

  • sensor: the ControlSensor that feeds the Observer

  • xHat0: the initial guess for the state

  • C: the observation matrix

  • L: the gain matrix

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


  • nsds: current nonsmooth dynamical system

  • s: current simulation setup

virtual void process()

Compute the new control law at each event.

void setCPtr(SP::SiconosMatrix C)

Set the C matrix.

  • C: the new C matrix

void setLPtr(SP::SiconosMatrix L)

Set the L matrix.

  • L: the new L 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)

bool _pass
double _theta

Private Functions


default constructor


serialization hooks