- 3.0.2 optimal control module.
ct::optcon::ConstraintDiscretizer< STATE_DIM, CONTROL_DIM, SCALAR > Class Template Reference

The class takes continuous constraints defined with the constraint toolbox and discretizes them over the DMS shots. These discretized constraints can then be used in the NLP module. More...

#include <ConstraintDiscretizer.h>

Inheritance diagram for ct::optcon::ConstraintDiscretizer< STATE_DIM, CONTROL_DIM, SCALAR >:
ct::optcon::tpl::DiscreteConstraintBase< SCALAR >

Public Types

typedef ct::core::StateVector< STATE_DIM, SCALARstate_vector_t
 
typedef ct::core::StateVectorArray< STATE_DIM, SCALARstate_vector_array_t
 
typedef ct::core::ControlVector< CONTROL_DIM, SCALARcontrol_vector_t
 
typedef ct::core::ControlVectorArray< CONTROL_DIM, SCALARcontrol_vector_array_t
 
typedef ct::core::tpl::TimeArray< SCALARtime_array_t
 
typedef Eigen::Matrix< SCALAR, Eigen::Dynamic, 1 > VectorXs
 
- Public Types inherited from ct::optcon::tpl::DiscreteConstraintBase< SCALAR >
using VectorXs = Eigen::Matrix< SCALAR, Eigen::Dynamic, 1 >
 

Public Member Functions

 ConstraintDiscretizer ()=default
 Default constructor. More...
 
 ~ConstraintDiscretizer () override=default
 Destructor. More...
 
 ConstraintDiscretizer (std::shared_ptr< OptVectorDms< STATE_DIM, CONTROL_DIM, SCALAR >> w, std::shared_ptr< SplinerBase< control_vector_t, SCALAR >> controlSpliner, std::shared_ptr< tpl::TimeGrid< SCALAR >> timeGrid, size_t N)
 Custom constructor. More...
 
void setBoxConstraints (std::shared_ptr< LinearConstraintContainer< STATE_DIM, CONTROL_DIM, SCALAR >> boxConstraints)
 
void setGeneralConstraints (std::shared_ptr< LinearConstraintContainer< STATE_DIM, CONTROL_DIM, SCALAR >> generalConstraints)
 
VectorXs eval () override
 Evaluates the constraint violation. More...
 
VectorXs evalSparseJacobian () override
 Returns the non zero elements of the eval method with respect to the optimization variables. More...
 
size_t getNumNonZerosJacobian () override
 Returns the number of non zero elements of the jacobian. More...
 
void genSparsityPattern (Eigen::VectorXi &iRow_vec, Eigen::VectorXi &jCol_vec) override
 Returns the sparsity structure of the constraint jacobian. More...
 
VectorXs getLowerBound () override
 Returns the lower bound of the constraint. More...
 
VectorXs getUpperBound () override
 Returns the upper bound of the constraint. More...
 
size_t getConstraintSize () override
 Returns size of the constraint vector. More...
 
- Public Member Functions inherited from ct::optcon::tpl::DiscreteConstraintBase< SCALAR >
 DiscreteConstraintBase ()=default
 Default constructor. More...
 
virtual ~DiscreteConstraintBase ()=default
 Destructor. More...
 
virtual void genSparsityPatternHessian (Eigen::VectorXi &iRow_vec, Eigen::VectorXi &jCol_vec)
 Returns the sparsity structure of the constraint hessian. More...
 
virtual void sparseHessianValues (const Eigen::VectorXd &optVec, const Eigen::VectorXd &lambda, Eigen::VectorXd &sparseHes)
 Returns the non zero elements (values) of the Hessian matrix of this constraint. More...
 
Eigen::VectorXi & iRowHessian ()
 
Eigen::VectorXi & jColHessian ()
 

Public Attributes

EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef tpl::DiscreteConstraintBase< SCALARBASE
 

Additional Inherited Members

