|
| 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_.