MechJeb2

MechJeb2

4M Downloads

BUG with Hohmann transfer

RafaelDominiquini opened this issue ยท 4 comments

commented

This mod fail creating bi-impulsive (Hohmann) transfer to target (Mun) in some modes (all of then, except 'at the optimum time'):

KSP.log: https://www.dropbox.com/s/3fvahib6a71dnwg/KSP(MJ).log?dl=0
Player.log: https://www.dropbox.com/s/f0bj1e1f6imnc5b/Player(MJ).log?dl=0

  • MechJeb2 Version: 2.12.0.0-1092 (DEV version from CKAN)
  • KSP Version: 1.12.1

Thanks

commented

A Hohmann transfer is used to go between 2 bodies orbiting the same body. If you are starting from Kerbin and going to the Mun then it is not what you need and it is normal that it fails.

commented

Okay, it makes sense!
But some options say right in the window that they cannot be done. This operation threw an exception. It's hard to understand...

Thanks

commented

I think this might actually be legit?

Anyway this is the exception:

[LOG 15:49:17.735] origin = PeA:131451.703167 ApA:131599.190674667 SMA:731525.446920834 ECC:0.00010080818670624 INC:87.4682899955423 LAN:344.503236633679 ArgP:313.217510621419 TA:-2.17944321488998
[LOG 15:49:17.735] target = PeA:11400000 ApA:11400000 SMA:12000000 ECC:0 INC:0 LAN:0 ArgP:0 TA:-1.39573297644369
[LOG 15:49:17.735] [MechJeb] DeltaVAndTimeForBiImpulsiveAnnealed Check1: minDT = 0 maxDT = 3185.78081715171 maxTT = 26849.7217123571 maxDTplusT = Infinity
[LOG 15:49:17.735] [MechJeb] DeltaVAndTimeForBiImpulsiveAnnealed target.patchEndTransition = INITIAL
[LOG 15:49:17.735] [MechJeb] DeltaVAndTimeForBiImpulsiveAnnealed o.patchEndTransition = FINAL
[LOG 15:49:17.735] [MechJeb] DeltaVAndTimeForBiImpulsiveAnnealed Check2: minDT = 0 maxDT = 0 maxTT = 26849.7217123571 maxDTplusT = Infinity
[EXC 15:49:17.739] alglibexception: Exception of type 'alglib+alglibexception' was thrown.
	alglib+ap.assert (System.Boolean cond, System.String s) (at <9bba0c3d2a6d4e50b6f917318502005e>:0)
	alglib+minlm.minlmsetscale (alglib+minlm+minlmstate state, System.Double[] s, alglib+xparams _params) (at <9bba0c3d2a6d4e50b6f917318502005e>:0)
	alglib.minlmsetscale (alglib+minlmstate state, System.Double[] s) (at <9bba0c3d2a6d4e50b6f917318502005e>:0)
	MuMech.OrbitalManeuverCalculator.DeltaVAndTimeForBiImpulsiveTransfer (System.Double GM, Vector3d pos, Vector3d vel, Vector3d tpos, Vector3d tvel, System.Double DT, System.Double TT, System.Double& burnDT, System.Double& burnTT, System.Double& burnCost, System.Double minDT, System.Double maxDT, System.Double maxTT, System.Double maxDTplusT, System.Boolean intercept_only, System.Double eps, System.Int32 maxIter, System.Boolean shortway) (at <9bba0c3d2a6d4e50b6f917318502005e>:0)
	MuMech.OrbitalManeuverCalculator.DeltaVAndTimeForBiImpulsiveAnnealed (Orbit o, Orbit target, System.Double UT, System.Double& bestUT, System.Double minDT, System.Double maxDT, System.Boolean intercept_only, System.Boolean fixed_ut) (at <9bba0c3d2a6d4e50b6f917318502005e>:0)
	MuMech.OperationGeneric.MakeNodesImpl (Orbit o, System.Double universalTime, MuMech.MechJebModuleTargetController target) (at <9bba0c3d2a6d4e50b6f917318502005e>:0)
	MuMech.Operation.MakeNodes (Orbit o, System.Double universalTime, MuMech.MechJebModuleTargetController target) (at <9bba0c3d2a6d4e50b6f917318502005e>:0)
	UnityEngine.DebugLogHandler:LogException(Exception, Object)
	ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
	UnityEngine.Debug:LogException(Exception)
	MuMech.Operation:MakeNodes(Orbit, Double, MechJebModuleTargetController)
	MuMech.MechJebModuleManeuverPlanner:WindowGUI(Int32)
	MuMech.DisplayModule:ProfiledWindowGUI(Int32)
	UnityEngine.GUI:CallWindowDelegate(WindowFunction, Int32, Int32, GUISkin, Int32, Single, Single, GUIStyle)

It is throwing in minlmsetscale which means the optimization problem isn't even running, but it throws the useless alglib+alglibexception so it isn't clear why minlmsetscale barfed. I've long since forgotten what all the debug logging means. maxDTplusT = Infinity is certainly curious but that might be intended, i can't recall any more.

commented

well that code is all gone now, so presumably is this bug.