这篇科普用国际空间站(ISS)从 1999 年至今的碰撞规避机动公开记录,回答"轨道越来越挤,航天器怎么躲"。文中所有数字都来自公开数据, 你(或任何 AI agent)都可以重跑验证——见文末附录。

先别往下翻

一颗卫星在 400 公里高空飞着,迎面一辆"车"高速逼近。要躲开它,靠什么?
(在心里给一个答案,再往下看。)

2022 年 4 月 23 日:一次真实的"躲"

2022 年 4 月 23 日,国际空间站做了一次非例行机动——不是每月例行的轨道维护,而是躲碎片。

当天下午,停靠的俄罗斯"进步 MS-18"号货运飞船点火 623 秒,把整座空间站抬升了约 1.8 公里,避开一块逼近的太空碎片。

这不是第一次,也不会是最后一次。问题是:这样的机动,ISS 一年要做几次?

太空不是空的:低轨是越来越挤的高速车流

"太空空旷"是错觉。两千公里以下,地球周围的轨道里挤满了人造物——在用卫星、报废卫星、火箭残骸、碰撞碎裂的碎片。按美国太空部队维护的公开目录,2024 年可跟踪的轨道物体(大于约 10 厘米)约有 3.6 万个

物体越多,轨迹越密,"擦肩而过"就越频繁。NASA 每年会收到几十到上百次"某某物体可能靠近 ISS"的碰撞警告,其中只有少数会真正达到必须机动的程度。

2022 年有多密?统计显示:当年与 ISS 的交会事件达 1486 次,比 2021 年增加了 233%——按这个比例反推,2021 年约 446 次。

ISS 的"躲"有账本:1999 年至今的碰撞规避机动

空口说"越来越多"没有用。ISS 的每次碰撞规避机动(collision avoidance maneuver)都有公开记录。我们取 NASA 公开报告里的几个权威锚点,看累计次数怎么涨:

1999–2014 年初(前 15 年)16
1999–2023-08-24(第 37 次)37
1999–2023-11-10(第 38 次)38

看懂这张表,有三个点:

1. 平均下来,早年大约每年躲 1 次。 前 15 年 16 次,约合每年 1.1 次——"每年躲一两次"是维持了很久的常态。

2. 2023 年下半年,频率明显上去了。 2023 年 8 月 6 日与 8 月 24 日,18 天内接连做了第 36、37 次机动——一次躲 2021 年俄罗斯反卫星试验留下的 Cosmos 1408 碎片,一次躲 2007 年中国反卫星试验留下的 FY-1C 碎片;11 月 10 日又做了第 38 次。从 8 月初到 11 月中旬,约 3 个月里 3 次机动,相比早年"每年约 1 次",节奏明显加快。NASA 记录的第 38 次目标,是一颗 1992 年发射的苏联 Zenit-2(SL-16)火箭碎裂后留下的碎片,整次机动只用了 0.5 米/秒 的顺行推力。

3. 每次机动都要花燃料。 机动靠推进器点火改变轨道,每一次都在消耗推进剂。对 ISS 来说,燃料不是无限的——这就是"轨道是资产,车流越挤,维护成本越高"。

躲的依据:不是直觉,是概率

那"要不要躲"是怎么定的?不是靠人肉眼看雷达,而是算概率。

NASA 的飞行规则是:当预测的碰撞概率超过一万分之一时,就执行规避机动(除非机动本身带来的风险更大)。每次评估都要同时算两件事:这辆车"会不会撞上",以及"躲这一下本身安不安全"。

所以每次"躲"都不是慌乱刹车,而是算准了再变轨——改变 ISS 的轨道,让两辆车在交会点错开时间或高度。这需要提前预警、提前算好——从发现高风险交会到执行机动,要留出足够的时间窗口。

一个小细节能说明问题:第 38 次机动只要 0.5 米/秒——相比轨道上每秒约 7.6 公里的飞行速度,只是"轻轻推了一下"。因为躲开交会不需要大幅变道,只需要把两辆车在交会点的时间或位置错开那么一点点。

三个问题

1. 太空里怎么"躲"? 不是像开车那样急刹车,而是提前算准碰撞概率,用推进器改变轨道高度,让两个物体在交会点错开。每次机动都要权衡"撞上的风险"和"躲的风险"。

