- 3.0.2 optimal control module.
ct::optcon::OptConSolver< DERIVED, POLICY, SETTINGS, STATE_DIM, CONTROL_DIM, SCALAR, CONTINUOUS > Class Template Referenceabstract

#include <OptConSolver.h>

Public Types

typedef POLICY Policy_t
 
typedef SETTINGS Settings_t
 
typedef DERIVED Derived
 
typedef SCALAR Scalar_t
 

Public Member Functions

 OptConSolver ()
 
virtual ~OptConSolver ()
 
virtual void setProblem (const OptConProblem_t &optConProblem)
 Assigns the optimal control problem to the solver. More...
 
virtual void configure (const Settings_t &settings)=0
 
void configureFromFile (const std::string &filename, bool verbose=true, const std::string &ns=DERIVED::SolverName)
 
virtual bool solve ()=0
 
virtual bool runIteration ()
 
virtual const Policy_tgetSolution ()=0
 
virtual const core::StateTrajectory< STATE_DIM, SCALARgetStateTrajectory () const =0
 
virtual const core::ControlTrajectory< CONTROL_DIM, SCALARgetControlTrajectory () const =0
 
virtual const core::tpl::TimeArray< SCALAR > & getTimeArray () const =0
 
virtual void setInitialGuess (const Policy_t &initialGuess)=0
 
virtual SCALAR getTimeHorizon () const =0
 Get the time horizon the solver currently operates on. More...
 
virtual void changeTimeHorizon (const SCALAR &tf)=0
 Change the time horizon the solver operates on. More...
 
virtual void changeInitialState (const core::StateVector< STATE_DIM, SCALAR > &x0)=0
 Change the initial state for the optimal control problem. More...
 
virtual void changeCostFunction (const typename OptConProblem_t::CostFunctionPtr_t &cf)=0
 Change the cost function. More...
 
virtual void changeNonlinearSystem (const typename OptConProblem_t::DynamicsPtr_t &dyn)=0
 Change the nonlinear system. More...
 
virtual void changeLinearSystem (const typename OptConProblem_t::LinearPtr_t &lin)=0
 Change the linear system. More...
 
virtual void changeInputBoxConstraints (const typename OptConProblem_t::ConstraintPtr_t con)
 Change the box constraints. More...
 
virtual void changeStateBoxConstraints (const typename OptConProblem_t::ConstraintPtr_t con)
 
virtual void changeGeneralConstraints (const typename OptConProblem_t::ConstraintPtr_t con)
 Change the general constraints. More...
 
virtual SCALAR getCost () const
 
virtual std::vector< typename OptConProblem_t::DynamicsPtr_t > & getNonlinearSystemsInstances ()=0
 Direct accessor to the system instances. More...
 
virtual const std::vector< typename OptConProblem_t::DynamicsPtr_t > & getNonlinearSystemsInstances () const =0
 
virtual std::vector< typename OptConProblem_t::LinearPtr_t > & getLinearSystemsInstances ()=0
 Direct accessor to the linear system instances. More...
 
virtual const std::vector< typename OptConProblem_t::LinearPtr_t > & getLinearSystemsInstances () const =0
 
virtual std::vector< typename OptConProblem_t::CostFunctionPtr_t > & getCostFunctionInstances ()=0
 Direct accessor to the cost function instances. More...
 
virtual const std::vector< typename OptConProblem_t::CostFunctionPtr_t > & getCostFunctionInstances () const =0
 
virtual std::vector< typename OptConProblem_t::ConstraintPtr_t > & getInputBoxConstraintsInstances ()
 Direct accessor to the box constraint instances. More...
 
virtual const std::vector< typename OptConProblem_t::ConstraintPtr_t > & getInputBoxConstraintsInstances () const
 
virtual std::vector< typename OptConProblem_t::ConstraintPtr_t > & getStateBoxConstraintsInstances ()
 
