- 3.0.2 optimal control module.
|
A cost function which contains only terms that have analytical derivatives. More...
#include <CostFunctionAnalytical.hpp>
Public Types | |
typedef Eigen::Matrix< SCALAR, CONTROL_DIM, CONTROL_DIM > | control_matrix_t |
typedef Eigen::Matrix< SCALAR, CONTROL_DIM, STATE_DIM > | control_state_matrix_t |
typedef core::StateVector< STATE_DIM, SCALAR > | state_vector_t |
typedef core::ControlVector< CONTROL_DIM, SCALAR > | control_vector_t |
Public Types inherited from ct::optcon::CostFunctionQuadratic< STATE_DIM, CONTROL_DIM, SCALAR > | |
typedef Eigen::Matrix< SCALAR, CONTROL_DIM, CONTROL_DIM > | control_matrix_t |
typedef Eigen::Matrix< SCALAR, CONTROL_DIM, STATE_DIM > | control_state_matrix_t |
typedef core::StateVector< STATE_DIM, SCALAR > | state_vector_t |
typedef core::ControlVector< CONTROL_DIM, SCALAR > | control_vector_t |
typedef CostFunction< STATE_DIM, CONTROL_DIM, SCALAR > | BASE |
Public Types inherited from ct::optcon::CostFunction< STATE_DIM, CONTROL_DIM, SCALAR > | |
typedef core::ControlVector< CONTROL_DIM, SCALAR > | control_vector_t |
Public Member Functions | |
CostFunctionAnalytical () | |
Basic constructor. More... | |
CostFunctionAnalytical (const CostFunctionAnalytical &arg) | |
Copy constructor. More... | |
CostFunctionAnalytical (const std::string &filename, bool verbose=false) | |
Constructor loading function from file. More... | |
CostFunctionAnalytical< STATE_DIM, CONTROL_DIM, SCALAR > * | clone () const override |
~CostFunctionAnalytical () | |
SCALAR | evaluateIntermediate () override |
evaluate intermediate costs More... | |
SCALAR | evaluateTerminal () override |
evaluate terminal costs More... | |
state_vector_t | stateDerivativeIntermediate () override |
Computes intermediate-cost first-order derivative with respect to state. More... | |
state_vector_t | stateDerivativeTerminal () override |
state_matrix_t | stateSecondDerivativeIntermediate () override |
Computes intermediate-cost second-order derivative with respect to state. More... | |
state_matrix_t | stateSecondDerivativeTerminal () override |
Computes final-cost second-order derivative with respect to state. More... | |
control_vector_t | controlDerivativeIntermediate () override |
Computes intermediate-cost first-order derivative with respect to control. More... | |
control_vector_t | controlDerivativeTerminal () override |
Computes terminal-cost first-order derivative with respect to control. More... | |
control_matrix_t | controlSecondDerivativeIntermediate () override |
Computes intermediate-cost second-order derivative with respect to input. More... | |
control_matrix_t | controlSecondDerivativeTerminal () override |
Computes final-cost second-order derivative with respect to input. More... | |
control_state_matrix_t | stateControlDerivativeIntermediate () override |
Computes intermediate-cost derivative with respect to state and control. More... | |
control_state_matrix_t | stateControlDerivativeTerminal () override |
Computes final-cost derivative with respect to state and control. More... | |
void | loadFromConfigFile (const std::string &filename, bool verbose=false) override |
Loads cost function from config file. More... | |
Public Member Functions inherited from ct::optcon::CostFunctionQuadratic< STATE_DIM, CONTROL_DIM, SCALAR > | |
CostFunctionQuadratic () | |
CostFunctionQuadratic (const CostFunctionQuadratic &arg) | |
virtual | ~CostFunctionQuadratic () |
virtual size_t | addIntermediateTerm (std::shared_ptr< TermBase< STATE_DIM, CONTROL_DIM, SCALAR >> term, bool verbose=false) |
Adds an intermediate term. More... | |
virtual size_t | addFinalTerm (std::shared_ptr< TermBase< STATE_DIM, CONTROL_DIM, SCALAR >> term, bool verbose=false) |
Adds a final term. More... | |
virtual void | updateReferenceState (const state_vector_t &x_ref) |
update the reference state for intermediate cost terms More... | |
virtual void | updateFinalState (const state_vector_t &x_final) |
update the reference state for final cost terms More... | |
virtual void | updateReferenceControl (const control_vector_t &u_ref) |
update the reference control for intermediate cost terms More... | |
bool | stateDerivativeIntermediateTest (bool verbose=false) |
compare the state derivative against numerical differentiation More... | |
bool | controlDerivativeIntermediateTest (bool verbose=false) |
compare the control derivative against numerical differentiation More... | |
std::shared_ptr< TermBase< STATE_DIM, CONTROL_DIM, SCALAR > > | getIntermediateTermById (const size_t id) |
std::shared_ptr< TermBase< STATE_DIM, CONTROL_DIM, SCALAR > > | getFinalTermById (const size_t id) |
std::shared_ptr< TermBase< STATE_DIM, CONTROL_DIM, SCALAR > > | getIntermediateTermByName (const std::string &name) |
std::shared_ptr< TermBase< STATE_DIM, CONTROL_DIM, SCALAR > > | getFinalTermByName (const std::string &name) |
virtual void | initialize () |
initialize the cost function (e.g. to be used in CostFunctionAD) More... | |
Public Member Functions inherited from ct::optcon::CostFunction< STATE_DIM, CONTROL_DIM, SCALAR > | |
CostFunction () | |
Default constructor. More... | |
virtual | ~CostFunction () |
Destructor. More... | |
CostFunction (const CostFunction &arg) | |
Copy constructor. More... | |
virtual void | setCurrentStateAndControl (const state_vector_t &x, const control_vector_t &u, const SCALAR &t=SCALAR(0.0)) |
virtual void | getCurrentStateAndControl (Eigen::Matrix< SCALAR, STATE_DIM, 1 > &x, Eigen::Matrix< SCALAR, CONTROL_DIM, 1 > &u, SCALAR &t) const |
sets current state, control and time More... | |
virtual void | shiftTime (const SCALAR t) |
Public Attributes | |
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef Eigen::Matrix< SCALAR, STATE_DIM, STATE_DIM > | state_matrix_t |
Public Attributes inherited from ct::optcon::CostFunctionQuadratic< STATE_DIM, CONTROL_DIM, SCALAR > | |
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef Eigen::Matrix< SCALAR, STATE_DIM, STATE_DIM > | state_matrix_t |
Public Attributes inherited from ct::optcon::CostFunction< STATE_DIM, CONTROL_DIM, SCALAR > | |
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef core::StateVector< STATE_DIM, SCALAR > | state_vector_t |
Additional Inherited Members | |
Protected Member Functions inherited from ct::optcon::CostFunctionQuadratic< STATE_DIM, CONTROL_DIM, SCALAR > | |
SCALAR | evaluateIntermediateBase () |
evaluate intermediate analytical cost terms More... | |
SCALAR | evaluateTerminalBase () |
evaluate terminal analytical cost terms More... | |
state_vector_t | stateDerivativeIntermediateBase () |
evaluate intermediate analytical state derivatives More... | |
state_vector_t | stateDerivativeTerminalBase () |
evaluate terminal analytical state derivatives More... | |
state_matrix_t | stateSecondDerivativeIntermediateBase () |
evaluate intermediate analytical state second derivatives More... | |
state_matrix_t | stateSecondDerivativeTerminalBase () |
evaluate terminal analytical state second derivatives More... | |
control_vector_t | controlDerivativeIntermediateBase () |
evaluate intermediate analytical control derivatives More... | |
control_vector_t | controlDerivativeTerminalBase () |
evaluate terminal analytical control derivatives More... | |
control_matrix_t | controlSecondDerivativeIntermediateBase () |
evaluate intermediate analytical control second derivatives More... | |
control_matrix_t | controlSecondDerivativeTerminalBase () |
evaluate terminal analytical control second derivatives More... | |
control_state_matrix_t | stateControlDerivativeIntermediateBase () |
evaluate intermediate analytical control mixed state control derivatives More... | |
control_state_matrix_t | stateControlDerivativeTerminalBase () |
evaluate terminal analytical control mixed state control derivatives More... | |
state_vector_t | stateDerivativeIntermediateNumDiff () |
compute the state derivative by numerical differentiation (can be used for testing) More... | |
control_vector_t | controlDerivativeIntermediateNumDiff () |
compute the control derivative by numerical differentiation (can be used for testing) More... | |
Protected Attributes inherited from ct::optcon::CostFunctionQuadratic< STATE_DIM, CONTROL_DIM, SCALAR > | |
SCALAR | eps_ |
stepsize for numerical differentiation More... | |
bool | doubleSidedDerivative_ = true |
use double sided derivatives in numerical differentiation More... | |
std::vector< std::shared_ptr< TermBase< STATE_DIM, CONTROL_DIM, SCALAR > > > | intermediateCostAnalytical_ |
std::vector< std::shared_ptr< TermBase< STATE_DIM, CONTROL_DIM, SCALAR > > > | finalCostAnalytical_ |
Protected Attributes inherited from ct::optcon::CostFunction< STATE_DIM, CONTROL_DIM, SCALAR > | |
state_vector_t | x_ |
control_vector_t | u_ |
SCALAR | t_ |
SCALAR | t_shift_ |
A cost function which contains only terms that have analytical derivatives.
This class provides functions to evaluate a cost function and computes its first and second order derivatives. This cost function assumes that analytical derivatives for all terms are available.
typedef Eigen::Matrix<SCALAR, CONTROL_DIM, CONTROL_DIM> ct::optcon::CostFunctionAnalytical< STATE_DIM, CONTROL_DIM, SCALAR >::control_matrix_t |
typedef Eigen::Matrix<SCALAR, CONTROL_DIM, STATE_DIM> ct::optcon::CostFunctionAnalytical< STATE_DIM, CONTROL_DIM, SCALAR >::control_state_matrix_t |
typedef core::StateVector<STATE_DIM, SCALAR> ct::optcon::CostFunctionAnalytical< STATE_DIM, CONTROL_DIM, SCALAR >::state_vector_t |
typedef core::ControlVector<CONTROL_DIM, SCALAR> ct::optcon::CostFunctionAnalytical< STATE_DIM, CONTROL_DIM, SCALAR >::control_vector_t |
ct::optcon::CostFunctionAnalytical< STATE_DIM, CONTROL_DIM, SCALAR >::CostFunctionAnalytical | ( | ) |
Basic constructor.
Referenced by ct::optcon::CostFunctionAnalytical< STATE_DIM, CONTROL_DIM, SCALAR >::clone().
ct::optcon::CostFunctionAnalytical< STATE_DIM, CONTROL_DIM, SCALAR >::CostFunctionAnalytical | ( | const CostFunctionAnalytical< STATE_DIM, CONTROL_DIM, SCALAR > & | arg | ) |
Copy constructor.
arg | cost function to copy |
ct::optcon::CostFunctionAnalytical< STATE_DIM, CONTROL_DIM, SCALAR >::CostFunctionAnalytical | ( | const std::string & | filename, |
bool | verbose = false |
||
) |
Constructor loading function from file.
filename | config file location |
verbose | flag enabling printouts |
References ct::optcon::CostFunctionAnalytical< STATE_DIM, CONTROL_DIM, SCALAR >::loadFromConfigFile().
ct::optcon::CostFunctionAnalytical< STATE_DIM, CONTROL_DIM, SCALAR >::~CostFunctionAnalytical | ( | ) |
Destructor
|
overridevirtual |
Deep-cloning of cost function
Implements ct::optcon::CostFunctionQuadratic< STATE_DIM, CONTROL_DIM, SCALAR >.
References ct::optcon::CostFunctionAnalytical< STATE_DIM, CONTROL_DIM, SCALAR >::CostFunctionAnalytical().
|
overridevirtual |
evaluate intermediate costs
Evaluates the running/intermediate cost function for the control, state and time set in setCurrentStateAndControl()
Implements ct::optcon::CostFunction< STATE_DIM, CONTROL_DIM, SCALAR >.
References ct::optcon::CostFunctionQuadratic< STATE_DIM, CONTROL_DIM, SCALAR >::evaluateIntermediateBase().
|
overridevirtual |
evaluate terminal costs
Evaluates the terminal cost for a given state and control set in setCurrentStateAndControl(). This usually ignores time.
Implements ct::optcon::CostFunction< STATE_DIM, CONTROL_DIM, SCALAR >.
References ct::optcon::CostFunctionQuadratic< STATE_DIM, CONTROL_DIM, SCALAR >::evaluateTerminalBase().
|
overridevirtual |
Computes intermediate-cost first-order derivative with respect to state.
Implements ct::optcon::CostFunctionQuadratic< STATE_DIM, CONTROL_DIM, SCALAR >.
References ct::optcon::CostFunctionQuadratic< STATE_DIM, CONTROL_DIM, SCALAR >::stateDerivativeIntermediateBase().
Referenced by ct::optcon::example::TEST().
|
overridevirtual |
Computes terminal-cost first-order derivative with respect to state
Implements ct::optcon::CostFunctionQuadratic< STATE_DIM, CONTROL_DIM, SCALAR >.
References ct::optcon::CostFunctionQuadratic< STATE_DIM, CONTROL_DIM, SCALAR >::stateDerivativeTerminalBase().
Referenced by ct::optcon::example::TEST().
|
overridevirtual |
Computes intermediate-cost second-order derivative with respect to state.
Implements ct::optcon::CostFunctionQuadratic< STATE_DIM, CONTROL_DIM, SCALAR >.
References ct::optcon::CostFunctionQuadratic< STATE_DIM, CONTROL_DIM, SCALAR >::stateSecondDerivativeIntermediateBase().
Referenced by ct::optcon::example::TEST().
|
overridevirtual |
Computes final-cost second-order derivative with respect to state.
Implements ct::optcon::CostFunctionQuadratic< STATE_DIM, CONTROL_DIM, SCALAR >.
References ct::optcon::CostFunctionQuadratic< STATE_DIM, CONTROL_DIM, SCALAR >::stateSecondDerivativeTerminalBase().
Referenced by ct::optcon::example::TEST().
|
overridevirtual |
Computes intermediate-cost first-order derivative with respect to control.
Implements ct::optcon::CostFunctionQuadratic< STATE_DIM, CONTROL_DIM, SCALAR >.
References ct::optcon::CostFunctionQuadratic< STATE_DIM, CONTROL_DIM, SCALAR >::controlDerivativeIntermediateBase().
Referenced by ct::optcon::example::TEST().
|
overridevirtual |
Computes terminal-cost first-order derivative with respect to control.
Not available for all cost functions. Throws an exception if not available.
Reimplemented from ct::optcon::CostFunctionQuadratic< STATE_DIM, CONTROL_DIM, SCALAR >.
References ct::optcon::CostFunctionQuadratic< STATE_DIM, CONTROL_DIM, SCALAR >::controlDerivativeTerminalBase().
|
overridevirtual |
Computes intermediate-cost second-order derivative with respect to input.
Implements ct::optcon::CostFunctionQuadratic< STATE_DIM, CONTROL_DIM, SCALAR >.
Referenced by ct::optcon::example::TEST().
|
overridevirtual |
Computes final-cost second-order derivative with respect to input.
Not available for all cost functions. Throws an exception if not available.
Reimplemented from ct::optcon::CostFunctionQuadratic< STATE_DIM, CONTROL_DIM, SCALAR >.
References ct::optcon::CostFunctionQuadratic< STATE_DIM, CONTROL_DIM, SCALAR >::controlSecondDerivativeTerminalBase().
|
overridevirtual |
Computes intermediate-cost derivative with respect to state and control.
Implements ct::optcon::CostFunctionQuadratic< STATE_DIM, CONTROL_DIM, SCALAR >.
|
overridevirtual |
Computes final-cost derivative with respect to state and control.
Reimplemented from ct::optcon::CostFunctionQuadratic< STATE_DIM, CONTROL_DIM, SCALAR >.
References ct::optcon::CostFunctionQuadratic< STATE_DIM, CONTROL_DIM, SCALAR >::stateControlDerivativeTerminalBase().
|
overridevirtual |
Loads cost function from config file.
filename | config file location |
verbose | verbosity flag which enables printout |
Reimplemented from ct::optcon::CostFunctionQuadratic< STATE_DIM, CONTROL_DIM, SCALAR >.
References ct::optcon::addTerm(), CT_LOADABLE_TERMS, ct::optcon::CostFunctionQuadratic< STATE_DIM, CONTROL_DIM, SCALAR >::finalCostAnalytical_, i, and ct::optcon::CostFunctionQuadratic< STATE_DIM, CONTROL_DIM, SCALAR >::intermediateCostAnalytical_.
Referenced by ct::optcon::CostFunctionAnalytical< STATE_DIM, CONTROL_DIM, SCALAR >::CostFunctionAnalytical().
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef Eigen::Matrix<SCALAR, STATE_DIM, STATE_DIM> ct::optcon::CostFunctionAnalytical< STATE_DIM, CONTROL_DIM, SCALAR >::state_matrix_t |