Trajectories
This commit is contained in:
394
docs/ENGINE_DESIGN.md
Normal file
394
docs/ENGINE_DESIGN.md
Normal 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.0–4.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: 30–60 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), 521–533.
|
||||
|
||||
---
|
||||
|
||||
**Last Updated**: 2025-02 | **Status**: Current (v2 — Pressure-Corrected Ablation)
|
||||
Reference in New Issue
Block a user