Trajectories

This commit is contained in:
2026-03-04 20:29:19 +00:00
parent 6af56f478f
commit 1b15384c10
20 changed files with 4825 additions and 71 deletions

394
docs/ENGINE_DESIGN.md Normal file
View File

@@ -0,0 +1,394 @@
# Engine Design Guide
## Overview
The **Engine Design** tool calculates rocket engine performance, material erosion, and structural requirements. It integrates combustion thermodynamics, ablative material degradation, and hoop stress analysis into a unified interface.
## Main Sections
### Combustion Design
Configure chamber, nozzle, and propellant properties to predict thrust, Isp, and exit conditions.
### Ablative Erosion
Model chamber liner erosion based on pressure-dependent rates and propellant choice.
### Structural Sizing
Calculate wall thicknesses and component masses using hoop stress formula.
---
## Combustion Design
### Inputs
**Chamber:**
- `chamberPressure` (MPa) — combustion chamber pressure
- `nozzleDiameter` (mm) — nozzle throat diameter
- `expansionRatio` — nozzle exit / throat area ratio
- `divergenceAngle` (°) — nozzle divergence cone angle
**Propellant Selection:**
- `fuelType` — dropdown (RP1, Methane, Hydrogen, etc.)
- `oxidiserType` — dropdown (LOX, N2O4, etc.)
- **Note**: Propellant properties come from knowledgebase (T0, gamma, Mw, etc.)
**Design Options:**
- `injectorType` — impingement, shower-head, multi-element
- `coolingMethod` — none, regenerative (future)
- `nozzleShape` — conical (15-20°), bell curve (optional)
### Outputs (Computed)
**Performance:**
- `thrustVacuum` (kN) — vacuum thrust (accounting for exit pressure)
- `thrustSeaLevel` (kN) — sea level thrust (accounting for ambient pressure)
- `specificImpulseVacuum` (s) — Isp in vacuum
- `specificImpulseSeaLevel` (s) — Isp at sea level
- `characteristicVelocity` (m/s) — c* = P0·At / ṁ
**Combustion Conditions:**
- `chamberTemperature` (K) — adiabatic flame temperature
- `exitTemperature` (K) — nozzle exit temperature
- `machNumber` — exit Mach number (computed via bisection)
- `exitPressure` (MPa) — nozzle exit pressure
- `exitDensity` (kg/m³) — exhaust density at exit
**Nozzle Geometry:**
- `throatDiameter` (mm) — computed from chamber P, thrust, mass flow
- `exitDiameter` (mm) — exit diameter = throat × √(expansionRatio)
- `nozzleLength` (mm) — divergence section length
- `thrustCoefficient` — CF (thrust coefficient for flow)
**Flow Properties:**
- `massFlowRate` (kg/s) — propellant mass flow rate
- `exitVelocity` (m/s) — effective exhaust velocity
- `burnRate` (mm/s) — for propellant grain design
### Key Equations
**Thrust (from area and pressure):**
```
F = P0·At·CF + (Pe - P_ambient)·Ae
```
Where CF is thrust coefficient from isentropic relations.
**Specific Impulse:**
```
Isp = Ve / g0
Isp_sl = (Ve - (Pe - P_atm) / ṁ · Ae) / g0
```
**Exit Temperature (isentropic flow):**
```
Te = T0 · (Pe / P0)^((γ-1)/γ)
```
**Mass Flow Rate (from energy balance):**
```
ṁ = P0 · At / c*
c* = √(2·(γ+1)/(γ-1) · R·T0) for ideal nozzle
```
**Characteristic Velocity:**
```
c* = √(2·(γ+1)/(γ-1) · R·T0 · (2/(γ+1))^((γ+1)/(γ-1)))
```
---
## Ablative Erosion (v2)
### Material Properties
Each ablative material in the knowledgebase has:
- **Density** (kg/m³) — ablator material density
- **Base Erosion Rate** (inch/s) — reference erosion at standard pressure (typically 300 psi)
- **Pressure Exponent** (n) — power-law sensitivity to pressure
### Pressure-Corrected Erosion
The key innovation of v2 is **pressure-dependent erosion rates**:
```
erosion_rate(P) = base_rate · (P / P_ref)^n
```
Where:
- `base_rate` — from material database (inch/s @ 300 psi)
- `P` — chamber pressure (Pa)
- `P_ref` — reference pressure (300 psi = 2.068 MPa)
- `n` — pressure exponent (material-specific)
### Pressure Exponents by Material Class
**Composites:**
- PAXS (polyester/glass): n = 0.38
- KFSI (silica/phenolic): n = 0.35
- Carbon phenolic: n = 0.32
**Elastomers:**
- ZIRCONIA (zirconia/silicone): n = 0.48
- Butyl rubber: n = 0.50
**Theory**: Lower n = less pressure-sensitive (better for high-P engines)
### Example Calculation
**Material:** PAXS, base_rate = 0.025 in/s, n = 0.38
**At different pressures:**
- 300 psi: rate = 0.025 × (300/300)^0.38 = 0.025 in/s
- 500 psi: rate = 0.025 × (500/300)^0.38 = 0.032 in/s
- 1000 psi: rate = 0.025 × (1000/300)^0.38 = 0.042 in/s
- 1500 psi: rate = 0.025 × (1500/300)^0.38 = 0.050 in/s
### Erosion Calculation
**Inputs:**
- Chamber pressure (Pa)
- Burn time (s)
- Ablative material (from dropdown)
- Initial liner thickness (mm)
**Process:**
1. Look up material properties (base_rate, n)
2. Calculate pressure factor: `(P / P_ref)^n`
3. Apply correction: `effective_rate = base_rate × factor`
4. Erosion depth: `erosion = effective_rate × burn_time`
5. Remaining thickness: `remaining = initial - erosion`
**Display:**
- Pressure factor (if not 1.0)
- Corrected erosion rate (inch/s)
- Erosion depth (inch)
- Remaining thickness (inch)
- **Warning** if remaining < 0.5 inch
### Thermal Analysis (Future)
Currently, erosion is purely mechanical. Future versions could include:
- Heat flux calculation
- Material melting/sublimation
- Thermal diffusion into structure
- Combined mechanical + thermal erosion
---
## Structural Sizing
### Material Selection
Choose from STRUCTURAL_MATERIALS array:
- **Aluminum 6061-T6**: Low density, corrosion-resistant
- **Stainless Steel 304**: High temp, corrosion-resistant
- **Inconel 718**: High strength at elevated T
- **Titanium 6-4**: Light, strong, expensive
- **CFRP (Carbon Fiber)**: Highest strength-to-weight
Each has: density (kg/m³), yield strength (MPa), Young's modulus, CTE, limits
### Hoop Stress Formula
For thin-walled cylinders:
```
σ_hoop = (P × r) / t
```
Solving for wall thickness with safety factor:
```
t = (P × r) / (σ_yield / SF)
```
Where:
- `P` — internal pressure (Pa)
- `r` — radius (m)
- `σ_yield` — material yield strength (Pa)
- `SF` — safety factor (typical: 2.04.0)
### Component Sizing
**Chamber:**
- Pressure: P0 (combustion pressure)
- Radius: determined by geometry
- Thickness: `t_chamber = (P0 × r) / (σ_y / SF)`
**Convergent Section (nozzle entrance):**
- Pressure: P0 (full chamber pressure)
- Radius: smaller than chamber (converging)
- Thickness: similar to chamber
**Throat (narrowest point):**
- Pressure: ~P0 (highest local stress)
- Radius: throat_radius (smallest)
- **Result**: highest stress → thickest wall
- Thickness: `t_throat = (P0 × r_throat) / (σ_y / SF)`
**Divergent Section (nozzle expansion):**
- Pressure: decreases from P0 to Pe
- Radius: increasing
- Thickness: typically uses Pe ≈ 0.1·P0 for design
- Lower thickness than chamber
**Exit (atmospheric nozzle):**
- Pressure: near ambient
- Thickness: minimal (can be thin-walled)
### Mass Calculation
**Cylindrical section:**
```
m = 2π·r·t·L·ρ
```
**Hemispherical dome (for tanks):**
```
m = 4π·r²·t·ρ
```
**Frustum (truncated cone):**
```
m ≈ π·(r1·L + r2·L)·t·ρ (simplified)
```
**Total engine dry mass:**
```
m_dry = m_chamber + m_convergent + m_nozzle + m_injector_plate + m_misc
```
### UI Layout
**Left Panel (Inputs):**
- Material dropdown
- Safety factor slider
- Pressure specifications (chamber, ambient)
**Right Panel (Results):**
- Wall thickness breakdown (chamber, throat, exit)
- Mass breakdown (chamber, convergent, divergent, injector, **total**)
- Material properties (yield, density, limit temp)
- Stress utilization (if known)
---
## Workflow Example: Design LOX/RP1 Engine
### Step 1: Set Combustion Conditions
1. Select `fuelType = RP1`
2. Select `oxidiserType = LOX`
3. Set `chamberPressure = 200 bar`
4. Set `nozzleDiameter = 50 mm`
5. Set `expansionRatio = 8`
**Result**: Thrust ≈ 150 kN, Isp ≈ 310 s
### Step 2: Design Ablation
1. Select `ablativeMaterial = PAXS`
2. Set `initialLinertThickness = 10 mm`
3. Set `burnTime = 60 s`
**Result**: Erosion ≈ 1.5 mm, Remaining ≈ 8.5 mm (OK)
### Step 3: Size Structure
1. Select `structuralMaterial = Inconel718`
2. Set `safetyFactor = 3.0`
**Result**:
- Chamber wall: 2.1 mm
- Throat wall: 2.8 mm
- Divergent: 1.5 mm
- **Total dry mass**: 2.3 kg
### Step 4: Export
- **Export as JSON**: Download engine specs
- Import into rocket design tool
- Calculate vehicle TWR, delta-v, etc.
---
## Advanced Topics
### Regenerative Cooling
Not yet implemented, but conceptually:
- Propellant flows through cooling jackets before injection
- Removes heat from chamber walls
- Allows higher chamber pressure or thinner walls
- Adds complexity (adds ~0.5 kg per engine)
Implementation would add:
- Cooling jacket dimensions
- Heat transfer correlation (Dittus-Boelert, etc.)
- Pressure drop calculation
- Temperature rise of propellant
### Ablator Recession Modeling
Current model assumes uniform erosion. Advanced model would include:
- **Surface recession rate** (different from bulk erosion)
- **Spallation** (chunks breaking off at high pressure)
- **Chemical reaction** (oxidation, decomposition)
- **Thermal gradient** (erosion depends on depth)
This requires:
- Heat conduction equation (PDE)
- Boundary conditions (heat flux from combustion)
- Material properties (k, cp, melt point)
- Solver (e.g., finite difference)
### Combustion Instability
Not modeled currently, but factors affecting it:
- **Injector design** (pattern, element size, momentum ratio)
- **Chamber L* (characteristic length)** = V / At
- Higher L* = more residence time = higher c*
- Typical range: 3060 inches
- **Baffle plates** (reduce acoustic resonance)
---
## Knowledgebase Integration
### Accessing Propellant Data
- Knowledgebase → Fuels / Oxidisers
- View all available propellants
- Copy properties into engine design
### Accessing Material Data
- Knowledgebase → Structural Materials
- Compare yield strengths, densities, costs
- Select best for your application
### Ablative Materials
- Knowledgebase → Ablative Materials
- View pressure exponents
- Notes on applications (chamber, nozzle, etc.)
---
## Troubleshooting
### Chamber pressure seems too high / low?
- Check propellant selection (wrong fuel/oxidizer?)
- Verify chamber geometry (radius, length)
- Check for typos in input values
### Erosion warning?
- Select ablator with lower pressure exponent (more stable)
- Reduce chamber pressure if possible
- Increase initial liner thickness
- Shorten burn time
### Structural mass too heavy?
- Switch to lighter material (Ti-6-4 vs SS)
- Reduce safety factor (if acceptable for design)
- Increase chamber pressure radius (less stress)
- Use thinner walls for non-critical sections
---
## References
- Huzel, D. K., & Huang, D. H. (1992). Modern engineering for design of liquid-propellant rocket engines. AIAA.
- NASA SP-273: Liquid Rocket Engine Combustion Instability. ([PDF](https://ntrs.nasa.gov/api/citations/19700006920/downloads/19700006920.pdf))
- Crespo, A., & Liñán, A. (1975). Asymptotic analysis of unsteady flame oscillations in liquid propellant rocket motors. SIAM Journal on Applied Mathematics, 29(3), 521533.
---
**Last Updated**: 2025-02 | **Status**: Current (v2 — Pressure-Corrected Ablation)