Controlpp
Loading...
Searching...
No Matches
controlpp::DssFilter< T, NStates_, NInputs_, NOutputs_ > Class Template Reference

Controller from a discrete state space. More...

#include <controlpp/DiscreteFilter.hpp>

Public Member Functions

 DssFilter (const DiscreteStateSpace< T, NStates_, NInputs_, NOutputs_ > &dss)
 construct a discrete filter from a state space
 
template<int N>
 DssFilter (const DiscreteTransferFunction< T, N, NStates_ > &dtf)
 
 DssFilter (const ContinuousStateSpace< T, NStates_, NInputs_, NOutputs_ > &css, double Ts, EDiscretisation method=EDiscretisation::tustin)
 
template<int N>
 DssFilter (const ContinuousTransferFunction< T, N, NStates_ > &ctf, double Ts, EDiscretisation method=EDiscretisation::tustin)
 
Eigen::Vector< T, NOutputs_ > input (const Eigen::Vector< T, NInputs_ > &u)
 
const Eigen::Vector< T, NStates_ > & states () const
 
Eigen::Vector< T, NStates_ > & states ()
 
const T & states (int i) const
 
T & states (int i)
 
template<std::convertible_to< T > U>
requires (NInputs_ == 1 && NOutputs_ > 1)
Eigen::Vector< T, NOutputs_ > input (const U &u)
 input a new value to advance the internal state and calculate the new output
 
template<std::convertible_to< T > U>
requires (NInputs_ == 1 && NOutputs_ == 1)
input (const U &u)
 input a new value to advance the internal state and calculate the new output
 
template<std::convertible_to< T > U>
requires (NInputs_ == 1 && NOutputs_ == 1)
operator() (const U &u)
 
void clear ()
 sets the interanal state vector to zero
 
const DiscreteStateSpace< T, NStates_, NInputs_, NOutputs_ > & dss () const
 returns the contained state space object
 
DiscreteStateSpace< T, NStates_, NInputs_, NOutputs_ > & dss ()
 returns the contained state space object
 

Static Public Attributes

static constexpr int n_states = NStates_
 
static constexpr int n_inputs = NInputs_
 
static constexpr int n_outputs = NOutputs_
 

Friends

std::ostream & operator<< (std::ostream &stream, const DssFilter &dssf)
 

Detailed Description

template<class T, int NStates_, int NInputs_ = 1, int NOutputs_ = 1>
class controlpp::DssFilter< T, NStates_, NInputs_, NOutputs_ >

Controller from a discrete state space.

Constructor & Destructor Documentation

◆ DssFilter() [1/4]

template<class T , int NStates_, int NInputs_ = 1, int NOutputs_ = 1>
controlpp::DssFilter< T, NStates_, NInputs_, NOutputs_ >::DssFilter ( const DiscreteStateSpace< T, NStates_, NInputs_, NOutputs_ > &  dss)
inline

construct a discrete filter from a state space

A filter will also internally track

◆ DssFilter() [2/4]

template<class T , int NStates_, int NInputs_ = 1, int NOutputs_ = 1>
template<int N>
controlpp::DssFilter< T, NStates_, NInputs_, NOutputs_ >::DssFilter ( const DiscreteTransferFunction< T, N, NStates_ > &  dtf)
inline

◆ DssFilter() [3/4]

template<class T , int NStates_, int NInputs_ = 1, int NOutputs_ = 1>
controlpp::DssFilter< T, NStates_, NInputs_, NOutputs_ >::DssFilter ( const ContinuousStateSpace< T, NStates_, NInputs_, NOutputs_ > &  css,
double  Ts,
EDiscretisation  method = EDiscretisation::tustin 
)
inline

◆ DssFilter() [4/4]

template<class T , int NStates_, int NInputs_ = 1, int NOutputs_ = 1>
template<int N>
controlpp::DssFilter< T, NStates_, NInputs_, NOutputs_ >::DssFilter ( const ContinuousTransferFunction< T, N, NStates_ > &  ctf,
double  Ts,
EDiscretisation  method = EDiscretisation::tustin 
)
inline

Member Function Documentation

◆ clear()

template<class T , int NStates_, int NInputs_ = 1, int NOutputs_ = 1>
void controlpp::DssFilter< T, NStates_, NInputs_, NOutputs_ >::clear ( )
inline

sets the interanal state vector to zero

◆ dss() [1/2]