2. 躲一次要花什么代价? 燃料。每一次规避机动都在消耗推进剂,缩短轨道能维持的时间。轨道是资产——车流越挤,躲得越多,维护成本越高。

3. 躲得多说明什么? 说明轨道越来越挤。被跟踪物体从几千个涨到约 3.6 万个,ISS 一年要处理上千次交会事件——碰撞规避从偶发变成了常态,这也是为什么"不制造新碎片、主动清理旧碎片"会成为太空时代的公共议题。

你可以自己验

到这里的所有数字,都不是"我们说的",而是公开记录算出来的。ISS 碰撞规避机动的三个累计锚点(16 / 37 / 38)逐条取自 NASA 轨道碎片计划办公室(ODQN)公开报告原文——前 15 年 16 次(V18I1/2014)、2023 年 8 月两次为第 36、37 次(V27I4/2023-10)、2023-11-10 为第 38 次(V28I1/2024);交会统计为美国太空部队(Space Command)公开统计、美国务院官员 2023 年引述。

我们把锚点数据做成了可复现脚本:读取冻结快照 → 重算累计表、派生数字与哈希 → 交叉校验"1486 次 = 2021 年 ×(1+233%)"。你(或任何 AI agent)都可以重跑核对,见附录。

附录:可复现验证

python3 verify_debris.py                        # 读默认快照,重跑并核对
python3 verify_debris.py debris_maneuvers.json  # 指定快照文件

脚本会做三件事:

1. 读取冻结快照(ISS 碰撞规避机动 3 个累计锚点 + 交会统计 + 2022-04-23 工作实例);
2. 重算累计表、派生数字(年均次数、2023 年集中机动间隔、交会 2021 反推值);
3. 输出与正文完全一致的表格、验证层级与快照 sha256。

说明:快照锚点逐条取自 NASA 轨道碎片计划办公室(ODQN)公开报告原文——16 次(V18I1/2014)、第 36、37 次(V27I4/2023-10)、第 38 次(V28I1/2024);机动阈值"碰撞概率 > 1/10000"亦为 V18I1 原文确认。交会统计(2022 年 1486 次,较 2021 增 233%)为 Space Command 公开统计口径。快照对每个数字标注验证层级(可复现≠可验证):16/37/38 三个累计锚点与机动阈值为 primary——主源逐字核对,快照内含原文引用句 quote 与出处定位 locator,可逐字复核;交会统计与 2022-04-23 工作实例为 secondary——归因清楚的官方二手口径;轨道物体数约 3.6 万为 media——媒体汇编,仅供参考。正文表格与派生数字由脚本从快照重算,冻结快照可精确复现。

原始材料(可直接复制)

下面的脚本与数据快照全文,供你(或任何 AI agent)直接复制使用,无需下载。

复现材料(含 sha256 锚点,随嵌入文件自动更新):
verify_debris.py(复现脚本) · sha256 b9382c12d7790b3dc2fd911bff5f589c3f8acff51a495149dcf7ae96543a4a31
debris_maneuvers.json(数据快照) · sha256 5a70f5af9c344942773ebcc7aa958372ea22e4b806909b14ab96ead37171f398

verify_debris.py — 复现脚本全文

