esa / NASA-breakup-model-cpp

A validated modern C++ implementation of the NASA Standard Breakup Model
GNU General Public License v3.0
11 stars 2 forks source link

Non-catastrophic Remnant #5

Closed schuhmaj closed 1 year ago

schuhmaj commented 1 year ago

Changelog

Overview

Comment

Generally, there is a wide variety of approaches available. Whereas the original publication does not mention mass conservation at all [1], other procedures fulfill mass conservation in a basic way of just regenerating fragments [2].

Both approaches have the advantage that the L_c distributions are not artificially changed. However, all models are empirical, so changes are always reasonable as the concrete strategy is based on the considered/ observed breakups.

[3] [4] [5] both propose some modifications. In the following, I stick to [3] with implementation comments:

Sources

[1] Johnson, N. L., Krisko, P. H., Liou, J. C., & Anz-Meador, P. D. (2001). NASA's new breakup model of EVOLVE 4.0. Advances in Space Research, 28(9), 1377-1384.

[2] Bade, A., Jackson, A. A., Reynolds, R. C., Eichler, P., Krisko, P., Matney, M., ... & Johnson, N. L. (1998). Breakup model update at nasa/jsc. In 49th International Astronautical Congress.

[3] Krisko, P. H. (2011). Proper implementation of the 1998 NASA breakup model. Orbital Debris Quarterly News, 15(4), 1-10.

[4] Andrișan, R. L., Ioniță, A. G., González, R. D., Ortiz, N. S., Caballero, F. P., & Krag, H. (2017). Fragmentation event model and assessment tool (FREMAT) supporting on-orbit fragmentation analysis. In 7th European Conference on Space Debris.

[5] Radtke, J., Mueller, S., Schaus, V., & Stoll, E. (2017, April). LUCA2-an enhanced long-term utility for collision analysis. In Proceedings of the 7th European Conference on Space Debris. Darmstadt, Germany: ESA Space Debris Office.

[6] Horstman, A. (2020). Enhancement of s/c Fragmentation and Environment Evolution Models. Final Report, Contract N. 4000115973/15/D/SR, Institute of Space System, Technische Universität Braunschweig, 26(08).

schuhmaj commented 1 year ago

@gomezzz The results seem to be okay. I got a half-heart attack when I saw the results for Nimbus-6. However, comparing two different outcomes of the original implementation with each other yields similar results (probably related to the smaller sample number):

Kolmogorov–Smirnov tests for fork and original implementations results
======fengyun======
L_c Result:
 KstestResult(statistic=0.015267175572519083, pvalue=0.7678690653423059)
A/M Result:
 KstestResult(statistic=0.02132140036851803, pvalue=0.353660015971757)
DV Result:
 KstestResult(statistic=0.020531718873387735, pvalue=0.3999385532889875)
======iridium_cosmos======
L_c Result:
 KstestResult(statistic=0.01618614061709661, pvalue=0.6783201007984564)
A/M Result:
 KstestResult(statistic=0.012139605462822459, pvalue=0.9327670546409319)
DV Result:
 KstestResult(statistic=0.014162873039959535, pvalue=0.8227115174375315)
======nimbus6======
L_c Result:
 KstestResult(statistic=0.05662983425414365, pvalue=0.19607762570973)
A/M Result:
 KstestResult(statistic=0.052486187845303865, pvalue=0.27161625352963614)
DV Result:
 KstestResult(statistic=0.03867403314917127, pvalue=0.6514207246693081)

4 introduced a bug (divide by 1000 --> 1e6). I fixed this.

And I decided to use a slightly modified formula so that the remnant cannot be heavier than the initial target satellite. It would be kind of weird if the collision of a 560kg and 950kg satellite yields a new 1500 kg satellite. Or is such a thing possible? That the satellites connect somehow?

Otherwise, if you give a green light, this can be merged, but not by me, since I don't have any rights to this repository ;)

schuhmaj commented 1 year ago

@gomezzz Hmm, on the other hand, the authors would not have proposed that formula if it would not make sense. If one satellite is more massive, I guess it’s Reasonable to assume that parts will get stuck in it. Nevertheless, in the concrete example above: A 560 kg satellite crashing into a 950 kg satellite with 100 m/s leading to a 1500 kg fragment?

What Do you think? Limit the size of the remnant to the greater satellite’s size or not?

gomezzz commented 1 year ago

Hmm, on the other hand, the authors would not have proposed that formula if it would not make sense. If one satellite is more massive, I guess it’s Reasonable to assume that parts will get stuck in it. Nevertheless, in the concrete example above: A 560 kg satellite crashing into a 950 kg satellite with 100 m/s leading to a 1500 kg fragment?

What Do you think? Limit the size of the remnant to the greater satellite’s size or not?

I am a bit out of my depth here. Maybe you can ask our contact what they think?

schuhmaj commented 1 year ago

@gomezzz Yeah, that might be a good idea. However, at first, I would argue that we merge this first. Since this fixes a bug + the behavior is only slightly changed for non-catastrophic collisions with enabled mass Conservation. A configuration that previously was not recommended. So either way, it is an improvement, even if a follow-up patch would be necessary.