DUNE: Uniform Navigational Environment  2019.02.0
DUNE::Control::LinearSystem Class Reference

Classes

class  Error
 

Public Member Functions

 LinearSystem (void)
 
 LinearSystem (const Math::Matrix &a, const Math::Matrix &b, const Math::Matrix &c, const Math::Matrix &d, double Ts=0)
 
LinearSystemc2d (double Ts)
 
LinearSystemappend (const LinearSystem &a_sys, short n)
 
Math::Matrix simLinearSystem (const Math::Matrix &a_u, double threshold)
 
const Math::MatrixgetA (void) const
 
const Math::MatrixgetB (void) const
 
const Math::MatrixgetC (void) const
 
const Math::MatrixgetD (void) const
 
const Math::MatrixgetX0 (void) const
 
const Math::MatrixgetY0 (void) const
 
short getIn (void) const
 
short getOut (void) const
 
short getSt (void) const
 
double getTs (void) const
 
void setX0 (Math::Matrix &a_x0)
 

Friends

DUNE_DLL_SYM std::ostream & operator<< (std::ostream &os, const LinearSystem &sys)
 

Constructor & Destructor Documentation

DUNE::Control::LinearSystem::LinearSystem ( void  )

Default Constructor for a null system.

DUNE::Control::LinearSystem::LinearSystem ( const Math::Matrix a,
const Math::Matrix b,
const Math::Matrix c,
const Math::Matrix d,
double  Ts = 0 
)

Member Function Documentation

LinearSystem & DUNE::Control::LinearSystem::append ( const LinearSystem a_sys,
short  n 
)

Append a linear systems n times (increasing it's dimention)

References DUNE::Math::Matrix::blkDiag(), getA(), getB(), getC(), getD(), getIn(), getOut(), getSt(), getTs(), getX0(), getY0(), and DUNE::Math::Matrix::vertCat().

LinearSystem & DUNE::Control::LinearSystem::c2d ( double  Ts)

Converts a continuous system to it's discrete representation.

References DUNE::Math::Matrix::expmts().

const Math::Matrix& DUNE::Control::LinearSystem::getA ( void  ) const
inline

Retrive A matrix.

Referenced by append().

const Math::Matrix& DUNE::Control::LinearSystem::getB ( void  ) const
inline

Retrive B matrix.

Referenced by append().

const Math::Matrix& DUNE::Control::LinearSystem::getC ( void  ) const
inline

Retrive C matrix.

Referenced by append().

const Math::Matrix& DUNE::Control::LinearSystem::getD ( void  ) const
inline

Retrive D matrix.

Referenced by append().

short DUNE::Control::LinearSystem::getIn ( void  ) const
inline

Retrive number of inputs.

Referenced by append().

short DUNE::Control::LinearSystem::getOut ( void  ) const
inline

Retrive number of outputs.

Referenced by append().

short DUNE::Control::LinearSystem::getSt ( void  ) const
inline

Retrive number of states.

Referenced by append().

double DUNE::Control::LinearSystem::getTs ( void  ) const
inline

Retrive discretization time step.

Referenced by append().

const Math::Matrix& DUNE::Control::LinearSystem::getX0 ( void  ) const
inline

Retrive currrent state vector (X0)

Referenced by append().

const Math::Matrix& DUNE::Control::LinearSystem::getY0 ( void  ) const
inline

Retrive current output vector (Y0)

Referenced by append().

void DUNE::Control::LinearSystem::setX0 ( Math::Matrix a_x0)
inline

Set currrent state vector (X0)

Matrix DUNE::Control::LinearSystem::simLinearSystem ( const Math::Matrix a_u,
double  threshold 
)

Simulates a linear systems at the current time step considering the current state m_X0 before simulating and updates both m_X0 and m_Y0 respectively with the new state and output.

Parameters
a_uthe control input
thresholdinput output difference threshold for conditional state update. Will not update state if difference is larger than threshold
Returns
m_Y0 the output

References DUNE::Math::Matrix::columns(), and DUNE::Math::Matrix::rows().

Friends And Related Function Documentation

DUNE_DLL_SYM std::ostream& operator<< ( std::ostream &  os,
const LinearSystem sys 
)
friend

LinearSystem print.

Collaboration diagram for DUNE::Control::LinearSystem:
Collaboration graph