#!/usr/bin/env python3
# verify_debris.py — 科普附录:验证 ISS 碰撞规避机动累计表(零依赖)
# 输入:debris_maneuvers.json 冻结快照 v2(3 个累计锚点 + 证据层级 + 交会统计 + 工作实例)
# 输出:累计表 + 证据层级 + 派生数字 + 快照 sha256
# 用法:python3 verify_debris.py            (默认读 debris_maneuvers.json)
#       python3 verify_debris.py FILE       (指定快照文件)
# 退出码:0 成功;2 解析失败;3 证据契约违规(primary 缺 quote/locator)
import hashlib
import json
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 main():
    path = sys.argv[1] if len(sys.argv) > 1 else "debris_maneuvers.json"
    with open(path, "rb") as f:
        raw = f.read()
    sha = hashlib.sha256(raw).hexdigest()

    try:
        snap = json.loads(raw.decode("utf-8"))
        anchors = snap["anchors"]
        conj = snap["conjunction"]
        ex = snap["worked_example"]
        rc = snap.get("recent_cluster", {})
        bg = snap.get("background", {})
    except Exception as e:
        print(f"ERROR: 快照解析失败: {e}", file=sys.stderr)
        return 2

    schema_errors = check_schema(snap)
    if schema_errors:
        print("ERROR: 证据契约违规(可复现≠可验证):", file=sys.stderr)
        for e in schema_errors:
            print(f"  - {e}", file=sys.stderr)
        return 3

    print("=== ISS 碰撞规避机动 累计次数(NASA ODQN 公开记录)===")
    print(f"{'统计时点':<28}{'累计':>5}{'层级':>9}")
    print("-" * 46)
    for a in anchors:
        print(f"{a['label']:<28}{a['cum']:>5}{a['tier']:>9}")

    print("-" * 46)
    n_early_years = 15
    avg_early = anchors[0]["cum"] / n_early_years
    print(f"前 {n_early_years} 年平均: {anchors[0]['cum']}/{n_early_years} ≈ {avg_early:.1f} 次/年")

    if rc:
        d1 = rc.get("days_36_to_37")
        d2 = rc.get("days_37_to_38")
        d3 = rc.get("days_36_to_38")
        if d1:
            print(f"第 36 次(2023-08-06)→ 第 37 次(2023-08-24):间隔 {d1} 天(单月 2 次)")
        if d2:
            print(f"第 37 次(2023-08-24)→ 第 38 次(2023-11-10):间隔 {d2} 天")
        if d3:
            print(f"第 36 次 → 第 38 次:{d3} 天(约 3 个月 3 次机动)")

    prev = round(conj["events"] / (1 + conj["increase_pct_vs_prev_year"] / 100.0))
    print(f"交会事件 {conj['year']} = {conj['events']}({conj.get('tier', '?')});按 +{conj['increase_pct_vs_prev_year']}% 反推上一年 ≈ {prev} 次")

    print(f"工作实例 {ex['date']}: {ex['vehicle']} 点火 {ex['burn_seconds']} s → 抬升约 {ex['orbit_raise_km']} km({ex.get('tier', '?')}:{ex['purpose']})")

    mt = bg.get("maneuver_threshold")
    if mt:
        print(f"背景: 机动阈值 {mt['value']}({mt['tier']},quote 见快照)")
    t = bg.get("trackable_objects_gt10cm_2024")
    if t:
        print(f"背景: 可跟踪轨道物体(>约10cm, 2024) ≈ {t['count']:,}({t['tier']}:{t['note']})")

    print("-" * 46)
    print("验证层级汇总(可复现≠可验证,quote 为外部正确性逐字证据):")
    print("  primary(主源逐字): 16/37/38 三锚点 + 机动阈值(ODQN 原文 quote 逐字核对)")
    print("  secondary(官方二手): 交会事件 1486/2022 + 工作实例(归因清楚的官方口径)")
    print("  media(媒体汇编): 轨道物体数 36500(仅供参考)")
    print(f"快照格式: {snap.get('format', '?')} · 锚点行数 {snap.get('rows', '?')}")
    print(f"快照 sha256: {sha}")
    print("验证方式:重跑本脚本,与文章正文累计表与派生数字逐项核对。")
    return 0


if __name__ == "__main__":
    sys.exit(main())

debris_maneuvers.json — 数据快照全文

