|
| | DiscreteStateSpace ()=default |
| |
| | DiscreteStateSpace (const DiscreteStateSpace &)=default |
| |
| DiscreteStateSpace & | operator= (const DiscreteStateSpace &)=default |
| |
| | DiscreteStateSpace (const Eigen::Matrix< ValueType, internal_states, internal_states > &A, const Eigen::Matrix< ValueType, internal_states, inputs > &B, const Eigen::Matrix< ValueType, outputs, internal_states > &C, const Eigen::Matrix< ValueType, outputs, inputs > &D) |
| |
| | DiscreteStateSpace (const state_space_type &state_space) |
| |
| const state_space_type & | state_space () const |
| |
| state_space_type & | state_space () |
| |
| std::tuple< Eigen::Vector< ValueType, internal_states >, Eigen::Vector< ValueType, outputs > > | eval (const Eigen::Vector< ValueType, internal_states > &x, const Eigen::Vector< ValueType, inputs > &u) const |
| | calculates the next states and calculates the output from the previous states and new inputs
|
| |
template<std::convertible_to< ValueType > U>
requires (inputs == 1 && outputs != 1) |
| std::tuple< Eigen::Vector< U, internal_states >, Eigen::Vector< U, outputs > > | eval (const Eigen::Vector< U, internal_states > &x, const U &u_scalar) const |
| | calculates the next states and calculates the output from the previous states and new inputs
|
| |
template<std::convertible_to< ValueType > U>
requires (inputs == 1 && outputs == 1) |
| std::tuple< Eigen::Vector< U, internal_states >, U > | eval (const Eigen::Vector< U, internal_states > &x, const U &u_scalar) const |
| | calculates the next states and calculates the output from the previous states and new inputs
|
| |
| A_matrix_type & | A () |
| |
| B_matrix_type & | B () |
| |
| C_matrix_type & | C () |
| |
| D_matrix_type & | D () |
| |
| const A_matrix_type & | A () const |
| |
| const B_matrix_type & | B () const |
| |
| const C_matrix_type & | C () const |
| |
| const D_matrix_type & | D () const |
| |
template<class ValueType, int internal_states, int inputs, int outputs>
class controlpp::DiscreteStateSpace< ValueType, internal_states, inputs, outputs >
Matrix (A, B, C, D) representation of a linear time invariant system.
\[
\hat{x} = \mathbf{A} x + \mathbf{B} u
\]
\[
y = \mathbf{C} x + \mathbf{D} u
\]
- u is the input
- x are the internal states
- y is the output
This is only a representation using the A, B, C, D matrices. This does not contain an internal state. You may use the .eval() method, but have to provide the state manually.
If you want a system with internal state have a look at: DssFilter.
This is a type wrapper around controlpp::StateSpace
- See also
- controlpp::StateSpace
-
controlpp::DiscreteTransferFunction
-
controlpp::DssFilter
- Template Parameters
-
| ValueType | The value type of the matrix elements and arithmetic calculations (usually double or float) |
| internal_states | The number of internal states, this influences the size of the A, B and C matrices |
| inputs | The number of input to the system, this influences the size of the B and D matrix |
| outputs | The number of outputs of the system, this influences the size of the C and D matrix |