virtual const std::vector< typename OptConProblem_t::ConstraintPtr_t > & getStateBoxConstraintsInstances () const
 
virtual std::vector< typename OptConProblem_t::ConstraintPtr_t > & getGeneralConstraintsInstances ()
 Direct accessor to the general constraints. More...
 
virtual const std::vector< typename OptConProblem_t::ConstraintPtr_t > & getGeneralConstraintsInstances () const
 
virtual void generateCode (const ct::core::DerivativesCppadSettings &settings)
 Generates source AD source code which can be used in the solver. This method needs to be called ahead of actually solving the problem (e.g. from a different executable) More...
 

Public Attributes

EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef std::conditional< CONTINUOUS, ContinuousOptConProblem< STATE_DIM, CONTROL_DIM, SCALAR >, DiscreteOptConProblem< STATE_DIM, CONTROL_DIM, SCALAR > >::type OptConProblem_t
 

Static Public Attributes

static const size_t STATE_D = STATE_DIM
 
static const size_t CONTROL_D = CONTROL_DIM
 

Member Typedef Documentation

◆ Policy_t

template<typename DERIVED, typename POLICY, typename SETTINGS, size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double, bool CONTINUOUS = true>
typedef POLICY ct::optcon::OptConSolver< DERIVED, POLICY, SETTINGS, STATE_DIM, CONTROL_DIM, SCALAR, CONTINUOUS >::Policy_t

◆ Settings_t

template<typename DERIVED, typename POLICY, typename SETTINGS, size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double, bool CONTINUOUS = true>
typedef SETTINGS ct::optcon::OptConSolver< DERIVED, POLICY, SETTINGS, STATE_DIM, CONTROL_DIM, SCALAR, CONTINUOUS >::Settings_t

◆ Derived

template<typename DERIVED, typename POLICY, typename SETTINGS, size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double, bool CONTINUOUS = true>
typedef DERIVED ct::optcon::OptConSolver< DERIVED, POLICY, SETTINGS, STATE_DIM, CONTROL_DIM, SCALAR, CONTINUOUS >::Derived

◆ Scalar_t

template<typename DERIVED, typename POLICY, typename SETTINGS, size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double, bool CONTINUOUS = true>
typedef SCALAR ct::optcon::OptConSolver< DERIVED, POLICY, SETTINGS, STATE_DIM, CONTROL_DIM, SCALAR, CONTINUOUS >::Scalar_t

Constructor & Destructor Documentation

◆ OptConSolver()

template<typename DERIVED, typename POLICY, typename SETTINGS, size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double, bool CONTINUOUS = true>
ct::optcon::OptConSolver< DERIVED, POLICY, SETTINGS, STATE_DIM, CONTROL_DIM, SCALAR, CONTINUOUS >::OptConSolver ( )
inline

◆ ~OptConSolver()

template<typename DERIVED, typename POLICY, typename SETTINGS, size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double, bool CONTINUOUS = true>
virtual ct::optcon::OptConSolver< DERIVED, POLICY, SETTINGS, STATE_DIM, CONTROL_DIM, SCALAR, CONTINUOUS >::~OptConSolver ( )
inlinevirtual

Member Function Documentation

◆ setProblem()

template<typename DERIVED, typename POLICY, typename SETTINGS, size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double, bool CONTINUOUS = true>
virtual void ct::optcon::OptConSolver< DERIVED, POLICY, SETTINGS, STATE_DIM, CONTROL_DIM, SCALAR, CONTINUOUS >::setProblem ( const OptConProblem_t optConProblem)
inlinevirtual

Assigns the optimal control problem to the solver.

Most solvers will require some computational effort to adjust to a new problem. Therefore, when only adjusting a problem, it is more efficient to adjust individual properties instead of assigning an entirely new problem. To adjust properties, you can use

Returns
returns true if the optimal control structure is valid for the given solver

◆ configure()

◆ configureFromFile()

