如果你想在 STK 中计算两颗卫星之间的距离 ,最直接的方法是使用 Vector / Data Provider ,也可以通过 Analysis Workbench 或 MATLAB/Python 接口计算。
方法一:STK 11/12 中直接查看两星距离
假设两颗卫星叫:
Satellite/Sat1Satellite/Sat2
操作:
- 在 STK 左侧 Object Browser 中选中
Sat1 - 右键 → Data Providers
- 找到 Relative Motion
- 查看与
Sat2相关的数据
如果你的 STK 版本中没有直接出现两星距离,可以用:
Analysis Workbench → Vector → Create
建立从 Sat1 指向 Sat2 的相对位置矢量:
\\vec r_{12}=\\vec r_2-\\vec r_1
然后计算其模:
\\boxed{ D_{12}=\|\\vec r_2-\\vec r_1\| }
得到的就是两颗卫星之间的 三维空间距离,单位通常为 km。
方法二:用 STK 的 Vector Geometry Tool
这个方法比较适合你现在这种卫星轨道/激光通信场景。
在:
Analysis Workbench → Vector Geometry Tool
建立:
Vector → Create
设置:
From: Sat1
To: Sat2
得到:
\\vec{R}_{Sat1\\rightarrow Sat2}
然后可以通过:
Vector → Magnitude
计算:
R=\\sqrt{X^2+Y^2+Z\^2}
例如:
| 时间 | Sat1 → Sat2 X | Y | Z | 两星距离 |
|---|---|---|---|---|
| 00:00:00 | 100 km | 200 km | 300 km | 374.17 km |
| 00:00:01 | ... | ... | ... | ... |
方法三:直接用 Report & Graph 查看距离随时间变化
如果你的目的不是只看某一个时刻,而是想得到:
两颗卫星在整个仿真期间的距离变化曲线
推荐这个方法。
选中:
Sat1 → Report & Graph Manager
然后寻找类似:
Relative Motion / Range
其中:
\\boxed{ Range(t)=\|\\vec r_{Sat2}(t)-\\vec r_{Sat1}(t)\| }
最终可以得到:
text
Time Range (km)
2026/08/10 00:00:00 1250.32
2026/08/10 00:00:01 1248.76
2026/08/10 00:00:02 1247.18
...
然后可以导出成 Excel/CSV。
如果你是要做"两星激光通信"
那我建议不要只计算 Range(两星距离),最好同时计算下面几个量:
\\boxed{Range}
两星距离,用于链路预算、传播时延。
\\boxed{Range\\ Rate}
距离变化率,用于多普勒/动态链路分析。
\\boxed{Azimuth/Elevation}
从通信终端所在卫星看向另一颗卫星的方位角、俯仰角。
以及:
\\boxed{Access}
判断两星之间是否满足通信条件。
如果你的场景是两颗 550 km SSO 卫星进行星间激光通信 ,我可以直接给你一套 STK 11 的"两星距离 + 相对速度 + 视线 + Access + 激光链路"完整配置步骤,包括具体点哪个菜单、Data Provider 选哪个。