DStaal

Non-Impulsive Maneuver Calculation Mod?

Recommended Posts

Are there any mods out there to help calculate extreme non-impulsive maneuvers?  MechJeb, Astrogater, etc., all are very good at calculating impulse maneuvers, but for burns where the duration of the burn becomes a relevant factor, they don't do so well.  (Basically: An impulse maneuver is when you can pretend the d/v is imparted in zero time, so the effect of the motion of the craft during the burn is irrelevant.  Non-impulsive are longer burns, where the motion makes a difference in the amount and direction of the burn.)

What I'd really like to see is something that could calculate when to start and how long to hold a spiral burn - where you hold the ship to prograde and burn for multiple orbits.)  They aren't as efficient d/v wise, but the ability to run a larger probe on a small xenon engine can make up for that.

Share this post


Link to post
Share on other sites

So... Yeah... This...

The short answer is that you could use Persistent Thrust to accomplish this. It doesn't look quite as intuitive to use as the stock maneuver node system, but it might accomplish what you want.

The longer answer is that you probably don't need this as much as you think you do. Bear with me, maybe you're doing something cool I haven't considered, but I tried spiral trajectories and found they were rarely useful or necessary.

I actually spent a lot of time writing a mod that hacked the stock Orbit and ManeuverNode classes to make the patched conic solver accept patches that were solved through a differential equation solver rather than the usual Keplerian model. This let me create maneuver nodes that did exactly what you're envisioning and would even have let me use non-physical timewarp with the engine running because the 'orbit' was precomputed through the differential equation since it knew the thrust and mass burn rate. I never released it for a few reasons, one of which being that the way I hooked into some private methods is in a gray zone for forum rules (I don't think it ever broke the EULA, but when I asked if I was crossing a line I never got a clear go-ahead.

The other reason I never pushed further towards releasing it was that it wasn't nearly as useful as I imagined. For interplanetary transfers, brachistochrone trajectories never materialized because I got super short flight times with ejection burns on the order of a few hours. While that's obviously not ideal, things like BetterTimeWarp would make those doable. For local orbital changes, bi-elliptic or multi-'impulse' maneuvers accomplished things just fine. Even when I was trying to create scenarios where a spiral burn would be used, I ended up making spiral segments of a few degrees of arc before coasting to the next maneuver. I guess with KSP's small scale, burn times are only rarely of an order where the impulse assumption gives unacceptable errors.

Edited by Booots

Share this post


Link to post
Share on other sites

Persistent Thrust doesn't appear to *calculate* these trajectories.  It just makes flying them less annoying.  :wink:  I may be wrong there - I haven't looked to closely.  (And Solar Sail Navigator might actually have some helpers for this, though it's still listed as in alpha.) 

And yeah, it's not a very useful thing to try with the Stock engines.  There's only one ion engine, and it's not really worth using for anything more than a small probe.  And you always can boost to a higher orbit and do your burn from there, or split the maneuver into several parts and do those instead.  You rarely *need* this trajectory class, and it's hard to set up and use.

However, with some of the modded engines (NFE + NFP come to mind), you can build decent-sized ships using ion engines, and it would at least be interesting to me to be able to attempt this style of burn and compare.  A large part of the purpose of playing KSP to me is learning the answers to the question 'what would it actually take to colonize a solar system?', as well as just learning what works and doesn't work in doing that.  I find these an interesting option, and I'd like to be able to play with them to see when and if they're useful.  And even a few hour burn would be worth comparing on this - the orbital period of my standard 'orbital separation' orbit of 80km is ~30 minutes, so a two-hour burn is four orbits.   Again, I can split that up, or move to a higher orbit before calculating the burn, but I would find it interesting to try this instead sometimes.

Share this post


Link to post
Share on other sites

This should do it :

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now