The vulcan/propulsion module provides fundamental propulsion model utilities for rocketry, air-breathing, and electric propulsion systems. These functions are designed to be stateless, functional, and compatible with both numeric (double) and symbolic (casadi::MX) types for trajectory optimization.
Features
- Rocket Propulsion: Tsiolkovsky rocket equation, thrust/Isp relations.
- Altitude Compensation: Adjusting thrust for ambient pressure.
- Air-Breathing: Breguet range/endurance, TSFC-based fuel flow.
- Electric Propulsion: Power-limited thrust, mass flow, and efficiency relations.
Usage
Include the main header:
Rocket Fundamentals
Calculate Delta-V or required propellant:
double Isp = 300.0;
double m0 = 1000.0;
double mf = 100.0;
Scalar exhaust_velocity(const Scalar &Isp, double g0=9.80665)
Calculates effective exhaust velocity from specific impulse.
Definition Rocket.hpp:33
Scalar delta_v(const Scalar &Ve, const Scalar &m0, const Scalar &mf)
Calculates Delta-V using the Tsiolkovsky rocket equation.
Definition Rocket.hpp:66
Scalar propellant_mass(const Scalar &delta_v, const Scalar &m0, const Scalar &Ve)
Calculates required propellant mass for a given Delta-V.
Definition Rocket.hpp:82
Altitude Compensation
Adjust thrust based on altitude (pressure):
double F_vac = 50000.0;
double P_atm = 101325.0;
double A_exit = 0.5;
Propulsion utilities for rocket, air-breathing, and electric systems.
Definition AirBreathing.hpp:5
Scalar altitude_thrust(const Scalar &F_vac, const Scalar &P_atm, double P_exit, double A_exit)
Calculates thrust adjusted for ambient pressure (altitude).
Definition AltitudeThrust.hpp:28
Air-Breathing
Estimate range using Breguet equation:
double V = 250.0;
double TSFC = 1.0e-4;
double L_D = 15.0;
double W0 = 50000.0;
double W1 = 40000.0;
Definition AirBreathing.hpp:5
Scalar breguet_range(const Scalar &velocity, const Scalar &TSFC, const Scalar &L_D, const Scalar &W0, const Scalar &W1)
Calculates Breguet Range for jet aircraft.
Definition AirBreathing.hpp:44
Scalar range(const Vec3< Scalar > &r1, const Vec3< Scalar > &r2)
Definition FrameKinematics.hpp:178
Electric Propulsion
Model power-limited thrusters (e.g., Ion, Hall effect):
double Power = 5000.0;
double Ve = 30000.0;
double efficiency = 0.6;
Definition Electric.hpp:5
Scalar thrust_from_power(const Scalar &power, const Scalar &Ve, const Scalar &efficiency)
Calculates thrust for power-limited propulsion.
Definition Electric.hpp:20
Scalar mass_flow_from_power(const Scalar &power, const Scalar &Ve, const Scalar &efficiency)
Calculates mass flow rate for power-limited propulsion.
Definition Electric.hpp:37
Symbolic Compatibility
All functions are templated on Scalar and use janus:: math functions, making them compatible with casadi::MX for optimization problems constructed via Janus.
casadi::MX m_sym = casadi::MX::sym("m");
Scalar thrust_from_mdot(const Scalar &mdot, const Scalar &Ve)
Calculates thrust from mass flow rate and effective exhaust velocity.
Definition Rocket.hpp:18