Flair
Framework Libre Air
flair::filter::ControlLaw Class Referenceabstract

Base class for control law input must be created by reimplemented class.
output is created by this class, it is of size (nb_out,1) and type float.
see constructor for nb_out. More...

#include <ControlLaw.h>

+ Inheritance diagram for flair::filter::ControlLaw:

Public Member Functions

 ControlLaw (const core::Object *parent, std::string name, uint32_t nb_out=1)
 Constructor. More...
 
 ~ControlLaw ()
 Destructor. More...
 
float Output (uint32_t index=0) const
 Output value. More...
 
virtual void UseDefaultPlot (const gui::LayoutPosition *position)
 Use default plot. More...
 
void Update (core::Time time)
 Update using provided datas. More...
 
virtual void Reset ()
 Reset the internal state of the control law. More...
 
- Public Member Functions inherited from flair::core::IODevice
 IODevice (const Object *parent, std::string name)
 Constructor. More...
 
virtual ~IODevice ()
 Destructor. More...
 
void AddDeviceToLog (const IODevice *device)
 Add an IODevice to the logs. More...
 
void AddDataToLog (const io_data *data)
 Add an io_data to the log. More...
 
void OutputToShMem (bool enabled)
 Send the output to a shared memory. More...
 
virtual DataType const & GetInputDataType () const
 
virtual DataType const & GetOutputDataType () const
 
- Public Member Functions inherited from flair::core::Object
 Object (const Object *parent=NULL, std::string name="", std::string type="")
 Constructor. More...
 
virtual ~Object ()
 Destructor. More...
 
std::string ObjectName (void) const
 Name. More...
 
std::string ObjectType (void) const
 Type. More...
 
const ObjectParent (void) const
 Parent. More...
 
std::vector< const Object * > * TypeChilds (void) const
 Childs of the same type. More...
 
std::vector< const Object * > * Childs (void) const
 Childs. More...
 
void Information (const char *function, int line, const char *format,...) const
 Formatted information. More...
 
void Warning (const char *function, const char *format,...) const
 Formatted warning. More...
 
void Error (const char *function, const char *format,...) const
 Formatted error. More...
 
bool ErrorOccured (bool recursive=true) const
 Has an errror occured? More...
 

Protected Attributes

core::cvmatrixinput
 input matrix More...
 
core::cvmatrixoutput
 output matrix More...
 

Additional Inherited Members

- Public Types inherited from flair::core::Object
enum  color_t { Auto = 0, Red = 31, Green = 32, Orange = 33 }
 
- Public Attributes inherited from flair::core::IODevice
Time lastUpdate
 
- Protected Member Functions inherited from flair::core::IODevice
void ProcessUpdate (io_data *data)
 Process the childs of type IODevice, and log if needed. More...
 

Detailed Description

Base class for control law input must be created by reimplemented class.
output is created by this class, it is of size (nb_out,1) and type float.
see constructor for nb_out.

Constructor & Destructor Documentation

flair::filter::ControlLaw::ControlLaw ( const core::Object parent,
std::string  name,
uint32_t  nb_out = 1 
)

Constructor.

Construct a ControlLaw

Parameters
parentparent
namename
nb_outnumber of output
flair::filter::ControlLaw::~ControlLaw ( )

Destructor.

Member Function Documentation

float flair::filter::ControlLaw::Output ( uint32_t  index = 0) const

Output value.

Parameters
indexoutput index, between 0 and nb_out-1
Returns
output value
virtual void flair::filter::ControlLaw::UseDefaultPlot ( const gui::LayoutPosition position)
virtual

Use default plot.

Plot the output value at given position.
Only Output(1,1) is plotted.
In case of a mutliple output ControlLaw, this function should be reimplemented.
After calling this function, position will be deleted as it is no longer usefull.

Parameters
positionposition to display plot

Reimplemented in flair::filter::PidThrust, and flair::filter::Pid.

void flair::filter::ControlLaw::Update ( core::Time  time)

Update using provided datas.

Reimplemented class must fill input matrix before calling this.

Parameters
timetime of the update
virtual void flair::filter::ControlLaw::Reset ( void  )
inlinevirtual

Reset the internal state of the control law.

Doesn't do anything by default

Reimplemented in flair::filter::PidThrust, and flair::filter::Pid.

Member Data Documentation

core::cvmatrix* flair::filter::ControlLaw::input
protected

input matrix

This matrix must be created by the reimplemented class.

core::cvmatrix* flair::filter::ControlLaw::output
protected

output matrix

This matrix is created by this class. Its size is (nb_out,1) and its type is io_data::Float.