Drake
Drake C++ Documentation
linear_system.h File Reference
#include <memory>
#include <optional>
#include <utility>
#include <variant>
#include "drake/common/drake_copyable.h"
#include "drake/common/symbolic/expression.h"
#include "drake/systems/primitives/affine_system.h"
Include dependency graph for linear_system.h:
This graph shows which files directly or indirectly include this file:

Classes

class  LinearSystem< T >
 A discrete OR continuous linear system. More...
 
class  TimeVaryingLinearSystem< T >
 Base class for a discrete or continuous linear time-varying (LTV) system. More...
 

Namespaces

 drake
 
 drake::systems
 

Functions

std::unique_ptr< LinearSystem< double > > Linearize (const System< double > &system, const Context< double > &context, std::variant< InputPortSelection, InputPortIndex > input_port_index=InputPortSelection::kUseFirstInputIfItExists, std::variant< OutputPortSelection, OutputPortIndex > output_port_index=OutputPortSelection::kUseFirstOutputIfItExists, double equilibrium_check_tolerance=1e-6)
 Takes the first-order Taylor expansion of a System around a nominal operating point (defined by the Context). More...
 
std::unique_ptr< AffineSystem< double > > FirstOrderTaylorApproximation (const System< double > &system, const Context< double > &context, std::variant< InputPortSelection, InputPortIndex > input_port_index=InputPortSelection::kUseFirstInputIfItExists, std::variant< OutputPortSelection, OutputPortIndex > output_port_index=OutputPortSelection::kUseFirstOutputIfItExists)
 A first-order Taylor series approximation to a system in the neighborhood of an arbitrary point. More...
 
Eigen::MatrixXd ControllabilityMatrix (const LinearSystem< double > &sys)
 Returns the controllability matrix: R = [B, AB, ..., A^{n-1}B]. More...
 
bool IsControllable (const LinearSystem< double > &sys, std::optional< double > threshold=std::nullopt)
 Returns true iff the controllability matrix is full row rank. More...
 
Eigen::MatrixXd ObservabilityMatrix (const LinearSystem< double > &sys)
 Returns the observability matrix: O = [ C; CA; ...; CA^{n-1} ]. More...
 
bool IsObservable (const LinearSystem< double > &sys, std::optional< double > threshold=std::nullopt)
 Returns true iff the observability matrix is full column rank. More...
 
bool IsStabilizable (const LinearSystem< double > &sys, std::optional< double > threshold=std::nullopt)
 Returns true iff the system is stabilizable. More...
 
bool IsDetectable (const LinearSystem< double > &sys, std::optional< double > threshold=std::nullopt)
 Returns true iff the system is detectable. More...