Drake
Drake C++ Documentation
Loading...
Searching...
No Matches
RegionOfAttractionOptions Struct Reference

Detailed Description

Consolidates the many possible options to be passed to the region of attraction algorithm.

#include <drake/systems/analysis/region_of_attraction.h>

Public Member Functions

 RegionOfAttractionOptions ()=default
template<typename Archive>
void Serialize (Archive *a)
 Passes this object to an Archive.

Public Attributes

symbolic::Expression lyapunov_candidate {}
 A candidate Lyapunov function using the symbolic Variables named x0, x1, ..., where the order matches the continuous state vector of the system being evaluated (or the vector state_variables).
VectorX< symbolic::Variable > state_variables {}
 If non-empty, a list of Variable that associates the variable name with the elements of the System's continuous state vector.
bool use_implicit_dynamics {false}
 If true, the system dynamics will be evaluated using CalcImplicitTimeDerivativesResidual instead of CalcTimeDerivatives to obtain g(x,ẋ) = 0 (instead of ẋ = f(x)).
std::optional< solvers::SolverId > solver_id {std::nullopt}
 If not std::nullopt, then we will solve the optimization problem using the specified solver; otherwise Drake will choose a solver.
std::optional< solvers::SolverOptions > solver_options {std::nullopt}
 The solver options used in the optimization problem.
double certificate_tolerance {1e-6}
 Absolute tolerance used to check polynomial coefficient equalities and conic constraints after each SOS solve.

Constructor & Destructor Documentation

◆ RegionOfAttractionOptions()

RegionOfAttractionOptions ( )
default

Member Function Documentation

◆ Serialize()

template<typename Archive>
void Serialize ( Archive * a)

Passes this object to an Archive.

Refer to YAML Serialization for background.

Member Data Documentation

◆ certificate_tolerance

double certificate_tolerance {1e-6}

Absolute tolerance used to check polynomial coefficient equalities and conic constraints after each SOS solve.

Must be finite and nonnegative. This is independent of the solver's own stopping tolerances. Increasing it can admit less accurate certificates; passing these numerical checks does not rigorously certify an inner approximation.

◆ lyapunov_candidate

symbolic::Expression lyapunov_candidate {}

A candidate Lyapunov function using the symbolic Variables named x0, x1, ..., where the order matches the continuous state vector of the system being evaluated (or the vector state_variables).

◆ solver_id

std::optional<solvers::SolverId> solver_id {std::nullopt}

If not std::nullopt, then we will solve the optimization problem using the specified solver; otherwise Drake will choose a solver.

◆ solver_options

std::optional<solvers::SolverOptions> solver_options {std::nullopt}

The solver options used in the optimization problem.

◆ state_variables

VectorX<symbolic::Variable> state_variables {}

If non-empty, a list of Variable that associates the variable name with the elements of the System's continuous state vector.

Must be empty or have size equal to the number of continuous state variables in the system.

◆ use_implicit_dynamics

bool use_implicit_dynamics {false}

If true, the system dynamics will be evaluated using CalcImplicitTimeDerivativesResidual instead of CalcTimeDerivatives to obtain g(x,ẋ) = 0 (instead of ẋ = f(x)).

The Lyapunov conditions will also be evaluated in the implicit form. This is more expensive than analysis in the explicit form, as it requires more indeterminates, but it enables analysis of systems with rational polynomial dynamics.

See https://underactuated.csail.mit.edu/lyapunov.html#ex:implicit for more details.


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