template<typename DERIVED, typename POLICY, typename SETTINGS, size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double, bool CONTINUOUS = true>
void ct::optcon::OptConSolver< DERIVED, POLICY, SETTINGS, STATE_DIM, CONTROL_DIM, SCALAR, CONTINUOUS >::configureFromFile ( const std::string &  filename,
bool  verbose = true,
const std::string &  ns = DERIVED::SolverName 
)
inline

configures the solver from configFile

◆ solve()

template<typename DERIVED, typename POLICY, typename SETTINGS, size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double, bool CONTINUOUS = true>
virtual bool ct::optcon::OptConSolver< DERIVED, POLICY, SETTINGS, STATE_DIM, CONTROL_DIM, SCALAR, CONTINUOUS >::solve ( )
pure virtual

◆ runIteration()

template<typename DERIVED, typename POLICY, typename SETTINGS, size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double, bool CONTINUOUS = true>
virtual bool ct::optcon::OptConSolver< DERIVED, POLICY, SETTINGS, STATE_DIM, CONTROL_DIM, SCALAR, CONTINUOUS >::runIteration ( )
inlinevirtual

run a single iteration of the solver (might not be supported by all solvers)

Returns
true if a better solution was found

Reimplemented in ct::optcon::NLOptConSolver< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR, CONTINUOUS >.

◆ getSolution()

template<typename DERIVED, typename POLICY, typename SETTINGS, size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double, bool CONTINUOUS = true>
virtual const Policy_t& ct::optcon::OptConSolver< DERIVED, POLICY, SETTINGS, STATE_DIM, CONTROL_DIM, SCALAR, CONTINUOUS >::getSolution ( )
pure virtual

◆ getStateTrajectory()

template<typename DERIVED, typename POLICY, typename SETTINGS, size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double, bool CONTINUOUS = true>
virtual const core::StateTrajectory<STATE_DIM, SCALAR> ct::optcon::OptConSolver< DERIVED, POLICY, SETTINGS, STATE_DIM, CONTROL_DIM, SCALAR, CONTINUOUS >::getStateTrajectory ( ) const
pure virtual

◆ getControlTrajectory()

template<typename DERIVED, typename POLICY, typename SETTINGS, size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double, bool CONTINUOUS = true>
virtual const core::ControlTrajectory<CONTROL_DIM, SCALAR> ct::optcon::OptConSolver< DERIVED, POLICY, SETTINGS, STATE_DIM, CONTROL_DIM, SCALAR, CONTINUOUS >::getControlTrajectory ( ) const
pure virtual

◆ getTimeArray()

template<typename DERIVED, typename POLICY, typename SETTINGS, size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double, bool CONTINUOUS = true>
virtual const core::tpl::TimeArray<SCALAR>& ct::optcon::OptConSolver< DERIVED, POLICY, SETTINGS, STATE_DIM, CONTROL_DIM, SCALAR, CONTINUOUS >::getTimeArray ( ) const
pure virtual

◆ setInitialGuess()

template<typename DERIVED, typename POLICY, typename SETTINGS, size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double, bool CONTINUOUS = true>
virtual void ct::optcon::OptConSolver< DERIVED, POLICY, SETTINGS, STATE_DIM, CONTROL_DIM, SCALAR, CONTINUOUS >::setInitialGuess ( const Policy_t initialGuess)
pure virtual

◆ getTimeHorizon()

template<typename DERIVED, typename POLICY, typename SETTINGS, size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double, bool CONTINUOUS = true>
virtual SCALAR ct::optcon::OptConSolver< DERIVED, POLICY, SETTINGS, STATE_DIM, CONTROL_DIM, SCALAR, CONTINUOUS >::getTimeHorizon ( ) const
pure virtual

◆ changeTimeHorizon()

