Controlpp
Loading...
Searching...
No Matches
controlpp::ContinuousTransferFunction< T, NumOrder, DenOrder > Class Template Reference

Continuous transfer functions in the s lapace plain. More...

#include <controlpp/ContinuousTransferFunction.hpp>

Public Types

using value_type = T
 
using transfer_function_type = TransferFunction< T, NumOrder, DenOrder >
 
using num_type = typename transfer_function_type::num_type
 
using den_type = typename transfer_function_type::den_type
 
using num_vector_type = typename transfer_function_type::num_vector_type
 
using den_vector_type = typename transfer_function_type::den_vector_type
 

Public Member Functions

 ContinuousTransferFunction ()=default
 
 ContinuousTransferFunction (const ContinuousTransferFunction &)=default
 
ContinuousTransferFunctionoperator= (const ContinuousTransferFunction &)=default
 
 ContinuousTransferFunction (const Polynom< T, NumOrder > &num, const Polynom< T, DenOrder > &den)
 
 ContinuousTransferFunction (const TransferFunction< T, NumOrder, DenOrder > &transfer_function)
 
 ContinuousTransferFunction (const Eigen::Vector< T, NumOrder+1 > &num, const Eigen::Vector< T, DenOrder+1 > &den)
 
 ContinuousTransferFunction (const T(&num)[NumOrder+1], const T(&den)[DenOrder+1])
 
num_typenum ()
 
const num_typenum () const
 
T & num (size_t i)
 
const T & num (size_t i) const
 
den_typeden ()
 
const den_typeden () const
 
T & den (size_t i)
 
const T & den (size_t i) const
 
transfer_function_typetransfer_function ()
 
const transfer_function_typetransfer_function () const
 
eval (const T &x) const
 Evaluates the rational polynomial at x
 
template<int M>
Eigen::Vector< T, M > eval (const Eigen::Vector< T, M > &x_vec) const
 Evaluates the rational polynomial elementwise at every element of the input vector.
 
std::complex< T > eval (const std::complex< T > &x) const
 Evaluates the rational polynomial at a complex x
 
template<int M>
Eigen::Vector< std::complex< T >, M > eval (const Eigen::Vector< std::complex< T >, M > &x_vec) const
 Evaluates the rational polynomial elementwise at every complex element of the input vector.
 
std::complex< T > eval_frequency (const T &frequency) const
 Evaluates the transfer function at the given frequency.
 
std::complex< T > eval_frequency_Hz (const T &frequency) const
 
template<int M>
Eigen::Vector< std::complex< T >, M > eval_frequencies (const Eigen::Vector< T, M > &frequencies) const
 Evaluates the transfer function (rad/s) at the given frequencies.
 
template<int M>
Eigen::Vector< std::complex< T >, M > eval_frequencies_hz (const Eigen::Vector< T, M > &frequencies) const
 Evaluates the transfer function (Hz) at the given frequencies.
 

Friends

std::ostream & operator<< (std::ostream &stream, const ContinuousTransferFunction &ctf)
 

Detailed Description

template<class T, int NumOrder, int DenOrder>
class controlpp::ContinuousTransferFunction< T, NumOrder, DenOrder >

Continuous transfer functions in the s lapace plain.

Transfer functions of the shape:

\[ G(s) = \frac{b_0 + b_1 s \cdots b_m s^m}{a_0 + a_1 s \cdots a_n s^n} \]

Template Parameters
TThe value type that the transfer function should use
NumberOrderThe order of the numerator. m in the equation.
DenOrderThe order of the denominator. n in the equation.

Member Typedef Documentation

◆ den_type

template<class T , int NumOrder, int DenOrder>
using controlpp::ContinuousTransferFunction< T, NumOrder, DenOrder >::den_type = typename transfer_function_type::den_type

◆ den_vector_type

template<class T , int NumOrder, int DenOrder>
using controlpp::ContinuousTransferFunction< T, NumOrder, DenOrder >::den_vector_type = typename transfer_function_type::den_vector_type

◆ num_type

template<class T , int NumOrder, int DenOrder>
using controlpp::ContinuousTransferFunction< T, NumOrder, DenOrder >::num_type = typename transfer_function_type::num_type

◆ num_vector_type

