STAR
Cal STAR — firmware, DAQ server, and engine design
Loading...
Searching...
No Matches
engine.pipeline.flight_1dof Namespace Reference

Functions

float vertical_apogee_agl (Sequence[float] time_s, Sequence[float] thrust_n, Sequence[float] mdot_kg_s, float m0_kg, *, float area_m2=0.0, Optional[DragCurves] drag=None, float elevation_m=0.0, Optional[float] reference_pressure_pa=None, float nozzle_exit_area_m2=0.0, float dt_burn=0.01, float dt_coast=0.05)
float required_impulse (float target_apogee_agl_m, float m_dry_kg, float m_prop_kg, float burn_time_s, *, Optional[Sequence[float]] time_s=None, Optional[Sequence[float]] mdot_kg_s=None, Optional[Sequence[float]] thrust_n=None, **object flight)

Variables

float G0 = 9.80665

Detailed Description

Vertical point-mass flight: apogee of a thrust curve, and the impulse a target apogee needs.

  dv/dt = (F(t) + (p_ref - p(z)) A_e - 1/2 rho(z) v|v| Cd(M) A) / m - g,   dm/dt = -mdot(t)

integrated through the burn and the coast to v = 0, in the 1976 ISA from the pad elevation, with
the same Cd(M) the RocketPy flight uses (engine/pipeline/vehicle_drag). With Cd = 0, constant
mdot and constant exhaust velocity it is Sutton & Biblarz's vertical flight without drag (ch. 4):
u_p = c ln R - g t_p, h_p = c t_p [1 - ln R / (R - 1)] - g t_p^2 / 2, apogee h_p + u_p^2 / 2g.

The required impulse keeps the propellant mass, the burn time and the shape of the mass flow and
scales the thrust (the effective exhaust velocity) until the apogee is the target: I = c m_p. It
is the check Layer 2 makes on a pressure schedule, cheap enough to sit inside its objective.
Fixed-step RK4 (10 ms burn, 50 ms coast) with the apogee interpolated in the last step.

Function Documentation

◆ required_impulse()

float engine.pipeline.flight_1dof.required_impulse ( float target_apogee_agl_m,
float m_dry_kg,
float m_prop_kg,
float burn_time_s,
* ,
Optional[Sequence[float]] time_s = None,
Optional[Sequence[float]] mdot_kg_s = None,
Optional[Sequence[float]] thrust_n = None,
**object flight )
Total impulse [N s] that puts this vehicle at the target apogee, holding m_prop, the burn
time and the mass-flow shape, and scaling the thrust shape (flat mdot and constant exhaust
velocity when no history is given). ``flight`` goes to vertical_apogee_agl (drag, area, pad).

Definition at line 91 of file flight_1dof.py.

References max, and vertical_apogee_agl().

◆ vertical_apogee_agl()

float engine.pipeline.flight_1dof.vertical_apogee_agl ( Sequence[float] time_s,
Sequence[float] thrust_n,
Sequence[float] mdot_kg_s,
float m0_kg,
* ,
float area_m2 = 0.0,
Optional[DragCurves] drag = None,
float elevation_m = 0.0,
Optional[float] reference_pressure_pa = None,
float nozzle_exit_area_m2 = 0.0,
float dt_burn = 0.01,
float dt_coast = 0.05 )
Apogee above the pad [m] of a vertical flight on this thrust and mass-flow history.

Definition at line 28 of file flight_1dof.py.

References max, min, and rhs.

Referenced by required_impulse().

Variable Documentation

◆ G0

float engine.pipeline.flight_1dof.G0 = 9.80665

Definition at line 25 of file flight_1dof.py.