template<typename DERIVED, typename POLICY, typename SETTINGS, size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double, bool CONTINUOUS = true>
virtual void ct::optcon::OptConSolver< DERIVED, POLICY, SETTINGS, STATE_DIM, CONTROL_DIM, SCALAR, CONTINUOUS >::changeTimeHorizon ( const SCALAR tf)
pure virtual

◆ changeInitialState()

template<typename DERIVED, typename POLICY, typename SETTINGS, size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double, bool CONTINUOUS = true>
virtual void ct::optcon::OptConSolver< DERIVED, POLICY, SETTINGS, STATE_DIM, CONTROL_DIM, SCALAR, CONTINUOUS >::changeInitialState ( const core::StateVector< STATE_DIM, SCALAR > &  x0)
pure virtual

◆ changeCostFunction()

template<typename DERIVED, typename POLICY, typename SETTINGS, size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double, bool CONTINUOUS = true>
virtual void ct::optcon::OptConSolver< DERIVED, POLICY, SETTINGS, STATE_DIM, CONTROL_DIM, SCALAR, CONTINUOUS >::changeCostFunction ( const typename OptConProblem_t::CostFunctionPtr_t &  cf)
pure virtual

◆ changeNonlinearSystem()

template<typename DERIVED, typename POLICY, typename SETTINGS, size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double, bool CONTINUOUS = true>
virtual void ct::optcon::OptConSolver< DERIVED, POLICY, SETTINGS, STATE_DIM, CONTROL_DIM, SCALAR, CONTINUOUS >::changeNonlinearSystem ( const typename OptConProblem_t::DynamicsPtr_t &  dyn)
pure virtual

◆ changeLinearSystem()

template<typename DERIVED, typename POLICY, typename SETTINGS, size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double, bool CONTINUOUS = true>
virtual void ct::optcon::OptConSolver< DERIVED, POLICY, SETTINGS, STATE_DIM, CONTROL_DIM, SCALAR, CONTINUOUS >::changeLinearSystem ( const typename OptConProblem_t::LinearPtr_t &  lin)
pure virtual

◆ changeInputBoxConstraints()

template<typename DERIVED, typename POLICY, typename SETTINGS, size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double, bool CONTINUOUS = true>
virtual void ct::optcon::OptConSolver< DERIVED, POLICY, SETTINGS, STATE_DIM, CONTROL_DIM, SCALAR, CONTINUOUS >::changeInputBoxConstraints ( const typename OptConProblem_t::ConstraintPtr_t  con)
inlinevirtual

Change the box constraints.

This function does not need to be called if setProblem() has been called with an OptConProblem that had the correct linear system

Parameters
[in]conThe new box constraints

Referenced by ct::optcon::OptConSolver< DmsSolver< STATE_DIM, CONTROL_DIM, SCALAR >, DmsPolicy< STATE_DIM, CONTROL_DIM, SCALAR >, DmsSettings, STATE_DIM, CONTROL_DIM, SCALAR >::setProblem().

◆ changeStateBoxConstraints()

template<typename DERIVED, typename POLICY, typename SETTINGS, size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double, bool CONTINUOUS = true>
virtual void ct::optcon::OptConSolver< DERIVED, POLICY, SETTINGS, STATE_DIM, CONTROL_DIM, SCALAR, CONTINUOUS >::changeStateBoxConstraints ( const typename OptConProblem_t::ConstraintPtr_t  con)
inlinevirtual

◆ changeGeneralConstraints()

template<typename DERIVED, typename POLICY, typename SETTINGS, size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double, bool CONTINUOUS = true>
virtual void ct::optcon::OptConSolver< DERIVED, POLICY, SETTINGS, STATE_DIM, CONTROL_DIM, SCALAR, CONTINUOUS >::changeGeneralConstraints ( const typename OptConProblem_t::ConstraintPtr_t  con)
inlinevirtual

Change the general constraints.

This function does not need to be called if setProblem() has been called with an OptConProblem that had the correct linear system

