This evening I'm please to have released KSP Trajectory Optimization Tool v1.6.5! This is a major update with a focus primarily on improving the Launch Vehicle Designer (LVD) experience. New optimization algorithms, integrators, and models are included for use in LVD. A few performance enhancements have also been incorporated. The goal is to allow the analyst even more flexibility in how trajectory problems are set up and solved. The highlights include:
The inclusion of the NOMAD gradient-free optimization algorithm;
The ODE5 integrator;
All new optimization algorithm and integrator options; and
The interpolated curve drag coefficient model.
Here's the full change log.
MA/LVD: Added option to auto-propagate (or not) the mission script when changes are made to it. Useful when your script takes forever to propagate and you have lots of changes to make.
MA: Improved robustness of "coast to function value".
MA/LVD: Editing mission notes prompts user to save file (asterisk in window title).
LVD: Overhaul of optimization:
Added new optimizer: NOMAD
Added new option for computing gradients of objective function (a custom finite difference scheme)
Added a new UI for selecting optimization algorithm.
Added many new options for FMINCON and Pattern Search algorithms (including two new UIs for them).
Removed all the old optimization options (they are incorporated to the new options now).
LVD/MA: New mission plans now use the celestial body data that's currently loaded in the main KSPTOT GUI and not the data from the previous mission plan.
LVD: Added a new impulsive delta-v event action.
LVD: Added a new event number and total effective specific impulse (Isp) tasks to Graphical Analysis.
LVD: Objective functions are now "composites" of a number of sub-functions. Those sub-functions mirror what is available for use as a constraint.
LVD: Added a constraint (and therefore also an objective sub-function) for the amount of delta-v expended during an event. Listed under "event delta-v expended" or something to that effect.
LVD: In the initial state dialog box and the set kinematic state action dialog box, state representation and reference frame are now select-able in more combinations than before, and adding new reference frames and state representations is much, much easier going forward.
LVD: New "set kinematic state" action. Use this to set the time, position, velocity, and stage states of the spacecraft arbitrarily (or optimize them), or inherit them from the final state of a previous event.
LVD: New time, position, and continuity constraints for use with the set kinematic state action.
LVD: FMINCON options now allow constraint, optimality, and step tolerances to go to 0.
LVD: Objective functions are now "composites" of different functions. The values of these functions are added together in a fashion defined by the user.
LVD: New plotting methods for events (applies to both the orbit display in the main LVD UI and graphical analysis plots).
LVD: Minor performance enhancements to calculating atmospheric temperature.
LVD: Resolves an issue with the true anomaly event termination condition where the directional termination was reversed from expected behavior.
LVD: Added a pop out orbit display button to the main LVD UI.
LVD: Added the ability to compute the gradient sparsity to the custom finite differences gradient method, which can improve optimization speed and accuracy in some situations.
LVD: Added IPOPT to optimizer list.
MA: Resolved issue with orbital decay on coast that was breaking it.
MA: Resolved two issues with MA drag coefficient calculator that would slow down the calculations in some instances.
MA: Marker type for mission animator added.
Fix to SFS file read. Bug was causing some vessels to not get found in the file.
LVD: Addition of a new propagator type, "Two Body Motion." This change also includes a number of backend reworks to incorporate a new way to propagate spacecraft orbits and a generic interface for adding new propagator types in the future.
LVD: Changed drag model such that drag coefficient is now entered as set of points which are interpolated over. Drag coefficient data may be imported from a CSV file.
LVD: Added a new, fifth order fixed step integrator, ODE5. See below for more information.
LVD: Added drag area to graphical analysis outputs.
LVD: Added Cntrl-F shortcut to remove or re-added event from optimization.
MA/LVD: Resolved issue with plotting periapsis crossings.
As usual, the release can be downloaded from the first post of this thread. Please let me know if you have any questions or find any bugs. Thanks, and happy orbiting!