今年的美赛B题拿到“利用空间电梯系统建立月球殖民地”这个背景时,很多人第一反应是往星际工程、软硬科幻方向使劲,但在建模竞赛里,真正决定排名的是你怎么把“空间电梯”这种听起来很宏大的东西,翻译成一组可以求解的方程和一套能跑出结果的代码。尤其是第一问,它通常不是让你设计整个殖民系统,而是先解决“电梯缆绳到底能不能拉得住自己”这个最基础的问题。我在这篇里把我们队伍第一问的完整解析思路、模型推导细节、Python实现代码,以及几个差点让我们翻车的坑都写出来。适合参加美赛的队友做参考,也适合对空间电梯物理模型感兴趣的工程师快速上手。
先说结论:月球空间电梯的可行性边界,比地球太空电梯宽松得多。原因是月球表面重力只有地球的六分之一,而且我们可以把缆绳的末端挂在地月拉格朗日L1点附近,利用地球引力梯度和月球自转的惯性力,让整条缆绳处于受拉状态。第一问如果你能把这个受力关系讲清楚,再用代码把缆绳的截面变化、应力分布、总质量算出来,就已经能拿到相当不错的基础分。
1. 第一问到底在问什么:从赛题文本到可求解的数学问题
1.1 我把第一问拆成的三个子问题
拿到题目第一件事,不是急着建模,而是拆题。空间电梯系统建立月球殖民地,第一问通常不会让你直接算“殖民地多少人、要多少物资”这种偏宏观的问题,而是先让你证明“这套系统在物理上能不能成立”。我们队当时把第一问拆成了三个子问题:
- 力学可行性:缆绳从月球表面延伸到地月L1点时,整条缆绳的张力分布是什么,会不会在某个位置被自己的重力拉断。
- 材料需求:为了承受这个张力,缆绳需要多粗,等截面方案够不够,是否需要变截面设计,总质量大概是多少。
- 初步经济性:用空间电梯往月球表面运物资,单位质量的能量成本和传统火箭差几个数量级。
这三个子问题前两个是核心,第三个是加分项。实际阅卷时,评委很看重“能不能从物理模型给出有量级感的数字”,而不是停留在列公式。
1.2 为什么选择“月球电梯”而不是“地球直达月球”
题目里“利用空间电梯系统建立月球殖民地”,存在两种物理图景:一种是从地球表面竖一座电梯,直接通到月球;另一种是在月球上建立电梯系统,把物资从月面运输到地月L1点或者月球轨道,再中转。这两种图景的难度天差地别。
地球到月球直达电梯几乎不可能在竞赛模型里处理,因为缆绳需要跨越约38万公里的地月距离,还要同时克服地球和月球两个天体的引力变化,材料性能要求远远超出当前任何已知材料。月球本地电梯就现实得多:月球被地球潮汐锁定,同一面始终朝向地球,我们可以在月球近地侧表面锚定缆绳,另一端伸向地月L1点。月球表面重力约1.62 m/s²,只有地球的六分之一,而且L1点距离月球中心大约5.8万公里,比地球同步轨道高度还接近。这个设定下,碳纳米管缆绳在理论上可以承受缆绳自重。
1.3 建模前必须吃透的物理量:引力、离心力和拉格朗日点
要建立模型,先要弄清楚缆绳上每一个微元在旋转参考系里收到了哪些力。以月球中心为原点,沿地月连线指向地球为正方向,设某点的月心距离为 r,那么单位质量受到的作用力来源有三个:
- 月球引力,指向月球中心,大小是 G M_m / r²,在方程里取负号。
- 地球引力差项,这是最容易漏掉的一项。月球本身绕地球公转,月球中心所在的非惯性参考系有一个牵连加速度,所以相对月球中心来看,地球引力贡献是 G M_e / (D - r)² - G M_e / D²,其中 D 是地月距离。
- 随月球自转的离心力,大小是 ω² r,方向指向地球方向,取正号。这里的 ω 是月球自转/公转平均角速度,约 2.66 × 10⁻⁶ rad/s。
在拉格朗日L1点,这三项正好达到平衡,也就是:
[
-\frac{G M_m}{r^2} + \left[\frac{G M_e}{(D - r)^2} - \frac{G M_e}{D^2}\right] + \omega^2 r = 0
]
这个方程是整篇第一问的基石。很多队伍一开始漏掉地球引力差项里的 -G M_e / D²,结果算出来L1点位置偏到两万多公里,和真实值差了几乎一倍。我建议动笔前先把参考系定义写清楚,再把每一项的符号标出来,能少走很多弯路。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 缆绳静力学模型:连续体受力平衡方程的推导
2.1 旋转参考系中的一维平衡方程
把缆绳看成连续体,沿地月连线方向一维建模。取缆绳单位长度上的一小段微元,它在径向方向处于静力平衡。设缆绳密度为 ρ,截面积为 A(r),张力为 T(r),单位质量视重力为 g_eff(r),也就是上面三个力源叠加后的合力加速度。
微元受到的“体积力”是 ρ A(r) g_eff(r) dr,方向沿径向向月心时为负。张力变化满足:
[
\frac{dT}{dr} = -\rho A(r) g_eff(r)
]
这里 g_eff(r) 的完整表达式是:
[
g_eff(r) = -\frac{G M_m}{r^2} + \left[\frac{G M_e}{(D - r)^2} - \frac{G M_e}{D^2}\right] + \omega^2 r
]
在月球表面附近,g_eff 约为 -1.62 m/s²,说明缆绳微元受到指向月心方向的净作用;从月面往L1点走,这个负值逐渐减小,到L1点变成0。如果缆绳末端锚在L1空间站,且空间站通过推进器或系留配重提供端部张力 F_end,那么从末端往月面方向积分,张力会越来越大,因为下方缆绳要承担上方缆绳朝月心方向的“视重量”。这就是“缆绳越靠近根部越要加粗”的物理本质。
2.2 等截面设计为什么不够,变截面的核心思想
如果缆绳采用等截面 A0,那么张力方程两边约掉 A,应力分布可以解析地写成:
[
\sigma(r) = \frac{T(r)}{A_0} = \rho \int_r^{L1} -g_eff(s) ds + \frac{F_{end}}{A_0}
]
这里的关键是:在等截面假设下,缆绳内部的应力大小和截面积无关,只取决于密度和视重力沿长度的积分。我们用数值积分大致估算一下,从月面到L1点,积分值 ∫ -g_eff ds 约在 2.6 × 10⁶ m²/s² 量级。乘上密度 1300 kg/m³(碳纳米管),得到等截面缆绳根部应力约 3.4 GPa。
这个数字很有意思:普通钢材的许用应力只有约 250 MPa,完全不够;碳纳米管的理论强度可达 20 到 60 GPa,在等截面下就有足够安全余量。所以第一问如果要求你判断材料可行性,结论是“碳纳米管等截面缆绳都是理论可行的,钢材不行”。
但工程上为了降低应力峰值和总质量,会采用变截面设计,让每一处的实际应力都接近材料许用应力 σ_all,这就是“等应力设计”。条件 T(r) = σ_all A(r) 代入平衡方程,得到:
[
\frac{dA}{dr} = -\frac{\rho}{\sigma_all} A(r) g_eff(r)
]
截面积沿缆绳是一个指数变化过程:越靠近月面,A 越大;越靠近L1末端,A 越小。这样做的好处是材料利用率最高,代价是制造一根截面连续变化的纳米管缆绳在工艺上极其困难。竞赛里第一步用等截面判断可行性、第二步用变截面计算最优化需求,是比较经典的组合拳。
2.3 边界条件:末端锚点与月面锚点的受力关系
模型定解还需要边界条件。缆绳末端在L1点附近,理想情况下如果L1点视重力为零,理论上可以用一根极细的缆绳挂住,但实际必须有一个末端锚定装置或配重,否则缆绳会整体被拉向月球。我们取末端张力 T(L1) = F_end,F_end 是L1空间站/配重提供的张紧力;缆绳根部固定在月球表面锚点,根部张力 T(R_m) 不需要人为设定,直接由积分得出。
另外要注意,缆绳从月面到L1点这一段,g_eff 始终为负,这就意味着整条缆绳对锚点都是向内的拉力。如果第一问以后让你设计“如何从月面把货物拉到L1点”,爬升器需要克服的是这段视重力沿线的积分,而不是简单用月球表面重力乘高度。
3. 参数选取与材料选型:让模型落地的关键
3.1 月球与地月系统的关键参数
竞赛中参数不能随便拍脑袋,一定要在论文里写明来源。下面是这题最常用的一套参数,也是我们第一问代码里实际用的:
| 参数 | 符号 | 数值 | 单位 |
|---|---|---|---|
| 月球半径 | R_m | 1.7374e6 | m |
| 月球引力参数 | G M_m | 4.9028e12 | m³/s² |
| 地球引力参数 | G M_e | 3.986e14 | m³/s² |
| 地月平均距离 | D | 3.844e8 | m |
| 月球自转角速度 | ω | 2.6617e-6 | rad/s |
| 缆绳密度(碳纳米管) | ρ | 1300 | kg/m³ |
| 缆绳许用应力(碳纳米管) | σ_all | 2e10 | Pa |
这里要特别提醒单位问题。竞赛时很多队伍喜欢用公里和公里的三次方每秒平方来算,写着写着就忘了自己用的是哪个单位制,最后结果差了一千倍。我的习惯是进入代码前全部转成国际单位,只在最后的图表里标成公里显示。
3.2 材料对比:碳纳米管和钢材的差距到底在哪
材料选型决定了第一问结论的走向。用等截面模型提前算一遍:
- 碳纳米管:密度 1300 kg/m³,许用应力取 20 GPa,等截面根部应力约 3.4 GPa,安全系数约 5.9,完全可行。
- 钢材:密度 7850 kg/m³,许用应力取 250 MPa,等截面根部应力约 20 GPa,差了近两个数量级,不用继续算变截面也没戏。
- 钛合金:密度 4500 kg/m³,许用应力约 800 MPa,根应力约 11.7 GPa,仍然不够。
所以第一问用材料对比表格就可以很直观地告诉评委:月球空间电梯的核心瓶颈不是地球同步轨道电梯那种“材料强度密度比”的极限问题,而是工程制造和动态控制问题。碳纳米管缆绳在静力学模型下是可行的,这个结论本身就是题目的关键输出。
3.3 材料比强度与缆绳理论极限长度
为了更一般地讨论,可以引入比强度 σ_all / ρ。对于一根等截面缆绳,它能承受自身重力的理论最长长度约为:
[
L_{max} = \frac{\sigma_all}{\rho , g_{avg}}
]
地球上的碳纳米管缆绳理论极限可以很长,但因为地球表面重力大,真正做地球太空电梯仍然极其困难;月球电梯因为 g_eff 本身从 1.62 m/s² 迅速衰减到 0,等效平均视重力只有约 0.05 m/s² 量级,所以缆绳长度已经不是问题。建议在论文里画一条“不同材料下缆绳可用长度”的对比曲线,这比单纯堆公式更有说服力。
4. 数值求解与代码实现:从常微分方程到可复现的Python脚本
4.1 为什么用数值积分而不是解析解
缆绳上的 g_eff 随 r 变化不是简单的常数,月球引力按 1/r² 衰减,地球引力差项也在变化,虽然积分最终可以写成初等函数组合,但用手推导极其繁琐,而且很容易出错。竞赛里直接用数值积分是更稳的选择。方法上我推荐先求出拉格朗日L1点位置,再沿缆绳长度离散积分张力。代码中用指数递推代替普通欧拉递推,是因为张力微分方程的解在形式上是指数函数,指数递推对步长的敏感度更低。
4.2 主代码结构:二分求L1、离散积分、质量累计
下面这个脚本可以直接复制运行,只需要 numpy 和 matplotlib。它做了四件事:二分法求地月L1点;计算缆绳沿线 g_eff;在等应力设计下递推张力和截面积;输出总质量和关键点数值。
python复制import numpy as np
import matplotlib.pyplot as plt
# ======== 基础参数(全部国际单位) ========
R_m = 1.7374e6 # 月球半径 m
GM_m = 4.9028e12 # 月球引力参数 m^3/s^2
GM_e = 3.986e14 #