Parameters
[in]conThe new general constraints

Referenced by ct::optcon::OptConSolver< DmsSolver< STATE_DIM, CONTROL_DIM, SCALAR >, DmsPolicy< STATE_DIM, CONTROL_DIM, SCALAR >, DmsSettings, STATE_DIM, CONTROL_DIM, SCALAR >::setProblem().

◆ getCost()

template<typename DERIVED, typename POLICY, typename SETTINGS, size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double, bool CONTINUOUS = true>
virtual SCALAR ct::optcon::OptConSolver< DERIVED, POLICY, SETTINGS, STATE_DIM, CONTROL_DIM, SCALAR, CONTINUOUS >::getCost ( ) const
inlinevirtual

◆ getNonlinearSystemsInstances() [1/2]

template<typename DERIVED, typename POLICY, typename SETTINGS, size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double, bool CONTINUOUS = true>
virtual std::vector<typename OptConProblem_t::DynamicsPtr_t>& ct::optcon::OptConSolver< DERIVED, POLICY, SETTINGS, STATE_DIM, CONTROL_DIM, SCALAR, CONTINUOUS >::getNonlinearSystemsInstances ( )
pure virtual

Direct accessor to the system instances.

Warning
{Use this only when performance absolutely matters and if you know what you are doing. Otherwise use e.g. changeNonlinearSystem() to change the system dynamics in a safe and easy way. You should especially not change the size of the vector or modify each entry differently.}
Returns

Implemented in ct::optcon::DmsSolver< STATE_DIM, CONTROL_DIM, SCALAR >, and ct::optcon::NLOptConSolver< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR, CONTINUOUS >.

Referenced by ct::optcon::OptConSolver< DmsSolver< STATE_DIM, CONTROL_DIM, SCALAR >, DmsPolicy< STATE_DIM, CONTROL_DIM, SCALAR >, DmsSettings, STATE_DIM, CONTROL_DIM, SCALAR >::getCost().

◆ getNonlinearSystemsInstances() [2/2]

template<typename DERIVED, typename POLICY, typename SETTINGS, size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double, bool CONTINUOUS = true>
virtual const std::vector<typename OptConProblem_t::DynamicsPtr_t>& ct::optcon::OptConSolver< DERIVED, POLICY, SETTINGS, STATE_DIM, CONTROL_DIM, SCALAR, CONTINUOUS >::getNonlinearSystemsInstances ( ) const
pure virtual

◆ getLinearSystemsInstances() [1/2]

template<typename DERIVED, typename POLICY, typename SETTINGS, size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double, bool CONTINUOUS = true>
virtual std::vector<typename OptConProblem_t::LinearPtr_t>& ct::optcon::OptConSolver< DERIVED, POLICY, SETTINGS, STATE_DIM, CONTROL_DIM, SCALAR, CONTINUOUS >::getLinearSystemsInstances ( )
pure virtual

Direct accessor to the linear system instances.

Warning
{Use this only when performance absolutely matters and if you know what you are doing. Otherwise use e.g. changeLinearSystem() to change the system dynamics in a safe and easy way. You should especially not change the size of the vector or modify each entry differently.}
Returns

Implemented in ct::optcon::DmsSolver< STATE_DIM, CONTROL_DIM, SCALAR >, and ct::optcon::NLOptConSolver< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR, CONTINUOUS >.

Referenced by ct::optcon::OptConSolver< DmsSolver< STATE_DIM, CONTROL_DIM, SCALAR >, DmsPolicy< STATE_DIM, CONTROL_DIM, SCALAR >, DmsSettings, STATE_DIM, CONTROL_DIM, SCALAR >::getCost().

◆ getLinearSystemsInstances() [2/2]

