robotoc
robotoc - efficient ROBOT Optimal Control solvers
|
The switching time optimization (STO) problem. More...
#include <switching_time_optimization.hpp>
Public Member Functions | |
SwitchingTimeOptimization (const OCP &ocp) | |
Construct the STO problem. More... | |
SwitchingTimeOptimization () | |
Default constructor. More... | |
~SwitchingTimeOptimization ()=default | |
Default destructor. More... | |
SwitchingTimeOptimization (const SwitchingTimeOptimization &)=default | |
Default copy constructor. More... | |
SwitchingTimeOptimization & | operator= (const SwitchingTimeOptimization &)=default |
Default copy assign operator. More... | |
SwitchingTimeOptimization (SwitchingTimeOptimization &&) noexcept=default | |
Default move constructor. More... | |
SwitchingTimeOptimization & | operator= (SwitchingTimeOptimization &&) noexcept=default |
Default move assign operator. More... | |
void | setRegularization (const double sto_reg) |
Sets the regularization paremeter on the STO problem. More... | |
void | initConstraints (const TimeDiscretization &time_discretization) |
Initializes the priaml-dual interior point method for inequality constraints. More... | |
bool | isFeasible (const TimeDiscretization &time_discretization) |
Checks whether the solution is feasible under inequality constraints. More... | |
void | evalSTO (const TimeDiscretization &time_discretization) |
Computes the cost and constraint violations. More... | |
void | evalKKT (const TimeDiscretization &time_discretization, KKTMatrix &kkt_matrix, KKTResidual &kkt_residual) |
Computes the KKT residual and matrix. More... | |
const PerformanceIndex & | getEval () const |
Gets the performance index of the evaluation. More... | |
void | computeStepSizes (const TimeDiscretization &time_discretization, const Direction &d) |
Computes the step sizes via the fraction-to-boundary-rule. More... | |
double | maxPrimalStepSize () const |
Gets the maximum primal step size of the fraction-to-boundary-rule. More... | |
double | maxDualStepSize () const |
Gets the maximum dual step size of the fraction-to-boundary-rule. More... | |
void | integrateSolution (const TimeDiscretization &time_discretization, const double primal_step_size, const double dual_step_size, const Direction &d) |
Computes the initial state direction. More... | |
The switching time optimization (STO) problem.
robotoc::SwitchingTimeOptimization::SwitchingTimeOptimization | ( | const OCP & | ocp | ) |
Construct the STO problem.
[in] | ocp | Optimal control problem. |
robotoc::SwitchingTimeOptimization::SwitchingTimeOptimization | ( | ) |
Default constructor.
|
default |
Default destructor.
|
default |
Default copy constructor.
|
defaultnoexcept |
Default move constructor.
void robotoc::SwitchingTimeOptimization::computeStepSizes | ( | const TimeDiscretization & | time_discretization, |
const Direction & | d | ||
) |
Computes the step sizes via the fraction-to-boundary-rule.
[in] | time_discretization | Time discretization. |
[in] | d | Direction. |
void robotoc::SwitchingTimeOptimization::evalKKT | ( | const TimeDiscretization & | time_discretization, |
KKTMatrix & | kkt_matrix, | ||
KKTResidual & | kkt_residual | ||
) |
Computes the KKT residual and matrix.
[in] | time_discretization | Time discretization. |
[in,out] | kkt_matrix | KKT matrix. |
[in,out] | kkt_residual | KKT residual. |
void robotoc::SwitchingTimeOptimization::evalSTO | ( | const TimeDiscretization & | time_discretization | ) |
Computes the cost and constraint violations.
[in] | time_discretization | Time discretization. |
const PerformanceIndex & robotoc::SwitchingTimeOptimization::getEval | ( | ) | const |
Gets the performance index of the evaluation.
void robotoc::SwitchingTimeOptimization::initConstraints | ( | const TimeDiscretization & | time_discretization | ) |
Initializes the priaml-dual interior point method for inequality constraints.
[in] | time_discretization | Time discretization. |
void robotoc::SwitchingTimeOptimization::integrateSolution | ( | const TimeDiscretization & | time_discretization, |
const double | primal_step_size, | ||
const double | dual_step_size, | ||
const Direction & | d | ||
) |
Computes the initial state direction.
[in] | time_discretization | Time discretization. |
[in] | primal_step_size | Primal step size. |
[in] | dual_step_size | Dual step size. |
[in,out] | d | Direction. |
bool robotoc::SwitchingTimeOptimization::isFeasible | ( | const TimeDiscretization & | time_discretization | ) |
Checks whether the solution is feasible under inequality constraints.
[in] | time_discretization | Time discretization. |
double robotoc::SwitchingTimeOptimization::maxDualStepSize | ( | ) | const |
Gets the maximum dual step size of the fraction-to-boundary-rule.
double robotoc::SwitchingTimeOptimization::maxPrimalStepSize | ( | ) | const |
Gets the maximum primal step size of the fraction-to-boundary-rule.
|
default |
Default copy assign operator.
|
defaultnoexcept |
Default move assign operator.
void robotoc::SwitchingTimeOptimization::setRegularization | ( | const double | sto_reg | ) |
Sets the regularization paremeter on the STO problem.
[in] | sto_reg | The regularization paremeter. Must be non-negative. |