template<class T , int NumOrder, int DenOrder>
using controlpp::ContinuousTransferFunction< T, NumOrder, DenOrder >::num_vector_type = typename transfer_function_type::num_vector_type

◆ transfer_function_type

template<class T , int NumOrder, int DenOrder>
using controlpp::ContinuousTransferFunction< T, NumOrder, DenOrder >::transfer_function_type = TransferFunction<T, NumOrder, DenOrder>

◆ value_type

template<class T , int NumOrder, int DenOrder>
using controlpp::ContinuousTransferFunction< T, NumOrder, DenOrder >::value_type = T

Constructor & Destructor Documentation

◆ ContinuousTransferFunction() [1/6]

template<class T , int NumOrder, int DenOrder>
controlpp::ContinuousTransferFunction< T, NumOrder, DenOrder >::ContinuousTransferFunction ( )
default

◆ ContinuousTransferFunction() [2/6]

template<class T , int NumOrder, int DenOrder>
controlpp::ContinuousTransferFunction< T, NumOrder, DenOrder >::ContinuousTransferFunction ( const ContinuousTransferFunction< T, NumOrder, DenOrder > &  )
default

◆ ContinuousTransferFunction() [3/6]

template<class T , int NumOrder, int DenOrder>
controlpp::ContinuousTransferFunction< T, NumOrder, DenOrder >::ContinuousTransferFunction ( const Polynom< T, NumOrder > &  num,
const Polynom< T, DenOrder > &  den 
)
inlineexplicit

◆ ContinuousTransferFunction() [4/6]

template<class T , int NumOrder, int DenOrder>
controlpp::ContinuousTransferFunction< T, NumOrder, DenOrder >::ContinuousTransferFunction ( const TransferFunction< T, NumOrder, DenOrder > &  transfer_function)
inlineexplicit

◆ ContinuousTransferFunction() [5/6]

template<class T , int NumOrder, int DenOrder>
controlpp::ContinuousTransferFunction< T, NumOrder, DenOrder >::ContinuousTransferFunction ( const Eigen::Vector< T, NumOrder+1 > &  num,
const Eigen::Vector< T, DenOrder+1 > &  den 
)
inlineexplicit

◆ ContinuousTransferFunction() [6/6]

template<class T , int NumOrder, int DenOrder>
controlpp::ContinuousTransferFunction< T, NumOrder, DenOrder >::ContinuousTransferFunction ( const T(&)  num[NumOrder+1],
const T(&)  den[DenOrder+1] 
)
inlineexplicit

Member Function Documentation

◆ den() [1/4]

template<class T , int NumOrder, int DenOrder>
den_type & controlpp::ContinuousTransferFunction< T, NumOrder, DenOrder >::den ( )
inline

◆ den() [2/4]

template<class T , int NumOrder, int DenOrder>
const den_type & controlpp::ContinuousTransferFunction< T, NumOrder, DenOrder >::den ( ) const
inline

◆ den() [3/4]

template<class T , int NumOrder, int DenOrder>
T & controlpp::ContinuousTransferFunction< T, NumOrder, DenOrder >::den ( size_t  i)
inline

◆ den() [4/4]

template<class T , int NumOrder, int DenOrder>
const T & controlpp::ContinuousTransferFunction< T, NumOrder, DenOrder >::den ( size_t  i) const
inline

◆ eval() [1/4]

template<class T , int NumOrder, int DenOrder>
template<int M>
Eigen::Vector< std::complex< T >, M > controlpp::ContinuousTransferFunction< T, NumOrder, DenOrder >::eval ( const Eigen::Vector< std::complex< T >, M > &  x_vec) const
inline

Evaluates the rational polynomial elementwise at every complex element of the input vector.

Parameters
x_vecThe complex parameter vector at which the rational polynomial is being evaluated at
Returns
An eigen vector with the complex results of the rational polynomial

◆ eval() [2/4]

template<class T , int NumOrder, int DenOrder>
template<int M>
Eigen::Vector< T, M > controlpp::ContinuousTransferFunction< T, NumOrder, DenOrder >::eval ( const Eigen::Vector< T, M > &  x_vec) const
inline

Evaluates the rational polynomial elementwise at every element of the input vector.

Parameters
x_vecThe parameter vector at which the rational polynomial is being evaluated at
Returns
An eigen vector with the results of the rational polynomial

