first commit
This commit is contained in:
272
earth_moon_transfer.py
Normal file
272
earth_moon_transfer.py
Normal file
@@ -0,0 +1,272 @@
|
||||
"""
|
||||
地月转移轨道:有效载荷与燃料消耗(能量)关系分析
|
||||
|
||||
基于齐奥尔科夫斯基火箭方程和霍曼转移轨道模型
|
||||
"""
|
||||
|
||||
import numpy as np
|
||||
import matplotlib
|
||||
matplotlib.use('Agg') # 使用非交互式后端
|
||||
import matplotlib.pyplot as plt
|
||||
from matplotlib import rcParams
|
||||
|
||||
# 设置中文字体支持
|
||||
rcParams['font.sans-serif'] = ['Arial Unicode MS', 'SimHei', 'DejaVu Sans']
|
||||
rcParams['axes.unicode_minus'] = False
|
||||
|
||||
# ============== 物理常数 ==============
|
||||
G0 = 9.81 # 地表重力加速度 (m/s²)
|
||||
|
||||
# 地月转移轨道典型ΔV预算 (m/s)
|
||||
DELTA_V_TLI = 3100 # 地月转移注入 (Trans-Lunar Injection)
|
||||
DELTA_V_LOI = 800 # 月球轨道捕获 (Lunar Orbit Insertion)
|
||||
DELTA_V_TOTAL = DELTA_V_TLI + DELTA_V_LOI # 总ΔV
|
||||
|
||||
# 不同发动机类型的比冲 (秒)
|
||||
ENGINES = {
|
||||
'固体火箭': 280,
|
||||
'液氧煤油': 350,
|
||||
'液氧液氢': 450,
|
||||
'离子推进 (仅供参考)': 3000,
|
||||
}
|
||||
|
||||
# 结构系数 (结构质量/燃料质量)
|
||||
ALPHA = 0
|
||||
|
||||
|
||||
def exhaust_velocity(isp):
|
||||
"""
|
||||
计算排气速度
|
||||
|
||||
参数:
|
||||
isp: 比冲 (秒)
|
||||
返回:
|
||||
排气速度 (m/s)
|
||||
"""
|
||||
return isp * G0
|
||||
|
||||
|
||||
def mass_ratio(delta_v, isp):
|
||||
"""
|
||||
计算质量比 R = m0/mf
|
||||
|
||||
基于齐奥尔科夫斯基方程: ΔV = ve * ln(m0/mf)
|
||||
|
||||
参数:
|
||||
delta_v: 速度增量 (m/s)
|
||||
isp: 比冲 (秒)
|
||||
返回:
|
||||
质量比 R
|
||||
"""
|
||||
ve = exhaust_velocity(isp)
|
||||
return np.exp(delta_v / ve)
|
||||
|
||||
|
||||
def fuel_mass(payload_mass, delta_v, isp, alpha=ALPHA):
|
||||
"""
|
||||
计算所需燃料质量
|
||||
|
||||
公式推导:
|
||||
m0 = mp + ms + mf (初始质量 = 有效载荷 + 结构 + 燃料)
|
||||
mf_final = mp + ms (最终质量)
|
||||
ms = alpha * m_fuel (结构质量与燃料成比例)
|
||||
|
||||
由火箭方程: R = m0 / mf_final
|
||||
解得: m_fuel = (mp + ms) * (R - 1)
|
||||
m_fuel = mp * (R - 1) / (1 - alpha * (R - 1))
|
||||
|
||||
参数:
|
||||
payload_mass: 有效载荷质量 (kg)
|
||||
delta_v: 速度增量 (m/s)
|
||||
isp: 比冲 (秒)
|
||||
alpha: 结构系数
|
||||
返回:
|
||||
燃料质量 (kg)
|
||||
"""
|
||||
R = mass_ratio(delta_v, isp)
|
||||
denominator = 1 - alpha * (R - 1)
|
||||
|
||||
if denominator <= 0:
|
||||
# 物理上不可能: 结构质量太大
|
||||
return np.inf
|
||||
|
||||
return payload_mass * (R - 1) / denominator
|
||||
|
||||
|
||||
def total_energy(fuel_mass, isp):
|
||||
"""
|
||||
计算燃料的动能(近似能量消耗)
|
||||
|
||||
能量 E = 0.5 * m_fuel * ve²
|
||||
|
||||
参数:
|
||||
fuel_mass: 燃料质量 (kg)
|
||||
isp: 比冲 (秒)
|
||||
返回:
|
||||
能量 (焦耳)
|
||||
"""
|
||||
ve = exhaust_velocity(isp)
|
||||
return 0.5 * fuel_mass * ve ** 2
|
||||
|
||||
|
||||
def characteristic_energy(delta_v):
|
||||
"""
|
||||
计算特征能量 C3 (用于轨道能量分析)
|
||||
|
||||
C3 = V_infinity² (相对于地球的双曲线超速平方)
|
||||
对于地月转移,C3 ≈ -2 km²/s² (束缚轨道)
|
||||
|
||||
简化计算: C3 ≈ (ΔV)² - V_escape²
|
||||
"""
|
||||
# 近地轨道逃逸速度约 10.9 km/s,轨道速度约 7.8 km/s
|
||||
# 从LEO出发需要的额外速度约 3.1 km/s
|
||||
return (delta_v / 1000) ** 2 # km²/s²
|
||||
|
||||
|
||||
def plot_payload_fuel_relationship():
|
||||
"""
|
||||
绘制有效载荷与燃料消耗的关系图
|
||||
"""
|
||||
# 有效载荷范围: 100 kg 到 50000 kg
|
||||
payloads = np.linspace(100, 50000, 500)
|
||||
|
||||
fig, axes = plt.subplots(2, 2, figsize=(14, 12))
|
||||
|
||||
# ========== 图1: 不同发动机的燃料消耗 ==========
|
||||
ax1 = axes[0, 0]
|
||||
for engine_name, isp in ENGINES.items():
|
||||
fuels = [fuel_mass(p, DELTA_V_TOTAL, isp) for p in payloads]
|
||||
fuels = np.array(fuels)
|
||||
# 过滤掉无穷大值
|
||||
valid = fuels < 1e9
|
||||
ax1.plot(payloads[valid]/1000, fuels[valid]/1000,
|
||||
label=f'{engine_name} (Isp={isp}s)', linewidth=2)
|
||||
|
||||
ax1.set_xlabel('有效载荷质量 (吨)', fontsize=12)
|
||||
ax1.set_ylabel('燃料质量 (吨)', fontsize=12)
|
||||
ax1.set_title('地月转移:有效载荷 vs 燃料消耗\n(ΔV = 3.9 km/s)', fontsize=14)
|
||||
ax1.legend(loc='upper left')
|
||||
ax1.grid(True, alpha=0.3)
|
||||
ax1.set_xlim(0, 50)
|
||||
|
||||
# ========== 图2: 燃料/载荷比 ==========
|
||||
ax2 = axes[0, 1]
|
||||
for engine_name, isp in list(ENGINES.items())[:3]: # 排除离子推进
|
||||
ratios = [fuel_mass(p, DELTA_V_TOTAL, isp) / p for p in payloads]
|
||||
ax2.axhline(y=ratios[0], label=f'{engine_name} (Isp={isp}s)', linewidth=2)
|
||||
|
||||
ax2.set_xlabel('有效载荷质量 (吨)', fontsize=12)
|
||||
ax2.set_ylabel('燃料/载荷 质量比', fontsize=12)
|
||||
ax2.set_title('燃料效率比较\n(质量比与载荷无关,仅取决于Isp和ΔV)', fontsize=14)
|
||||
ax2.legend()
|
||||
ax2.grid(True, alpha=0.3)
|
||||
ax2.set_ylim(0, 10)
|
||||
|
||||
# ========== 图3: 能量消耗 ==========
|
||||
ax3 = axes[1, 0]
|
||||
for engine_name, isp in list(ENGINES.items())[:3]:
|
||||
fuels = np.array([fuel_mass(p, DELTA_V_TOTAL, isp) for p in payloads])
|
||||
energies = total_energy(fuels, isp) / 1e12 # 转换为TJ
|
||||
valid = energies < 1e6
|
||||
ax3.plot(payloads[valid]/1000, energies[valid],
|
||||
label=f'{engine_name}', linewidth=2)
|
||||
|
||||
ax3.set_xlabel('有效载荷质量 (吨)', fontsize=12)
|
||||
ax3.set_ylabel('能量消耗 (TJ)', fontsize=12)
|
||||
ax3.set_title('能量消耗 vs 有效载荷\nE = ½ × m_fuel × ve²', fontsize=14)
|
||||
ax3.legend()
|
||||
ax3.grid(True, alpha=0.3)
|
||||
|
||||
# ========== 图4: ΔV 敏感性分析 ==========
|
||||
ax4 = axes[1, 1]
|
||||
delta_v_range = np.linspace(3000, 5000, 100) # 3-5 km/s
|
||||
payload_fixed = 10000 # 10吨有效载荷
|
||||
isp_reference = 450 # 液氧液氢
|
||||
|
||||
fuel_vs_dv = [fuel_mass(payload_fixed, dv, isp_reference) for dv in delta_v_range]
|
||||
ax4.plot(delta_v_range/1000, np.array(fuel_vs_dv)/1000,
|
||||
'b-', linewidth=2, label='燃料质量')
|
||||
|
||||
# 标记关键点
|
||||
ax4.axvline(x=DELTA_V_TOTAL/1000, color='r', linestyle='--',
|
||||
label=f'标准任务 ΔV={DELTA_V_TOTAL/1000} km/s')
|
||||
|
||||
ax4.set_xlabel('ΔV (km/s)', fontsize=12)
|
||||
ax4.set_ylabel('燃料质量 (吨)', fontsize=12)
|
||||
ax4.set_title(f'ΔV敏感性分析\n(有效载荷=10吨, Isp=450s)', fontsize=14)
|
||||
ax4.legend()
|
||||
ax4.grid(True, alpha=0.3)
|
||||
|
||||
plt.tight_layout()
|
||||
plt.savefig('/Volumes/Files/code/mm/20260130_b/earth_moon_transfer_analysis.png',
|
||||
dpi=150, bbox_inches='tight')
|
||||
print("图表已生成!")
|
||||
# plt.show() # 非交互式环境下注释掉
|
||||
|
||||
return fig
|
||||
|
||||
|
||||
def print_summary():
|
||||
"""
|
||||
打印关键数据摘要
|
||||
"""
|
||||
print("=" * 60)
|
||||
print("地月转移轨道分析摘要")
|
||||
print("=" * 60)
|
||||
print(f"\n任务参数:")
|
||||
print(f" - 总ΔV需求: {DELTA_V_TOTAL/1000:.1f} km/s")
|
||||
print(f" - TLI (地月转移注入): {DELTA_V_TLI/1000:.1f} km/s")
|
||||
print(f" - LOI (月球轨道捕获): {DELTA_V_LOI/1000:.1f} km/s")
|
||||
print(f" - 结构系数 α: {ALPHA}")
|
||||
|
||||
print(f"\n不同发动机的燃料效率 (每吨有效载荷所需燃料):")
|
||||
print("-" * 50)
|
||||
|
||||
payload_ref = 1000 # 1吨参考载荷
|
||||
|
||||
for engine_name, isp in ENGINES.items():
|
||||
R = mass_ratio(DELTA_V_TOTAL, isp)
|
||||
fuel = fuel_mass(payload_ref, DELTA_V_TOTAL, isp)
|
||||
ve = exhaust_velocity(isp)
|
||||
|
||||
if fuel < 1e9:
|
||||
print(f"\n {engine_name}:")
|
||||
print(f" 比冲 Isp = {isp} s")
|
||||
print(f" 排气速度 ve = {ve:.0f} m/s")
|
||||
print(f" 质量比 R = {R:.2f}")
|
||||
print(f" 燃料/载荷比 = {fuel/payload_ref:.2f}")
|
||||
print(f" 1吨载荷需燃料: {fuel/1000:.2f} 吨")
|
||||
else:
|
||||
print(f"\n {engine_name}:")
|
||||
print(f" 比冲 Isp = {isp} s (化学火箭无法实现)")
|
||||
|
||||
print("\n" + "=" * 60)
|
||||
print("关键数学关系:")
|
||||
print("=" * 60)
|
||||
print("""
|
||||
齐奥尔科夫斯基方程:
|
||||
ΔV = ve × ln(m₀/mf)
|
||||
|
||||
质量比:
|
||||
R = exp(ΔV / ve)
|
||||
|
||||
燃料-载荷关系:
|
||||
m_fuel / m_payload = (R - 1) / (1 - α(R - 1))
|
||||
|
||||
能量消耗:
|
||||
E = ½ × m_fuel × ve²
|
||||
|
||||
其中:
|
||||
ve = Isp × g₀ (排气速度)
|
||||
α = 结构系数 (约0.1)
|
||||
""")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
# 打印分析摘要
|
||||
print_summary()
|
||||
|
||||
# 绘制关系图
|
||||
print("\n正在生成图表...")
|
||||
fig = plot_payload_fuel_relationship()
|
||||
print("图表已保存至: earth_moon_transfer_analysis.png")
|
||||
BIN
earth_moon_transfer_analysis.png
Normal file
BIN
earth_moon_transfer_analysis.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 275 KiB |
BIN
latitude_effects.png
Normal file
BIN
latitude_effects.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 298 KiB |
59
prob/en_B.md
Normal file
59
prob/en_B.md
Normal file
@@ -0,0 +1,59 @@
|
||||
# 2026 MCM
|
||||
|
||||
# Problem B: Creating a Moon Colony Using a Space Elevator System
|
||||
|
||||

