|
| | SwitchedDiscreteControlledSystem (const SwitchedSystems &switchedSystems, const DiscreteModeSequence &discreteModeSequence, const SYSTEM_TYPE &type=SYSTEM_TYPE::GENERAL) |
| | default constructor More...
|
| |
| | SwitchedDiscreteControlledSystem (const SwitchedSystems &switchedSystems, const DiscreteModeSequence &discreteModeSequence, std::shared_ptr< DiscreteController< STATE_DIM, CONTROL_DIM, SCALAR >> controller, const SYSTEM_TYPE &type=SYSTEM_TYPE::GENERAL) |
| | constructor More...
|
| |
| | SwitchedDiscreteControlledSystem (const SwitchedDiscreteControlledSystem &arg) |
| | copy constructor More...
|
| |
| virtual | ~SwitchedDiscreteControlledSystem () |
| | destructor More...
|
| |
| virtual SwitchedDiscreteControlledSystem< STATE_DIM, CONTROL_DIM, SCALAR > * | clone () const override |
| | deep copy More...
|
| |
| virtual void | propagateControlledDynamics (const state_vector_t &state, const time_t n, const control_vector_t &control, state_vector_t &stateNext) override |
| | propagates the controlled system dynamics forward by one step More...
|
| |
| | DiscreteControlledSystem (const SYSTEM_TYPE &type=SYSTEM_TYPE::GENERAL) |
| | default constructor More...
|
| |
| | DiscreteControlledSystem (std::shared_ptr< DiscreteController< STATE_DIM, CONTROL_DIM, SCALAR >> controller, const SYSTEM_TYPE &type=SYSTEM_TYPE::GENERAL) |
| | constructor More...
|
| |
| | DiscreteControlledSystem (const ControlledSystem< STATE_DIM, CONTROL_DIM, SCALAR > &arg) |
| | copy constructor More...
|
| |
| virtual | ~DiscreteControlledSystem ()=default |
| | destructor More...
|
| |
| void | setController (const std::shared_ptr< DiscreteController< STATE_DIM, CONTROL_DIM, SCALAR >> &controller) |
| | set a new controller More...
|
| |
| void | getController (std::shared_ptr< DiscreteController< STATE_DIM, CONTROL_DIM, SCALAR >> &controller) const |
| | get the controller instance More...
|
| |
| std::shared_ptr< DiscreteController< STATE_DIM, CONTROL_DIM, SCALAR > > | getController () |
| | get the controller instace More...
|
| |
| virtual void | propagateDynamics (const state_vector_t &state, const time_t n, state_vector_t &stateNext) override |
| | propagates the system dynamics forward by one step More...
|
| |
| | DiscreteSystem (const SYSTEM_TYPE &type=GENERAL) |
| | constructor More...
|
| |
| virtual | ~DiscreteSystem () |
| | desctructor More...
|
| |
| virtual void | propagateDynamics (const StateVector< STATE_DIM, SCALAR > &state, const time_t n, StateVector< STATE_DIM, SCALAR > &stateNext)=0 |
| | propagates the system dynamics forward by one step More...
|
| |
| SYSTEM_TYPE | getType () const |
| | get the type of system More...
|
| |
template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
class ct::core::SwitchedDiscreteControlledSystem< STATE_DIM, CONTROL_DIM, SCALAR >
A general, switched non-linear discrete dynamic system with a control input.
This describes a general, switched non-linear discrete dynamic system of the following form
where
is the state,
the control input and
the time index.
refers to the dynamics in a specific mode. Modes are prespecified as a function of time.
For implementing your own SwitchedDiscreteControlledSystem, provide a vector of Discrete systems and a prespecified mode sequence.
We generally assume that the Controller is a state and time index dependent function
which allows any ControlledSystem to be re-written as a System of the form
which can be forward propagated directly.
- Template Parameters
-
| STATE_DIM | dimension of state vector |
| CONTROL_DIM | dimension of input vector |
| SCALAR | scalar type |
template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
propagates the controlled system dynamics forward by one step
evaluates
at a given state, control, index, and mode
- Parameters
-
| state | start state to propagate from |
| control | the control input to apply. This is a constant control input applied to the continuous-time dynamics |
| n | time index to propagate the dynamics at |
| stateNext | the resulting propagated state |
Implements ct::core::DiscreteControlledSystem< STATE_DIM, CONTROL_DIM, SCALAR >.
References ct::core::SwitchedDiscreteControlledSystem< STATE_DIM, CONTROL_DIM, SCALAR >::discreteModeSequence_, ct::core::PhaseSequence< Phase, Time >::getPhaseFromTime(), and ct::core::SwitchedDiscreteControlledSystem< STATE_DIM, CONTROL_DIM, SCALAR >::switchedSystems_.