◆ eval() [3/4]

template<class T , int NumOrder, int DenOrder>
std::complex< T > controlpp::ContinuousTransferFunction< T, NumOrder, DenOrder >::eval ( const std::complex< T > &  x) const
inline

Evaluates the rational polynomial at a complex x

Parameters
xThe complex variable used to evaluate the polynomial
Returns
The result of the polynomial as a complex value

◆ eval() [4/4]

template<class T , int NumOrder, int DenOrder>
T controlpp::ContinuousTransferFunction< T, NumOrder, DenOrder >::eval ( const T &  x) const
inline

Evaluates the rational polynomial at x

Parameters
xThe variable used to evaluate the polynomial
Returns
The result of the polynomial

◆ eval_frequencies()

template<class T , int NumOrder, int DenOrder>
template<int M>
Eigen::Vector< std::complex< T >, M > controlpp::ContinuousTransferFunction< T, NumOrder, DenOrder >::eval_frequencies ( const Eigen::Vector< T, M > &  frequencies) const
inline

Evaluates the transfer function (rad/s) at the given frequencies.

Parameters
frequenciesThe frequencies (rad/s) at which to evaluate the transfer function at
Returns
The complex result of the frequency evaluation/analysis.

◆ eval_frequencies_hz()

template<class T , int NumOrder, int DenOrder>
template<int M>
Eigen::Vector< std::complex< T >, M > controlpp::ContinuousTransferFunction< T, NumOrder, DenOrder >::eval_frequencies_hz ( const Eigen::Vector< T, M > &  frequencies) const
inline

Evaluates the transfer function (Hz) at the given frequencies.

Parameters
frequenciesThe frequencies (Hz) at which to evaluate the transfer function at
Returns
The complex result of the frequency evaluation/analysis.

◆ eval_frequency()

template<class T , int NumOrder, int DenOrder>
std::complex< T > controlpp::ContinuousTransferFunction< T, NumOrder, DenOrder >::eval_frequency ( const T &  frequency) const
inline

Evaluates the transfer function at the given frequency.

equivalent to calling .eval(std::complex<T>(0, f)).

Parameters
frequencyThe frequency (in radiants per second) at which to evaluate the transfer function at
Returns
The complex result of the frequency evaluation/analysis.

◆ eval_frequency_Hz()

template<class T , int NumOrder, int DenOrder>
std::complex< T > controlpp::ContinuousTransferFunction< T, NumOrder, DenOrder >::eval_frequency_Hz ( const T &  frequency) const
inline

◆ num() [1/4]

template<class T , int NumOrder, int DenOrder>
num_type & controlpp::ContinuousTransferFunction< T, NumOrder, DenOrder >::num ( )
inline

◆ num() [2/4]

template<class T , int NumOrder, int DenOrder>
const num_type & controlpp::ContinuousTransferFunction< T, NumOrder, DenOrder >::num ( ) const
inline

◆ num() [3/4]

template<class T , int NumOrder, int DenOrder>
T & controlpp::ContinuousTransferFunction< T, NumOrder, DenOrder >::num ( size_t  i)
inline

◆ num() [4/4]

template<class T , int NumOrder, int DenOrder>
const T & controlpp::ContinuousTransferFunction< T, NumOrder, DenOrder >::num ( size_t  i) const
inline

◆ operator=()

template<class T , int NumOrder, int DenOrder>
ContinuousTransferFunction & controlpp::ContinuousTransferFunction< T, NumOrder, DenOrder >::operator= ( const ContinuousTransferFunction< T, NumOrder, DenOrder > &  )
default

◆ transfer_function() [1/2]

template<class T , int NumOrder, int DenOrder>
transfer_function_type & controlpp::ContinuousTransferFunction< T, NumOrder, DenOrder >::transfer_function ( )
inline

◆ transfer_function() [2/2]

template<class T , int NumOrder, int DenOrder>
const transfer_function_type & controlpp::ContinuousTransferFunction< T, NumOrder, DenOrder >::transfer_function ( ) const
inline

Friends And Related Symbol Documentation

◆ operator<<

template<class T , int NumOrder, int DenOrder>
std::ostream & operator<< ( std::ostream &  stream,
const ContinuousTransferFunction< T, NumOrder, DenOrder > &  ctf 
)
friend

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