|
||||
|
||||
Imagine a future where it's possible for anyone to visit space by taking a leisurely and scenic ride from the Equator to Earth's orbit and then catching a routine, safe, and inexpensive rocket flight to the Moon, Mars, or beyond. In this future, we could build lush, green, and beautiful space habitats with artificial gravity, where people would vacation, work, or even live. These habitats would alleviate pressure on Earth's delicate, overworked, and fragile ecosystems. The technology to enable these events would provide humankind with limitless, safe, routine, environmentally friendly, efficient, and global access to space. To achieve these goals, some people envision a Space Elevator System, powered by electricity, offering a scalable infrastructure for interplanetary logistics, commerce, and exploration.
|
||||
|
||||
At its final operating configuration, the Space Elevator System would comprise three Galactic Harbours, ideally separated by 120 degrees around the equator. Each Galactic Harbour would include a single Earth port with two $100,000\mathrm{km}$ -long tethers connected to two apex anchors, with multiple space elevators operating together, each capable of lifting massive payloads daily from Earth to geosynchronous orbit (GEO) and beyond to the apex anchor where they can be loaded on a rocket and delivered anywhere using much less fuel.
|
||||
|
||||
The Moon Colony Management (MCM) Agency is preparing to build a Moon Colony with an estimated 100,000 people beginning in the year 2050, after completion of the Space Elevator System. It is estimated that the Moon Colony will need about 100 million metric tons of materials. Additionally, water and supplies will routinely need to be sent to sustain the Moon's population once the colony is complete. To get to the Moon, the Galactic Harbour must send material in two steps: first, from the Earth port to the apex anchor via a space elevator, and second, from the apex anchor to the Moon Colony via a rocket. The MCM Agency anticipates that the Galactic Harbour will provide an advanced lift system capable of moving 179,000 metric tons every year, while generating no atmospheric pollution.
|
||||
|
||||
The agency is also considering using traditional rockets to supply material for construction and supplies to the Moon Colony. The Earth current has ten rocket launch sites: Alaska, California, Texas, Florida, and Virginia (United States), Kazakhstan, French Guiana, Satish Dhawan Space Centre (India), Taiyuan Satellite Launch Center (China), and Mahia Peninsula (New Zealand).
|
||||
|
||||
A rocket would require a single step from the rocket launch site on Earth to the Moon Colony. By 2050 it is estimated that rockets will be able to carry 100-150 metric tons of payload to the Moon using advanced Falcon Heavy launches. You may assume perfect conditions for both the Galactic Harbour system (e.g., no swaying of the tether) and rocket launches (e.g., no failed launches). You should consider the cost and timeline to deliver the materials from the surface of the Earth to the Moon Colony site for the different scenarios.
|
||||
|
||||
# Your Task:
|
||||
|
||||
Your task is to utilize a mathematical model to determine the cost and associated timeline in order to transport material to build a 100,000 person Moon Colony starting in 2050. You will need to compare the Modern-Day Space Elevator System's three Galactic Harbours to traditional rockets launched from selected rocket bases.
|
||||
|
||||
# Your model should include:
|
||||
|
||||
1. Consideration of three different scenarios for how the 100 million metric tons of materials will be delivered to build the 100,000-person Moon Colony;
|
||||
|
||||
a. using the Space Elevator System's three Galactic Harbor's alone,
|
||||
b. traditional rocket launches from existing bases alone (you may choose which facilities to use), or,
|
||||
c. some combination of the two methods.
|
||||
|
||||
2. To what extent does your solution(s) change if the transportation systems are not in perfect working order (e.g, swaying of the tether, rockets fail, elevators break, etc.).?
|
||||
3. Investigate the water needs for a one-year period once the 100,000-person Moon Colony is fully operational. Use your delivery model to understand the additional cost and timeline needed to ensure the colony has sufficient water for one full year after the Moon Colony is inhabited.
|
||||
4. Discuss the impact on the Earth's environment for achieving the 100,000-person Moon Colony under the different scenarios. How would you adjust your model to minimize the environmental impact?
|
||||
5. Write a one-page letter recommending a course of action to the fictional MCM Agency to build and sustain a 100,000-person Moon Colony.
|
||||
|
||||
Your PDF solution of no more than 25 total pages should include:
|
||||
|
||||
One-page Summary Sheet.
|
||||
Table of Contents.
|
||||
- Your complete solution.
|
||||
One-page letter to MCM Agency
|
||||
References list.
|
||||
AI Use Report (If used does not count toward the 25-page limit.)
|
||||
|
||||
Note: There is no specific required minimum page length for a complete MCM submission. You may use up to 25 total pages for all your solution work and any additional information you want to include (for example: drawings, diagrams, calculations, tables). Partial solutions are accepted. We permit the careful use of AI such as ChatGPT, although it is not necessary to create a solution to this problem. If you choose to utilize a generative AI, you must follow the COMAP AI use policy. This will result in an additional AI use report that you must add to the end of your PDF solution file and does not count toward the 25 total page limit for your solution.
|
||||
|
||||
# Glossary
|
||||
|
||||
Space Elevator System is comprised of three Galactic Harbours plus additional support facilities.
|
||||
|
||||
Galactic Harbour is comprised of two apex anchors each connected by two tethers to a single Earth Port.
|
||||
|
||||
Earth Port is the location on the Earth that provides surface support for the Galactic Harbour.
|
||||
|
||||
Tethers are $100,000\mathrm{km}$ long graphene material that links the Earth port and apex anchors in the Space Elevator System.
|
||||
|
||||
Apex Anchor is the counterweight in space at the end of the $100,000\mathrm{km}$ tether.
|
||||
|
||||
Geosynchronous orbit (GEO) is approximately $35,786\mathrm{km}$ above the surface of the Earth where the orbital period to circle Earth is 24 hours, matching Earth's rotation so it stays over the same longitude each day.
|
||||
|
||||
Moon Colony is a habitat on the moon with the capacity to support 100,000-persons.
|
||||
BIN
specific_energy_comparison.png
Normal file
BIN
specific_energy_comparison.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 161 KiB |
1008
specific_energy_comparison.py
Normal file
1008
specific_energy_comparison.py
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user