Hi all! I’m starting to work on some deployment models for a payload concept and wanted some clarification on how to implement a maneuver. If I use a numerical propagator with an initial keplerian orbit - I should be able to apply a maneuver at some time (t) via the 1st parameter. As per the API, I an using the LofOffset Attitude provider (with the TNW frame). So for a tangential burn, I would apply this thrust in the direction [1,0,0]. The questions I have is what is the specific relationship when the Isp, duration and thrust that Orekit is expecting?
It is that given from the usual “rocket equation” mdot = -thrust / (g0 * Isp) < 0. This is integrated along with the equations of motion for the specified maneuver duration.
If your simulation lasts longer, your state will be propagated without the thrust contribution for the remaining time.
A bit unrelated: do not forget to initialize the “mass” value in SpacecraftState. This is set by default at 1e3 kg and can sometimes go unnoticed causing difficulties in interpreting the results.
Thank your for the information - I assumed it was the standard equation. And Yes! Thank you for the information about setting the mass - I only noticed it after I had initially sent out my message. I assume that is the entire wet mass of the object (not a separate allocation for fuel hidden in a paramter).
I’m not sure how to interpret your second statement “If your simulation lasts longer, your state will be propagated without the thrust contribution for the remaining time.” Should I propagate to the time of the maneuver; acquire the new state after thrust; and propagate from this new state in order to be valid?
No you don’t need to do that. I think that is what Andrea was trying to tell you. If your final propagation date is after the end of the maneuver it is not an issue. There are detectors inside the maneuver that will stop it when it is over.
Thanks all - I was able to get my initial scenarios to work. However, I’ve recently run into an error “org.orekit.errors.OrekitException: spacecraft mass becomes negative: -11.141 kg”. I’ve modeled a 100kg object. However, my duration Isp and thrust should only be about a kg. Is there some setting that may need to be modified?
Could you please send us a sample code (ideally Junit) that would reproduce the bug you’re experiencing ?