【问题标题】:Calculating satellite apparent magnitude计算卫星视震级
【发布时间】:2018-12-16 22:20:18
【问题描述】:

我正在尝试制作一个计算ISS 天桥的应用程序。

我想出了如何实际获得天桥,但我正在努力弄清楚如何计算这些天桥期间空间站的视震级。我看过 Is there any way to calculate the visual magnitude of a satellite (ISS)?Calculating the Phase Angle between the Sun / ISS and an observer on the earth

我想出了如何计算太阳相位角,但我不知道如何得到 Is there any way to calculate the visual magnitude of a satellite (ISS)?working 提供的公式。我有以度为单位的相位角和以公里为单位的卫星距离。这是公式:

Mag = Std. Mag - 15 + 5*LOG(Range) - 2.5*LOG(SIN(B) + (pi-B)*COS(B))

对于国际空间站,我使用 -1.8 作为 std.mag。 https://stackoverflow.com/users/2949204/liam-kennedy 提供了这个公式,似乎知道如何让它发挥作用,但我一辈子都做不到。

注意:我在 C# 中执行此操作并且知道我的相位角是正确的,但即使使用 Python 和 pyephem 执行此操作,我也没有得到任何接近 Heavens-Above's 的结果。将 B 设置为 113,将 std.mag 设置为 -1.8,将范围设置为 485 给我 11.25,但在 Heavens-Above 上,他们得到的数据完全相同 -3.0。

这是我正在使用的代码

var B = phaseAngle;
var magnitude = intrinsicMagnitude - 15 + 5 * Math.Log(distanceToSatellite) - 2.5 * Math.Log(Math.Sin(B) + (Math.PI - B) * Math.Cos(B));

编辑:我在这里解决了这个问题:https://astronomy.stackexchange.com/questions/28744/calculating-the-apparent-magnitude-of-a-satellite/28765#28765

版主请将此标记为已解决。

【问题讨论】:

  • 这绝对是可能的,我实际上认为这个公式可能有缺陷。
  • 您需要考虑卫星太阳能电池板和/或天线,因为它们占物体表面的百分比非常高,并且通常是具有特定旋转的平面。所以你实际上需要计算这种表面的反射并将能量加在一起。太阳能电池板和天线通常都有一个特定的方向(朝向太阳以获得最大功率输入,朝向地球以获得最佳增益等),因此可以从卫星/太阳/观察者的位置推断出来。如您所见,这可以显着改变视觉幅度。如果您还考虑全反射角,您可以获得尖峰
  • 例如,铱星卫星经常得到这些,因此预定的天线方向是可预测的......因此,通过使用同质“球形”表面的整体方程,您会产生巨大的不准确性,因为卫星不是同质的,也不是同质的。球形...
  • 内在量级是 1000 公里外的平均亮度(这在等式中得到了说明)。我只是想弄清楚如何让它像 Heavens-above.com 一样。根据我链接的那些线程,它能够这样做,但我似乎无法弄清楚如何正确输入数据。
  • 他们有一个简化的网格和计算,正如我提到的......因为平均亮度(反照率)不会导致有效的结果......太阳能电池板和天线会产生巨大的差异(通常的物体~ +11 mag 与你的方程和平均常数,但在现实生活中,一旦你达到全反射最大值,则为 -3.5 ......主要区别在于太阳/面板/观察者的相位角与太阳/卫星/观察者角度非常不同...)

标签: c# math pyephem orbital-mechanics


【解决方案1】:

我通常使用https://mostlymissiledefense.com/2012/08/21/space-surveillance-the-visual-brightenss-and-size-of-space-objects-august-21-2012/ 中的公式。你的类似。但我要检查的第一件事是您对LOG() 函数的使用。 LOG() 计算自然对数,我怀疑你想要的是以 10 为底的对数 - 例如LOG10()

【讨论】:

    【解决方案2】:

    Math.Sin()Math.Cos() 都将弧度作为参数,而不是度数 - 因此您需要将 B 的值设为 113,并执行类似 B * Math.PI / 180.0 的操作。实际上,您需要在使用 B 的所有三个地方都执行此操作,否则将其值与 Math.PI 进行比较是没有意义的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多