- Protected Member Functions inherited from ct::optcon::tpl::DiscreteConstraintBase< SCALAR >
size_t genDiagonalIndices (const size_t col_start, const size_t num_elements, Eigen::VectorXi &iRow_vec, Eigen::VectorXi &jCol_vec, const size_t indexNumber)
 This method generates Row and Column vectors which indicate the sparsity pattern of the constraint jacobian for a quadratic matrix block containing diagonal entries only. More...
 
size_t genBlockIndices (const size_t col_start, const size_t num_rows, const size_t num_cols, Eigen::VectorXi &iRow_vec, Eigen::VectorXi &jCol_vec, const size_t indexNumber)
 This method generates Row and Column vectors which indicate the sparsity pattern of the constraint jacobian for an arbitrary dense matrix block. More...
 
- Protected Attributes inherited from ct::optcon::tpl::DiscreteConstraintBase< SCALAR >
Eigen::VectorXi iRowHessian_
 
Eigen::VectorXi jColHessian_
 

Detailed Description

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
class ct::optcon::ConstraintDiscretizer< STATE_DIM, CONTROL_DIM, SCALAR >

The class takes continuous constraints defined with the constraint toolbox and discretizes them over the DMS shots. These discretized constraints can then be used in the NLP module.

Template Parameters
STATE_DIMThe state dimension
CONTROL_DIMThe input dimension

Member Typedef Documentation

◆ state_vector_t

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
typedef ct::core::StateVector<STATE_DIM, SCALAR> ct::optcon::ConstraintDiscretizer< STATE_DIM, CONTROL_DIM, SCALAR >::state_vector_t

◆ state_vector_array_t

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
typedef ct::core::StateVectorArray<STATE_DIM, SCALAR> ct::optcon::ConstraintDiscretizer< STATE_DIM, CONTROL_DIM, SCALAR >::state_vector_array_t

◆ control_vector_t

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
typedef ct::core::ControlVector<CONTROL_DIM, SCALAR> ct::optcon::ConstraintDiscretizer< STATE_DIM, CONTROL_DIM, SCALAR >::control_vector_t

◆ control_vector_array_t

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
typedef ct::core::ControlVectorArray<CONTROL_DIM, SCALAR> ct::optcon::ConstraintDiscretizer< STATE_DIM, CONTROL_DIM, SCALAR >::control_vector_array_t

◆ time_array_t

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
typedef ct::core::tpl::TimeArray<SCALAR> ct::optcon::ConstraintDiscretizer< STATE_DIM, CONTROL_DIM, SCALAR >::time_array_t

◆ VectorXs

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
typedef Eigen::Matrix<SCALAR, Eigen::Dynamic, 1> ct::optcon::ConstraintDiscretizer< STATE_DIM, CONTROL_DIM, SCALAR >::VectorXs

Constructor & Destructor Documentation

◆ ConstraintDiscretizer() [1/2]

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
ct::optcon::ConstraintDiscretizer< STATE_DIM, CONTROL_DIM, SCALAR >::ConstraintDiscretizer ( )
default

Default constructor.

◆ ~ConstraintDiscretizer()

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
ct::optcon::ConstraintDiscretizer< STATE_DIM, CONTROL_DIM, SCALAR >::~ConstraintDiscretizer ( )
overridedefault

Destructor.

◆ ConstraintDiscretizer() [2/2]

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
ct::optcon::ConstraintDiscretizer< STATE_DIM, CONTROL_DIM, SCALAR >::ConstraintDiscretizer ( std::shared_ptr< OptVectorDms< STATE_DIM, CONTROL_DIM, SCALAR >>  w,
std::shared_ptr< SplinerBase< control_vector_t, SCALAR >>  controlSpliner,
std::shared_ptr< tpl::TimeGrid< SCALAR >>  timeGrid,
size_t  N 
)
inline

Custom constructor.

Parameters
[in]wThe optimization variables
[in]c_continuousThe continuous constraints
[in]activeIndA vector defining at which shots the constraint is active

Member Function Documentation

