计算同步轨道

时间:2015-09-04 23:40:43

标签: c# math

我试图制定一个计算行星同步轨道的方程式。我在维基上找到了一个等式并尝试在C#中复制它,但结果完全不正确。

等式:
KSP equation

  

a 是来自行星的高度    G 是引力常数6.674E-11
   M 是行星的质量    t 是轨道周期(秒)    Rp 是行星的半径

代码:

double G = 6.674E-11;
syncOrbit = Math.Pow((G * b.Mass * Math.Pow(b.orbit.period, 2.0)) / (4 * Math.Pow(Math.PI, 2.0)), 1.0 / 3.0) - b.Radius;

输入:

  • b.Mass = 5.29157926281091E + 22 kg
  • b.orbit.period = 9203545 s
  • b.Radius = 600000 m

通缉结果: 2868.74 km

鉴于结果: 195814.71 km

我在代码中做错了什么,或者我只是有一个不正确的等式(来自维基)?

3 个答案:

答案 0 :(得分:0)

我发现了我的错误,我使用了错误的轨道周期。我使用围绕太阳的一个轨道的时间(1年),而我需要行星的侧旋周期(1天)才能得到正确的结果。

double G = 6.674E-11;
syncOrbit = Math.Pow((G * b.Mass * Math.Pow(b.rotationPeriod, 2.0)) / (4 * Math.Pow(Math.PI, 2.0)), 1.0 / 3.0) - b.Radius;

答案 1 :(得分:0)

double inner = G * b.Mass * Math.Pow(b.orbit.period, 2.0)/ ( 4* Math.PI * Math.PI);
double answer = Math.Pow(inner, 1.0/3.0) - b.Radius;

答案 2 :(得分:0)

所以我的猜测是你误解了这个等式。我不是物理学家,但公式似乎是计算两个轨道物体之间的平均距离。使用公式并将代码重构为程序,我得到以下内容,它使用Sun和Earth的值生成正确的答案。

const double G = 6.674E-11;
Console.WriteLine("G is {0}", G);

const double massOfEarth = 5.972E+24;
const double massOfSun = 1.989E+30;
const double mass = massOfSun + massOfEarth;
Console.WriteLine("mass is {0}", mass);

// 365 days in seconds
const double period = 3.15569E+7;
Console.WriteLine("period is {0}", period);

// radius of the earth
const double radius = 6.371E+6;
Console.WriteLine("radius is {0}", radius);

double denominator = 4 * Math.Pow(Math.PI, 2.0);
Console.WriteLine("Denominator is {0}", denominator);

double numerator = G * mass * Math.Pow(period, 2.0);
Console.WriteLine("numerator is {0}", numerator);

double fraction = numerator / denominator;
Console.WriteLine("fraction is {0}", fraction);

double root = Math.Pow(fraction, 1.0 / 3.0);
Console.WriteLine("root is {0}", root);

double result = root - radius;
Console.WriteLine("final result is {0}", result);

输出是:

G is 6.674E-11
mass is 1.989005972E+30
period is 31556900
radius is 6371000
Denominator is 39.4784176043574
numerator is 1.32193760361067E+35
fraction is 3.34850706747872E+33
root is 149606480630.306
final result is 149600109630.306

太阳与地球之间的平均距离为1496亿米。