Icarus
Vehicle Simulation as a Transformable Computational Graph, built on Vulcan and Janus
Loading...
Searching...
No Matches
icarus::TrimConfig Struct Reference

Trim configuration for state initialization. More...

#include <SimulatorConfig.hpp>

Public Member Functions

bool IsWarmstart () const
 Check if this is warmstart mode.
bool IsEquilibrium () const
 Check if this is equilibrium mode.
std::vector< std::string > Validate () const
 Validate configuration.

Static Public Member Functions

static TrimConfig Default ()
 Create default disabled config.

Public Attributes

bool enabled = false
 Whether to run trim/initialization.
std::string mode = "equilibrium"
 Mode: "equilibrium" (solve for steady-state) or "warmstart" (load from recording).
std::vector< std::string > zero_derivatives
 Trim targets: which derivatives should be zero?
std::vector< std::string > control_signals
 Trim controls: which signals can be adjusted?
double tolerance = 1e-6
 Optimization settings.
int max_iterations = 100
std::string method = "newton"
 "newton" or "ipopt"
std::unordered_map< std::string, double > initial_guesses
 Initial guesses for controls (optional).
std::unordered_map< std::string, std::pair< double, double > > control_bounds
 Control bounds (optional): key -> (min, max).
std::string recording_path
 Path to recording file (for warmstart mode).
double resume_time = 0.0
 MET to resume from (for warmstart mode).
bool validate_schema = true
 Validate recording schema before loading (for warmstart mode).

Detailed Description

Trim configuration for state initialization.

Defines how the simulator initializes state during Stage(). Supports two modes:

  • "equilibrium": Solve for trim conditions (zero derivatives)
  • "warmstart": Restore state from a recording file

Example YAML:

trim:
enabled: true
mode: warmstart
recording_path: "flight_001.h5"
resume_time: 120.0
Definition Simulator.hpp:53
std::string mode
Mode: "equilibrium" (solve for steady-state) or "warmstart" (load from recording).
Definition SimulatorConfig.hpp:115
double resume_time
MET to resume from (for warmstart mode).
Definition SimulatorConfig.hpp:146
bool enabled
Whether to run trim/initialization.
Definition SimulatorConfig.hpp:112
std::string recording_path
Path to recording file (for warmstart mode).
Definition SimulatorConfig.hpp:143

Member Function Documentation

◆ Default()

TrimConfig icarus::TrimConfig::Default ( )
inlinestaticnodiscard

Create default disabled config.

◆ IsEquilibrium()

bool icarus::TrimConfig::IsEquilibrium ( ) const
inlinenodiscard

Check if this is equilibrium mode.

◆ IsWarmstart()

bool icarus::TrimConfig::IsWarmstart ( ) const
inlinenodiscard

Check if this is warmstart mode.

◆ Validate()

std::vector< std::string > icarus::TrimConfig::Validate ( ) const
inlinenodiscard

Validate configuration.

Member Data Documentation

◆ control_bounds

std::unordered_map<std::string, std::pair<double, double> > icarus::TrimConfig::control_bounds

Control bounds (optional): key -> (min, max).

◆ control_signals

std::vector<std::string> icarus::TrimConfig::control_signals

Trim controls: which signals can be adjusted?

◆ enabled

bool icarus::TrimConfig::enabled = false

Whether to run trim/initialization.

◆ initial_guesses

std::unordered_map<std::string, double> icarus::TrimConfig::initial_guesses

Initial guesses for controls (optional).

◆ max_iterations

int icarus::TrimConfig::max_iterations = 100

◆ method

std::string icarus::TrimConfig::method = "newton"

"newton" or "ipopt"

◆ mode

std::string icarus::TrimConfig::mode = "equilibrium"

Mode: "equilibrium" (solve for steady-state) or "warmstart" (load from recording).

◆ recording_path

std::string icarus::TrimConfig::recording_path

Path to recording file (for warmstart mode).

◆ resume_time

double icarus::TrimConfig::resume_time = 0.0

MET to resume from (for warmstart mode).

◆ tolerance

double icarus::TrimConfig::tolerance = 1e-6

Optimization settings.

◆ validate_schema

bool icarus::TrimConfig::validate_schema = true

Validate recording schema before loading (for warmstart mode).

◆ zero_derivatives

std::vector<std::string> icarus::TrimConfig::zero_derivatives

Trim targets: which derivatives should be zero?


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