3
$\begingroup$

I'm writing a Python script to calculate the effect of atmospheric drag on a spacecraft in LEO by evaluating the change in the square root of the semi-major axis over time. The governing equation I'm using is:

np.sqrt(a_final) - np.sqrt(a_initial) = (- np.sqrt(mu) * C_d * A * p * delta_time) / (2 * m) 

Where: a_initial = initial semi major axis, a_final = final semi major axis, mu is the gravitational parameter (m³/s²), C_d is the drag coefficient (dimensionless), A is the cross-sectional area (m²), m is the spacecraft mass (kg), p is the atmospheric density at altitude (kg/m³), delta_time is the time interval in seconds.

Ballistic_coefficient = (C_d * A) / m # (m²/kg) B* = (Ballistic_coefficient * p_0) / 2 #(1/m) 

where: p_0 is the reference atmospheric density.

Here's the confusion: Celestrak defines p₀ as a reference atmospheric density, definition not clear. However, the Spacetrack Report (PDF, page 31) uses p₀ in kg/m², leading to a mismatch in units and confusion when extracting Ballistic_coefficient from B*.

What is the correct value and unit of p₀ that I should use in the equation to extract a ballistic coefficient in SI units (m²/kg) from a given TLE B* value, so that I can use it correctly in the semi-major axis decay formula?

$\endgroup$
2
  • 1
    $\begingroup$ Would this be a better fit in Space Exploration? $\endgroup$ Commented May 9 at 11:02
  • 5
    $\begingroup$ Be aware that the data in TLEs don't necessarily correspond directly to the physical quantities they supposedly represent. They are designed only for use with the SGP algorithms. $\endgroup$ Commented May 9 at 16:07

1 Answer 1

3
$\begingroup$

This is an "advice" answer rather than a direct answer to the question you've asked, because in my humble opinion this might be an instance of an XY question, where answers to the question you've asked may not be helpful toward obtaining the goal you've stated.

(from FAQ see What is the XY problem?)

I encourage anyone who wants to write an authoritative B-star answer to go for it!


Answers to How to construct $B^*$ drag term in TLE? inform us that it's just an arbitrary term that -- when inserted into the SGP4 algorithm -- helps to allow the algorithm to drop evolve the orbit in a way similar to how the spacecraft seems to be dropping (or NOT dropping), for whatever reason(s) it might be doing whatever it happens to be currently doing.

Note that the two TLE coefficients before B-star are the first and second derivative of the mean motion (sidereal day / period).

SGP4 uses mean motion (or period) the same way you want to, to infer the semi-major axis.

Together with other parameters that provides the orbit shape, speed, position and altitude.

When the first and second derivative of mean motion are still not enough to replicate what's happening, B-star is a completely arbitrary parameter to add more "wiggle room" to the fit.

From RyanC's answer:

David Vallado also thinks it is an impossible task, but for different reasons. A footnote in his Fundamentals of Astrodynamics and Applications (page 106 in the 4th edition) says:

Be aware that the value of B* is always modified. It’s really an arbitrary free parameter in differential correction. Chapter 10 will introduce how to estimate a drag parameter. The estimated value of B* may be completely unrelated to drag effects in the presence of satellite maneuvers, significant solar pressure and atmospheric perturbations, large third-body effects from the Sun or Moon, or large deflections caused by mismodeling of the Earth’s gravitational field. B* can even appear as a negative number!

In other words, B-star extends the shelf-life of the TLE some more days in situation where altitude is dropping and the period shortening. For example, we know the ISS has a lot of drag from its solar panels and other things, and it looses at least tens of meters per day, but it can go up to almost 100 meters/day when the Sun is in a bad mood. The rate is extremely variable, mostly due to the current mood of the Sun (and therefore the temperature and therefore density of the upper atmosphere) so the folks (or the programs actually) who generate TLEs for the ISS tweak B* constantly to get the rate of altitude loss the TLE generates to roughly match the current actual rate of altitude loss.

So if you want to model "the effect of atmospheric drag on a spacecraft in LEO by evaluating the change in the square root of the semi-major axis over time" keep using your equation with area A and CD (if they don't change independently, just use one term "CD×A" but pay attention to your model for atmospheric density as a function of altitude. You'll have a density at say 400 km (which can vary) and an exponential scale height parameter which might be something like 15 km. (density drops by 1/e for every 15 km for example). Scale height is about 7 or 8 km below 100 km, but way up there it doubles.

If you want to figure out CD×A for a satellite in a circular LEO orbit, find an online resource for atmospheric density predictions at its altitude, propagate a few TLEs for it to see the loss of altitude over say 1 week, and then back-calculate, using your equation, what value of CD×A, based on the predicted density, gives you a rate of altitude loss that matches what the set of TLEs suggest.

Sorry, I'm not a space scientist so I don't know where the best space weather sites are, but it's likely someone else will.

$\endgroup$
1
  • 1
    $\begingroup$ Thank you @uhoh. The back calculation could be an approach too! Will surely try. $\endgroup$ Commented May 12 at 11:21

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.