510 lines
12 KiB
Markdown
510 lines
12 KiB
Markdown
# Rocket Design Guide
|
||
|
||
## Overview
|
||
|
||
The **Rocket Design** tool calculates vehicle mass budget, tank geometry, structural requirements, and generates 3D models. It integrates engine data from the engine designer and computes the complete rocket's performance characteristics.
|
||
|
||
## Main Sections
|
||
|
||
### Vehicle Geometry
|
||
Define tank configuration, dimensions, and structural layout.
|
||
|
||
### Tank Structure
|
||
Calculate wall thicknesses, masses, and pressurant requirements.
|
||
|
||
### Nose Cone Design
|
||
Select and visualize nose cone shapes (conical, ogive, Von Kármán).
|
||
|
||
### Mass Budget
|
||
Integrate all components (engines, tanks, payload, structure) to compute total mass and performance metrics.
|
||
|
||
### 3D Visualization
|
||
Interactive three.js model showing tanks, nose cone, and flight orientation.
|
||
|
||
---
|
||
|
||
## Vehicle Geometry
|
||
|
||
### Tank Configuration Options
|
||
|
||
**Tandem (Sequential):**
|
||
- Two cylindrical tanks stacked vertically
|
||
- Fuel (lower), Oxidizer (upper)
|
||
- Domes: hemispherical on both ends
|
||
- **Advantage**: Compact, simpler plumbing
|
||
- **Disadvantage**: Longer vehicle
|
||
|
||
**Coaxial (Concentric):**
|
||
- Outer tank (fuel) surrounds inner tank (oxidizer)
|
||
- Reduces diameter
|
||
- Inner tank: flat bulkheads (simpler)
|
||
- **Advantage**: Compact, low diameter
|
||
- **Disadvantage**: More complex, thermal management
|
||
|
||
**Single Tank:**
|
||
- One tank with both propellants mixed
|
||
- Rarely used for high-performance (lower Isp)
|
||
|
||
### Tank Dimensions
|
||
|
||
**Inputs:**
|
||
- `outerRadius` (mm) — outer tank radius
|
||
- `propellantVolume` (L) — total propellant quantity
|
||
- `tankConfiguration` — tandem, coaxial, single
|
||
- `ullagePercent` (%) — pressurant volume as % of propellant
|
||
|
||
**Key Relationship:**
|
||
```
|
||
Ullage volume = propellant volume × (ullage% / 100)
|
||
Effective volume = propellant volume × (1 + ullage%)
|
||
```
|
||
|
||
Ullage accommodates:
|
||
- Thermal expansion of propellant
|
||
- Gas bubble for pump inlet
|
||
- Margin for fill level uncertainty
|
||
|
||
### Tank Geometry (Tandem Case)
|
||
|
||
**Dome Volume (hemispherical):**
|
||
```
|
||
V_dome = (2/3) × π × R³ (one hemisphere)
|
||
V_domes = (4/3) × π × R³ (both domes)
|
||
```
|
||
|
||
**Cylindrical Section:**
|
||
```
|
||
L_cyl = (V_eff - V_domes) / (π × R²)
|
||
```
|
||
|
||
**Total Tank Length:**
|
||
```
|
||
L_total = L_cyl + 2R (two dome heights)
|
||
```
|
||
|
||
**Example:**
|
||
- R = 1.5 m, V_prop = 5000 L, ullage = 10%
|
||
- V_eff = 5000 × 1.1 = 5500 L
|
||
- V_domes = 4/3 × π × 1.5³ ≈ 14.1 m³ = 14100 L (larger than prop!)
|
||
- Need smaller R or accept small L_cyl
|
||
|
||
**Note**: For smaller rockets, domes dominate volume. Design must account for this.
|
||
|
||
---
|
||
|
||
## Tank Structure
|
||
|
||
### Pressure Sources
|
||
|
||
**Pressure-Fed System:**
|
||
```
|
||
P_tank = 1.2 × P0_chamber (pressure margin)
|
||
```
|
||
Typical: P0 = 200 bar → P_tank = 240 bar
|
||
|
||
**Pump-Fed System:**
|
||
```
|
||
P_tank = 2 MPa (minimum for turbopump inlet)
|
||
```
|
||
Much lower pressure (pump provides most acceleration)
|
||
|
||
**Selection affects:**
|
||
- Wall thicknesses (direct proportionality)
|
||
- Mass (linear with pressure and wall thickness)
|
||
- Propellant pump requirements
|
||
|
||
### Structural Material Properties
|
||
|
||
Available materials from knowledgebase:
|
||
- **Aluminum 6061-T6**: density 2700 kg/m³, σ_y = 275 MPa
|
||
- **Stainless Steel 304**: density 8000 kg/m³, σ_y = 215 MPa
|
||
- **Inconel 718**: density 8190 kg/m³, σ_y = 1240 MPa
|
||
- **Titanium 6-4**: density 4430 kg/m³, σ_y = 880 MPa
|
||
- **CFRP (Carbon Fiber)**: density 1600 kg/m³, σ_y = 600 MPa
|
||
|
||
**Selection factors:**
|
||
- Cost (Al < SS < Ti < CFRP)
|
||
- Weight (CFRP < Ti < Al < SS)
|
||
- Corrosion (SS, Ti, CFRP better; Al needs coating)
|
||
- Temperature (Inconel for hot engines; others at T < 150°C)
|
||
|
||
### Wall Thickness (Hoop Stress)
|
||
|
||
**Hoop stress formula:**
|
||
```
|
||
σ_hoop = (P × R) / t
|
||
```
|
||
|
||
**With safety factor:**
|
||
```
|
||
t = (P × R) / (σ_yield / SF)
|
||
```
|
||
|
||
**Cylindrical section mass:**
|
||
```
|
||
m_cyl = 2π × R × t × L_cyl × ρ_material
|
||
```
|
||
|
||
**Dome mass (two hemispheres):**
|
||
```
|
||
m_domes = 4π × R² × t × ρ_material
|
||
```
|
||
|
||
**Total tank mass:**
|
||
```
|
||
m_tank = m_cyl + m_domes
|
||
```
|
||
|
||
### Example Calculation
|
||
|
||
**Tandem LOX/RP1 Tank:**
|
||
- Radius: 1.0 m
|
||
- Pressure: 240 bar = 24 MPa
|
||
- Material: Aluminum 6061-T6
|
||
- σ_y = 275 MPa
|
||
- ρ = 2700 kg/m³
|
||
- Safety Factor: 2.5
|
||
|
||
**Wall Thickness:**
|
||
```
|
||
t = (24 MPa × 1.0 m) / (275 MPa / 2.5)
|
||
= 24 / 110
|
||
≈ 0.218 m = 2.18 mm
|
||
```
|
||
|
||
**Cylindrical Section (assume L_cyl = 3 m):**
|
||
```
|
||
m_cyl = 2π × 1.0 × 0.00218 × 3.0 × 2700
|
||
≈ 110 kg
|
||
```
|
||
|
||
**Domes:**
|
||
```
|
||
m_domes = 4π × 1.0² × 0.00218 × 2700
|
||
≈ 74 kg
|
||
```
|
||
|
||
**Total tank mass:** ~184 kg
|
||
|
||
---
|
||
|
||
## Pressurant System (Pressure-Fed Only)
|
||
|
||
### Helium Requirements
|
||
|
||
For pressure-fed engines, pressurant gas maintains tank pressure throughout burn.
|
||
|
||
**Ideal gas law:**
|
||
```
|
||
P × V = n × R × T
|
||
```
|
||
|
||
**Helium mass:**
|
||
```
|
||
m_He = (P_tank × V_prop) / (R_He × T)
|
||
```
|
||
|
||
Where:
|
||
- `P_tank` — tank pressure (Pa)
|
||
- `V_prop` — propellant volume (m³)
|
||
- `R_He` — helium specific gas constant = 2077 J/kg/K
|
||
- `T` — temperature (K), typically 293 K (20°C)
|
||
|
||
**Example:**
|
||
- P_tank = 24 MPa = 24×10⁶ Pa
|
||
- V_prop = 5 m³
|
||
- T = 293 K
|
||
|
||
```
|
||
m_He = (24×10⁶ × 5) / (2077 × 293)
|
||
≈ 20 kg
|
||
```
|
||
|
||
### Helium Bottle Mass
|
||
|
||
Helium stored in high-pressure bottle. Typical storage pressure: 250 bar.
|
||
|
||
**Bottle mass (conservative):**
|
||
```
|
||
m_bottle = 4 × m_He
|
||
```
|
||
|
||
Rule of thumb: bottle is 4 times the helium mass. (More sophisticated: use MEOP analysis.)
|
||
|
||
**Total pressurant system:**
|
||
```
|
||
m_pressurant = m_He + m_bottle
|
||
```
|
||
|
||
Example: 20 kg He → 80 kg bottle → 100 kg pressurant system
|
||
|
||
**Note**: This is a major mass penalty for pressure-fed systems. Pump-fed systems avoid this.
|
||
|
||
---
|
||
|
||
## Nose Cone Design
|
||
|
||
### Available Profiles
|
||
|
||
Three aerodynamic nose cone shapes, all with L = 2 × R (length = 2 × base radius).
|
||
|
||
**Conical:**
|
||
- Simple linear profile
|
||
- `r(x) = R × (x / L)`
|
||
- Sharpest tip, moderate drag
|
||
|
||
**Tangent Ogive:**
|
||
- Smooth circular arc meeting base tangentially
|
||
- `ρ = (R² + L²) / (2R)` (radius of curvature)
|
||
- `r(x) = √(ρ² - (L - x)²) - (ρ - R)`
|
||
- Smooth, less drag than conical
|
||
- Common in rocketry
|
||
|
||
**Von Kármán:**
|
||
- Power law profile minimizing drag
|
||
- `θ = acos(1 - 2x/L)`
|
||
- `r(x) = (R / √π) × √(θ - sin(2θ)/2)`
|
||
- Theoretically optimal for transonic flight
|
||
- Used on high-performance rockets
|
||
|
||
**Selection Criteria:**
|
||
- **Conical**: Simplest to manufacture, sharp tip
|
||
- **Tangent Ogive**: Better aerodynamics, smoother base transition
|
||
- **Von Kármán**: Best drag coefficient (Cd ≈ 0.15 vs 0.25 conical)
|
||
|
||
### 3D Visualization
|
||
|
||
Nose cone is rendered using THREE.js `LatheGeometry`:
|
||
- Profile points sampled from mathematical formula
|
||
- Rotated around vertical axis to create 3D shape
|
||
- Interactive rotation/zoom in 3D viewer
|
||
|
||
---
|
||
|
||
## Mass Budget
|
||
|
||
### Components
|
||
|
||
**Structure:**
|
||
- Tank walls and domes: `m_tanks`
|
||
- Other structure (nosecone, bay, interstage): `m_other`
|
||
- Engine dry mass (from engine designer): `m_engine`
|
||
|
||
**Propellant:**
|
||
- Fuel + oxidizer: `m_propellant`
|
||
|
||
**Pressurant (pressure-fed only):**
|
||
- Helium + bottle: `m_pressurant`
|
||
|
||
**Payload:**
|
||
- Avionics, recovery system, instruments: `m_payload`
|
||
|
||
### Calculation
|
||
|
||
**Dry mass (no propellant):**
|
||
```
|
||
m_dry = m_tanks + m_other + m_engine + m_pressurant + m_payload
|
||
```
|
||
|
||
**Wet mass (with propellant):**
|
||
```
|
||
m_wet = m_dry + m_propellant
|
||
```
|
||
|
||
**Payload fraction:**
|
||
```
|
||
fraction_payload = m_payload / m_wet
|
||
```
|
||
|
||
**Structure fraction:**
|
||
```
|
||
fraction_structure = m_tanks / m_wet
|
||
```
|
||
|
||
**Thrust-to-weight ratio:**
|
||
```
|
||
TWR = F_thrust / (m_wet × g)
|
||
```
|
||
|
||
### Example Mass Budget
|
||
|
||
Small LOX/RP1 rocket:
|
||
|
||
| Component | Mass (kg) | % |
|
||
|-----------|-----------|-----|
|
||
| Tanks (structure) | 200 | 14% |
|
||
| Engine | 50 | 3.5% |
|
||
| Pressurant (He + bottle) | 100 | 7% |
|
||
| Avionics + recovery | 30 | 2% |
|
||
| **Dry mass** | **380** | **26.5%** |
|
||
| Propellant (LOX + RP1) | 1050 | 73.5% |
|
||
| **Wet mass** | **1430** | **100%** |
|
||
|
||
**Performance:**
|
||
- TWR = 150 kN / (1430 kg × 9.81 m/s²) = 10.7
|
||
- Delta-v (no gravity loss): 310 s × ln(1430/380) ≈ 1300 m/s
|
||
|
||
---
|
||
|
||
## 3D Model Components
|
||
|
||
### Tank Rendering
|
||
|
||
**Cylindrical body:**
|
||
```javascript
|
||
<TankSection
|
||
radius={1.0}
|
||
length={3.0}
|
||
position={[0, 0, 0]}
|
||
/>
|
||
```
|
||
|
||
Renders:
|
||
- Cylinder: `CylinderGeometry`
|
||
- Top dome: `SphereGeometry` (hemisphere)
|
||
- Bottom dome: `SphereGeometry` (hemisphere)
|
||
|
||
**Material:** MeshStandardMaterial with color (red = fuel, blue = oxidizer)
|
||
|
||
### Nose Cone Rendering
|
||
|
||
**LatheGeometry:**
|
||
- Takes profile curve (array of points)
|
||
- Rotates around Y-axis to create 3D surface
|
||
- Smooth, aerodynamic appearance
|
||
|
||
**Example:**
|
||
```javascript
|
||
const profile = noseConeProfile('tangent-ogive', 0.5, 1.0, 24)
|
||
const geometry = new THREE.LatheGeometry(profile, 24)
|
||
```
|
||
|
||
### Scene Setup
|
||
|
||
**Lighting:**
|
||
- Ambient light (0.6 intensity)
|
||
- Directional light from top-right
|
||
- Shadows enabled for depth
|
||
|
||
**Camera:**
|
||
- Orbit controls (rotate, zoom, pan)
|
||
- Auto-fit to model bounds
|
||
- Perspective view (60° FOV)
|
||
|
||
---
|
||
|
||
## Workflow: Design Complete Vehicle
|
||
|
||
### Step 1: Import Engine
|
||
1. Go to **Design > Engine**
|
||
2. Configure combustion (LOX/RP1, 200 bar, etc.)
|
||
3. Size structure (Inconel, 3.0 SF)
|
||
4. Export as JSON
|
||
5. Return to **Design > Rocket**
|
||
6. Upload engine JSON
|
||
→ **Result**: Engine dry mass auto-populated
|
||
|
||
### Step 2: Configure Tanks
|
||
1. Set tank configuration: **Tandem**
|
||
2. Set outer radius: **1.0 m**
|
||
3. Set propellant volume: **5000 L**
|
||
4. Set ullage: **10%**
|
||
→ **Result**: Calculated tank length, dome geometry
|
||
|
||
### Step 3: Design Tank Structure
|
||
1. Select material: **Aluminum 6061-T6**
|
||
2. Set safety factor: **2.5**
|
||
3. Select feed system: **Pressure-Fed**
|
||
→ **Result**: Wall thickness, tank mass, pressurant requirements
|
||
|
||
### Step 4: Set Payload
|
||
1. Enter payload mass: **50 kg** (avionics, recovery)
|
||
→ **Result**: Dry mass updated
|
||
|
||
### Step 5: View Mass Budget
|
||
→ **Result**:
|
||
- Wet mass: 1550 kg
|
||
- Dry mass: 450 kg
|
||
- TWR: 10.2
|
||
- Delta-v (vacuum): 1320 m/s
|
||
|
||
### Step 6: Adjust Nose Cone
|
||
1. Select shape: **Von Kármán**
|
||
→ **Result**: 3D model updates with optimal nose cone
|
||
|
||
### Step 7: Export & Simulate
|
||
1. Export vehicle JSON
|
||
2. Go to **Design > Trajectory**
|
||
3. Import vehicle & engine data
|
||
4. Run flight simulation
|
||
→ **Result**: Altitude, downrange, apogee, landing site
|
||
|
||
---
|
||
|
||
## Advanced Topics
|
||
|
||
### Multi-Stage Rockets
|
||
|
||
Not yet implemented, but conceptually:
|
||
- Stage 1: Large engines, heavy structure
|
||
- Stage 2: Smaller engines, lighter structure
|
||
- Interstage adapter: mass penalty
|
||
- Staging sequence: defined by velocity requirements
|
||
|
||
Implementation would require:
|
||
- Multiple vehicle definitions (or list of stages)
|
||
- Trajectory system that handles stage separation
|
||
- Cumulative mass and thrust calculations
|
||
|
||
### Composite Materials
|
||
|
||
CFRP offers best strength-to-weight but requires special analysis:
|
||
- **Fiber direction** — properties vary with orientation
|
||
- **Matrix** — epoxy, vinyl ester
|
||
- **Layup schedule** — [0°/90°/45°] typical
|
||
- **Microbuckling** — axial compression limit
|
||
- **Matrix cracking** — transverse tensile limit
|
||
|
||
Advanced model would include:
|
||
- Classical laminate theory (CLT)
|
||
- Ply-by-ply failure criteria (Tsai-Wu, Hashin)
|
||
- Buckling analysis (Timoshenko, finite element)
|
||
|
||
---
|
||
|
||
## Troubleshooting
|
||
|
||
### Tank too long?
|
||
- Reduce ullage percentage (lower to 5%)
|
||
- Increase radius (larger tank, shorter cylinder)
|
||
- Split into multiple smaller tanks
|
||
- Switch to coaxial configuration
|
||
|
||
### Vehicle too heavy?
|
||
- Switch to lighter material (CFRP)
|
||
- Reduce safety factor (if acceptable)
|
||
- Decrease payload mass
|
||
- Use pump-fed system (avoids pressurant)
|
||
|
||
### Nose cone looks wrong?
|
||
- Verify radius and length (L = 2R)
|
||
- Try different shape (Von Kármán usually best)
|
||
- Check 3D viewer isn't zoomed in too far
|
||
|
||
### 3D model not rendering?
|
||
- WebGL must be enabled
|
||
- Check browser console for Three.js errors
|
||
- Ensure geometry dimensions are reasonable (not NaN)
|
||
|
||
---
|
||
|
||
## References
|
||
|
||
- NASA SP-8007: Structural Design and Test Factors of Safety for Spaceflight Hardware
|
||
- Huzel, D. K., & Huang, D. H. (1992). Modern engineering for design of liquid-propellant rocket engines.
|
||
- Rocket Propulsion Elements (8th ed.). by Sutton & Biblarz.
|
||
|
||
---
|
||
|
||
**Last Updated**: 2025-02 | **Status**: Current (v3 — Domed Tanks)
|