◆ setBoxConstraints()

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
void ct::optcon::ConstraintDiscretizer< STATE_DIM, CONTROL_DIM, SCALAR >::setBoxConstraints ( std::shared_ptr< LinearConstraintContainer< STATE_DIM, CONTROL_DIM, SCALAR >>  boxConstraints)
inline

◆ setGeneralConstraints()

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
void ct::optcon::ConstraintDiscretizer< STATE_DIM, CONTROL_DIM, SCALAR >::setGeneralConstraints ( std::shared_ptr< LinearConstraintContainer< STATE_DIM, CONTROL_DIM, SCALAR >>  generalConstraints)
inline

◆ eval()

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
VectorXs ct::optcon::ConstraintDiscretizer< STATE_DIM, CONTROL_DIM, SCALAR >::eval ( )
inlineoverridevirtual

Evaluates the constraint violation.

Returns
A vector of the evaluated constraint violation

Implements ct::optcon::tpl::DiscreteConstraintBase< SCALAR >.

References n.

◆ evalSparseJacobian()

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
VectorXs ct::optcon::ConstraintDiscretizer< STATE_DIM, CONTROL_DIM, SCALAR >::evalSparseJacobian ( )
inlineoverridevirtual

Returns the non zero elements of the eval method with respect to the optimization variables.

Returns
A vector of the non zero elements of the constraint jacobian

Implements ct::optcon::tpl::DiscreteConstraintBase< SCALAR >.

References n.

◆ getNumNonZerosJacobian()

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
size_t ct::optcon::ConstraintDiscretizer< STATE_DIM, CONTROL_DIM, SCALAR >::getNumNonZerosJacobian ( )
inlineoverridevirtual

Returns the number of non zero elements of the jacobian.

Returns
The number of non zero elements of the jacobian (which should be equal to the return value of evalSparseJacobian)

Implements ct::optcon::tpl::DiscreteConstraintBase< SCALAR >.

◆ genSparsityPattern()

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
void ct::optcon::ConstraintDiscretizer< STATE_DIM, CONTROL_DIM, SCALAR >::genSparsityPattern ( Eigen::VectorXi &  iRow_vec,
Eigen::VectorXi &  jCol_vec 
)
inlineoverridevirtual

Returns the sparsity structure of the constraint jacobian.

Parameters
[out]iRow_vecA vector containing the row indices of the non zero elements of the constraint jacobian
[out]jCol_vecA vector containing the column indices of the non zero elements of the constraint jacobian

Implements ct::optcon::tpl::DiscreteConstraintBase< SCALAR >.

References n.

◆ getLowerBound()

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
VectorXs ct::optcon::ConstraintDiscretizer< STATE_DIM, CONTROL_DIM, SCALAR >::getLowerBound ( )
inlineoverridevirtual

Returns the lower bound of the constraint.

Returns
The lower constraint bound

Implements ct::optcon::tpl::DiscreteConstraintBase< SCALAR >.

References n.

◆ getUpperBound()

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
VectorXs ct::optcon::ConstraintDiscretizer< STATE_DIM, CONTROL_DIM, SCALAR >::getUpperBound ( )
inlineoverridevirtual

Returns the upper bound of the constraint.

Returns
The upper constraint bound

Implements ct::optcon::tpl::DiscreteConstraintBase< SCALAR >.

References n.

◆ getConstraintSize()

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
size_t ct::optcon::ConstraintDiscretizer< STATE_DIM, CONTROL_DIM, SCALAR >::getConstraintSize ( )
inlineoverridevirtual

Returns size of the constraint vector.

Returns
The size of the constraint vector (should be equal to the size of the return value of the eval method)

Implements ct::optcon::tpl::DiscreteConstraintBase< SCALAR >.

Member Data Documentation

◆ BASE

template<size_t STATE_DIM, size_t CONTROL_DIM, typename SCALAR = double>
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef tpl::DiscreteConstraintBase<SCALAR> ct::optcon::ConstraintDiscretizer< STATE_DIM, CONTROL_DIM, SCALAR >::BASE

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