template<class T , int NStates_, int NInputs_ = 1, int NOutputs_ = 1>
DiscreteStateSpace< T, NStates_, NInputs_, NOutputs_ > & controlpp::DssFilter< T, NStates_, NInputs_, NOutputs_ >::dss ( )
inline

returns the contained state space object

Returns
a mutable reference of a discrete state space object

◆ dss() [2/2]

template<class T , int NStates_, int NInputs_ = 1, int NOutputs_ = 1>
const DiscreteStateSpace< T, NStates_, NInputs_, NOutputs_ > & controlpp::DssFilter< T, NStates_, NInputs_, NOutputs_ >::dss ( ) const
inline

returns the contained state space object

Returns
a const reference of a discrete state space object

◆ input() [1/3]

template<class T , int NStates_, int NInputs_ = 1, int NOutputs_ = 1>
Eigen::Vector< T, NOutputs_ > controlpp::DssFilter< T, NStates_, NInputs_, NOutputs_ >::input ( const Eigen::Vector< T, NInputs_ > &  u)
inline

◆ input() [2/3]

template<class T , int NStates_, int NInputs_ = 1, int NOutputs_ = 1>
template<std::convertible_to< T > U>
requires (NInputs_ == 1 && NOutputs_ > 1)
Eigen::Vector< T, NOutputs_ > controlpp::DssFilter< T, NStates_, NInputs_, NOutputs_ >::input ( const U &  u)
inline

input a new value to advance the internal state and calculate the new output

Returns

◆ input() [3/3]

template<class T , int NStates_, int NInputs_ = 1, int NOutputs_ = 1>
template<std::convertible_to< T > U>
requires (NInputs_ == 1 && NOutputs_ == 1)
T controlpp::DssFilter< T, NStates_, NInputs_, NOutputs_ >::input ( const U &  u)
inline

input a new value to advance the internal state and calculate the new output

Returns

◆ operator()()

template<class T , int NStates_, int NInputs_ = 1, int NOutputs_ = 1>
template<std::convertible_to< T > U>
requires (NInputs_ == 1 && NOutputs_ == 1)
T controlpp::DssFilter< T, NStates_, NInputs_, NOutputs_ >::operator() ( const U &  u)
inline

◆ states() [1/4]

template<class T , int NStates_, int NInputs_ = 1, int NOutputs_ = 1>
Eigen::Vector< T, NStates_ > & controlpp::DssFilter< T, NStates_, NInputs_, NOutputs_ >::states ( )
inline

◆ states() [2/4]

template<class T , int NStates_, int NInputs_ = 1, int NOutputs_ = 1>
const Eigen::Vector< T, NStates_ > & controlpp::DssFilter< T, NStates_, NInputs_, NOutputs_ >::states ( ) const
inline

◆ states() [3/4]

template<class T , int NStates_, int NInputs_ = 1, int NOutputs_ = 1>
T & controlpp::DssFilter< T, NStates_, NInputs_, NOutputs_ >::states ( int  i)
inline

◆ states() [4/4]

template<class T , int NStates_, int NInputs_ = 1, int NOutputs_ = 1>
const T & controlpp::DssFilter< T, NStates_, NInputs_, NOutputs_ >::states ( int  i) const
inline

Friends And Related Symbol Documentation

◆ operator<<

template<class T , int NStates_, int NInputs_ = 1, int NOutputs_ = 1>
std::ostream & operator<< ( std::ostream &  stream,
const DssFilter< T, NStates_, NInputs_, NOutputs_ > &  dssf 
)
friend

Member Data Documentation

◆ n_inputs

template<class T , int NStates_, int NInputs_ = 1, int NOutputs_ = 1>
constexpr int controlpp::DssFilter< T, NStates_, NInputs_, NOutputs_ >::n_inputs = NInputs_
staticconstexpr

◆ n_outputs

template<class T , int NStates_, int NInputs_ = 1, int NOutputs_ = 1>
constexpr int controlpp::DssFilter< T, NStates_, NInputs_, NOutputs_ >::n_outputs = NOutputs_
staticconstexpr

◆ n_states

template<class T , int NStates_, int NInputs_ = 1, int NOutputs_ = 1>
constexpr int controlpp::DssFilter< T, NStates_, NInputs_, NOutputs_ >::n_states = NStates_
staticconstexpr

The documentation for this class was generated from the following file: