File control/src/Observer/Observer.hpp#

Go to the source code of this file

General interface to define an Observer.

class Observer
#include <Observer.hpp>

Observers Base Class.

Abstract class, interface to user-defined observers.

An Observer is dedicated to estimate the state of a DynamicalSystem given its dynamics, inputs and a initial estimate of the state.

Subclassed by LuenbergerObserver, SlidingReducedOrderObserver

Public Functions

Observer(unsigned int type, SP::ControlSensor sensor, const SiconosVector &xHat0, const std::string &newId = "none")

Constructor with a TimeDiscretisation.

Parameters:
  • type – the type of the Observer, which corresponds to the class type

  • sensor – the SP::Sensor to get the measurements

  • xHat0 – the initial guess for the state

  • newId – the id of the Observer

Observer(unsigned int type, SP::ControlSensor sensor, const SiconosVector &xHat0, SP::DynamicalSystem ds, const std::string &newId = "none")

Constructor with a TimeDiscretisation.

Parameters:
  • type – the type of the Observer, which corresponds to the class type.

  • sensor – the SP::Sensor to get the measurements

  • xHat0 – the initial guess for the state

  • ds – the SP::DynamicalSystem used as a model for the real DynamicalSystem

  • newId – the id of the Observer

virtual ~Observer()

destructor

inline void setId(const std::string &newId)

set id of the Observer

Parameters:

newId – the new id.

inline const std::string getId() const

get id of the Observer

Returns:

a string

inline int getType() const

get the type of the Observer (ie class name)

Returns:

an integer

virtual void setTimeDiscretisation(const TimeDiscretisation &td)

This is derived in child classes if they need to copy the TimeDiscretisation associated with this Sensor.

Parameters:

td – the TimeDiscretisation for this Sensor

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

initialize observer data.

Parameters:
  • nsds – current nonsmooth dynamical system

  • s – current simulation setup

virtual void process() = 0

capture data when the ObserverEvent is processed

void display() const

display the data of the Observer on the standard output

inline SP::SiconosVector e()

get the error e

Returns:

a pointer to e

inline SP::SiconosVector xHat()
Returns:

the estimated state

inline void setDS(SP::DynamicalSystem ds)

Set the DynamicalSystem used in the Observer.

Parameters:

ds – the DynamicalSystem used in the Observer

inline virtual SP::NonSmoothDynamicalSystem getInternalNSDS() const
Returns:

the Model used in the Observer

Protected Functions

ACCEPT_SERIALIZATION(Observer)#
Observer()#

default constructor

Protected Attributes

int _type#

type of the Observer

SP::DynamicalSystem _DS#

the DynamicalSystem used in the Observer

SP::TimeDiscretisation _td#

The TimeDiscretisation.

SP::ControlSensor _sensor#

the sensor that feed the observer

SP::SiconosVector _xHat#

estimated state

SP::SiconosVector _e#

The error \(e=\hat{y}-y\).

SP::SiconosVector _y#

The measurements from the sensor.

std::string _id#

id of the Observer

SP::NonSmoothDynamicalSystem _nsds#
SP::TimeStepping _simulation#

Simulation for integration.

SP::OneStepIntegrator _integrator#

Integration for integration.