You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

自制轨道模拟无其他天体却出现轨道进动?求原因分析

轨道模拟器近心点移动问题

我制作了一个基础的轨道模拟器(我对此仍感到非常自豪)。卫星的第二次轨道运行轨迹与第一次并不相同,其近心点持续移动,类似轨道进动。我本以为这确实是轨道进动,但模拟中没有其他天体,卫星也不对地球施加反作用力。这是代码问题还是真实现象?

以下是负责轨道物理的代码:

public static float Gravity(Transform m2Loc, Rigidbody m1Mass, Rigidbody m2Mass, float gravityConstant)
{
    float force = (m1Mass.mass * m2Mass.mass) / MathF.Pow(m2Loc.position.magnitude, 2) * gravityConstant;
    return force;
}

i.mass.AddForce(i.pos.position * -1 * Equations.Gravity(i.pos, planetMass, i.mass, gravity), ForceMode.Force);

粉色轨迹是卫星的运动轨迹。使用的引力公式为F=(G*M1*M2)/R²,其中G取值为1。地球质量为1000,飞船质量为10。在FixedUpdate()中每帧通过Rigidbody.AddForce()对飞船施加力。

补充观察

运行模拟一段时间后,发现轨道并非随机:

  • 轨道高度始终在特定范围内:
    Side Orbits
  • 轨道倾角从未发生偏移:
    Side Orbits

仍需解答该问题。


内容的提问来源于stack exchange,提问作者Privvet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 08:42:07