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.

Parameters
  • 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.

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 initialize(const NonSmoothDynamicalSystem &nsds, const Simulation &s)

Initialization.

Parameters
  • 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.

Parameters
  • C: the new C matrix

void setLPtr(SP::SiconosMatrix L)

Set the L matrix.

Parameters
  • 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

LuenbergerObserver()

default constructor

ACCEPT_SERIALIZATION(LuenbergerObserver)

serialization hooks