先把电梯这件事的“科幻滤镜”摘掉。2026年美赛B题给出的是“太空电梯系统 + 月球殖民地”这个场景,单看题干很容易产生两种极端反应:一种觉得太空电梯太酷了,必须造一个特别炫的模型;另一种觉得这题太硬核,完全没有头绪。这两种反应其实都偏离了美赛B题的命题逻辑。美赛B题从来不要求你真的设计出一部能用的太空电梯,它考察的是你能否把一个模糊的宏大目标,拆成有输入、有输出、有约束、可计算、可验证的工程子问题,再用数学建模把整条链路串起来。这篇文章会从题目拆解、物理原理、模型搭建、代码框架到论文写作,把“利用太空电梯系统建立月球殖民地”这道题的完整解题路径讲清楚,适合正在备赛MCM的队伍、想在赛前提前想清楚B题风格的选手,以及所有对太空电梯建模感兴趣的读者。
1. 看到题目后先别急着建模:这道B题到底在考什么
1.1 从“科幻设定”里抽出真实的工程问题
太空电梯这个概念最早可以追溯到1895年,齐奥尔科夫斯基看着埃菲尔铁塔,提出了在地球同步轨道上建一座高塔的构想。后来阿瑟·克拉克在《天堂的喷泉》里把太空电梯写成了一个极其详细的工程故事。之所以提这段背景,是因为它点出了一件很重要的事:太空电梯的本质是一个力学结构问题,而不是一个科幻想象问题。缆绳要承受自身重量、电梯舱的载重、太阳风压力、轨道摄动,甚至微陨石撞击,这些都是可以建模的物理量。
美赛B题最擅长做的事情,就是把人人都觉得“这也能建模?”的宏大场景,变成一个现实、有边界的工程决策问题。所以你看到“月球殖民地”这种词,第一反应不应该是“我是不是得懂航天工程”,而是应该想:这个题里哪些部分可以用初等力学描述?哪些部分可以抽象成运输调度问题?哪些部分可以做成经济成本模型?一旦你这样切换视角,题目就从科幻小说变成了一道综合型数模题。
1.2 月球版和地球版太空电梯是两个完全不同的物理模型
这部分特别关键,因为它决定你后面所有公式的方向。很多队伍第一个反应是“太空电梯=地球同步轨道到地面的缆绳”,然后直接套地球的参数。但月球和地球的物理条件差异巨大,导致两套模型完全不能互通。
| 对比项 | 地球版太空电梯 | 月球版太空电梯 |
|---|---|---|
| 表面重力 | 9.8 m/s² | 1.62 m/s² |
| 自转周期 | 24小时 | 27.32天(潮汐锁定) |
| 同步轨道位置 | 距地心约42164 km | 地月L1点附近,距月心约58000 km |
| 大气阻力 | 需考虑 | 无大气,可忽略 |
| 缆绳受力 | 极强,现有材料无法满足 | 受力低一个量级,工程可行性更高 |
| 主要扰动 | 大气、洋流、地磁场 | 日/地引力摄动、微陨石 |
最核心的差异在于:月球是潮汐锁定的,始终以同一面朝向地球。对月球表面一个固定点来说,它随月球自转做圆周运动的角速度非常慢,而月球重力又只有地球的六分之一,所以“月球同步高度”实际上不在月球赤道正上方,而大致对应地月L1点附近。这个点以下,月球引力占优;这个点以上,离心力逐渐占优。缆绳的应力分布、截面变化、配重位置,全都要围绕这个平衡点来设计。
我建议拿到题之后先把这组物理参数写下来,放在论文附录里。它既是你所有计算的起点,也是向评委表明“我没有拿地球模型硬套月球”的直观证据。
1.3 从题干反推评委想看到的三个信号
美赛阅卷时,评委最在意三件事:第一,你的建模逻辑是不是完整的,即“需求—方案—计算—评估”这条链有没有缺口;第二,你的模型是不是有依据的,所有关键常数和假设都要能追到来源,不能拍脑袋;第三,你的结果能不能落地,哪怕只是相对比较,也要给出“哪一种方案更优”“在什么条件下不成立”这类结论。
放在这道题里,具体对应三层能力:
- 物理建模能力:缆绳力学、轨道力学、能源系统。对应连续模型部分。
- 系统规划能力:物资运输、人员迁移、库存管理、阶段化发展。对应离散决策和运筹学部分。
- 经济评估能力:成本、收益、投资回报、长期可持续发展。对应政策建议部分。
不要把太空电梯当成唯一的题目核心。“建立月球殖民地”才是最终目标,太空电梯只是实现运输的手段。如果你只花了90%的篇幅算缆绳截面积,完全没算殖民地怎么运转,那论文结构一定是失衡的。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 把“建立月球殖民地”拆成六个可计算的子问题
2.1 子问题分解:从缆绳到殖民地运营的全链路
拿到这种综合性题目,最忌讳的就是“只攻一个点”。正确做法是先画一条全链路,再逐个攻破。我当时拆下来的子问题是这样:
- 缆绳结构与材料选型:确定缆绳的截面变化、总质量、末端锚定位置。
- 电梯舱运输系统:计算单次运输时间、承载能力、运行班次、能量需求。
- 殖民地需求模型:人口增长与物资消耗的关系,包括水、空气、食物、能源、建材。
- 运输与库存调度:把需求模型和运输系统接起来,形成多周期调度方案。
- 经济成本与收益:建设成本、运营成本、资源收益,最后算NPV和回收期。
- 风险与鲁棒性分析:缆绳材料波动、运输延误、突发事故对整体方案的影响。
这六个子问题不是孤立的。缆绳结构决定了电梯舱的运力上限,运力上限决定了移民速度,移民速度决定了殖民地需求曲线,需求曲线又反过来影响成本模型。数据传递是单向的,但逻辑检查必须双向,比如你在算经济收益时发现回本太慢,可能要回头调移民速度,最后形成一个迭代循环。
2.2 每个子问题用什么模型解决
给出一个模型方法对照表,这样可以让你和队友在第一天的讨论中有共同语言。
| 子问题 | 推荐建模方法 | 关键变量/参数 | 输出产物 |
|---|---|---|---|
| 缆绳结构力学 | 变截面梁/等应力设计,求解微分方程 | 材料强度σ、密度ρ、安全系数、缆绳长度 | 截面比曲线、总质量 |
| 电梯舱运动 | 运动学 + 能量守恒,必要时加最优控制 | 加速度、最大速度、载重、功率 | 单次时长、能耗、日运力 |
| 殖民地需求 | 系统动力学微分方程组 | 人口N、库存I、人均消耗、原位资源率 | 物资需求曲线 |
| 运输调度 | 排队仿真或整数规划 | 班次间隔、容量上限、需求节拍 | 调度表、利用率 |
| 经济评估 | 现金流折现模型 | 折现率、建设成本、资源价格 | NPV、回收期 |
| 风险分析 | 蒙特卡洛 + 灵敏度分析 | 材料强度分布、故障率 | 失效概率、关键参数排序 |
2.3 输入输出怎么衔接
这六个子问题之间的数据接口如果定义不清楚,后续写起来会非常混乱。我的做法是先用Excel或者简单的Python字典把“全局参数”固定下来,例如月球半径、L1点距离、材料强度上限,然后每个子模型只依赖这些全局参数和上一个模型的输出,不跨层调用别的模型内部的临时变量。
这里想特别强调一个习惯:所有常数都要标注单位。因为太空场景里的数字动辄是10的6次方、10的7次方,一旦单位搞错,结果会差出好几个数量级。实际建模时我见过无数队伍在“km”和“m”之间翻车,这种低级错误在摘要里是致命的。
3. 核心模型搭建:从等应力缆绳到运输调度的数学结构
3.1 缆绳等应力设计:先算这一条,其他都好办
先看整个题目里物理味道最浓、也最容易拿分的一块:缆绳截面设计。
假设缆绳截面积为 A(r),密度为 ρ,材料许用应力为 σ。缆绳受到的“有效重力加速度”其实是由月心引力和自转离心力共同决定的。在距月心 r 处,这个有效加速度可以写成:
g_eff(r) = ω²·r - GM/r²
其中 ω 是月球自转角速度,M 是月球质量,G 是万有引力常数。注意这个表达式里重力项带负号,因此在L1点以内、重力占主导的区域,g_eff 是负的,表示缆绳“被往回拽”。缆绳内部的张力从月面往上逐渐变化,平衡方程为:
dT/dr = ρ·A(r)·g_eff(r)
如果让缆绳每一处都承受相同的应力 σ = T/A,就可以得到截面比的控制方程:
(dA/dr) / A = (ρ/σ)·g_eff(r)
这个方程有解析解:
A(r) = A(R_moon) · exp[ (ρ/σ) · ( ω²(r²−R_moon²)/2 + GM(1/r − 1/R_moon) ) ]
从形式上看,指数内部是负的,说明缆绳从月面出发,越往外截面可以做得越细,直到末端配重处。这个结论非常关键:它意味着月球太空电梯在材料上的压力,远小于地球太空电梯。如果你把地球参数套进去,截面会变得极其夸张;换成月球参数,结果合理很多。这也是为什么月球殖民地在工程上被认为比地球太空电梯更现实的底层原因。
这个解析公式的另一个用途是反推材料需求。只要你给定末端最小截面(至少能承受电梯舱和配重的载荷)和材料的安全系数,就能得到月面处的最大截面,从而算出整根缆绳所需的总质量。
3.2 电梯舱运动模型:要把“时间—能量—安全”放在一起看
电梯舱从月面爬到L1点锚定站,距离大约是5.8万公里。这个距离在地球上看很远,但在月球微重力环境下,运动控制反而简单。没有大气阻力,所以运动学模型只需要考虑牵引力、月球引力和缆绳传导的约束。
最简单的版本是“匀加速—巡航—匀减速”三段式。设最大加速度为 a,最大巡航速度为 v_max,加速到 v_max 的时间和距离分别为:
t_acc = v_max / a,d_acc = v_max² / (2a)
如果 2·d_acc 大于总高度 H,说明还没到巡航速度就得开始减速,总时间按 2·√(H/a) 算;否则按 2·t_acc + (H − 2·d_acc)/v_max 算。这部分代码很简单,但它能帮队伍快速得到一个量级判断:单程运输到底需要几十小时还是几天。
更进一步,可以把能量约束加进来。电梯舱需要克服重力抬高势能,同时还要给自身提供动能。若牵引功率有限,那么峰值速度会被压缩。这个优化可以用动态规划做,也可以用伪谱法做,但在比赛阶段建议先做简化版,把简化版结果作为基线,再用蒙特卡洛给出功率提升带来的时间收益。这样做既保留了物理完整性,又不至于被最优控制问题拖住时间。
3.3 殖民地物资平衡模型:人口与库存必须耦合
殖民地能不能运转,核心在于物资库存能不能跟上人口增长。建议用微分方程把这两个变量耦合起来:
N'(t) = r·N(t)·(1 − N/K)·( I(t) / (I(t) + I_half) )
I'(t) = supply(t) − c·N(t)
第一个方程是带资源约束的Logistic人口增长,其中 I(t) 是某些关键物资(比如水或食物)的库存,I_half 是半饱和常数,表示库存低于这个水平时人口增长率就会明显下降。第二个方程是库存变化:supply(t) 来自太空电梯运输和月球原位资源开采,c·N(t) 是总消耗速率。
假如原位资源利用率很低,运输又受电梯运力限制,你会看到人口增长会迅速撞到库存上限,出现“移民瓶颈”。这其实正是题目想让你发现的问题:建设月球殖民地不是无限往月球送人,而是要先把原位资源利用率提上去,否则运输成本会高到不可持续。这个结论写进论文后,跟“可持续发展”这一主题就完全呼应上了。
3.4 经济性模型:用NPV判断整套方案是否可行
经济模型不需要多复杂,但需要覆盖建设期和运营期。现金流入项可以包括月球资源开采收益、科研价值折算、空间旅游收入等;现金流出项包括缆绳建设成本、电梯舱制造、人员运输补贴、殖民地的日常维护费用。
NPV = Σ_t (CashIn_t − CashOut_t) / (1 + discount)^t
这里有几个可以调节的关键参数:折现率 discount 通常取5%到10%;移民速率决定了前期的现金流出节奏;原位资源利用率决定了后期运营成本下降的速度。用Python对这个模型做参数扫描,可以画出NPV与移民速率、资源优势率之间的热力图。评委非常吃这一套,因为你不仅给出了一个结果,还给出了“什么条件下方案成立”的边界。
4. 代码框架怎么搭,才能让建模、出图和论文同步推进
4.1 按子问题切模块,而不是按“公式”切模块
很多队伍写代码喜欢把所有公式堆在一个脚本里,最后改一个参数要全局搜索,画图的时候又复制一遍计算过程。这是比赛效率最低的写法。我建议按子问题切模块,每个模块只负责一件事,数据通过参数传递。一个比较顺的目录结构是这样的:
text复制mcm2026_b/
├── config.py # 全局参数:物理常数、单位、参数范围
├── physics.py # 缆绳结构、电梯运动学
├── transport.py # 电梯班次调度、运力计算
├── colony.py # 人口模型、物资库存
├── economy.py # 成本收益、NPV
├── visualize.py # 所有画图函数
└── main.py # 串联全流程,控制计算开关
这样做的好处是最后的论文图可以直接由visualize.py单独生成,不碰核心计算代码;敏感性分析也可以只改config.py里的参数,然后循环跑模型,不影响其他模块。
4.2 三个最值得提前写好的核心函数
第一个是缆绳截面和总质量的计算函数。用梯形积分验证解析解,并输出截面比曲线。
python复制import numpy as np
def cable_profile(r0, r1, omega, G, M, rho, sigma, n=20000):
"""计算从月面 r0 到末端 r1 的等应力缆绳截面比和质量。"""
r = np.linspace(r0, r1, n)
g_eff = omega**2 * r - G * M / r**2
integrand = (rho / sigma) * g_eff
dr = r[1] - r[0]
integral = np.concatenate(([0], np.cumsum((integrand[1:] + integrand[:-1]) * 0.5 * dr)))
A_ratio = np.exp(integral)
# 若给定月面截面积 A0,则可算总质量
# cable_mass = A0 * rho * np.trapezoid(A_ratio, r) # 老版本Numpy用np.trapz
return r, A_ratio
第二是电梯舱单次运输时间函数,这里用三段式运动学公式。
python复制def travel_time(height_m, a=0.03, v_max=2000.0):
"""匀加速-巡航-匀减速的单次运输时间(秒)。"""
t_acc = v_max / a
d_acc = 0.5 * a * t_acc**2
if 2 * d_acc >= height_m:
return 2 * np.sqrt(height_m / a)
return 2 * t_acc + (height_m - 2 * d_acc) / v_max
第3个是殖民地系统的动力学求解,用scipy.integrate.solve_ivp跑人口与库存的耦合微分方程。
python复制from scipy.integrate import solve_ivp
def colony_dynamics(t, y, p):
N, inv = y
r = p["r"] * max(0.0, 1 - N / p["K"])
supply = np.interp(t, p["supply_t"], p["supply_curve"])
demand = p["per_capita"] * N
dN = r * N * (inv / (inv + p["I_half"]))
dI = supply - demand
return [dN, dI]
def run_colony(p, t_span=(0, 50*365), y0=(10, 500)):
sol = solve_ivp(colony_dynamics, t_span, y0, method="LSODA", t_eval=np.linspace(0, t_span[1], 1000), args=(p,))
return sol
这三个函数单独拿出来看都不复杂,但它们把整道题的骨架撑起来了。后面的工作基本上就是调节参数、做敏感性、画图。
4.3 论文配图清单:哪些图画出来就赢了一半
美赛论文里,图的地位甚至不低于正文公式。我这道题至少会准备以下7类图:
- 地形/结构示意图:缆绳末端在L1点,月面锚定的位置,用示意性示意图说明场景。
- 缆绳截面比随高度变化曲线:最能体现“我做的是月球版而非地球版”的一张图。
- 电梯舱速度—位移曲线或时间—高度曲线。
- 不同班次间隔下的日运力曲线或排队忙期图。
- 人口/库存随时间变化的多条曲线对比(不同ISRU比例、不同移民速度)。
- NPV热力图,横轴为移民速度,纵轴为原位资源利用率。
- 敏感性分析的“龙卷风图”,展示哪个参数对结果影响最大。
每张图都要有编号、标题、轴标签和单位。没有任何说明的折线图在评阅时非常吃亏,因为它不能自己说话。
5. 论文写作:评委最想看到的不是“答案”,而是“链条”
5.1 摘要和问题重述要像“电梯蓝图”一样清晰
论文摘要控制在半页到一页之间,结构上可以采用六句法:第一句点明背景与问题,第二句说明你建立了哪类模型,第三句给出关键结果之一,第四句给出关键结果之二,第五句说明模型验证或灵敏度分析的结论,第六句说明模型的可扩展性。用这道题举例,摘要第一句应该直接把“太空电梯+月球殖民地”这个场景点出来,接下来马上说出“本文基于缆绳等应力设计、运输调度、系统动力学和净现值分析,完整评估了从月面到地月L1点的运输系统对殖民地建设的支撑能力。”这种写法让评委在30秒内就知道你的路线。
问题重述部分不要照抄英文题干。要把它翻译成“形式化问题”,也就是用你自己的话,把题目中的要求重写成几个明确的建模任务。这一部分能做得好,说明你真的读懂了题。
5.2 模型验证与灵敏度分析是区分15分和20分的关键
很多队伍建完模型就算完成任务,但美赛的高分论文几乎都会花不小的篇幅做验证。可以用的验证手段有三类:
- 解析验证:当参数取极限时,模型能否退化成已知的简单情形。例如把月球引力设为0,截面公式应该退化为离心力主导的形态;如果设自转角速度为0,截面积表达式应该只有引力项。
- 数据验证:如果用公开的物理常数(如月球质量、半径、L1距离)代入后,结果量级符合常理,就说明参数没有搞错。
- 敏感性验证:对关键参数做 ±20% 扰动,观察NPV或运力是否发生剧烈变化。如果某个参数扰动10%导致结果波动50%,那这个参数就是系统的“命门”,论文里要单独讨论它的不确定性和获取途径。
这部分内容放进去之后,README式的“我们建了个模型”立刻变成了“我们认真验证过一个系统”,说服力完全不一样。
5.3 写作中常见的扣分点与规避方式
我见过不少队伍,思路很好,最后论文因为一些低级问题被扣到M奖以下。常见问题有四个。
第一,没有假设列表。这个题一定有理想化假设,比如“缆绳使用等应力设计”“电梯舱本身质量恒定”“月球表面没有气流干扰”等等。每一项假设都要单独列出,并在模型部分说明它带来的误差范围,而不是只在开头一笔带过。
第二,公式变量不定义。你写 σ 是应力,但全文没有说明单位;你写 K 是承载力,但读者根本不知道它怎么取。建议在模型建立部分用表格统一列出所有符号的定义与量纲。
第三,图和表没有编号。这是最冤枉的扣分点。插入的每张图都要用“图1”“图2”标注,并在正文里有一段话引出这张图,例如“图3给出了不同原位资源利用率下的人口上限对比,可以看出……”,评委不需要自己猜图的内容。
第四,结论太空泛。比如“我们的模型可以推广到其他资源运输场景”这种话等于没说。要写“当把月球换成火星卫星时,只需将L1点距离、质量、半径替换为对应数值,模型即可直接迁移”,这种具体说明才是有用的。
6. 四天比赛怎么排:时间线、分工和最终检查清单
6.1 三个阶段的时间规划
这道题的工作量集中在第一天和第三天。第一天必须完成题目解读、假设确定、模型框架和基础代码框架,否则后面会被动。我的建议时间线是这样的:
- 第1天上午:读题,查月球的物理常数,整理成参数表。开会对齐“这道题的目标是什么”,明确子问题分解。
- 第1天下午和晚上:搭建缆绳截面模型和电梯运动模型,跑通第一版结果,画出第一张图。
- 第2天:完成殖民地需求和运输调度模型,开始写经济模型。晚上必须出第一版完整结果。
- 第3天:做敏感性分析、蒙特卡洛风险分析,同时论文手开始写问题重述、假设和模型建立部分。
- 第4天:上午集中写摘要和结论,下午统一格式、改公式编号、检查图注和参考文献,留出3小时模拟提交。
这个节奏的关键在于:第2天晚上之前必须有一个“能看的结果”,而不是第4天还在等代码跑出来。
6.2 队伍分工与信息同步方法
三个人最标准的分工是:建模手负责物理模型和数学推导;编程手负责代码实现、出图和数值实验;写作手负责论文框架、摘要、语言润色和排版。但这里有一个很常见的陷阱:各干
