但有一件事必须跟这个数一起说:它是算出来的,不是数出来的。 人类至今没有观测到低轨被"装满"过——没有人见过一次碎片自己越滚越多的级联,所以也就没有人能报一个实测容量。我们现在能给的,只有模型算的上限;而这个上限本身,就是把"还没发生的事"算出来。
伯明翰大学的 Hugh G. Lewis 在 2026 年 7 月的公开论文里给出了这个上限的算法与数值。这篇就转述它的数,并且把它的边界一并说清。所有数字来自论文原文,你可以(或任何 AI agent)重跑验证——见文末附录。
先别往下翻
低轨(几百公里这个高度范围)到底能装多少颗卫星?
(在心里选一个,再往下看。)
这问题为什么没有「数出来的」答案
先讲清楚这个数的性质,否则后面的数字会被误读。
低轨上每一颗碎片都在被两股力量拉扯:一边是碰撞产生新碎片,另一边是大气阻力把碎片拖下来烧掉。如果前者长期压过后者,碎片总量就会自己往上走——哪怕从此一颗卫星都不再发射。
所谓容量上限(论文里叫"临界尺寸"),就是这两股力量刚好打平的那个卫星数量。低于它,碎片会被大气慢慢清掉;高于它,碎片自己增殖。
那么,能不能直接去"数"这个上限?不能。因为要数出来,得先看到它被装满——而我们没有。论文的原话说得很清楚:
"Here a simple analytical approach reveals that several planned, partially deployed, or fully deployed constellations exceed their critical size producing an unstable or a runaway orbital debris population. … and even when the constellations are deployed into a pristine, debris-free orbital environment."
注意最后一句:模型是假设这些星座跑在一条本来就很干净的轨道上算出来的。这既是这个数的力气,也是它的边界——现实中天上早就有大量既有碎片,情况只会更紧,不会更松。
那个数:700 公里上,几万颗
论文给了一个可以直接看的例子。在 700 公里高度上:
| 用哪种卫星的特性来算 | 失控(runaway)临界值 | 不稳定(unstable)临界值 |
|---|---|---|
| Kuiper 00261(质量 490 kg / 面积 2.326 m²) | 40,272 颗 | 4,845 颗 |
| Starlink 37240(质量 575 kg / 面积 36.964 m²) | 16,824 颗 | —(论文未给此组合的该值) |
同一条高度带,换个卫星型号,上限从四万掉到一万六。
为什么差这么多?因为决定容量的从来不是"能放多少个位置",而是放上去之后碎片能不能自己消失。Kuiper 卫星的迎风面积与质量之比是 0.0048 m²/kg,Starlink 卫星是 0.0643 m²/kg——差了 13.4 倍。迎风面积越大,卫星一旦失能掉得越快,它留下的碎片越快被大气清走,这条轨道就还能多装一些。
这就是"能装多少"背后真正的机制:不是空间不够,是清理速度够不够。
但"不超过总数就行"是错的
上面那个数容易被误用成一句简单的规则:"总数别超上限就好。"论文的结果恰恰否掉它。
它把 14 个正在规划、部分部署或已部署的星座放进同一个模型里算(合计约 170 万颗),结果是:
- 超过"失控"临界值(碎片会一直涨下去):6 个——国网、Stampede、Project Sunrise、Starcloud、E-Space Cinnamon & Semaphore、以及 Starmind;
- 超过"不稳定"临界值(碎片涨到一个很高的平衡点):3 个——Eutelsat OneWeb、Eutelsat Next、Starlink Generation 3;
- 两档都没超:7 个——包括 Starlink MSS。
把其中两行单独拎出来:
| 规划卫星数 | 结论 | |
|---|---|---|
| Starlink MSS | 15,000 | 安全 |
| Eutelsat Next | 528 | 超「不稳定」临界值 |
规模小的反而超线,规模大的反而安全——差 28.4 倍,结论相反。 原因还是那一条:它们在不同的高度上,卫星的面质比也不同。所以"低轨能装多少"这个问题,没有一个全轨道通用的数——它是"哪条高度带、用哪种卫星"的函数。
最后一道防线:换成它自己说的卫星,结论不变
论文建模的时候,用一个已在轨的 Starlink 卫星参数替那些还没有卫星上天的星座算了账(因为这些星座目前尚无卫星在轨)。
那有人会问:可它要造的卫星更大,是不是低估了?论文自己先把这个反驳做了一遍:
"SpaceX has stated the mass of a Starmind satellite is 3,000 kg and has a total area of 800 m2, but the evaluation above uses the values from DISCOS for a substantially smaller Starlink satellite. A repeat evaluation based on the larger satellite does not change the outcome - the constellation remains above its critical size for a runaway environment."
换成尺寸大得多的卫星重算,结论不变。这样一个结论就不容易被"你参数用错了"扳倒——它自己先把最不利的参数代进去试过了。
三个问题
问:所以"低轨能装多少颗"有一个准确答案吗? 有一个模型答案(比如 700 公里上、按某种卫星算是 16,824 颗),但没有实测答案。任何把模型值说成"实测容量"的说法都不成立。
问:那监管应该怎么做? 论文的建议是:按"星座整体"评估,而不是一颗一颗卫星地评估。现行很多规则是按单颗卫星的离轨要求定的,而论文指出的问题是——一批卫星放在同一条高度带上,合起来的效应可能超出任何单颗卫星的账面。
问:这个模型有没有反向的误差? 论文自己说,模型假设孤立、无既有碎片,不考虑已在轨物体、火箭残骸、非碰撞类解体与小碎片。这些都是"让情况更糟"的方向——现实中只可能更紧。
你可以自己验
到这里的所有数字,都不是"我们说的",而是从论文原文与它表 1 里的 14 行数据算出来的:
- 一家 100 万颗、合计 1,691,818 颗、占 59.1%、最大四个占 97.1%、中位 6,527 颗:由脚本从表 1 的 14 行原地重算。其中中位数 6,527 与最大四个占 97% 两条,与论文正文自己给的说法逐字对上了——等于用它的数据把它的说法独立复现了一遍;
- 六星座超「失控」、三星座超「不稳定」、七星座安全;15,000 颗 vs 528 颗、28.4 倍:由快照里的名单与规模重算;
- 面质比 0.0643 对 0.0048(13.4 倍)与建模卫星对自报卫星的 0.0643 → 0.2667(4.15 倍):由表 1 的参数与论文引述的自报参数算出;
- 700 公里上的容量上限 40,272 / 4,845 / 16,824 颗:逐字取自论文 §2 Results,并由脚本随表一并输出。
快照内每个 primary 锚点都附原文引用句 quote + 出处定位 locator,可逐字回查。脚本读取冻结快照 → 算出上述全部数字 → 输出与正文完全一致的表格、证据层级与哈希。你(或任何 AI agent)都可以重跑核对,见附录。
附录:可复现验证
python3 verify_constellation_limits.py # 读默认快照,重跑并核对 python3 verify_constellation_limits.py constellation_limits.json # 指定快照文件 python3 verify_constellation_limits.py --self-test # 自检(含证据契约的负例)
脚本会做四件事:
1. 校验快照 schema v2(证据门禁:primary 档必须带原文引用句 quote + 出处定位 locator);
2. 由表 1 的 14 行重算合计 1,691,818 / 首位 1,000,000 / 占比 59.1% / 最大四个 97.1% / 中位 6,527 / 均值;
3. 输出 700 公里上的容量上限(40,272 / 4,845 / 16,824),并由阈值名单与星座规模重算"六超失控、三超不稳定、七安全"与"15,000 对 528 的 28.4 倍";
4. 输出证据层级、快照 sha256 与验证方式。
说明:8 个 primary 锚点逐字取自 Lewis (2026)《Critical Sizes of Satellite Constellations》(arXiv:2607.29644v1)——「一百万颗」的规模句、六个星座超失控临界值的名单句、换成更大卫星结论不变的抗反驳句、三档名单句、摘要承重句、表 1 的 Starmind 行、论文自陈的"尚无在轨卫星",以及它所引的 SpaceX 提交美国联邦通信委员会的公开卷宗(IBFS File No. SAT-LOA-20260108-00016)。每个 primary 锚点内含原文引用句 quote 与出处定位 locator,可逐字复核。注意三点:① 论文是预印本,未宣称经同行评审;② 模型假设孤立、无既有碎片,现实可能更糟;③ 本文给出的"容量上限"全部是模型值,不是实测值——人类至今没有观测到低轨被装满,本文不对"何时会装满"作任何判断。
原始材料(可直接复制)
下面的脚本与数据快照全文,供你(或任何 AI agent)直接复制使用,无需下载。
复现材料(含 sha256 锚点,随嵌入文件自动更新):
verify_constellation_limits.py(复现脚本) · sha256 08d8963ebd5b7a26a83d6281d8dcef8b235390e9d52a37093be7f88cd1acbe78
constellation_limits.json(数据快照) · sha256 53c16480a66fddf67a2803ec2999b79f74de75c6338f01b05508144d64cf6825
verify_constellation_limits.py — 复现脚本全文
#!/usr/bin/env python3
# verify_constellation_limits.py — 科普附录:验证「一百万个数据中心卫星,装得下吗?」派生数字(零依赖 stdlib)
# 输入:constellation_limits.json 冻结快照 v2(8 个 primary 锚点 + Tab.1 的 14 个星座 + 阈值名单)
# 输出:由 Tab.1 重算的派生数字(合计/中位/占比/名单计数/两个反直觉对比)+ 证据层级 + 快照 sha256
# 用法:python3 verify_constellation_limits.py (默认读 constellation_limits.json)
# python3 verify_constellation_limits.py FILE (指定快照文件)
# python3 verify_constellation_limits.py --self-test(自检:含证据契约的负例)
# 退出码:0 成功;2 解析失败;3 证据契约违规(primary 缺 quote/locator)
import hashlib
import json
import statistics
import sys
TIERS = ("primary", "secondary", "media")
def check_schema(snap):
"""证据门禁:primary 档必须带原文引用句 quote + 出处定位 locator(可复现≠可验证)。"""
errors = []
for a in snap.get("anchors", []):
tier = a.get("tier")
if tier not in TIERS:
errors.append(f"锚点 {a.get('label', '?')}: tier 缺失或非法({tier})")
continue
if tier == "primary":
if not a.get("quote", "").strip():
errors.append(f"锚点 {a.get('label', '?')}: primary 档缺 quote(原文引用句)")
if not a.get("locator", "").strip():
errors.append(f"锚点 {a.get('label', '?')}: primary 档缺 locator(出处定位)")
for key, item in snap.get("background", {}).items():
if isinstance(item, dict) and "tier" in item:
tier = item.get("tier")
if tier not in TIERS:
errors.append(f"background.{key}: tier 非法({tier})")
elif tier == "primary":
if not item.get("quote", "").strip():
errors.append(f"background.{key}: primary 档缺 quote")
if not item.get("locator", "").strip():
errors.append(f"background.{key}: primary 档缺 locator")
return errors
def derive(snap):
"""全部派生数字只在此处算,正文与脚本输出必须逐字一致。"""
c = snap["constants"]
rows = c["constellations"]
sat = [r["satellites"] for r in rows]
total = sum(sat)
starmind = next(r for r in rows if r["name"].startswith("Starmind"))
top4 = sum(sorted(sat, reverse=True)[:4])
tl = c["threshold_lists"]
# 两个反直觉对比(都取自 Tab.1 与阈值名单)
mss = next(r for r in rows if r["name"].startswith("Starlink Mobile"))
eut_next = next(r for r in rows if r["name"] == "Eutelsat Next")
# Starmind 卫星:建模用的 Starlink 参数 vs SpaceX 自报参数
ss = c["starmind_spacex_stated"]
am_model = starmind["am_m2_per_kg"]
am_stated = ss["area_m2"] / ss["mass_kg"]
# 「能装多少」的机制:迎风面积/质量之比——用的是同一条 700 km 上两种卫星的对比
# (Kuiper 00261 用于 Amazon Leo 等三家的参数化;Starlink 37240 用于 Starmind / Starlink Gen3 / MSS)
am_kuiper = next(r for r in rows if r["name"] == "Amazon Leo")["am_m2_per_kg"]
return {
"n_constellations": len(rows),
"total_satellites": total,
"starmind_satellites": starmind["satellites"],
"starmind_share_pct": starmind["satellites"] / total * 100.0,
"top4_satellites": top4,
"top4_share_pct": top4 / total * 100.0,
"median_satellites": statistics.median(sat),
"mean_satellites": total / len(rows),
"largest": max(rows, key=lambda r: r["satellites"]),
"smallest": min(rows, key=lambda r: r["satellites"]),
"n_runaway": len(tl["runaway"]),
"n_unstable": len(tl["unstable"]),
"n_below": len(tl["below"]),
"mss_satellites": mss["satellites"],
"eut_next_satellites": eut_next["satellites"],
"mss_over_eut_next": mss["satellites"] / eut_next["satellites"],
"am_model": am_model,
"am_stated": am_stated,
"am_ratio": am_stated / am_model,
"am_kuiper": am_kuiper,
"am_kuiper_ratio": am_model / am_kuiper,
}
def report(snap, d, sha):
print("=== 14 个星座的规划规模(Lewis 2026, Tab. 1)===")
for r in snap["constants"]["constellations"]:
print(f" {r['name']:<45} {r['satellites']:>9,} 参数化用 {r['param_norad']}")
print("-" * 60)
print(f" 合计 = {d['total_satellites']:,} 颗(论文表述:'nearly 1.7 million satellites in total')")
print(f" 最大 = {d['largest']['name']} {d['largest']['satellites']:,}")
print(f" 最小 = {d['smallest']['name']} {d['smallest']['satellites']:,}")
print(f" 中位 = {d['median_satellites']:,.0f} 颗(论文 §2 原文称 'The median constellation size is 6,527 satellites.')")
print(f" 均值 = {d['mean_satellites']:,.1f} 颗(论文称 120,843;本表重算差值见下)")
print("-" * 60)
print("Starmind 一家占多少:")
print(f" {d['starmind_satellites']:,} / {d['total_satellites']:,} = {d['starmind_share_pct']:.1f}%")
print(f" 最大四个合计 {d['top4_satellites']:,} / {d['total_satellites']:,} = {d['top4_share_pct']:.1f}%(论文称 'The largest four constellations represent 97%')")
print("-" * 60)
print("临界值名单计数(Lewis 2026, §2 Results):")
print(f" runaway(失控)超临界 = {d['n_runaway']} 个:{', '.join(snap['constants']['threshold_lists']['runaway'])}")
print(f" unstable(不稳定)超临界 = {d['n_unstable']} 个:{', '.join(snap['constants']['threshold_lists']['unstable'])}")
print(f" 安全(below) = {d['n_below']} 个")
print("-" * 60)
print("反直觉对比 ①(数量不是判据):")
print(f" Starlink MSS({d['mss_satellites']:,} 颗)→ 安全名单")
print(f" Eutelsat Next({d['eut_next_satellites']:,} 颗)→ 超『不稳定』名单")
print(f" ⇒ 前者是后者的 {d['mss_over_eut_next']:.1f} 倍规模,却更安全")
print("-" * 60)
print("反直觉对比 ②(建模用的卫星 vs SpaceX 自报的卫星):")
print(f" 用来建模的是 Starlink 37240(69031),面积/质量 = {d['am_model']:.4f} m²/kg")
print(f" SpaceX 自报 Starmind 卫星 {snap['constants']['starmind_spacex_stated']['mass_kg']:,} kg / {snap['constants']['starmind_spacex_stated']['area_m2']:,} m² = {d['am_stated']:.4f} m²/kg")
print(f" ⇒ 自报卫星的面质比是建模值的 {d['am_ratio']:.2f} 倍;论文原文:换成更大卫星『does not change the outcome』")
print("-" * 60)
print("「能装多少」的机制(迎风面积/质量之比,取自 Tab. 1):")
print(f" Kuiper 00261(Amazon Leo 等三家用)A/m = {d['am_kuiper']:.4f} m²/kg")
print(f" Starlink 37240(Starmind / Starlink Gen3 / MSS 用)A/m = {d['am_model']:.4f} m²/kg")
print(f" ⇒ 后者是前者的 {d['am_kuiper_ratio']:.1f} 倍:迎风面积越大,失能后掉得越快,碎片也清得越快")
print("-" * 60)
print("论文给出的容量上限示例(700 km,§2 Results):")
ex = snap["constants"]["example_critical_at_700km"]
print(f" 用 Kuiper 00261 特性:runaway 临界 {ex['kuiper_like']['runaway']:,} 颗 / unstable 临界 {ex['kuiper_like']['unstable']:,} 颗")
print(f" 用 Starlink 37240 特性:runaway 临界 {ex['starlink_like']['runaway']:,} 颗")
print("-" * 60)
print("=== 证据层级(可复现≠可验证,quote 为外部正确性逐字证据)===")
primaries = [a["label"] for a in snap["anchors"] if a.get("tier") == "primary"]
print(f" primary(主源逐字, {snap.get('source', '?')[:60]}…):")
for lab in primaries:
print(f" · {lab}")
for k, v in snap.get("background", {}).items():
if isinstance(v, dict):
print(f" [{v.get('tier', '?')}] {k}: {v.get('note', '')}")
print(f"快照格式: {snap.get('format', '?')} · 锚点行数 {snap.get('rows', '?')}")
print(f"快照 sha256: {sha}")
print("验证方式:重跑本脚本,与文章正文表格及派生数字逐项核对。")
return 0
def self_test():
"""自检:每条 FAIL 分支都要有负例(照本仓库纪律)。"""
base = {"format": "t", "schema": {"version": 2}, "rows": 0,
"anchors": [{"label": "ok", "tier": "primary", "quote": "q", "locator": "l"}],
"background": {}}
assert check_schema(base) == [], "合法锚点不应报错"
print("[self-test] ① 合法 primary 锚点 -> 无错 [OK]")
b2 = json.loads(json.dumps(base))
b2["anchors"][0]["quote"] = " "
e2 = check_schema(b2)
assert e2 and "缺 quote" in e2[0], f"缺 quote 应被拦,实得 {e2}"
print("[self-test] ② primary 缺 quote -> 违规 [OK]")
b3 = json.loads(json.dumps(base))
del b3["anchors"][0]["locator"]
e3 = check_schema(b3)
assert e3 and "缺 locator" in e3[0], f"缺 locator 应被拦,实得 {e3}"
print("[self-test] ③ primary 缺 locator -> 违规 [OK]")
b4 = json.loads(json.dumps(base))
b4["anchors"][0]["tier"] = "tertiary"
e4 = check_schema(b4)
assert e4 and "tier" in e4[0], f"非法 tier 应被拦,实得 {e4}"
print("[self-test] ④ tier 非法 -> 违规 [OK]")
b5 = json.loads(json.dumps(base))
b5["background"] = {"x": {"tier": "primary", "locator": "l"}} # 缺 quote
e5 = check_schema(b5)
assert e5 and "background.x" in e5[0], f"background primary 缺 quote 应被拦,实得 {e5}"
print("[self-test] ⑤ background 的 primary 缺 quote -> 违规 [OK]")
print("[self-test] 全部通过")
def main():
if len(sys.argv) > 1 and sys.argv[1] == "--self-test":
self_test()
return 0
path = sys.argv[1] if len(sys.argv) > 1 else "constellation_limits.json"
with open(path, "rb") as f:
raw = f.read()
sha = hashlib.sha256(raw).hexdigest()
try:
snap = json.loads(raw.decode("utf-8"))
d = derive(snap)
except Exception as e:
print(f"ERROR: 快照解析失败: {e}", file=sys.stderr)
return 2
errs = check_schema(snap)
if errs:
print("ERROR: 证据契约违规(可复现≠可验证):", file=sys.stderr)
for e in errs:
print(f" - {e}", file=sys.stderr)
return 3
return report(snap, d, sha)
if __name__ == "__main__":
sys.exit(main())
constellation_limits.json — 数据快照全文
{
"format": "chenji-constellation-limits-v2",
"schema": {
"version": 2,
"evidence_tiers": ["primary", "secondary", "media"],
"rule": "primary 档锚点必须带原文引用句(quote)+出处定位(locator);secondary 为归因清楚的官方二手;media 为媒体汇编。可复现≠可验证:quote 是外部正确性的逐字证据,让 AI agent 无需依赖权威即可核验。"
},
"generated": "2026-09-14",
"source": "Hugh G. Lewis (University of Birmingham), \"Critical Sizes of Satellite Constellations\", arXiv:2607.29644v1, 2026-07-31, astro-ph.EP(20 页 6 图,预印本);及其所引 SpaceX 提交 FCC 的 IBFS 卷宗 SAT-LOA-20260108-00016。论文原文 PDF 已逐字摘录,quote 为原文英文。",
"rows": 14,
"constants": {
"threshold_lists": {
"runaway": ["Guowang", "Stampede", "Project Sunrise", "Starcloud", "E-Space Cinnamon & Semaphore", "Starmind"],
"unstable": ["Eutelsat OneWeb", "Eutelsat Next", "Starlink Generation 3"],
"below": ["AST SpaceMobile", "Telesat Lightspeed", "Lynk", "Amazon Leo Direct-to-Device (D2D) System", "Blue Origin TeraWave", "Amazon Leo", "Starlink Mobile Satellite Service (MSS)"],
"note": "runaway/unstable/below 三张名单合计 16 个名目:其中 14 个取自 Tab.1,另 2 个(Project Sunrise、Stampede)是论文在敏感性分析里按各自 FCC 申请补入的(论文 §2 原文:'After accounting for different satellite characteristics and these additional constellations')。"
},
"constellations": [
{"name": "Starmind (SpaceX Orbital Data Centers)", "satellites": 1000000, "mass_kg": 575, "area_m2": 36.964, "am_m2_per_kg": 0.0643, "param_norad": "Starlink 37240 (69031)"},
{"name": "E-Space Cinnamon & Semaphore", "satellites": 453963, "mass_kg": 10, "area_m2": 0.126, "am_m2_per_kg": 0.0126, "param_norad": "E-Space 1 (52423)"},
{"name": "Starlink Generation 3", "satellites": 100000, "mass_kg": 575, "area_m2": 36.964, "am_m2_per_kg": 0.0643, "param_norad": "Starlink 37240 (69031)"},
{"name": "Starcloud", "satellites": 87996, "mass_kg": 50, "area_m2": 0.225, "am_m2_per_kg": 0.0045, "param_norad": "Starcloud-1 (66303)"},
{"name": "Starlink Mobile Satellite Service (MSS)", "satellites": 15000, "mass_kg": 575, "area_m2": 36.964, "am_m2_per_kg": 0.0643, "param_norad": "Starlink 37240 (69031)"},
{"name": "Guowang", "satellites": 12992, "mass_kg": 800, "area_m2": 5.935, "am_m2_per_kg": 0.0074, "param_norad": "Hulianwang Weixing Digui 16-03 (67061)"},
{"name": "Amazon Leo", "satellites": 7774, "mass_kg": 490, "area_m2": 2.326, "am_m2_per_kg": 0.0048, "param_norad": "Kuiper 00261 (67158)"},
{"name": "Blue Origin TeraWave", "satellites": 5280, "mass_kg": 490, "area_m2": 2.326, "am_m2_per_kg": 0.0048, "param_norad": "Kuiper 00261 (67158)"},
{"name": "Amazon Leo Direct-to-Device (D2D) System", "satellites": 5105, "mass_kg": 490, "area_m2": 2.326, "am_m2_per_kg": 0.0048, "param_norad": "Kuiper 00261 (67158)"},
{"name": "Lynk", "satellites": 2000, "mass_kg": 85, "area_m2": 0.65, "am_m2_per_kg": 0.0076, "param_norad": "Lynk Tower 8 (69014)"},
{"name": "Eutelsat OneWeb", "satellites": 637, "mass_kg": 148, "area_m2": 3.464, "am_m2_per_kg": 0.0234, "param_norad": "OneWeb SL0706 (61611)"},
{"name": "Eutelsat Next", "satellites": 528, "mass_kg": 148, "area_m2": 3.464, "am_m2_per_kg": 0.0234, "param_norad": "OneWeb SL0706 (61611)"},
{"name": "Telesat Lightspeed", "satellites": 300, "mass_kg": 30, "area_m2": 0.28, "am_m2_per_kg": 0.0093, "param_norad": "Telesat LEO 3 (57392)"},
{"name": "AST SpaceMobile", "satellites": 243, "mass_kg": 5850, "area_m2": 24.992, "am_m2_per_kg": 0.0043, "param_norad": "SpaceMobile 006 (67232)"}
],
"starmind_spacex_stated": {
"mass_kg": 3000,
"area_m2": 800,
"note": "论文原文:'SpaceX has stated the mass of a Starmind satellite is 3,000 kg and has a total area of 800 m2'——即 SpaceX 自报的 Starmind 卫星比用来建模的 Starlink 卫星**大得多**(面积 800 vs 36.964 m²)。"
},
"example_critical_at_700km": {
"note": "论文给出的示例(§2 Results):以 Kuiper 00261 (67158) 特性代入 700 km,runaway 临界 40,272 颗、unstable 临界 4,845 颗;若改用 Starlink 37240 (69031) 特性,runaway 临界降为 16,824 颗。",
"kuiper_like": {"runaway": 40272, "unstable": 4845},
"starlink_like": {"runaway": 16824}
},
"project_sunrise": {"satellites": 51600, "orbit_km": "500-1800", "plane_quote": "Each orbital plane will contain approximately 300-1,000 satellites", "model_result": "unstable 阈值 7.3 颗、runaway 阈值 <1 颗(1800 km)"},
"stampede": {"satellites": "up to 20,000", "orbit": "dawn-dusk SSO, 700-1000 km"}
},
"anchors": [
{
"asof": "2026-07-31",
"label": "「100 万颗」的数量级:Starmind 计划 1,000,000 颗",
"tier": "primary",
"quote": "The largest constellation considered is the fleet of SpaceX orbital data centres called 'Starmind' (1 million satellites planned) and the smallest is the fleet of AST SpaceMobile satellites (243 satellites planned).",
"locator": "Lewis (2026), arXiv:2607.29644v1, §2 Results(Fig. 1 前段,PDF p.2)",
"ref": "arXiv:2607.29644v1"
},
{
"asof": "2026-07-31",
"label": "六个星座超过「失控(runaway)」临界值,含 Starmind",
"tier": "primary",
"quote": "the results show six constellations may exceed critical sizes for a runaway environment: Guowang, Stampede, Project Sunrise, Starcloud, the combined E-Space Cinnamon and Semaphore, and Starmind. Under the model assumptions, these constellations are predicted to produce an ever-increasing fragment population despite adherence to regulations, the adoption of debris mitigation measures that go beyond internationally recognised good practices and the use of effective risk mitigation manoeuvres.",
"locator": "Lewis (2026), arXiv:2607.29644v1, §2 Results(runaway 结论段)",
"ref": "arXiv:2607.29644v1"
},
{
"asof": "2026-07-31",
"label": "抗反驳:换成 SpaceX 自报的更大卫星,结论不变",
"tier": "primary",
"quote": "SpaceX has stated the mass of a Starmind satellite is 3,000 kg and has a total area of 800 m2, but the evaluation above uses the values from DISCOS for a substantially smaller Starlink satellite. A repeat evaluation based on the larger satellite does not change the outcome - the constellation remains above its critical size for a runaway environment.",
"locator": "Lewis (2026), arXiv:2607.29644v1, §2 Results(参数敏感性段)",
"ref": "arXiv:2607.29644v1"
},
{
"asof": "2026-07-31",
"label": "数量不是判据:528 颗的 Eutelsat Next 超「不稳定」,15,000 颗的 Starlink MSS 反而安全",
"tier": "primary",
"quote": "Three constellations are predicted to exceed critical sizes for an unstable environment: Eutelsat OneWeb, Eutelsat Next, and Starlink Generation 3. Seven constellations are predicted to be below the critical sizes for unstable and runaway environments: AST SpaceMobile, Telesat Lightspeed, Lynk, Amazon Leo Direct-to-Device (D2D) System, Blue Origin TeraWave, Amazon Leo, and Starlink Mobile Satellite Service (MSS).",
"locator": "Lewis (2026), arXiv:2607.29644v1, §2 Results(unstable / below 名单段)",
"ref": "arXiv:2607.29644v1"
},
{
"asof": "2026-07-31",
"label": "摘要承重句:小的、大的都可能超临界值,且它们已满足超国际良好实践的减缓措施",
"tier": "primary",
"quote": "Here a simple analytical approach reveals that several planned, partially deployed, or fully deployed constellations exceed their critical size producing an unstable or a runaway orbital debris population. Worryingly, this occurs both for small and large constellations, despite debris mitigation measures that go beyond internationally recognised good practices, and even when the constellations are deployed into a pristine, debris-free orbital environment.",
"locator": "Lewis (2026), arXiv:2607.29644v1, 摘要(Abstract)",
"ref": "arXiv:2607.29644v1"
},
{
"asof": "2026-07-31",
"label": "表 1:Starmind 那一行——100 万颗,却用 Starlink 37240 (69031) 的参数化",
"tier": "primary",
"quote": "Starmind (SpaceX Orbital Data Centers) 1,000,000 575 36.964 0.0643 Starlink 37240 (69031)",
"locator": "Lewis (2026), arXiv:2607.29644v1, Tab. 1(表头:Constellation / Number of Satellites / Satellite Mass (kg) / Satellite Area (m2) / Satellite A/m (m2/kg) / Satellite (NORAD ID))",
"ref": "arXiv:2607.29644v1"
},
{
"asof": "2026-07-31",
"label": "诚实边界(论文自陈):Starmind 尚无在轨卫星;FCC 卷宗里的数比 100 万还多",
"tier": "primary",
"quote": "There are no satellites deployed for the SpaceX Starmind and Starlink Generation 3 constellations, so the mass and area values from DISCOS for a deployed Starlink satellite (69031) are used. ... The numbers of satellites identified in the FCC filings for Starmind and Amazon Leo D2D System are greater than the stated sizes of these constellations of 1,000,000 and 5,105, respectively, so the number of satellites in each orbital shell is scaled to achieve the required numbers.",
"locator": "Lewis (2026), arXiv:2607.29644v1, §4 Methods(数据来源段)",
"ref": "arXiv:2607.29644v1"
},
{
"asof": "2026-07-31",
"label": "「100 万颗」的最终出处:SpaceX 提交 FCC 的公开卷宗",
"tier": "primary",
"quote": "Space Exploration Holdings, LLC. D. Goldman Letter to Marlene H. Dortch, Secretary, FCC, \"Re: ICFS File No. SAT-LOA-20260108-00016.\" Supplementary information for the SpaceX Orbital Data Center System, IBFS File No. SAT-LOA-20260108-00016.",
"locator": "Lewis (2026), arXiv:2607.29644v1, 参考文献 9(References, item 9)",
"ref": "arXiv:2607.29644v1"
}
],
"background": {
"preprint_note": {
"tier": "secondary",
"locator": "论文首页标注 'Submitted on 31 Jul 2026',arXiv 分类 astro-ph.EP;arXiv 页面 Comments 栏为 '20 pages, 6 figures',未标注同行评审状态。",
"note": "本论文是 arXiv 预印本,论文自身未宣称已同行评审。本文引用其结论时按'公开预印本'对待,不表述为'已发表/已评审'。"
},
"model_caveats": {
"tier": "primary",
"quote": "even when the constellations are deployed into a pristine, debris-free orbital environment",
"locator": "Lewis (2026), arXiv:2607.29644v1, 摘要(Abstract)",
"note": "模型假设各星座孤立运行于无碎片环境;这既是结论的强度(如此仍超阈值),也是其边界(现实中还有既有碎片)。"
},
"not_a_prediction_of_year": {
"tier": "secondary",
"locator": "论文通篇只给'临界规模'判据,未给出任何时间表;本文亦不预测'哪一年出事'。",
"note": "论文回答的是'这个规模会不会自维持增长',不是'什么时候'。本文只转述前者。"
}
}
}
你该带走什么
"低轨能装多少颗卫星"有一个算得出来的上限,但没有数得出来的答案。在 700 公里那条高度带上,按 Kuiper 卫星的特性算是 40,272 颗,换成 Starlink 卫星的特性就只剩 16,824 颗——量级是几万颗。差这么多,是因为决定容量的不是"还有多少位置",而是碎片能不能被大气及时清走:迎风面积大的卫星掉得快,它留下的碎片也清得快,这条轨道就能多装一些。也因此,"不超过总数就行"是错的——15,000 颗的 Starlink MSS 落在安全档,只有 528 颗的 Eutelsat Next 反而超线。而这一切都建立在一个假设轨道本来很干净的模型上;换成更大的卫星重算,结论也不变。轨道是资产,但它是有限额的资产;限额是多少,取决于哪条高度带、放什么样的卫星——而我们现在能给的,只有模型算的那个数。
数据来源:Hugh G. Lewis (University of Birmingham), "Critical Sizes of Satellite Constellations", arXiv:2607.29644v1, 2026-07-31(预印本,20 页 6 图)——700 公里容量上限示例、六星座超失控临界值名单、换成更大卫星结论不变、三档名单、摘要承重句、表 1 的 14 行星座数据、"尚无在轨卫星"的自陈段,以及其所引 SpaceX 提交 FCC 的 IBFS 卷宗 SAT-LOA-20260108-00016。
历史背景:本系列第 7 篇《轨道资产台账》给出"天上真正干活的是少数";第 8 篇《轨道碰撞保险》给出"一颗卫星被撞会赔出一整片"。本篇承接两者:既然轨道是有限额的资产,那么"到底能装多少"就是一个必须先算清额度、而不是先算账面的问题。
可验证声明 印记等级:完整可复现
- 数据可复现:文中数字可由文末脚本 + 冻结快照重跑核对
- 引用可溯源:锚点逐字回主源(原文引用句 + 出处定位)
- 结论可核对:证据层级已标注(主源逐字 / 官方二手 / 媒体汇编)