|
akreon-control
Optimal and robust control and state estimation in C++26.
|
forward decl of state space More...
#include <state_space.hpp>
Public Types | |
| using | Plant = linalg::remove_cvref_t< PlantIn > |
| extract type and alias | |
| using | Control = linalg::remove_cvref_t< ControlIn > |
| using | Output = linalg::remove_cvref_t< OutputIn > |
| using | T = linalg::matrix_scalar_t< Plant > |
| using | Feedthrough = linalg::Matrix< T, OutputRows, ControlCols > |
| using | State = linalg::Vector< T, PlantCols > |
| state vector | |
| using | Input = linalg::Vector< T, ControlCols > |
Public Member Functions | |
| constexpr | StateSpace (const Plant &A_in, const Control &B_in, const Output &C_in) |
| CTOR. | |
| constexpr | StateSpace (const Plant &A_in, const Control &B_in, const Output &C_in, const Feedthrough &D_in) |
| CTOR. | |
| constexpr auto | state_update (const State &x, const Input &u) const |
| state_update | |
| constexpr auto | output_map (const State &x, const Input &u) const |
| output_map | |
Public Attributes | |
| Plant | A |
| member var | |
| Control | B |
| Control matrix. | |
| Output | C |
| Output matrix. | |
| std::optional< Feedthrough > | D |
| Feedthrough matrix. | |
Static Public Attributes | |
| static constexpr std::size_t | PlantRows = linalg::mat_rows_v<Plant> |
| static constexpr std::size_t | PlantCols = linalg::mat_cols_v<Plant> |
| static constexpr std::size_t | ControlRows = linalg::mat_rows_v<Control> |
| static constexpr std::size_t | ControlCols = linalg::mat_cols_v<Control> |
| static constexpr std::size_t | OutputRows = linalg::mat_rows_v<Output> |
| static constexpr std::size_t | OutputCols = linalg::mat_cols_v<Output> |
forward decl of state space
\(\dot{x} = A x(t) + B u(t)\) \(y = C x(t) + D u(t)\)
Definition at line 20 of file state_space.hpp.
| using control::StateSpace< Type, PlantIn, ControlIn, OutputIn >::Control = linalg::remove_cvref_t<ControlIn> |
Definition at line 23 of file state_space.hpp.
| using control::StateSpace< Type, PlantIn, ControlIn, OutputIn >::Feedthrough = linalg::Matrix<T, OutputRows, ControlCols> |
Definition at line 34 of file state_space.hpp.
| using control::StateSpace< Type, PlantIn, ControlIn, OutputIn >::Input = linalg::Vector<T, ControlCols> |
Definition at line 41 of file state_space.hpp.
| using control::StateSpace< Type, PlantIn, ControlIn, OutputIn >::Output = linalg::remove_cvref_t<OutputIn> |
Definition at line 24 of file state_space.hpp.
| using control::StateSpace< Type, PlantIn, ControlIn, OutputIn >::Plant = linalg::remove_cvref_t<PlantIn> |
extract type and alias
Definition at line 22 of file state_space.hpp.
| using control::StateSpace< Type, PlantIn, ControlIn, OutputIn >::State = linalg::Vector<T, PlantCols> |
state vector
Definition at line 40 of file state_space.hpp.
| using control::StateSpace< Type, PlantIn, ControlIn, OutputIn >::T = linalg::matrix_scalar_t<Plant> |
Definition at line 26 of file state_space.hpp.
|
inlineexplicitconstexpr |
CTOR.
| A | (Plant) |
| B | (Control) |
| C | (Output) |
| D | (Feedthrough) |
Definition at line 62 of file state_space.hpp.
|
inlineconstexpr |
output_map
similar as plant_dynamics y = C x + D u
| x | (State) |
| u | (Input) |
Definition at line 95 of file state_space.hpp.
References control::StateSpace< Type, PlantIn, ControlIn, OutputIn >::C, control::StateSpace< Type, PlantIn, ControlIn, OutputIn >::D, and control::is_continuous_v.
|
inlineconstexpr |
state_update
Discrete x_next = A x_k + B u_k
Continuous xdot = A x + B u
| x | (State) |
| u | (Input) |
Definition at line 80 of file state_space.hpp.
References control::StateSpace< Type, PlantIn, ControlIn, OutputIn >::A, control::StateSpace< Type, PlantIn, ControlIn, OutputIn >::B, and control::is_continuous_v.
| Plant control::StateSpace< Type, PlantIn, ControlIn, OutputIn >::A |
member var
Plant matrix
Definition at line 100 of file state_space.hpp.
Referenced by control::StateSpace< Type, PlantIn, ControlIn, OutputIn >::state_update().
| Control control::StateSpace< Type, PlantIn, ControlIn, OutputIn >::B |
Control matrix.
Definition at line 101 of file state_space.hpp.
Referenced by control::StateSpace< Type, PlantIn, ControlIn, OutputIn >::state_update().
| Output control::StateSpace< Type, PlantIn, ControlIn, OutputIn >::C |
Output matrix.
Definition at line 102 of file state_space.hpp.
Referenced by control::StateSpace< Type, PlantIn, ControlIn, OutputIn >::output_map().
|
staticconstexpr |
Definition at line 30 of file state_space.hpp.
|
staticconstexpr |
Definition at line 29 of file state_space.hpp.
| std::optional<Feedthrough> control::StateSpace< Type, PlantIn, ControlIn, OutputIn >::D |
Feedthrough matrix.
Definition at line 103 of file state_space.hpp.
Referenced by control::StateSpace< Type, PlantIn, ControlIn, OutputIn >::output_map().
|
staticconstexpr |
Definition at line 32 of file state_space.hpp.
|
staticconstexpr |
Definition at line 31 of file state_space.hpp.
|
staticconstexpr |
Definition at line 28 of file state_space.hpp.
|
staticconstexpr |
Definition at line 27 of file state_space.hpp.