template<typename DERIVED, typename POLICY, typename SETTINGS, size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double, bool CONTINUOUS = true>
virtual const std::vector<typename OptConProblem_t::LinearPtr_t>& ct::optcon::OptConSolver< DERIVED, POLICY, SETTINGS, STATE_DIM, CONTROL_DIM, SCALAR, CONTINUOUS >::getLinearSystemsInstances ( ) const
pure virtual

◆ getCostFunctionInstances() [1/2]

template<typename DERIVED, typename POLICY, typename SETTINGS, size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double, bool CONTINUOUS = true>
virtual std::vector<typename OptConProblem_t::CostFunctionPtr_t>& ct::optcon::OptConSolver< DERIVED, POLICY, SETTINGS, STATE_DIM, CONTROL_DIM, SCALAR, CONTINUOUS >::getCostFunctionInstances ( )
pure virtual

Direct accessor to the cost function instances.

Warning
{Use this only when performance absolutely matters and if you know what you are doing. Otherwise use e.g. changeCostFunction() to change the system dynamics in a safe and easy way. You should especially not change the size of the vector or modify each entry differently.}
Returns

Implemented in ct::optcon::DmsSolver< STATE_DIM, CONTROL_DIM, SCALAR >, and ct::optcon::NLOptConSolver< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR, CONTINUOUS >.

Referenced by ct::optcon::OptConSolver< DmsSolver< STATE_DIM, CONTROL_DIM, SCALAR >, DmsPolicy< STATE_DIM, CONTROL_DIM, SCALAR >, DmsSettings, STATE_DIM, CONTROL_DIM, SCALAR >::getCost().

◆ getCostFunctionInstances() [2/2]

template<typename DERIVED, typename POLICY, typename SETTINGS, size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double, bool CONTINUOUS = true>
virtual const std::vector<typename OptConProblem_t::CostFunctionPtr_t>& ct::optcon::OptConSolver< DERIVED, POLICY, SETTINGS, STATE_DIM, CONTROL_DIM, SCALAR, CONTINUOUS >::getCostFunctionInstances ( ) const
pure virtual

◆ getInputBoxConstraintsInstances() [1/2]

template<typename DERIVED, typename POLICY, typename SETTINGS, size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double, bool CONTINUOUS = true>
virtual std::vector<typename OptConProblem_t::ConstraintPtr_t>& ct::optcon::OptConSolver< DERIVED, POLICY, SETTINGS, STATE_DIM, CONTROL_DIM, SCALAR, CONTINUOUS >::getInputBoxConstraintsInstances ( )
inlinevirtual

Direct accessor to the box constraint instances.

Warning
{Use this only when performance absolutely matters and if you know what you are doing. Otherwise use e.g. changeCostFunction() to change the system dynamics in a safe and easy way. You should especially not change the size of the vector or modify each entry differently.}
Returns
The state box constraint instances

Reimplemented in ct::optcon::DmsSolver< STATE_DIM, CONTROL_DIM, SCALAR >, and ct::optcon::NLOptConSolver< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR, CONTINUOUS >.

◆ getInputBoxConstraintsInstances() [2/2]

template<typename DERIVED, typename POLICY, typename SETTINGS, size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double, bool CONTINUOUS = true>
virtual const std::vector<typename OptConProblem_t::ConstraintPtr_t>& ct::optcon::OptConSolver< DERIVED, POLICY, SETTINGS, STATE_DIM, CONTROL_DIM, SCALAR, CONTINUOUS >::getInputBoxConstraintsInstances ( ) const
inlinevirtual

◆ getStateBoxConstraintsInstances() [1/2]

template<typename DERIVED, typename POLICY, typename SETTINGS, size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double, bool CONTINUOUS = true>
virtual std::vector<typename OptConProblem_t::ConstraintPtr_t>& ct::optcon::OptConSolver< DERIVED, POLICY, SETTINGS, STATE_DIM, CONTROL_DIM, SCALAR, CONTINUOUS >::getStateBoxConstraintsInstances ( )
inlinevirtual

◆ getStateBoxConstraintsInstances() [2/2]

