Icarus
Vehicle Simulation as a Transformable Computational Graph, built on Vulcan and Janus
Loading...
Searching...
No Matches
Linearizer.hpp File Reference

Linearization of dynamics around operating point. More...

#include <icarus/core/Error.hpp>
#include <icarus/sim/SimulatorConfig.hpp>
#include <icarus/staging/StagingTypes.hpp>
#include <icarus/staging/SymbolicSimulatorCore.hpp>
#include <janus/math/AutoDiff.hpp>
#include <Eigen/Dense>
#include <memory>
#include <string>
#include <vector>
#include <icarus/sim/Simulator.hpp>
Include dependency graph for Linearizer.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  icarus::staging::Linearizer
 Abstract linearizer interface. More...
class  icarus::staging::FiniteDifferenceLinearizer
 Linearizer using finite differences. More...
struct  icarus::staging::FiniteDifferenceLinearizer::Options
class  icarus::staging::SymbolicLinearizer
 Linearizer using symbolic Jacobians. More...

Namespaces

namespace  icarus
namespace  icarus::staging

Functions

std::unique_ptr< Linearizericarus::staging::CreateLinearizer (bool symbolic_enabled)
 Create appropriate linearizer based on configuration.

Detailed Description

Linearization of dynamics around operating point.

Part of Phase 4: Staging Implementation.

Computes linear state-space model (A, B, C, D) at current operating point. Two modes:

  • Numeric (FiniteDifferenceLinearizer): Uses central differences
  • Symbolic (SymbolicLinearizer): Uses exact Jacobians via janus::jacobian