{
  "format": "chenji-debris-maneuvers-v2",
  "schema": {
    "version": 2,
    "evidence_tiers": ["primary", "secondary", "media"],
    "rule": "primary 档锚点必须带原文引用句(quote)+出处定位(locator);secondary 为归因清楚的官方二手口径;media 为媒体汇编。可复现≠可验证:quote 是外部正确性的逐字证据,让 AI agent 无需依赖权威即可核验。"
  },
  "generated": "2026-08-16",
  "source": "NASA 轨道碎片计划办公室(Orbital Debris Quarterly News)公开报告原文",
  "rows": 3,
  "anchors": [
    {
      "asof": "2014-01",
      "label": "1999–2014 年初(前 15 年)",
      "cum": 16,
      "tier": "primary",
      "quote": "During its first 15 years of operations, the ISS successfully conducted 16 collision avoidance maneuvers",
      "locator": "ODQN V18I1(2014-01)'Large Population' 报道续文,第 2 页",
      "ref": "NASA 轨道碎片计划办公室,Orbital Debris Quarterly News Vol.18 No.1(2014-01)"
    },
    {
      "asof": "2023-08-24",
      "label": "1999–2023-08-24(第 37 次)",
      "cum": 37,
      "tier": "primary",
      "quote": "These PDAMs are the 36th and 37th collision avoidance maneuvers conducted by the ISS against tracked objects since 1999.",
      "locator": "ODQN V27I4(2023-10)封面文章第 1 页(08-06 规避 Cosmos 1408 碎片 0.3 m/s 顺行 / 08-24 规避 FY-1C 碎片 -0.3 m/s 逆推)",
      "ref": "NASA 轨道碎片计划办公室,Orbital Debris Quarterly News Vol.27 No.4(2023-10)"
    },
    {
      "asof": "2023-11-10",
      "label": "1999–2023-11-10(第 38 次)",
      "cum": 38,
      "tier": "primary",
      "quote": "This PDAM marked the 38th collision avoidance maneuver conducted by the ISS against tracked objects since 1999.",
      "locator": "ODQN V28I1(2024-02)封面文章第 1 页(11-10 15:07 GMT,0.5 m/s 顺行,目标 SL-16 碎片 1992-093KT / SATCAT 39841)",
      "ref": "NASA 轨道碎片计划办公室,Orbital Debris Quarterly News Vol.28 No.1(2024-02)"
    }
  ],
  "conjunction": {
    "year": 2022,
    "events": 1486,
    "increase_pct_vs_prev_year": 233,
    "tier": "secondary",
    "locator": "Space Command 公开统计,美国务院官员 2023 年引述",
    "note": "2022 年 ISS 交会事件 1486 次,较 2021 年增 233%(官方二手口径,非 ODQN 主源)"
  },
  "worked_example": {
    "date": "2022-04-23",
    "vehicle": "Progress MS-18",
    "burn_seconds": 623,
    "orbit_raise_km": 1.8,
    "purpose": "规避太空碎片,非例行机动",
    "tier": "secondary",
    "locator": "Roscosmos 公开公告(2022-04-23)",
    "note": "Roscosmos 公告:进步 MS-18 点火 623 秒,轨道抬升约 1.8 公里"
  },
  "recent_cluster": {
    "note": "2023 年下半年集中机动:第 36→37→38 次在约 3 个月内",
    "days_36_to_37": 18,
    "days_37_to_38": 78,
    "days_36_to_38": 96,
    "tier": "primary",
    "locator": "由 ODQN V27I4 与 V28I1 锚点日期计算(2023-08-06 → 2023-08-24 → 2023-11-10)"
  },
  "background": {
    "maneuver_threshold": {
      "value": "碰撞概率 > 1/10000",
      "tier": "primary",
      "quote": "If a predicted conjunction yields a probability of collision greater than 1 in 10,000, official flight rules call for the execution of a collision avoidance maneuver by the ISS",
      "locator": "ODQN V18I1(2014-01)第 1-2 页"
    },
    "trackable_objects_gt10cm_2024": {
      "count": 36500,
      "tier": "media",
      "note": "2024 年公开统计,媒体汇编(非主源,仅供参考)"
    }
  }
}

你该带走什么

太空不是真空,是越来越挤的高速车流。ISS 的"躲"不是靠运气,而是算准概率、提前变轨——1999 年至今躲了 38 次,其中 2023 年下半年约 3 个月就做了 3 次(第 36–38 次),而一次机动往往只需 0.5 米/秒的推力。轨道是资产:车流越挤,躲得越多,维护成本越高。

数据来源:NASA 轨道碎片计划办公室(Orbital Debris Quarterly News)公开报告 —— ISS 碰撞规避机动累计锚点:16 次(ODQN V18I1,2014)、第 36/37 次(ODQN V27I4,2023-10)、第 38 次(ODQN V28I1,2024);机动阈值"碰撞概率 > 1/10000"亦载 V18I1。
历史背景:Roscosmos/NASA 公开声明 —— 2022-04-23 进步 MS-18 点火 623 秒抬升约 1.8 公里;Space Command/美国务院公开统计 —— 2022 年 ISS 交会事件 1486 次(较 2021 增 233%)。

可验证声明 印记等级:完整可复现