Implementation of an input disturbed system where, the dimension of the disturbance is equal to the dimension of the control input, thus DIST_DIM = CONTROL_DIM. This is a special case, however it occurs often and is convenient to have as separate class.
More...
|
| InputDisturbedSystem (std::shared_ptr< ct::core::ControlledSystem< STATE_DIM, CONTROL_DIM, SCALAR >> sys) |
| Construct a new Input Disturbed System object. More...
|
|
| InputDisturbedSystem (const InputDisturbedSystem &other) |
| copy constructor More...
|
|
InputDisturbedSystem * | clone () const override |
| deep cloning More...
|
|
void | computeControlledDynamics (const ct::core::StateVector< AUGMENTED_STATE_DIM, SCALAR > &state, const SCALAR &t, const ct::core::ControlVector< CONTROL_DIM, SCALAR > &control, ct::core::StateVector< AUGMENTED_STATE_DIM, SCALAR > &derivative) override |
| compute the dynamics (the left-hand-side of the dynamics equation) for the disturbance-augmented system More...
|
|
| DisturbedSystem () |
| Constructor. More...
|
|
| DisturbedSystem (std::shared_ptr< ct::core::Controller< STATE_DIM, CONTROL_DIM, SCALAR >> controller) |
| Copy constructor. More...
|
|
virtual | ~DisturbedSystem ()=default |
|
void | setController (const std::shared_ptr< ct::core::Controller< STATE_DIM, CONTROL_DIM, SCALAR >> controller) |
|
virtual void | computeControlledDynamics (const ct::core::StateVector< AUGMENTED_DIM, SCALAR > &state, const SCALAR &t, const ct::core::ControlVector< CONTROL_DIM, SCALAR > &control, ct::core::StateVector< AUGMENTED_DIM, SCALAR > &derivative)=0 |
| Implementation of the base computeControlledDynamics method. More...
|
|
| ControlledSystem (const SYSTEM_TYPE &type=SYSTEM_TYPE::GENERAL) |
|
| ControlledSystem (std::shared_ptr< ct::core::Controller< STATE_DIM+DIST_DIM, CONTROL_DIM, SCALAR >> controller, const SYSTEM_TYPE &type=SYSTEM_TYPE::GENERAL) |
|
| ControlledSystem (const ControlledSystem &arg) |
|
virtual | ~ControlledSystem () |
|
void | setController (const std::shared_ptr< Controller< STATE_DIM+DIST_DIM, CONTROL_DIM, SCALAR >> &controller) |
|
void | getController (std::shared_ptr< Controller< STATE_DIM+DIST_DIM, CONTROL_DIM, SCALAR >> &controller) const |
|
std::shared_ptr< Controller< STATE_DIM+DIST_DIM, CONTROL_DIM, SCALAR > > | getController () |
|
virtual void | computeDynamics (const StateVector< STATE_DIM+DIST_DIM, SCALAR > &state, const time_t &t, StateVector< STATE_DIM+DIST_DIM, SCALAR > &derivative) override |
|
virtual void | computeControlledDynamics (const StateVector< STATE_DIM+DIST_DIM, SCALAR > &state, const time_t &t, const ControlVector< CONTROL_DIM, SCALAR > &control, StateVector< STATE_DIM+DIST_DIM, SCALAR > &derivative)=0 |
|
ControlVector< CONTROL_DIM, SCALAR > | getLastControlAction () |
|
| System (const SYSTEM_TYPE &type=SYSTEM_TYPE::GENERAL) |
|
| System (const System &other) |
|
virtual | ~System () |
|
virtual void | computeDynamics (const StateVector< STATE_DIM, SCALAR > &state, const time_t &t, StateVector< STATE_DIM, SCALAR > &derivative)=0 |
|
SYSTEM_TYPE | getType () const |
|
virtual bool | isSymplectic () const |
|
template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
class ct::optcon::InputDisturbedSystem< STATE_DIM, CONTROL_DIM, SCALAR >
Implementation of an input disturbed system where, the dimension of the disturbance is equal to the dimension of the control input, thus DIST_DIM = CONTROL_DIM. This is a special case, however it occurs often and is convenient to have as separate class.
The new state vector has the form x_aug = [x_system + disturbance];
- Note
- this system should not be for simulation, but for filtering. It is not suitable for simulation since the disturbance state gets mapped back to the control input.
- Template Parameters
-
STATE_DIM | state dimension |
CONTROL_DIM | |
double | |
- Examples:
- KalmanDisturbanceFiltering.cpp.