template<typename DERIVED, typename POLICY, typename SETTINGS, size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double, bool CONTINUOUS = true>
virtual const std::vector<typename OptConProblem_t::ConstraintPtr_t>& ct::optcon::OptConSolver< DERIVED, POLICY, SETTINGS, STATE_DIM, CONTROL_DIM, SCALAR, CONTINUOUS >::getStateBoxConstraintsInstances ( ) const
inlinevirtual

◆ getGeneralConstraintsInstances() [1/2]

template<typename DERIVED, typename POLICY, typename SETTINGS, size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double, bool CONTINUOUS = true>
virtual std::vector<typename OptConProblem_t::ConstraintPtr_t>& ct::optcon::OptConSolver< DERIVED, POLICY, SETTINGS, STATE_DIM, CONTROL_DIM, SCALAR, CONTINUOUS >::getGeneralConstraintsInstances ( )
inlinevirtual

Direct accessor to the general constraints.

Warning
{Use this only when performance absolutely matters and if you know what you are doing. Otherwise use e.g. changeCostFunction() to change the system dynamics in a safe and easy way. You should especially not change the size of the vector or modify each entry differently.}
Returns
The general constraints instances.

Reimplemented in ct::optcon::DmsSolver< STATE_DIM, CONTROL_DIM, SCALAR >, and ct::optcon::NLOptConSolver< STATE_DIM, CONTROL_DIM, P_DIM, V_DIM, SCALAR, CONTINUOUS >.

◆ getGeneralConstraintsInstances() [2/2]

template<typename DERIVED, typename POLICY, typename SETTINGS, size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double, bool CONTINUOUS = true>
virtual const std::vector<typename OptConProblem_t::ConstraintPtr_t>& ct::optcon::OptConSolver< DERIVED, POLICY, SETTINGS, STATE_DIM, CONTROL_DIM, SCALAR, CONTINUOUS >::getGeneralConstraintsInstances ( ) const
inlinevirtual

◆ generateCode()

template<typename DERIVED, typename POLICY, typename SETTINGS, size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double, bool CONTINUOUS = true>
virtual void ct::optcon::OptConSolver< DERIVED, POLICY, SETTINGS, STATE_DIM, CONTROL_DIM, SCALAR, CONTINUOUS >::generateCode ( const ct::core::DerivativesCppadSettings settings)
inlinevirtual

Generates source AD source code which can be used in the solver. This method needs to be called ahead of actually solving the problem (e.g. from a different executable)

Parameters
[in]settingsThe settings indicating what to generate

Member Data Documentation

◆ OptConProblem_t

template<typename DERIVED, typename POLICY, typename SETTINGS, size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double, bool CONTINUOUS = true>
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef std::conditional<CONTINUOUS, ContinuousOptConProblem<STATE_DIM, CONTROL_DIM, SCALAR>, DiscreteOptConProblem<STATE_DIM, CONTROL_DIM, SCALAR> >::type ct::optcon::OptConSolver< DERIVED, POLICY, SETTINGS, STATE_DIM, CONTROL_DIM, SCALAR, CONTINUOUS >::OptConProblem_t

◆ STATE_D

template<typename DERIVED, typename POLICY, typename SETTINGS, size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double, bool CONTINUOUS = true>
const size_t ct::optcon::OptConSolver< DERIVED, POLICY, SETTINGS, STATE_DIM, CONTROL_DIM, SCALAR, CONTINUOUS >::STATE_D = STATE_DIM
static

◆ CONTROL_D

template<typename DERIVED, typename POLICY, typename SETTINGS, size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double, bool CONTINUOUS = true>
const size_t ct::optcon::OptConSolver< DERIVED, POLICY, SETTINGS, STATE_DIM, CONTROL_DIM, SCALAR, CONTINUOUS >::CONTROL_D = CONTROL_DIM
static

The documentation for this class was generated from the following file: